From 3c44927e0a3d7eceeae69a52683bd0d41bd73fb4 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sat, 1 Jul 2017 22:09:52 +0200 Subject: [PATCH 01/15] Reorganize repository structure --- Asixtool/{trunk => }/Kopie von Makefile | 0 Asixtool/{trunk => }/LICENSE | 0 Asixtool/{trunk => }/Makefile | 0 Asixtool/{trunk => }/asix_serial.c | 0 Asixtool/{trunk => }/asix_serial.h | 0 Asixtool/{trunk => }/bootcom.c | 0 Asixtool/{trunk => }/bootcom.h | 0 Asixtool/{trunk => }/infohelper.c | 0 Asixtool/{trunk => }/infohelper.h | 0 Asixtool/{trunk => }/main.c | 0 betty_TAE/MSP430/{trunk => }/Makefile | 0 betty_TAE/MSP430/{trunk => }/cc1100.c | 0 betty_TAE/MSP430/{trunk => }/cc1100.h | 0 betty_TAE/MSP430/{trunk => }/hardware.c | 0 betty_TAE/MSP430/{trunk => }/hardware.h | 0 betty_TAE/MSP430/{trunk => }/main.c | 0 betty_TAE/MSP430/{trunk => }/rf.c | 0 betty_TAE/MSP430/{trunk => }/rf.h | 0 betty_scart/{trunk => }/LICENSE | 0 betty_scart/{trunk => }/Makefile | 0 .../{trunk => }/Makefile.local.WinSDCC | 0 .../{trunk => }/Makefile.local.linuxSDCC | 0 betty_scart/{trunk => }/ScartProg.exe | Bin betty_scart/{trunk => }/betty_scart.bin | Bin betty_scart/{trunk => }/boop_icp.py | 0 betty_scart/{trunk => }/cc1100.c | 0 betty_scart/{trunk => }/cc1100.h | 0 betty_scart/{trunk => }/cmd.c | 0 betty_scart/{trunk => }/cmd.h | 0 betty_scart/{trunk => }/main.c | 0 betty_scart/{trunk => }/readme.txt | 0 betty_scart/{trunk => }/rf.c | 0 betty_scart/{trunk => }/rf.h | 0 betty_scart/{trunk => }/serial.c | 0 betty_scart/{trunk => }/serial.h | 0 betty_scart/{trunk => }/timer.c | 0 betty_scart/{trunk => }/timer.h | 0 bmp2b/{trunk => }/Makefile | 0 bmp2b/{trunk => }/README1ST | 0 bmp2b/{trunk => }/betty.bmp | Bin bmp2b/{trunk => }/betty2.bmp | Bin bmp2b/{trunk => }/bmp.c | 0 bmp2b/{trunk => }/bmp.h | 0 bmp2b/{trunk => }/bmp2b.c | 0 bmp2b/{trunk => }/bmp2b.tar.bz2 | Bin .../telekatz_soundtest => }/CHANGELOG | 0 .../telekatz_soundtest => }/LICENSE | 0 boop/{trunk => }/Make.conf | 0 boop/{trunk => }/Makefile | 0 .../Makefile.local.Telekatz | 0 boop/{trunk => }/Makefile.local.WinARM | 0 boop/{trunk => }/Makefile.local.linuxARM | 0 boop/{trunk => }/README | 0 boop/{trunk => }/adc/Make.conf | 0 boop/{trunk => }/adc/adc.c | 0 boop/{trunk => }/adc/adc.h | 0 boop/{trunk => }/adc/adcirq.c | 0 boop/{trunk => }/adc/adcirq.h | 0 boop/{trunk => }/audio/Make.conf | 0 boop/{trunk => }/audio/sid.c | 0 boop/{trunk => }/audio/sid.h | 0 boop/{trunk => }/audio/sidfiles.h | 0 boop/{trunk => }/audio/sound.c | 0 boop/{trunk => }/audio/sound.h | 0 boop/{trunk => }/audio/soundirq.c | 0 boop/{trunk => }/audio/soundirq.h | 0 .../telekatz_soundtest => audio}/sounds.h | 0 boop/{trunk => }/betty.cfg | 0 boop/{trunk => }/boop_rom.bin | Bin boop/branches/ram_version/readme.txt | 1 - .../telekatz_soundtest/Boop.pnproj | 1 - .../ram_version/telekatz_soundtest/Make.conf | 4 - .../ram_version/telekatz_soundtest/Makefile | 98 - .../telekatz_soundtest/Makefile.local | 24 - .../telekatz_soundtest/Makefile.local.WinARM | 20 - .../Makefile.local.linuxARM | 25 - .../ram_version/telekatz_soundtest/README | 25 - .../ram_version/telekatz_soundtest/b.h | 24 - .../ram_version/telekatz_soundtest/batt.c | 80 - .../ram_version/telekatz_soundtest/batt.h | 27 - .../ram_version/telekatz_soundtest/boop.pnps | 1 - .../telekatz_soundtest/boop_flash.ppg | 1 - .../ram_version/telekatz_soundtest/cc1100.c | 158 - .../ram_version/telekatz_soundtest/cc1100.h | 56 - .../ram_version/telekatz_soundtest/crt.s | 199 - .../ram_version/telekatz_soundtest/externs.h | 7 - .../ram_version/telekatz_soundtest/flash.c | 174 - .../ram_version/telekatz_soundtest/flash.h | 33 - .../ram_version/telekatz_soundtest/fonty.c | 433 -- .../ram_version/telekatz_soundtest/fonty.h | 31 - .../ram_version/telekatz_soundtest/global.c | 46 - .../ram_version/telekatz_soundtest/global.h | 57 - .../ram_version/telekatz_soundtest/infrared.c | 181 - .../ram_version/telekatz_soundtest/infrared.h | 60 - .../ram_version/telekatz_soundtest/ir_itt.c | 228 - .../ram_version/telekatz_soundtest/ir_itt.h | 30 - .../ram_version/telekatz_soundtest/ir_nrc17.c | 221 - .../ram_version/telekatz_soundtest/ir_nrc17.h | 30 - .../ram_version/telekatz_soundtest/ir_rc5.c | 171 - .../ram_version/telekatz_soundtest/ir_rc5.h | 30 - .../ram_version/telekatz_soundtest/ir_rca.c | 184 - .../ram_version/telekatz_soundtest/ir_rca.h | 30 - .../ram_version/telekatz_soundtest/ir_rcmm.c | 190 - .../ram_version/telekatz_soundtest/ir_rcmm.h | 30 - .../ram_version/telekatz_soundtest/ir_rec80.c | 195 - .../ram_version/telekatz_soundtest/ir_rec80.h | 30 - .../telekatz_soundtest/ir_recs80.c | 165 - .../telekatz_soundtest/ir_recs80.h | 30 - .../ram_version/telekatz_soundtest/ir_sirc.c | 191 - .../ram_version/telekatz_soundtest/ir_sirc.h | 30 - .../telekatz_soundtest/ir_spaceenc.c | 285 -- .../telekatz_soundtest/ir_spaceenc.h | 33 - .../ram_version/telekatz_soundtest/irq.c | 82 - .../ram_version/telekatz_soundtest/irq.h | 72 - .../telekatz_soundtest/itt_codes.h | 10 - .../ram_version/telekatz_soundtest/keyboard.c | 101 - .../ram_version/telekatz_soundtest/keyboard.h | 83 - .../ram_version/telekatz_soundtest/lcd.c | 617 --- .../ram_version/telekatz_soundtest/lcd.h | 47 - .../ram_version/telekatz_soundtest/lpc2220.h | 285 -- .../ram_version/telekatz_soundtest/lpc2220.ld | 66 - .../telekatz_soundtest/lpc2220_rom.ld | 113 - .../ram_version/telekatz_soundtest/main.c | 242 - .../ram_version/telekatz_soundtest/serial.c | 237 - .../ram_version/telekatz_soundtest/serial.h | 42 - .../telekatz_soundtest/sirc_codes.h | 7 - .../telekatz_soundtest/soundcore.c | 961 ---- .../telekatz_soundtest/soundcore.h | 63 - .../telekatz_soundtest/spaceenc_codes.h | 8 - boop/{trunk => }/buffer.c | 0 boop/{trunk => }/buffer.h | 0 boop/{trunk => }/cc1100/Make.conf | 0 boop/{trunk => }/cc1100/cc1100.c | 0 boop/{trunk => }/cc1100/cc1100.h | 0 boop/{trunk => }/cc1100/fs20.c | 0 boop/{trunk => }/cc1100/fs20.h | 0 boop/{trunk => }/cc1100/rf.c | 0 boop/{trunk => }/cc1100/rf.h | 0 boop/{trunk => }/cc1100/scan.c | 0 boop/{trunk => }/cc1100/scan.h | 0 boop/{trunk => }/crt.s | 0 boop/{trunk => }/display/GrayScaler.exe | Bin boop/{trunk => }/display/Hourglas_2bpp.bmp | Bin .../{trunk => }/display/Hourglas_t_3bpp_t.bmp | Bin boop/{trunk => }/display/Make.conf | 0 boop/{trunk => }/display/backlight.c | 0 boop/{trunk => }/display/backlight.h | 0 boop/{trunk => }/display/boop_logo | 0 boop/{trunk => }/display/drawDigit.c | 0 boop/{trunk => }/display/drawDigit.h | 0 boop/{trunk => }/display/drawIcon.c | 0 .../fonts/charset.bits | 0 .../fonts/charset.info | 0 .../fonts/smooth.bits | 0 .../fonts/smooth.info | 0 boop/{trunk => }/display/fonty.c | 0 boop/{trunk => }/display/fonty.h | 0 boop/{trunk => }/display/icon.h | 0 boop/{trunk => }/display/iconHourglas.h | 0 boop/{trunk => }/display/iconHourglas2.h | 0 boop/{trunk => }/display/iconHourglas2_t.h | 0 boop/{trunk => }/display/iconHourglas_t.h | 0 boop/{trunk => }/display/lcd.c | 0 boop/{trunk => }/display/lcd.h | 0 boop/{trunk => }/flash/Make.conf | 0 boop/{trunk => }/flash/bfs.c | 0 boop/{trunk => }/flash/bfs.h | 0 boop/{trunk => }/flash/flash.c | 0 boop/{trunk => }/flash/flash.h | 0 boop/{trunk => }/games/Make.conf | 0 boop/{trunk => }/games/c4_map.h | 0 boop/{trunk => }/games/connect4.c | 0 boop/{trunk => }/games/connect4.h | 0 boop/{trunk => }/games/gamesmenu.c | 0 boop/{trunk => }/games/gamesmenu.h | 0 boop/{trunk => }/games/sokoban.c | 0 boop/{trunk => }/games/sokoban.h | 0 boop/{trunk => }/games/sokoban_levels.h | 0 boop/{trunk => }/games/tic_tac_toe.c | 0 boop/{trunk => }/games/tic_tac_toe.h | 0 boop/{trunk => }/global.c | 0 boop/{trunk => }/global.h | 0 boop/{trunk => }/gui/Cross_2bpp.bmp | Bin boop/{trunk => }/gui/Cross_t_3bpp_t.bmp | Bin boop/{trunk => }/gui/FF_2bpp.bmp | Bin boop/{trunk => }/gui/FR_2bpp.bmp | Bin boop/{trunk => }/gui/Leo_Gray_128_2bpp.bmp | Bin boop/{trunk => }/gui/Make.conf | 0 boop/{trunk => }/gui/Pause_2bpp.bmp | Bin boop/{trunk => }/gui/Play_2bpp.bmp | Bin boop/{trunk => }/gui/Stop_2bpp.bmp | Bin boop/{trunk => }/gui/controls.c | 0 boop/{trunk => }/gui/controls.h | 0 boop/{trunk => }/gui/iconCross.h | 0 boop/{trunk => }/gui/iconCross_t.h | 0 boop/{trunk => }/gui/iconFf.h | 0 boop/{trunk => }/gui/iconFr.h | 0 boop/{trunk => }/gui/iconHourglas.h | 0 boop/{trunk => }/gui/iconHourglas_t.h | 0 boop/{trunk => }/gui/iconLeo_gray_128.h | 0 boop/{trunk => }/gui/iconPause.h | 0 boop/{trunk => }/gui/iconPlay.h | 0 boop/{trunk => }/gui/iconStop.h | 0 boop/{trunk => }/gui/mainmenu.c | 0 boop/{trunk => }/gui/mainmenu.h | 0 boop/{trunk => }/gui/menu.c | 0 boop/{trunk => }/gui/menu.h | 0 boop/{trunk => }/gui/settingsmenu.c | 0 boop/{trunk => }/gui/settingsmenu.h | 0 boop/{trunk => }/gui/testmenu.c | 0 boop/{trunk => }/gui/testmenu.h | 0 boop/{trunk => }/infrared/Make.conf | 0 boop/{trunk => }/infrared/codes.c | 0 boop/{trunk => }/infrared/codes.h | 0 boop/{trunk => }/infrared/encoders.c | 0 boop/{trunk => }/infrared/encoders.h | 0 boop/{trunk => }/infrared/infrared.c | 0 boop/{trunk => }/infrared/infrared.h | 0 boop/{trunk => }/infrared/infrared_encoders.h | 0 boop/{trunk => }/infrared/infraredirq.c | 0 boop/{trunk => }/infrared/infraredirq.h | 0 boop/{trunk => }/infrared/ir_capture.c | 0 boop/{trunk => }/infrared/ir_capture.h | 0 .../infrared/ir_codes/itt/seleco_019 | 0 .../infrared/ir_codes/itt/seleco_049 | 0 .../infrared/ir_codes/itt/seleco_108 | 0 .../infrared/ir_codes/itt/seleco_131 | 0 .../infrared/ir_codes/lirc/apple_remote1 | 0 boop/{trunk => }/infrared/ir_codes/lirc/fs20 | 0 .../{trunk => }/infrared/ir_codes/lirc/hx2262 | 0 .../infrared/ir_codes/lirc/olympus_rm-1 | 0 .../infrared/ir_codes/lirc/rev008340 | 0 .../infrared/ir_codes/lirc/samsung_ue46b6000 | 0 .../infrared/ir_codes/lirc/str_de545 | 0 .../{trunk => }/infrared/ir_codes/lirc/ufs910 | 0 .../{trunk => }/infrared/ir_codes/lirc/ufs922 | 0 .../{trunk => }/infrared/ir_codes/nrc17/dbox2 | 0 .../infrared/ir_codes/nrc17/grundig_tp720 | 0 .../infrared/ir_codes/rc5/HARMONY_655 | 0 .../rc5/technisat_satreceiver_103TS103 | 0 boop/{trunk => }/infrared/ir_codes/rc5/tv | 0 boop/{trunk => }/infrared/ir_codes/rc6/dvd | 0 boop/{trunk => }/infrared/ir_codes/rc6/tv | 0 boop/{trunk => }/infrared/ir_codes/rc6/ufs922 | 0 boop/{trunk => }/infrared/ir_codes/rca/xbox | 0 .../infrared/ir_codes/rcmm/galaxis | 0 .../{trunk => }/infrared/ir_codes/rcmm/ufs910 | 0 .../infrared/ir_codes/rec80/rak_sc957wk | 0 .../infrared/ir_codes/recs80/seleco_020 | 0 .../infrared/ir_codes/recs80/seleco_157 | 0 .../infrared/ir_codes/rf/cc1100_a0 | 0 .../infrared/ir_codes/rf/cc1100_a1 | 0 .../{trunk => }/infrared/ir_codes/sirc/UFD400 | 0 .../infrared/ir_codes/sirc/rm-pp411 | 0 boop/{trunk => }/infrared/ir_codes/sirc/tv | 0 .../infrared/ir_codes/spaceenc/schneider_dtv3 | 0 .../ir_codes/spaceenc/schneider_dtv3_xtra | 0 .../infrared/ir_codes/spaceenc/seleco_027 | 0 boop/{trunk => }/infrared/ir_itt.c | 0 boop/{trunk => }/infrared/ir_itt.h | 0 boop/{trunk => }/infrared/ir_lirc.c | 0 boop/{trunk => }/infrared/ir_lirc.h | 0 boop/{trunk => }/infrared/ir_nrc17.c | 0 boop/{trunk => }/infrared/ir_nrc17.h | 0 boop/{trunk => }/infrared/ir_raw.c | 0 boop/{trunk => }/infrared/ir_raw.h | 0 boop/{trunk => }/infrared/ir_rc5.c | 0 boop/{trunk => }/infrared/ir_rc5.h | 0 boop/{trunk => }/infrared/ir_rc6.c | 0 boop/{trunk => }/infrared/ir_rc6.h | 0 boop/{trunk => }/infrared/ir_rca.c | 0 boop/{trunk => }/infrared/ir_rca.h | 0 boop/{trunk => }/infrared/ir_rcmm.c | 0 boop/{trunk => }/infrared/ir_rcmm.h | 0 boop/{trunk => }/infrared/ir_rec80.c | 0 boop/{trunk => }/infrared/ir_rec80.h | 0 boop/{trunk => }/infrared/ir_recs80.c | 0 boop/{trunk => }/infrared/ir_recs80.h | 0 boop/{trunk => }/infrared/ir_rf.c | 0 boop/{trunk => }/infrared/ir_rf.h | 0 boop/{trunk => }/infrared/ir_selector.c | 0 boop/{trunk => }/infrared/ir_selector.h | 0 boop/{trunk => }/infrared/ir_sirc.c | 0 boop/{trunk => }/infrared/ir_sirc.h | 0 boop/{trunk => }/infrared/ir_spaceenc.c | 0 boop/{trunk => }/infrared/ir_spaceenc.h | 0 boop/{trunk => }/interrupt/Make.conf | 0 boop/{trunk => }/interrupt/irq.c | 0 boop/{trunk => }/interrupt/irq.h | 0 boop/{trunk => }/keyboard/Make.conf | 0 boop/{trunk => }/keyboard/keyboard.c | 0 boop/{trunk => }/keyboard/keyboard.h | 0 boop/{trunk => }/keyboard/keyirq.c | 0 boop/{trunk => }/keyboard/keyirq.h | 0 boop/{trunk => }/lpc2220.h | 0 boop/{trunk => }/lpc2220_rom.ld | 0 boop/{trunk => }/main.c | 0 boop/{trunk => }/rtc/Make.conf | 0 boop/{trunk => }/rtc/i2c.c | 0 boop/{trunk => }/rtc/i2c.h | 0 boop/{trunk => }/rtc/rtc.c | 0 boop/{trunk => }/rtc/rtc.h | 0 boop/{trunk => }/rtc/rtctimer.c | 0 boop/{trunk => }/rtc/rtctimer.h | 0 boop/{trunk => }/serial/Make.conf | 0 boop/{trunk => }/serial/redirector.c | 0 boop/{trunk => }/serial/redirector.h | 0 boop/{trunk => }/serial/serial.c | 0 boop/{trunk => }/serial/serial.h | 0 boop/{trunk => }/serial/serirq.c | 0 .../telekatz_soundtest => }/sound3.h | 0 boop/{trunk => }/syscalls.c | 0 boop/{trunk => }/timer/Make.conf | 0 boop/{trunk => }/timer/timerfuncs.c | 0 boop/{trunk => }/timer/timerfuncs.h | 0 boop/{trunk => }/timer/timerirq.c | 0 boop/{trunk => }/timer/timerirq.h | 0 boop/{trunk => }/tools/Make.conf | 0 boop/{trunk => }/tools/scart_icp.c | 0 boop/{trunk => }/tools/scart_icp.h | 0 boop/{trunk => }/tools/scart_image.h | 0 boop/{trunk => }/tools/scart_image_data.h | 0 boop/{trunk => }/tools/toolsmenu.c | 0 boop/{trunk => }/tools/toolsmenu.h | 0 boop/trunk/CHANGELOG | 2 - boop/trunk/LICENSE | 674 --- boop/trunk/Makefile.local.Telekatz | 23 - boop/trunk/audio/sounds.h | 4417 ----------------- boop/trunk/display/fonts/smooth.bits | 279 -- boop/trunk/display/fonts/smooth.info | 17 - boop/trunk/sound3.h | 1571 ------ lpctool/{trunk => }/ChangeLog | 0 lpctool/{trunk => }/Makefile | 0 lpctool/{trunk => }/Makefile.local.WinARM | 0 lpctool/{trunk => }/Makefile.local.linuxARM | 0 lpctool/{trunk => }/bin2h.c | 0 lpctool/{trunk => }/bootcom.c | 0 lpctool/{trunk => }/bootcom.h | 0 .../display/fonts => lpctool}/charset.bits | 0 .../display/fonts => lpctool}/charset.info | 0 lpctool/{trunk => }/crt.s | 0 lpctool/{trunk => }/flash.c | 0 lpctool/{trunk => }/flash.h | 0 lpctool/{trunk => }/fonty.c | 0 lpctool/{trunk => }/fonty.h | 0 lpctool/{trunk => }/infohelper.c | 0 lpctool/{trunk => }/infohelper.h | 0 lpctool/{trunk => }/irq.c | 0 lpctool/{trunk => }/lcd.c | 0 lpctool/{trunk => }/lcd.h | 0 lpctool/{trunk => }/lpc2220.h | 0 lpctool/{trunk => }/lpc2220.ld | 0 lpctool/{trunk => }/lpc2220_rom.ld | 0 lpctool/{trunk => }/lpctool.c | 0 lpctool/{trunk => }/lpctool_serial.c | 0 lpctool/{trunk => }/lpctool_serial.h | 0 lpctool/{trunk => }/ramtool.c | 0 lpctool/{trunk => }/serial.c | 0 lpctool/{trunk => }/serial.h | 0 lpctool/{trunk => }/toolcmd.h | 0 lpctool/{trunk => }/toolcom.c | 0 lpctool/{trunk => }/toolcom.h | 0 lpctool/trunk/charset.bits | 118 - lpctool/trunk/charset.info | 22 - 364 files changed, 14028 deletions(-) rename Asixtool/{trunk => }/Kopie von Makefile (100%) rename Asixtool/{trunk => }/LICENSE (100%) rename Asixtool/{trunk => }/Makefile (100%) rename Asixtool/{trunk => }/asix_serial.c (100%) rename Asixtool/{trunk => }/asix_serial.h (100%) rename Asixtool/{trunk => }/bootcom.c (100%) rename Asixtool/{trunk => }/bootcom.h (100%) rename Asixtool/{trunk => }/infohelper.c (100%) rename Asixtool/{trunk => }/infohelper.h (100%) rename Asixtool/{trunk => }/main.c (100%) rename betty_TAE/MSP430/{trunk => }/Makefile (100%) rename betty_TAE/MSP430/{trunk => }/cc1100.c (100%) rename betty_TAE/MSP430/{trunk => }/cc1100.h (100%) rename betty_TAE/MSP430/{trunk => }/hardware.c (100%) rename betty_TAE/MSP430/{trunk => }/hardware.h (100%) rename betty_TAE/MSP430/{trunk => }/main.c (100%) rename betty_TAE/MSP430/{trunk => }/rf.c (100%) rename betty_TAE/MSP430/{trunk => }/rf.h (100%) rename betty_scart/{trunk => }/LICENSE (100%) rename betty_scart/{trunk => }/Makefile (100%) rename betty_scart/{trunk => }/Makefile.local.WinSDCC (100%) rename betty_scart/{trunk => }/Makefile.local.linuxSDCC (100%) rename betty_scart/{trunk => }/ScartProg.exe (100%) rename betty_scart/{trunk => }/betty_scart.bin (100%) rename betty_scart/{trunk => }/boop_icp.py (100%) rename betty_scart/{trunk => }/cc1100.c (100%) rename betty_scart/{trunk => }/cc1100.h (100%) rename betty_scart/{trunk => }/cmd.c (100%) rename betty_scart/{trunk => }/cmd.h (100%) rename betty_scart/{trunk => }/main.c (100%) rename betty_scart/{trunk => }/readme.txt (100%) rename betty_scart/{trunk => }/rf.c (100%) rename betty_scart/{trunk => }/rf.h (100%) rename betty_scart/{trunk => }/serial.c (100%) rename betty_scart/{trunk => }/serial.h (100%) rename betty_scart/{trunk => }/timer.c (100%) rename betty_scart/{trunk => }/timer.h (100%) rename bmp2b/{trunk => }/Makefile (100%) rename bmp2b/{trunk => }/README1ST (100%) rename bmp2b/{trunk => }/betty.bmp (100%) rename bmp2b/{trunk => }/betty2.bmp (100%) rename bmp2b/{trunk => }/bmp.c (100%) rename bmp2b/{trunk => }/bmp.h (100%) rename bmp2b/{trunk => }/bmp2b.c (100%) rename bmp2b/{trunk => }/bmp2b.tar.bz2 (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/CHANGELOG (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/LICENSE (100%) rename boop/{trunk => }/Make.conf (100%) rename boop/{trunk => }/Makefile (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile.local.Telekatz (100%) rename boop/{trunk => }/Makefile.local.WinARM (100%) rename boop/{trunk => }/Makefile.local.linuxARM (100%) rename boop/{trunk => }/README (100%) rename boop/{trunk => }/adc/Make.conf (100%) rename boop/{trunk => }/adc/adc.c (100%) rename boop/{trunk => }/adc/adc.h (100%) rename boop/{trunk => }/adc/adcirq.c (100%) rename boop/{trunk => }/adc/adcirq.h (100%) rename boop/{trunk => }/audio/Make.conf (100%) rename boop/{trunk => }/audio/sid.c (100%) rename boop/{trunk => }/audio/sid.h (100%) rename boop/{trunk => }/audio/sidfiles.h (100%) rename boop/{trunk => }/audio/sound.c (100%) rename boop/{trunk => }/audio/sound.h (100%) rename boop/{trunk => }/audio/soundirq.c (100%) rename boop/{trunk => }/audio/soundirq.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => audio}/sounds.h (100%) rename boop/{trunk => }/betty.cfg (100%) rename boop/{trunk => }/boop_rom.bin (100%) delete mode 100644 boop/branches/ram_version/readme.txt delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Boop.pnproj delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Make.conf delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Makefile delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Makefile.local delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM delete mode 100644 boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM delete mode 100644 boop/branches/ram_version/telekatz_soundtest/README delete mode 100644 boop/branches/ram_version/telekatz_soundtest/b.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/batt.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/batt.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/boop.pnps delete mode 100644 boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg delete mode 100644 boop/branches/ram_version/telekatz_soundtest/cc1100.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/cc1100.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/crt.s delete mode 100644 boop/branches/ram_version/telekatz_soundtest/externs.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/flash.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/flash.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/fonty.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/fonty.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/global.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/global.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/infrared.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/infrared.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_itt.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_itt.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rc5.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rc5.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rca.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rca.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rec80.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_rec80.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_recs80.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_recs80.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_sirc.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_sirc.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/irq.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/irq.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/itt_codes.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/keyboard.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/keyboard.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/lcd.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/lcd.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/lpc2220.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/lpc2220.ld delete mode 100644 boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld delete mode 100644 boop/branches/ram_version/telekatz_soundtest/main.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/serial.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/serial.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/sirc_codes.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/soundcore.c delete mode 100644 boop/branches/ram_version/telekatz_soundtest/soundcore.h delete mode 100644 boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h rename boop/{trunk => }/buffer.c (100%) rename boop/{trunk => }/buffer.h (100%) rename boop/{trunk => }/cc1100/Make.conf (100%) rename boop/{trunk => }/cc1100/cc1100.c (100%) rename boop/{trunk => }/cc1100/cc1100.h (100%) rename boop/{trunk => }/cc1100/fs20.c (100%) rename boop/{trunk => }/cc1100/fs20.h (100%) rename boop/{trunk => }/cc1100/rf.c (100%) rename boop/{trunk => }/cc1100/rf.h (100%) rename boop/{trunk => }/cc1100/scan.c (100%) rename boop/{trunk => }/cc1100/scan.h (100%) rename boop/{trunk => }/crt.s (100%) rename boop/{trunk => }/display/GrayScaler.exe (100%) rename boop/{trunk => }/display/Hourglas_2bpp.bmp (100%) rename boop/{trunk => }/display/Hourglas_t_3bpp_t.bmp (100%) rename boop/{trunk => }/display/Make.conf (100%) rename boop/{trunk => }/display/backlight.c (100%) rename boop/{trunk => }/display/backlight.h (100%) rename boop/{trunk => }/display/boop_logo (100%) rename boop/{trunk => }/display/drawDigit.c (100%) rename boop/{trunk => }/display/drawDigit.h (100%) rename boop/{trunk => }/display/drawIcon.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => display}/fonts/charset.bits (100%) rename boop/{branches/ram_version/telekatz_soundtest => display}/fonts/charset.info (100%) rename boop/{branches/ram_version/telekatz_soundtest => display}/fonts/smooth.bits (100%) rename boop/{branches/ram_version/telekatz_soundtest => display}/fonts/smooth.info (100%) rename boop/{trunk => }/display/fonty.c (100%) rename boop/{trunk => }/display/fonty.h (100%) rename boop/{trunk => }/display/icon.h (100%) rename boop/{trunk => }/display/iconHourglas.h (100%) rename boop/{trunk => }/display/iconHourglas2.h (100%) rename boop/{trunk => }/display/iconHourglas2_t.h (100%) rename boop/{trunk => }/display/iconHourglas_t.h (100%) rename boop/{trunk => }/display/lcd.c (100%) rename boop/{trunk => }/display/lcd.h (100%) rename boop/{trunk => }/flash/Make.conf (100%) rename boop/{trunk => }/flash/bfs.c (100%) rename boop/{trunk => }/flash/bfs.h (100%) rename boop/{trunk => }/flash/flash.c (100%) rename boop/{trunk => }/flash/flash.h (100%) rename boop/{trunk => }/games/Make.conf (100%) rename boop/{trunk => }/games/c4_map.h (100%) rename boop/{trunk => }/games/connect4.c (100%) rename boop/{trunk => }/games/connect4.h (100%) rename boop/{trunk => }/games/gamesmenu.c (100%) rename boop/{trunk => }/games/gamesmenu.h (100%) rename boop/{trunk => }/games/sokoban.c (100%) rename boop/{trunk => }/games/sokoban.h (100%) rename boop/{trunk => }/games/sokoban_levels.h (100%) rename boop/{trunk => }/games/tic_tac_toe.c (100%) rename boop/{trunk => }/games/tic_tac_toe.h (100%) rename boop/{trunk => }/global.c (100%) rename boop/{trunk => }/global.h (100%) rename boop/{trunk => }/gui/Cross_2bpp.bmp (100%) rename boop/{trunk => }/gui/Cross_t_3bpp_t.bmp (100%) rename boop/{trunk => }/gui/FF_2bpp.bmp (100%) rename boop/{trunk => }/gui/FR_2bpp.bmp (100%) rename boop/{trunk => }/gui/Leo_Gray_128_2bpp.bmp (100%) rename boop/{trunk => }/gui/Make.conf (100%) rename boop/{trunk => }/gui/Pause_2bpp.bmp (100%) rename boop/{trunk => }/gui/Play_2bpp.bmp (100%) rename boop/{trunk => }/gui/Stop_2bpp.bmp (100%) rename boop/{trunk => }/gui/controls.c (100%) rename boop/{trunk => }/gui/controls.h (100%) rename boop/{trunk => }/gui/iconCross.h (100%) rename boop/{trunk => }/gui/iconCross_t.h (100%) rename boop/{trunk => }/gui/iconFf.h (100%) rename boop/{trunk => }/gui/iconFr.h (100%) rename boop/{trunk => }/gui/iconHourglas.h (100%) rename boop/{trunk => }/gui/iconHourglas_t.h (100%) rename boop/{trunk => }/gui/iconLeo_gray_128.h (100%) rename boop/{trunk => }/gui/iconPause.h (100%) rename boop/{trunk => }/gui/iconPlay.h (100%) rename boop/{trunk => }/gui/iconStop.h (100%) rename boop/{trunk => }/gui/mainmenu.c (100%) rename boop/{trunk => }/gui/mainmenu.h (100%) rename boop/{trunk => }/gui/menu.c (100%) rename boop/{trunk => }/gui/menu.h (100%) rename boop/{trunk => }/gui/settingsmenu.c (100%) rename boop/{trunk => }/gui/settingsmenu.h (100%) rename boop/{trunk => }/gui/testmenu.c (100%) rename boop/{trunk => }/gui/testmenu.h (100%) rename boop/{trunk => }/infrared/Make.conf (100%) rename boop/{trunk => }/infrared/codes.c (100%) rename boop/{trunk => }/infrared/codes.h (100%) rename boop/{trunk => }/infrared/encoders.c (100%) rename boop/{trunk => }/infrared/encoders.h (100%) rename boop/{trunk => }/infrared/infrared.c (100%) rename boop/{trunk => }/infrared/infrared.h (100%) rename boop/{trunk => }/infrared/infrared_encoders.h (100%) rename boop/{trunk => }/infrared/infraredirq.c (100%) rename boop/{trunk => }/infrared/infraredirq.h (100%) rename boop/{trunk => }/infrared/ir_capture.c (100%) rename boop/{trunk => }/infrared/ir_capture.h (100%) rename boop/{trunk => }/infrared/ir_codes/itt/seleco_019 (100%) rename boop/{trunk => }/infrared/ir_codes/itt/seleco_049 (100%) rename boop/{trunk => }/infrared/ir_codes/itt/seleco_108 (100%) rename boop/{trunk => }/infrared/ir_codes/itt/seleco_131 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/apple_remote1 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/fs20 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/hx2262 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/olympus_rm-1 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/rev008340 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/samsung_ue46b6000 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/str_de545 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/ufs910 (100%) rename boop/{trunk => }/infrared/ir_codes/lirc/ufs922 (100%) rename boop/{trunk => }/infrared/ir_codes/nrc17/dbox2 (100%) rename boop/{trunk => }/infrared/ir_codes/nrc17/grundig_tp720 (100%) rename boop/{trunk => }/infrared/ir_codes/rc5/HARMONY_655 (100%) rename boop/{trunk => }/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 (100%) rename boop/{trunk => }/infrared/ir_codes/rc5/tv (100%) rename boop/{trunk => }/infrared/ir_codes/rc6/dvd (100%) rename boop/{trunk => }/infrared/ir_codes/rc6/tv (100%) rename boop/{trunk => }/infrared/ir_codes/rc6/ufs922 (100%) rename boop/{trunk => }/infrared/ir_codes/rca/xbox (100%) rename boop/{trunk => }/infrared/ir_codes/rcmm/galaxis (100%) rename boop/{trunk => }/infrared/ir_codes/rcmm/ufs910 (100%) rename boop/{trunk => }/infrared/ir_codes/rec80/rak_sc957wk (100%) rename boop/{trunk => }/infrared/ir_codes/recs80/seleco_020 (100%) rename boop/{trunk => }/infrared/ir_codes/recs80/seleco_157 (100%) rename boop/{trunk => }/infrared/ir_codes/rf/cc1100_a0 (100%) rename boop/{trunk => }/infrared/ir_codes/rf/cc1100_a1 (100%) rename boop/{trunk => }/infrared/ir_codes/sirc/UFD400 (100%) rename boop/{trunk => }/infrared/ir_codes/sirc/rm-pp411 (100%) rename boop/{trunk => }/infrared/ir_codes/sirc/tv (100%) rename boop/{trunk => }/infrared/ir_codes/spaceenc/schneider_dtv3 (100%) rename boop/{trunk => }/infrared/ir_codes/spaceenc/schneider_dtv3_xtra (100%) rename boop/{trunk => }/infrared/ir_codes/spaceenc/seleco_027 (100%) rename boop/{trunk => }/infrared/ir_itt.c (100%) rename boop/{trunk => }/infrared/ir_itt.h (100%) rename boop/{trunk => }/infrared/ir_lirc.c (100%) rename boop/{trunk => }/infrared/ir_lirc.h (100%) rename boop/{trunk => }/infrared/ir_nrc17.c (100%) rename boop/{trunk => }/infrared/ir_nrc17.h (100%) rename boop/{trunk => }/infrared/ir_raw.c (100%) rename boop/{trunk => }/infrared/ir_raw.h (100%) rename boop/{trunk => }/infrared/ir_rc5.c (100%) rename boop/{trunk => }/infrared/ir_rc5.h (100%) rename boop/{trunk => }/infrared/ir_rc6.c (100%) rename boop/{trunk => }/infrared/ir_rc6.h (100%) rename boop/{trunk => }/infrared/ir_rca.c (100%) rename boop/{trunk => }/infrared/ir_rca.h (100%) rename boop/{trunk => }/infrared/ir_rcmm.c (100%) rename boop/{trunk => }/infrared/ir_rcmm.h (100%) rename boop/{trunk => }/infrared/ir_rec80.c (100%) rename boop/{trunk => }/infrared/ir_rec80.h (100%) rename boop/{trunk => }/infrared/ir_recs80.c (100%) rename boop/{trunk => }/infrared/ir_recs80.h (100%) rename boop/{trunk => }/infrared/ir_rf.c (100%) rename boop/{trunk => }/infrared/ir_rf.h (100%) rename boop/{trunk => }/infrared/ir_selector.c (100%) rename boop/{trunk => }/infrared/ir_selector.h (100%) rename boop/{trunk => }/infrared/ir_sirc.c (100%) rename boop/{trunk => }/infrared/ir_sirc.h (100%) rename boop/{trunk => }/infrared/ir_spaceenc.c (100%) rename boop/{trunk => }/infrared/ir_spaceenc.h (100%) rename boop/{trunk => }/interrupt/Make.conf (100%) rename boop/{trunk => }/interrupt/irq.c (100%) rename boop/{trunk => }/interrupt/irq.h (100%) rename boop/{trunk => }/keyboard/Make.conf (100%) rename boop/{trunk => }/keyboard/keyboard.c (100%) rename boop/{trunk => }/keyboard/keyboard.h (100%) rename boop/{trunk => }/keyboard/keyirq.c (100%) rename boop/{trunk => }/keyboard/keyirq.h (100%) rename boop/{trunk => }/lpc2220.h (100%) rename boop/{trunk => }/lpc2220_rom.ld (100%) rename boop/{trunk => }/main.c (100%) rename boop/{trunk => }/rtc/Make.conf (100%) rename boop/{trunk => }/rtc/i2c.c (100%) rename boop/{trunk => }/rtc/i2c.h (100%) rename boop/{trunk => }/rtc/rtc.c (100%) rename boop/{trunk => }/rtc/rtc.h (100%) rename boop/{trunk => }/rtc/rtctimer.c (100%) rename boop/{trunk => }/rtc/rtctimer.h (100%) rename boop/{trunk => }/serial/Make.conf (100%) rename boop/{trunk => }/serial/redirector.c (100%) rename boop/{trunk => }/serial/redirector.h (100%) rename boop/{trunk => }/serial/serial.c (100%) rename boop/{trunk => }/serial/serial.h (100%) rename boop/{trunk => }/serial/serirq.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/sound3.h (100%) rename boop/{trunk => }/syscalls.c (100%) rename boop/{trunk => }/timer/Make.conf (100%) rename boop/{trunk => }/timer/timerfuncs.c (100%) rename boop/{trunk => }/timer/timerfuncs.h (100%) rename boop/{trunk => }/timer/timerirq.c (100%) rename boop/{trunk => }/timer/timerirq.h (100%) rename boop/{trunk => }/tools/Make.conf (100%) rename boop/{trunk => }/tools/scart_icp.c (100%) rename boop/{trunk => }/tools/scart_icp.h (100%) rename boop/{trunk => }/tools/scart_image.h (100%) rename boop/{trunk => }/tools/scart_image_data.h (100%) rename boop/{trunk => }/tools/toolsmenu.c (100%) rename boop/{trunk => }/tools/toolsmenu.h (100%) delete mode 100644 boop/trunk/CHANGELOG delete mode 100644 boop/trunk/LICENSE delete mode 100644 boop/trunk/Makefile.local.Telekatz delete mode 100644 boop/trunk/audio/sounds.h delete mode 100644 boop/trunk/display/fonts/smooth.bits delete mode 100644 boop/trunk/display/fonts/smooth.info delete mode 100644 boop/trunk/sound3.h rename lpctool/{trunk => }/ChangeLog (100%) rename lpctool/{trunk => }/Makefile (100%) rename lpctool/{trunk => }/Makefile.local.WinARM (100%) rename lpctool/{trunk => }/Makefile.local.linuxARM (100%) rename lpctool/{trunk => }/bin2h.c (100%) rename lpctool/{trunk => }/bootcom.c (100%) rename lpctool/{trunk => }/bootcom.h (100%) rename {boop/trunk/display/fonts => lpctool}/charset.bits (100%) rename {boop/trunk/display/fonts => lpctool}/charset.info (100%) rename lpctool/{trunk => }/crt.s (100%) rename lpctool/{trunk => }/flash.c (100%) rename lpctool/{trunk => }/flash.h (100%) rename lpctool/{trunk => }/fonty.c (100%) rename lpctool/{trunk => }/fonty.h (100%) rename lpctool/{trunk => }/infohelper.c (100%) rename lpctool/{trunk => }/infohelper.h (100%) rename lpctool/{trunk => }/irq.c (100%) rename lpctool/{trunk => }/lcd.c (100%) rename lpctool/{trunk => }/lcd.h (100%) rename lpctool/{trunk => }/lpc2220.h (100%) rename lpctool/{trunk => }/lpc2220.ld (100%) rename lpctool/{trunk => }/lpc2220_rom.ld (100%) rename lpctool/{trunk => }/lpctool.c (100%) rename lpctool/{trunk => }/lpctool_serial.c (100%) rename lpctool/{trunk => }/lpctool_serial.h (100%) rename lpctool/{trunk => }/ramtool.c (100%) rename lpctool/{trunk => }/serial.c (100%) rename lpctool/{trunk => }/serial.h (100%) rename lpctool/{trunk => }/toolcmd.h (100%) rename lpctool/{trunk => }/toolcom.c (100%) rename lpctool/{trunk => }/toolcom.h (100%) delete mode 100644 lpctool/trunk/charset.bits delete mode 100644 lpctool/trunk/charset.info diff --git a/Asixtool/trunk/Kopie von Makefile b/Asixtool/Kopie von Makefile similarity index 100% rename from Asixtool/trunk/Kopie von Makefile rename to Asixtool/Kopie von Makefile diff --git a/Asixtool/trunk/LICENSE b/Asixtool/LICENSE similarity index 100% rename from Asixtool/trunk/LICENSE rename to Asixtool/LICENSE diff --git a/Asixtool/trunk/Makefile b/Asixtool/Makefile similarity index 100% rename from Asixtool/trunk/Makefile rename to Asixtool/Makefile diff --git a/Asixtool/trunk/asix_serial.c b/Asixtool/asix_serial.c similarity index 100% rename from Asixtool/trunk/asix_serial.c rename to Asixtool/asix_serial.c diff --git a/Asixtool/trunk/asix_serial.h b/Asixtool/asix_serial.h similarity index 100% rename from Asixtool/trunk/asix_serial.h rename to Asixtool/asix_serial.h diff --git a/Asixtool/trunk/bootcom.c b/Asixtool/bootcom.c similarity index 100% rename from Asixtool/trunk/bootcom.c rename to Asixtool/bootcom.c diff --git a/Asixtool/trunk/bootcom.h b/Asixtool/bootcom.h similarity index 100% rename from Asixtool/trunk/bootcom.h rename to Asixtool/bootcom.h diff --git a/Asixtool/trunk/infohelper.c b/Asixtool/infohelper.c similarity index 100% rename from Asixtool/trunk/infohelper.c rename to Asixtool/infohelper.c diff --git a/Asixtool/trunk/infohelper.h b/Asixtool/infohelper.h similarity index 100% rename from Asixtool/trunk/infohelper.h rename to Asixtool/infohelper.h diff --git a/Asixtool/trunk/main.c b/Asixtool/main.c similarity index 100% rename from Asixtool/trunk/main.c rename to Asixtool/main.c diff --git a/betty_TAE/MSP430/trunk/Makefile b/betty_TAE/MSP430/Makefile similarity index 100% rename from betty_TAE/MSP430/trunk/Makefile rename to betty_TAE/MSP430/Makefile diff --git a/betty_TAE/MSP430/trunk/cc1100.c b/betty_TAE/MSP430/cc1100.c similarity index 100% rename from betty_TAE/MSP430/trunk/cc1100.c rename to betty_TAE/MSP430/cc1100.c diff --git a/betty_TAE/MSP430/trunk/cc1100.h b/betty_TAE/MSP430/cc1100.h similarity index 100% rename from betty_TAE/MSP430/trunk/cc1100.h rename to betty_TAE/MSP430/cc1100.h diff --git a/betty_TAE/MSP430/trunk/hardware.c b/betty_TAE/MSP430/hardware.c similarity index 100% rename from betty_TAE/MSP430/trunk/hardware.c rename to betty_TAE/MSP430/hardware.c diff --git a/betty_TAE/MSP430/trunk/hardware.h b/betty_TAE/MSP430/hardware.h similarity index 100% rename from betty_TAE/MSP430/trunk/hardware.h rename to betty_TAE/MSP430/hardware.h diff --git a/betty_TAE/MSP430/trunk/main.c b/betty_TAE/MSP430/main.c similarity index 100% rename from betty_TAE/MSP430/trunk/main.c rename to betty_TAE/MSP430/main.c diff --git a/betty_TAE/MSP430/trunk/rf.c b/betty_TAE/MSP430/rf.c similarity index 100% rename from betty_TAE/MSP430/trunk/rf.c rename to betty_TAE/MSP430/rf.c diff --git a/betty_TAE/MSP430/trunk/rf.h b/betty_TAE/MSP430/rf.h similarity index 100% rename from betty_TAE/MSP430/trunk/rf.h rename to betty_TAE/MSP430/rf.h diff --git a/betty_scart/trunk/LICENSE b/betty_scart/LICENSE similarity index 100% rename from betty_scart/trunk/LICENSE rename to betty_scart/LICENSE diff --git a/betty_scart/trunk/Makefile b/betty_scart/Makefile similarity index 100% rename from betty_scart/trunk/Makefile rename to betty_scart/Makefile diff --git a/betty_scart/trunk/Makefile.local.WinSDCC b/betty_scart/Makefile.local.WinSDCC similarity index 100% rename from betty_scart/trunk/Makefile.local.WinSDCC rename to betty_scart/Makefile.local.WinSDCC diff --git a/betty_scart/trunk/Makefile.local.linuxSDCC b/betty_scart/Makefile.local.linuxSDCC similarity index 100% rename from betty_scart/trunk/Makefile.local.linuxSDCC rename to betty_scart/Makefile.local.linuxSDCC diff --git a/betty_scart/trunk/ScartProg.exe b/betty_scart/ScartProg.exe similarity index 100% rename from betty_scart/trunk/ScartProg.exe rename to betty_scart/ScartProg.exe diff --git a/betty_scart/trunk/betty_scart.bin b/betty_scart/betty_scart.bin similarity index 100% rename from betty_scart/trunk/betty_scart.bin rename to betty_scart/betty_scart.bin diff --git a/betty_scart/trunk/boop_icp.py b/betty_scart/boop_icp.py similarity index 100% rename from betty_scart/trunk/boop_icp.py rename to betty_scart/boop_icp.py diff --git a/betty_scart/trunk/cc1100.c b/betty_scart/cc1100.c similarity index 100% rename from betty_scart/trunk/cc1100.c rename to betty_scart/cc1100.c diff --git a/betty_scart/trunk/cc1100.h b/betty_scart/cc1100.h similarity index 100% rename from betty_scart/trunk/cc1100.h rename to betty_scart/cc1100.h diff --git a/betty_scart/trunk/cmd.c b/betty_scart/cmd.c similarity index 100% rename from betty_scart/trunk/cmd.c rename to betty_scart/cmd.c diff --git a/betty_scart/trunk/cmd.h b/betty_scart/cmd.h similarity index 100% rename from betty_scart/trunk/cmd.h rename to betty_scart/cmd.h diff --git a/betty_scart/trunk/main.c b/betty_scart/main.c similarity index 100% rename from betty_scart/trunk/main.c rename to betty_scart/main.c diff --git a/betty_scart/trunk/readme.txt b/betty_scart/readme.txt similarity index 100% rename from betty_scart/trunk/readme.txt rename to betty_scart/readme.txt diff --git a/betty_scart/trunk/rf.c b/betty_scart/rf.c similarity index 100% rename from betty_scart/trunk/rf.c rename to betty_scart/rf.c diff --git a/betty_scart/trunk/rf.h b/betty_scart/rf.h similarity index 100% rename from betty_scart/trunk/rf.h rename to betty_scart/rf.h diff --git a/betty_scart/trunk/serial.c b/betty_scart/serial.c similarity index 100% rename from betty_scart/trunk/serial.c rename to betty_scart/serial.c diff --git a/betty_scart/trunk/serial.h b/betty_scart/serial.h similarity index 100% rename from betty_scart/trunk/serial.h rename to betty_scart/serial.h diff --git a/betty_scart/trunk/timer.c b/betty_scart/timer.c similarity index 100% rename from betty_scart/trunk/timer.c rename to betty_scart/timer.c diff --git a/betty_scart/trunk/timer.h b/betty_scart/timer.h similarity index 100% rename from betty_scart/trunk/timer.h rename to betty_scart/timer.h diff --git a/bmp2b/trunk/Makefile b/bmp2b/Makefile similarity index 100% rename from bmp2b/trunk/Makefile rename to bmp2b/Makefile diff --git a/bmp2b/trunk/README1ST b/bmp2b/README1ST similarity index 100% rename from bmp2b/trunk/README1ST rename to bmp2b/README1ST diff --git a/bmp2b/trunk/betty.bmp b/bmp2b/betty.bmp similarity index 100% rename from bmp2b/trunk/betty.bmp rename to bmp2b/betty.bmp diff --git a/bmp2b/trunk/betty2.bmp b/bmp2b/betty2.bmp similarity index 100% rename from bmp2b/trunk/betty2.bmp rename to bmp2b/betty2.bmp diff --git a/bmp2b/trunk/bmp.c b/bmp2b/bmp.c similarity index 100% rename from bmp2b/trunk/bmp.c rename to bmp2b/bmp.c diff --git a/bmp2b/trunk/bmp.h b/bmp2b/bmp.h similarity index 100% rename from bmp2b/trunk/bmp.h rename to bmp2b/bmp.h diff --git a/bmp2b/trunk/bmp2b.c b/bmp2b/bmp2b.c similarity index 100% rename from bmp2b/trunk/bmp2b.c rename to bmp2b/bmp2b.c diff --git a/bmp2b/trunk/bmp2b.tar.bz2 b/bmp2b/bmp2b.tar.bz2 similarity index 100% rename from bmp2b/trunk/bmp2b.tar.bz2 rename to bmp2b/bmp2b.tar.bz2 diff --git a/boop/branches/ram_version/telekatz_soundtest/CHANGELOG b/boop/CHANGELOG similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/CHANGELOG rename to boop/CHANGELOG diff --git a/boop/branches/ram_version/telekatz_soundtest/LICENSE b/boop/LICENSE similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/LICENSE rename to boop/LICENSE diff --git a/boop/trunk/Make.conf b/boop/Make.conf similarity index 100% rename from boop/trunk/Make.conf rename to boop/Make.conf diff --git a/boop/trunk/Makefile b/boop/Makefile similarity index 100% rename from boop/trunk/Makefile rename to boop/Makefile diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.Telekatz b/boop/Makefile.local.Telekatz similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile.local.Telekatz rename to boop/Makefile.local.Telekatz diff --git a/boop/trunk/Makefile.local.WinARM b/boop/Makefile.local.WinARM similarity index 100% rename from boop/trunk/Makefile.local.WinARM rename to boop/Makefile.local.WinARM diff --git a/boop/trunk/Makefile.local.linuxARM b/boop/Makefile.local.linuxARM similarity index 100% rename from boop/trunk/Makefile.local.linuxARM rename to boop/Makefile.local.linuxARM diff --git a/boop/trunk/README b/boop/README similarity index 100% rename from boop/trunk/README rename to boop/README diff --git a/boop/trunk/adc/Make.conf b/boop/adc/Make.conf similarity index 100% rename from boop/trunk/adc/Make.conf rename to boop/adc/Make.conf diff --git a/boop/trunk/adc/adc.c b/boop/adc/adc.c similarity index 100% rename from boop/trunk/adc/adc.c rename to boop/adc/adc.c diff --git a/boop/trunk/adc/adc.h b/boop/adc/adc.h similarity index 100% rename from boop/trunk/adc/adc.h rename to boop/adc/adc.h diff --git a/boop/trunk/adc/adcirq.c b/boop/adc/adcirq.c similarity index 100% rename from boop/trunk/adc/adcirq.c rename to boop/adc/adcirq.c diff --git a/boop/trunk/adc/adcirq.h b/boop/adc/adcirq.h similarity index 100% rename from boop/trunk/adc/adcirq.h rename to boop/adc/adcirq.h diff --git a/boop/trunk/audio/Make.conf b/boop/audio/Make.conf similarity index 100% rename from boop/trunk/audio/Make.conf rename to boop/audio/Make.conf diff --git a/boop/trunk/audio/sid.c b/boop/audio/sid.c similarity index 100% rename from boop/trunk/audio/sid.c rename to boop/audio/sid.c diff --git a/boop/trunk/audio/sid.h b/boop/audio/sid.h similarity index 100% rename from boop/trunk/audio/sid.h rename to boop/audio/sid.h diff --git a/boop/trunk/audio/sidfiles.h b/boop/audio/sidfiles.h similarity index 100% rename from boop/trunk/audio/sidfiles.h rename to boop/audio/sidfiles.h diff --git a/boop/trunk/audio/sound.c b/boop/audio/sound.c similarity index 100% rename from boop/trunk/audio/sound.c rename to boop/audio/sound.c diff --git a/boop/trunk/audio/sound.h b/boop/audio/sound.h similarity index 100% rename from boop/trunk/audio/sound.h rename to boop/audio/sound.h diff --git a/boop/trunk/audio/soundirq.c b/boop/audio/soundirq.c similarity index 100% rename from boop/trunk/audio/soundirq.c rename to boop/audio/soundirq.c diff --git a/boop/trunk/audio/soundirq.h b/boop/audio/soundirq.h similarity index 100% rename from boop/trunk/audio/soundirq.h rename to boop/audio/soundirq.h diff --git a/boop/branches/ram_version/telekatz_soundtest/sounds.h b/boop/audio/sounds.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/sounds.h rename to boop/audio/sounds.h diff --git a/boop/trunk/betty.cfg b/boop/betty.cfg similarity index 100% rename from boop/trunk/betty.cfg rename to boop/betty.cfg diff --git a/boop/trunk/boop_rom.bin b/boop/boop_rom.bin similarity index 100% rename from boop/trunk/boop_rom.bin rename to boop/boop_rom.bin diff --git a/boop/branches/ram_version/readme.txt b/boop/branches/ram_version/readme.txt deleted file mode 100644 index b2d7001..0000000 --- a/boop/branches/ram_version/readme.txt +++ /dev/null @@ -1 +0,0 @@ -In this directory you find mini boop versions running from RAM. See README in each directory. \ No newline at end of file diff --git a/boop/branches/ram_version/telekatz_soundtest/Boop.pnproj b/boop/branches/ram_version/telekatz_soundtest/Boop.pnproj deleted file mode 100644 index 8147a2f..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Boop.pnproj +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/boop/branches/ram_version/telekatz_soundtest/Make.conf b/boop/branches/ram_version/telekatz_soundtest/Make.conf deleted file mode 100644 index a2fb51d..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Make.conf +++ /dev/null @@ -1,4 +0,0 @@ -SUBDIRS := adc audio cc1100 display flash games gui infrared interrupt \ - keyboard rtc serial timer tools - -SRCS := crt.s main.c global.c diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile b/boop/branches/ram_version/telekatz_soundtest/Makefile deleted file mode 100644 index 772c841..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Makefile +++ /dev/null @@ -1,98 +0,0 @@ -############################################################### -##### -##### Makefile for boop - communicate with betty -##### Created at 30.8.2007 02:26 am -##### -##### boop V0.1 by netguy - ck@mamalala.net -##### Makefile V0.1 by alterego - alteregon@gmx.net -##### -############################################################### - -############################################################### -##### -##### PATHS (default installation) -##### -##### You can put your path-config into Makefile.local -##### to override these defaults -##### -############################################################### - - -ARMBASE=/opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH=$(ARMBASE)/include -ARMPATH=$(ARMBASE)/bin -TOOLPREFIX=/arm-none-eabi- -BOOTLOADER_DEVICE=/dev/ttyUSB0 - -############################################################### -##### -##### Compiler, Linker and Tools -##### -############################################################### - -CC=$(ARMPATH)$(TOOLPREFIX)gcc -AS=$(ARMPATH)$(TOOLPREFIX)as -#LD=$(ARMPATH)$(TOOLPREFIX)ld -LD=$(CC) -OC=$(ARMPATH)$(TOOLPREFIX)objcopy -OD=$(ARMPATH)$(TOOLPREFIX)objdump - -CPUFLAGS=-mcpu=arm7tdmi-s -OPTFLAGS=-Os -CFLAGS=$(CPUFLAGS) -c -Wall -mthumb-interwork -msoft-float -I$(INCLUDEPATH) -ggdb -ASFLAGS=$(CPUFLAGS) -D --gstabs -mthumb-interwork -mfpu=softfpa -LDFLAGS = -mthumb-interwork -nostartfiles -Xlinker -Map -Xlinker boop.map -Tlpc2220.ld - -THUMBFLAGS=-mthumb - --include Makefile.local - -############################################################### -##### -##### Do the boop -##### -############################################################### - -all: boop_rom.bin - -boop_rom.bin: boop_ram.elf - $(OC) -O binary boop_ram.elf boop_ram.bin - $(OC) -O ihex boop_ram.elf boop_ram.hex - -boop_ram.elf: crt.o lcd.o fonty.o main.o irq.o keyboard.o soundcore.o - $(LD) -o boop_ram.elf crt.o lcd.o fonty.o main.o irq.o keyboard.o soundcore.o $(LDFLAGS) - -test: boop_ram.elf - $(OD) -h boop_ram.elf - -crt.o: crt.s - $(AS) $(ASFLAGS) -o crt.o crt.s - -irq.o: irq.c irq.h - $(CC) $(CFLAGS) $(OPTFLAGS) -o irq.o irq.c - -keyboard.o: keyboard.c keyboard.h - $(CC) $(CFLAGS) -o keyboard.o keyboard.c - -soundcore.o: soundcore.c soundcore.h - $(CC) $(CFLAGS) -o soundcore.o soundcore.c - -lcd.o: lcd.c lcd.h - $(CC) $(CFLAGS) $(OPTFLAGS) $(THUMBFLAGS) -o lcd.o lcd.c - -fonty.o: fonty.c fonty.h - $(CC) $(CFLAGS) $(OPTFLAGS) $(THUMBFLAGS) -o fonty.o fonty.c - -main.o: main.c - $(CC) $(CFLAGS) $(OPTFLAGS) -o main.o main.c - -ramload: boop_ram.bin - lpctool -d $(BOOTLOADER_DEVICE) -r boop_ram.bin - -resident: boop_ram.bin - lpctool -d $(BOOTLOADER_DEVICE) -i -v -e -a boop_ram.bin - -clean: - $(RM) -v *.o *.elf *.bin *.hex *~ - -### EOF diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local b/boop/branches/ram_version/telekatz_soundtest/Makefile.local deleted file mode 100644 index a7db5e9..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Makefile.local +++ /dev/null @@ -1,24 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -############################################################### - -############################################################### -##### -##### PATHS (default installation) -##### -##### You can put your path-config into Makefile.local -##### to override these defaults -##### -############################################################### - -ARMBASE=/opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH=$(ARMBASE)/include -ARMPATH=$(ARMBASE)/bin -TOOLPREFIX=/arm-none-eabi- - -######################## EOF ################################## diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM b/boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM deleted file mode 100644 index ffc96ae..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM +++ /dev/null @@ -1,20 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -##### Copy this file to Makefile.local for your Windows -##### installation -##### -############################################################### - -ARMBASE = c:/WinARM/ -INCLUDEPATH = $(ARMBASE)/include -LIBPATH = $(ARMBASE)/arm-elf/lib/interwork -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-elf- -LPCTOOL = lpctool.exe - -######################## EOF ################################## diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM b/boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM deleted file mode 100644 index 8e68b7a..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM +++ /dev/null @@ -1,25 +0,0 @@ -############################################################### -##### -##### Makefile.local.linuxARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.linuxARM -##### -############################################################### - -############################################################### -##### -##### PATHS (default installation) -##### -##### You can put your path-config into Makefile.local -##### to override these defaults -##### -############################################################### - -ARMBASE=/opt/armtool/4.1.1 -INCLUDEPATH=$(ARMBASE)/include -LIBPATH=$(ARMBASE)/arm-elf/lib/interwork -ARMPATH=$(ARMBASE)/bin -TOOLPREFIX=/arm-elf- - -######################## EOF ################################## diff --git a/boop/branches/ram_version/telekatz_soundtest/README b/boop/branches/ram_version/telekatz_soundtest/README deleted file mode 100644 index 4b95612..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/README +++ /dev/null @@ -1,25 +0,0 @@ -24.7.2009: - -boop for running in RAM. Created by telekatz for testing sound features. -Run it with -lpctool -r boop_rom.bin -d /dev/ttyUSB2 -See Thread -http://bettyhacks.com/forum/index.php?topic=215.0 - -9.11.2007: - -- serial console: - 115200 baud, 8N1, no handshake - -- serial commands: - 0 - backlight off - 1 - dimmed backlight - 2 - full backlight - . - prints "HELO" - S - prints RCA_Encode status (hex value) - I - prints irIRQ status (hex value) - K - prints keyIRQ status (hex value) - all other inputs are echoed - -- flash boop_rom.bin: - lpctool -i -e -a ./boop_rom.bin -d /dev/ diff --git a/boop/branches/ram_version/telekatz_soundtest/b.h b/boop/branches/ram_version/telekatz_soundtest/b.h deleted file mode 100644 index 4eed325..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/b.h +++ /dev/null @@ -1,24 +0,0 @@ -const unsigned char b_w = 128; -const unsigned char b_h = 160; -const char b_data[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0x80,0xC0,0xE0,0xE0,0xC0,0xE0,0xF0,0xF0,0xE0,0xF0,0xE8,0xF8,0xF0,0xF8,0xE0,0xF8,0x64,0xF8,0x24,0xFC,0x30,0xFC,0x32,0xFC,0x3A,0xFE,0x78,0xFE,0xF8,0xFE,0xF9,0xFE,0xFD,0xFE,0xFD,0xFE,0xFD,0xFE,0xFF,0xFE,0xFF,0xFE,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0x07,0x0F,0x1F,0x2F,0x7F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFF,0x80,0xF8,0x07,0xC1,0x3E,0x07,0xF8,0xFF,0x00,0xFF,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0x7F,0xBF,0x3F,0xFF,0xF0,0x08,0xC0,0xE0,0xC0,0xE0,0xE0,0xC0,0xE0,0xF0,0xE0,0xF0,0x80,0x60,0x80,0xC0,0x80,0xC0,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0xC0,0x80,0x80,0xC0,0x80,0xD0,0xF0,0xD0,0xF0,0xE0,0xE0,0xD0,0x80,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0xE0,0x40,0xE0,0x60,0xE0,0xE0,0xE1,0xE2,0xE3,0xFF,0xE7,0xDF,0xE7,0xDB,0xEF,0xF7,0xE7,0x7B,0xE7,0x3B,0xE7,0xBA,0xE3,0xB4,0xE3,0xB0,0xF1,0xE2,0xF1,0xE2,0xF1,0xF8,0xF9,0xF0,0xF8,0xFD,0xFC,0xF9,0xFC,0x7F,0xBE,0x4D,0xFF,0xCA,0xFF,0xFB,0xFF,0xFD,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xE3,0xFF,0xC3,0xFF,0xC3,0xEF,0x97,0xCF,0xB7,0x9F,0x67,0x9F,0x6F,0x3F,0xDE,0x7E,0x9F,0xFE,0x3C,0xFC,0x7C,0xF8,0xFC,0xF8,0xFC,0xFC,0xFA,0xFE,0xFC,0x3C,0xD8,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x3C,0xD8,0xF8,0xFC,0xFC,0xF8,0xFE,0xC5,0xFF,0xC3,0xFF,0xE1,0xFF,0x71,0x7F,0xF9,0x7F,0xFF,0xFF,0x7F,0xFF,0x7F,0x7F,0xDF,0x5F,0x2F,0x1F,0x2F,0x1F,0x2F,0x1F,0x2F,0x1F,0x3F,0x1F,0x3F,0x3F,0x1F,0x3F,0x7F,0x18,0x67,0x3F,0x5C,0x1F,0x3F,0x1F,0x0F,0x0F,0x1F,0x0F,0x17,0x07,0x0F,0x07,0x0B,0x03,0x0F,0x8B,0x57,0x9F,0xCF,0x9F,0x8F,0x8F,0x17,0x03,0x0D,0x03,0x0D,0x03,0x05,0x03,0x1D,0x33,0x1D,0x7F,0x33,0x7F,0x3F,0x7F,0x3F,0x3F,0x5F,0x1F,0x7F,0x3F,0xDF,0x7F,0xBE,0xFE,0xFD,0xFE,0xF9,0xFF,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xF6,0xE0,0xF0,0xE0,0xC0,0xE0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0xC0,0x80,0x80,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xCF,0xF3,0xFF,0xFF,0xFF,0xFF,0x3F,0xDF,0x1F,0xAC,0x00,0x1F,0x00,0x01,0x00,0x00,0x00,0x80,0xF0,0x08,0x1C,0x22,0x06,0x02,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0x01,0x00,0x83,0x40,0x06,0x83,0x0C,0x86,0x08,0xD4,0x10,0x08,0x10,0x80,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x04,0x0E,0x15,0x1C,0x3F,0x1F,0xBC,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x5F,0x0F,0x17,0x03,0x05,0x01,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x04,0x18,0x3C,0x38,0x30,0x30,0x78,0x70,0x31,0x71,0x60,0x71,0x60,0x71,0x21,0x33,0x61,0x1F,0x23,0x07,0x03,0x0E,0x07,0x0C,0x1E,0x38,0x10,0x60,0xD0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x03,0x07,0x8A,0x0F,0x96,0xF6,0x19,0xE0,0xF0,0xE0,0xF2,0x83,0x70,0x00,0x7D,0xF0,0x08,0x00,0x1F,0x04,0x0A,0x04,0x08,0x0C,0xD2,0x0E,0xDD,0x5C,0xA8,0x7C,0xFA,0xF0,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x1C,0xE1,0x83,0x04,0x02,0x01,0x01,0x12,0x03,0x34,0x07,0x73,0x37,0x4A,0x3F,0xDE,0x7C,0x9B,0x00,0x38,0x00,0x00,0x00,0x00,0x0C,0x32,0x3C,0xFE,0x7C,0xBA,0xFC,0x7F,0xFF,0x7E,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x71,0x70,0xF0,0x70,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x38,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0xE3,0x1F,0xE7,0x3F,0xC7,0x5F,0xA3,0x00,0xE7,0x00,0x80,0x00,0x85,0x02,0x05,0x00,0x06,0x0C,0x00,0x00,0x04,0x04,0x09,0x00,0x1F,0x03,0x04,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x80,0x88,0x48,0xC8,0x98,0x80,0xC0,0x80,0xC0,0x80,0x00,0x80,0x00,0x00,0x80,0x80,0x03,0x81,0x00,0x80,0x07,0x82,0x01,0x00,0x82,0x02,0x85,0x00,0x83,0x01,0x82,0x00,0xC2,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x3F,0x00,0x1F,0x00,0x17,0x00,0x1F,0x00,0x3F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x72,0x23,0xE3,0x62,0xC3,0xE7,0xC3,0xC7,0xC7,0x83,0x87,0xC7,0x87,0x8E,0x8E,0x07,0x0E,0x8E,0x0C,0x9E,0x1C,0x08,0x18,0x30,0xE0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0xFB,0xFC,0xFB,0xFE,0xFD,0xFE,0x7F,0xFE,0x7F,0xFF,0x2E,0xFF,0xFE,0x1F,0xEE,0x0F,0x1F,0x0F,0x07,0x0F,0x06,0x0F,0x1E,0x0F,0x1F,0x0F,0x1F,0x0F,0xDE,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1E,0xFF,0x0E,0xFE,0x8F,0xFE,0xFF,0xFC,0xFE,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x03,0x03,0x01,0x03,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xF8,0x77,0xFF,0xC7,0xFF,0x81,0xFF,0xFC,0xFF,0xF0,0xFB,0xE4,0xFF,0xE1,0xF0,0xCF,0x80,0x60,0x00,0xF0,0xC0,0x38,0xC0,0xB0,0xE0,0xF0,0xF8,0xF4,0xFF,0xF0,0xF9,0xE6,0xFF,0xF0,0xFF,0xFC,0xFF,0xFF,0xFF,0x0F,0xFF,0x00,0xFF,0xE0,0xFF,0xF8,0xFF,0xFF,0x7F,0xBF,0x0F,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xE0,0xC0,0xC0,0x80,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0xF9,0x06,0xFF,0x37,0xFF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xFB,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x3F,0xFF,0x1F,0xFF,0x8F,0xFF,0xEF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x1F,0xAF,0x03,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x25,0xEF,0xF7,0xF9,0xE1,0xF1,0xE0,0xE1,0xE0,0xE1,0xC1,0xC1,0xC1,0xC1,0x83,0xC3,0x83,0x83,0xC7,0x87,0xC3,0x87,0x8E,0x8E,0x9C,0xF8,0xB4,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xB0,0x00,0x98,0x08,0xD6,0x0F,0xDA,0x1F,0xC0,0x1F,0xF8,0x3F,0xDE,0x7F,0xBF,0x7F,0x9F,0x0F,0x35,0x0E,0x15,0x07,0x0A,0x07,0x0F,0x0F,0x97,0x9F,0x33,0x3F,0xF1,0xFF,0x78,0xFF,0xFC,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x0F,0x3F,0x47,0x3F,0x46,0x3C,0x02,0x38,0x04,0x30,0x68,0x60,0x80,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x40,0xC0,0xE1,0xE0,0xE0,0xE0,0xF0,0xF0,0xE1,0xF0,0xE1,0xE1,0xF0,0xE1,0xE1,0xE1,0xC3,0xC3,0xE1,0xC3,0x83,0x83,0x07,0x07,0x03,0x07,0x07,0x07,0x0F,0x07,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x1F,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x04,0x3A,0x08,0xF7,0xCC,0x33,0x28,0x57,0x18,0x27,0x1C,0xE3,0x18,0xE7,0x10,0x29,0x00,0x39,0x10,0x29,0x10,0x29,0x00,0x3D,0x00,0xBF,0x00,0xFC,0x80,0x78,0xE1,0x1A,0x7D,0x82,0x1C,0xEF,0x0E,0xC5,0x07,0xC3,0x03,0xC1,0x01,0x83,0x01,0x80,0x00,0x81,0x00,0x80,0x80,0x00,0x80,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xE0,0x00,0xFF,0xC0,0x3F,0x3F,0xC0,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x11,0x38,0x11,0x70,0x30,0xE0,0x70,0xE0,0xE1,0xE0,0xC1,0xC1,0xE0,0xC1,0xC1,0xC1,0xC1,0xC1,0x83,0xC3,0x83,0xC3,0x87,0xC7,0xCE,0xFC,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0xFE,0xF0,0x0E,0x00,0x00,0x00,0x07,0x00,0xFE,0x00,0x80,0x00,0xC0,0x00,0xE0,0xC0,0x38,0x38,0x46,0x0C,0x13,0x03,0x04,0x01,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x0F,0x0F,0x90,0x0F,0xF7,0x0F,0xF5,0x8F,0x76,0xCF,0xB2,0xFC,0xE3,0xFC,0x33,0x0E,0x31,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0xC0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,0xE1,0xF1,0xE1,0xE1,0xF3,0xE3,0xE1,0xE3,0xC3,0xC3,0xE3,0xC3,0x83,0x83,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x00,0x7E,0x01,0x1E,0x00,0x0F,0x01,0x1E,0x00,0xFE,0x00,0x80,0x00,0x1F,0xF8,0x07,0x18,0x67,0x03,0x1C,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0x70,0xC0,0xB8,0xE0,0xDC,0xF0,0xEE,0xF8,0xF7,0xFC,0x7B,0xFE,0xFD,0xFF,0xFE,0x3F,0x5F,0x0F,0x17,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x11,0x38,0x11,0x70,0x30,0xE0,0x70,0xE0,0xE1,0xE0,0xC1,0xC1,0xE0,0xC1,0xC1,0xC1,0xC1,0xC1,0x83,0xC3,0x83,0xC3,0x87,0xC7,0xCE,0xFC,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x63,0x9C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3C,0xC3,0xFC,0x02,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0xE6,0x04,0x0B,0x02,0x05,0x00,0x03,0x00,0x01,0x03,0x0C,0x1F,0x0F,0x07,0x0B,0x03,0x05,0x1F,0x27,0x3F,0x0F,0x01,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xA0,0xE0,0xE0,0xE0,0xF0,0xF0,0xE0,0xF0,0xE1,0xE1,0xF1,0xE1,0xE3,0xE3,0xC1,0xC3,0xE3,0xC3,0x83,0x83,0x83,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0xF8,0x07,0xF8,0x30,0xCF,0x00,0xF8,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x0D,0x00,0x3C,0x00,0xF0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xC0,0x00,0xC0,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0x40,0x00,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x7E,0x7C,0x1E,0x3C,0x1C,0x1E,0x1C,0x3C,0x3C,0x18,0x3C,0x38,0x38,0x7C,0x79,0x3A,0x7B,0x7F,0x78,0xFD,0xF0,0x78,0xF0,0x70,0xE0,0xF0,0xE0,0xE1,0xE0,0xC1,0xC1,0xE1,0xC1,0xC3,0xC3,0x83,0xC7,0x83,0xCE,0x84,0xF8,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x1E,0x00,0xF0,0x00,0x80,0x00,0x0F,0x00,0xFF,0x00,0xF0,0x01,0x0E,0x1C,0xE3,0x60,0x9E,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x2C,0xD2,0xC0,0x26,0x80,0x41,0x80,0x40,0x00,0xFC,0x00,0x3D,0x01,0x02,0x00,0x1F,0x00,0xF6,0x20,0x12,0x70,0xA0,0xC0,0x20,0x00,0x00,0x00,0x00,0x00,0x30,0x10,0x78,0x70,0xC3,0x00,0x46,0x00,0x9C,0x20,0x59,0x20,0x13,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x03,0x03,0x01,0x03,0x03,0x03,0x03,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x37,0x00,0xFF,0x03,0xFC,0x80,0x78,0x00,0x1F,0x00,0xFF,0x03,0xFC,0x1C,0xE3,0x00,0xF8,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x7F,0x80,0xC1,0xC3,0x84,0x40,0xAF,0xE0,0x1C,0x80,0x40,0x00,0xC0,0x00,0xF0,0x00,0xE0,0x00,0x20,0x00,0x47,0x4C,0xA0,0x4C,0xE2,0x2C,0xD2,0x00,0xA4,0x00,0x60,0x00,0x40,0x00,0x6F,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x05,0x0E,0x31,0xE0,0x1F,0x00,0x07,0x00,0xFF,0x00,0xD7,0xC0,0xBF,0xFC,0xE3,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xBF,0x9F,0x60,0x9F,0x6F,0xCF,0x17,0x80,0x07,0x00,0x00,0x01,0x00,0x03,0x0D,0x1F,0x08,0x0E,0x19,0x0E,0x05,0x0E,0x05,0x0E,0x01,0x0E,0x05,0x0F,0x9C,0x1F,0x6C,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x70,0x28,0x78,0x07,0x78,0xE7,0x40,0xA1,0x3F,0xC0,0x3F,0x5F,0xFF,0x3F,0xF0,0x28,0xF0,0x00,0x78,0xF6,0x7F,0x3E,0x1F,0x3F,0x7F,0x3C,0x3F,0x48,0x03,0x2C,0x00,0x3E,0x00,0x38,0x00,0x20,0x00,0x60,0x00,0x40,0x00,0x47,0x02,0x45,0x00,0x67,0x00,0x61,0x00,0x65,0x00,0x76,0x00,0x66,0x20,0x56,0x04,0x60,0x20,0x1C,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; diff --git a/boop/branches/ram_version/telekatz_soundtest/batt.c b/boop/branches/ram_version/telekatz_soundtest/batt.c deleted file mode 100644 index c91b66d..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/batt.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - batt.c - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "batt.h" -#include "lcd.h" - - -void initADC(void) -{ - - /* Setup A/D: 10-bit AIN0 @ 4,2MHz "Non-Burst"-Mode */ - - //PINSEL1 |= (1UL<<28); // set function P0.29 as AIN2 - - // sample AIN0 only => bit 0 = 1 - // CLKDIV = 14 (59/14 = 4.21 < 4.5 MHz) => Bits 8ff = 14-1 - // BURST = 1 => set Bit 16 - wuff: disabled below - // PDN = 1 => set Bit 21 - ADCR = ( 1<<5 | ((14-1)<<8) /*| (1UL<<16)*/ | (1UL<<21) ); - -} -unsigned int getADCvalue(void) -{ - unsigned int val=0; - ADCR = ( 1<<5 | ((14-1)<<8) /*| (1UL<<16)*/ | (1UL<<21) ); - ADCR |= (1UL<<24); /* Start A/D Conversion (START:0=1) */ - while ((ADDR & (1UL<<31)) == 0); /* Wait for the conversion to complete (DONE=1)*/ - val = ((ADDR >> 6) & 0x03FF); /* Extract the A/D result */ - ADCR &=~(1UL<<21); - return val; -} - -void draw_battery(unsigned char x, unsigned char y) -{ - unsigned int val=0; - unsigned char w=0; - - draw_rect(x,y,14,7,1,3,DRAW_PUT); - draw_vline(x+14,y+2,3,3,DRAW_PUT); - draw_block(x+1,y+1,12,5,2,DRAW_ERASE); - - val=getADCvalue(); - - if (val<0x320) - val=0x320; - if (val>0x380) - val=0x380; - - w= (val-0x320)/8; - - draw_block(x+1,y+1,w,5,2,DRAW_PUT); -} - -void draw_ant(unsigned char x, unsigned char y, unsigned char m) { - - draw_vline(x+3,y,7,3,m); - draw_pixel(x,y,3,m); - draw_pixel(x+1,y+1,3,m); - draw_pixel(x+2,y+2,3,m); - draw_pixel(x+6,y,3,m); - draw_pixel(x+5,y+1,3,m); - draw_pixel(x+4,y+2,3,m); - -} diff --git a/boop/branches/ram_version/telekatz_soundtest/batt.h b/boop/branches/ram_version/telekatz_soundtest/batt.h deleted file mode 100644 index b3646e8..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/batt.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - batt.h - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -#ifndef BATT_H -#define BATT_H - -void initADC(void); -unsigned int getADCvalue(void); -void draw_battery(unsigned char x, unsigned char y); -void draw_ant(unsigned char x, unsigned char y, unsigned char m); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/boop.pnps b/boop/branches/ram_version/telekatz_soundtest/boop.pnps deleted file mode 100644 index 8d53927..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/boop.pnps +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg b/boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg deleted file mode 100644 index e89667c..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/boop/branches/ram_version/telekatz_soundtest/cc1100.c b/boop/branches/ram_version/telekatz_soundtest/cc1100.c deleted file mode 100644 index 51d6f36..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/cc1100.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - batt.c - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "cc1100.h" -#include "irq.h" - -const unsigned char conf[0x2F] = { 0x29 , 0x2E , 0x07 , 0x00 , 0xD3 , 0x91 , 0x3D , 0x0C , - 0x05 , 0x00 , 0x00 , 0x06 , 0x00 , 0x20 , 0x28 , 0xC5 , - 0xF5 , 0x75 , 0x83 , 0x22 , 0xE5 , 0x14 , 0x07 , 0x30 , - 0x18 , 0x16 , 0x6C , 0x03 , 0x40 , 0x91 , 0x87 , 0x6B , - 0xF8 , 0x56 , 0x10 , 0xE9 , 0x2A , 0x00 , 0x1F , 0x41 , - 0x00 , 0x59 , 0x7F , 0x3F , 0x81 , 0x35 , 0x09 }; - -volatile unsigned char cc1100rx; - - -void cc1100_init(void) { - - unsigned long xx = 0x200; - - - PINSEL1 &= ~((1<<3) | (1<<5) | (1<<7)); - PCONP &= 0xfffffbff; - PCONP |= (1<<21); - FIOSET0 = SCK1; - FIOCLR0 = MOSI1; - FIOCLR0 = CS1; - while(xx) { - asm volatile("nop" : :); - xx--; - } - FIOSET0 = CS1; - xx=0x200; - while(xx) { - asm volatile("nop" : :); - xx--; - } - FIOCLR0 = CS1; - FIOCLR0 = SCK1; - while (FIOPIN0 & MISO1); - - PINSEL1 |= 0x000002A8; //((1<<3) | (1<<5) | (1<<7)); - SSPCR0 = 0x0007; - SSPCPSR = 0x02; - SSPCR1 = 0x02; - - SSPDR = SRES; - while (FIOPIN0 & MISO1); - while (SSPSR & (1<<4)); - xx = SSPDR; - - cc1100_write((0x00 | BURST ),conf,0x2f); -} - - -unsigned char cc1100_write(unsigned char addr,unsigned char* data, unsigned char lenght) { - - unsigned short i; - unsigned char status; - unsigned char x; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = (addr | WRITE); - while ((SSPSR & (1<<4))); - status = SSPDR; - for (i=0; i < lenght; i++) { - SSPDR = data[i]; - while ((SSPSR & (1<<4))); - x=SSPDR; - } - FIOSET0 = CS1; - - return(status); - } - -unsigned char cc1100_read(unsigned char addr, unsigned char* data, unsigned char lenght) { - - unsigned short i; - unsigned char status; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = (addr | READ); - while ((SSPSR & (1<<4))); - status = SSPDR; - for (i=0; i < lenght; i++) { - SSPDR = 0x00; - while ((SSPSR & (1<<4))); - data[i]=SSPDR; - } - FIOSET0 = CS1; - - return(status); -} - -unsigned char cc1100_strobe(unsigned char cmd) { - - unsigned short status; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = cmd; - while ((SSPSR & (1<<4))); - status = SSPDR; - FIOSET0 = CS1; - - return(status); -} - -void startcc1100IRQ(void) { - PINSEL1 |= 1; - EXTMODE |= 1; - EXTPOLAR |= 1; - EXTINT |= 1; - - VICVectAddr1 = (unsigned long)&(cc1100IRQ); - VICVectCntl1 = VIC_SLOT_EN | INT_SRC_EINT0; - VICIntEnable = INT_EINT0; -} - -void cc1100_getfifo(unsigned char* b) { - - unsigned char cnt; - - cc1100_read(RX_fifo, &cnt,1); - cc1100_read(RX_fifo, b,cnt+2); - b[cnt]=0; - -} - -void __attribute__ ((interrupt("IRQ"))) cc1100IRQ (void) { - - EXTINT = 0x01; - cc1100rx =1; - - - VICVectAddr = 0; -} - - - diff --git a/boop/branches/ram_version/telekatz_soundtest/cc1100.h b/boop/branches/ram_version/telekatz_soundtest/cc1100.h deleted file mode 100644 index db0771b..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/cc1100.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - batt.h - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -#ifndef cc1100_H -#define cc1100_H - -#define MISO1 (1<<18) -#define MOSI1 (1<<19) -#define SCK1 (1<<17) -#define CS1 (1<<23) - -#define WRITE 0x00 -#define BURST 0x40 -#define READ 0x80 -#define TX_fifo 0x7F -#define RX_fifo 0xff - -#define SRES 0x30 -#define SFSTXON 0x31 -#define SXOFF 0x32 -#define SCLA 0x33 -#define SRX 0x34 -#define STX 0x35 -#define SIDLE 0x36 -#define SWOR 0x38 -#define SPWD 0x39 -#define SFRX 0x3A -#define SFTX 0x3B -#define SWORRST 0x3C -#define SNOP 0x3D - - -void cc1100_init(void); -unsigned char cc1100_write(unsigned char addr, unsigned char* data, unsigned char lenght); -unsigned char cc1100_read(unsigned char addr, unsigned char* data, unsigned char lenght); -unsigned char cc1100_strobe(unsigned char cmd); -void startcc1100IRQ(void); -void __attribute__ ((interrupt("IRQ"))) cc1100IRQ (void); -void cc1100_getfifo(unsigned char* b); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/crt.s b/boop/branches/ram_version/telekatz_soundtest/crt.s deleted file mode 100644 index 820fdb1..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/crt.s +++ /dev/null @@ -1,199 +0,0 @@ -/* - crt.s - startup code - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ -.global main - -.global _etext -.global _data -.global _edata -.global __bss_start -.global __bss_end__ -.global _stack - -/* Stack Sizes */ -.set UND_STACK_SIZE, 0x00000004 /* stack for "undefined instruction" interrupts is 4 bytes */ -.set ABT_STACK_SIZE, 0x00000004 /* stack for "abort" interrupts is 4 bytes */ -.set FIQ_STACK_SIZE, 0x00000004 /* stack for "FIQ" interrupts is 4 bytes */ -.set IRQ_STACK_SIZE, 0X00000100 /* stack for "IRQ" normal interrupts is 4 bytes */ -.set SVC_STACK_SIZE, 0x00000004 /* stack for "SVC" supervisor mode is 4 bytes */ - -/* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */ -.set MODE_USR, 0x10 /* Normal User Mode */ -.set MODE_FIQ, 0x11 /* FIQ Processing Fast Interrupts Mode */ -.set MODE_IRQ, 0x12 /* IRQ Processing Standard Interrupts Mode */ -.set MODE_SVC, 0x13 /* Supervisor Processing Software Interrupts Mode */ -.set MODE_ABT, 0x17 /* Abort Processing memory Faults Mode */ -.set MODE_UND, 0x1B /* Undefined Processing Undefined Instructions Mode */ -.set MODE_SYS, 0x1F /* System Running Priviledged Operating System Tasks Mode */ -.set I_BIT, 0x80 /* when I bit is set, IRQ is disabled (program status registers) */ -.set F_BIT, 0x40 /* when F bit is set, FIQ is disabled (program status registers) */ - - -.text -.arm - -.global Reset_Handler -.global _startup -.global _endstartup - -.global ramvectors -.func ramvectors - -ramvectors: - ldr PC, Ram_Reset_Addr - ldr PC, Ram_Undef_Addr - ldr PC, Ram_SWI_Addr - ldr PC, Ram_PAbt_Addr - ldr PC, Ram_DAbt_Addr - nop /* Reserved Vector (holds Philips ISP checksum) */ - ldr PC, [PC,#-0xFF0] /* Route IRQ to VIC */ - ldr PC, Ram_FIQ_Addr - -Ram_Reset_Addr: .word Reset_Handler /* defined in this module below */ -Ram_Undef_Addr: .word UNDEF_Routine /* defined in main.c */ -Ram_SWI_Addr: .word SWI_Routine /* defined in main.c */ -Ram_PAbt_Addr: .word UNDEF_Routine /* defined in main.c */ -Ram_DAbt_Addr: .word UNDEF_Routine /* defined in main.c */ -Ram_IRQ_Addr: .word IRQ_Routine /* defined in main.c */ -Ram_FIQ_Addr: .word FIQ_Routine /* defined in main.c */ - .word 0 /* rounds vectors to 64 bytes total */ -.endfunc - -.section .text - -.func _startup - -_startup: - -# Exception Vectors - -_vectors: - ldr PC, Reset_Addr - -Reset_Addr: .word Reset_Handler - -# Reset Handler - -Reset_Handler: - - /* Setup a stack for each mode - note that this only sets up a usable stack - for User mode. Also each mode is setup with interrupts initially disabled. */ - - ldr r0, =_stack_end - msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ - mov sp, r0 - sub r0, r0, #UND_STACK_SIZE - msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ - mov sp, r0 - sub r0, r0, #ABT_STACK_SIZE - msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ - mov sp, r0 - sub r0, r0, #FIQ_STACK_SIZE - msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ - mov sp, r0 - sub r0, r0, #IRQ_STACK_SIZE - msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ - mov sp, r0 - sub r0, r0, #SVC_STACK_SIZE - msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ - mov sp, r0 - - /* Setup Pins and Memory */ - ldr r0,=BCFG0 - ldr r1, =0x10000420 - str r1,[r0] - str r1,[r0,#0x08] - - ldr r0, =BCFG1 - ldr r1, =0xc42 - str r1, [r0] - - ldr r0, =PINSEL0 - ldr r1, =0x00008005 - str r1, [r0] - - ldr r0, =PINSEL1 - ldr r1, =0x20000000 - str r1, [r0] - - ldr r0, =PINSEL2 - ldr r1, =0x0de049d4 - str r1, [r0] - - ldr r0, = IO2SET - ldr r1, =0x1FC0000 - str r1, [r0] - str r1, [r0,#0x04] - - ldr r0, = IO0DIR - ldr r1, =0x002018D0 - str r1, [r0] - - - /* Setup PLL */ - ldr r0, =0xe01fc000 - ldr r2, =0xaa - ldr r3, =0x55 - ldr r1, =0x03 - str r1, [r0,#0x80] - ldr r1, =0x0 - str r1, [r0,#0x100] - ldr r1, =0x42 - str r1,[r0,#0x84] - str r2, [r0,#0x8c] - str r3, [r0,#0x8c] - -_endstartup: - /* Copy .fastcode & .data section (Copy from ROM to RAM) */ - ldr R0, =ramvectors /*_etext*/ - ldr r3, entry_mask /* this and the next instruction are an workaround */ - and r0, r0, r3 /* for some ugly bug in winarm to force msb to 0x80 */ - ldr R1, =0x40000000 /*_data*/ - ldr R2, =_startup -1: - cmp r1,r2 - ldmltia r0!,{r3} - stmltia r1!,{r3} - blt 1b - - /* Clear .bss section (Zero init) */ - mov R0, #0 - ldr R1, =_bss_start - ldr R2, =_bss_end -2: - cmp R1, R2 - strlo R0, [R1], #4 - blo 2b - - ldr r0, =MEMMAP - ldr r1, =0x02 /* irq vectors in ram */ - str r1, [r0] - - mov r0,#0 - mov r1,r0 - mov r2,r0 - mov fp,r0 - mov r7,r0 - ldr r10,=main - mov lr,pc - bx r10 - - - -.endfunc -entry_mask: .word 0x4FFFFFFF /* defined in this module below */ -.end diff --git a/boop/branches/ram_version/telekatz_soundtest/externs.h b/boop/branches/ram_version/telekatz_soundtest/externs.h deleted file mode 100644 index a203dfd..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/externs.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef EXTERNS_H -#define EXTERNS_H - -extern unsigned int keys[2]; -extern unsigned char autorepeat; - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/flash.c b/boop/branches/ram_version/telekatz_soundtest/flash.c deleted file mode 100644 index 234c59d..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/flash.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - flash.c - writing/erasing flash - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "flash.h" -#include "serial.h" -#include "lcd.h" - -const unsigned long secaddr[19] = -{ 0x00000, - 0x02000, - 0x03000, - 0x04000, - 0x08000, - 0x10000, - 0x18000, - 0x20000, - 0x28000, - 0x30000, - 0x38000, - 0x40000, - 0x48000, - 0x50000, - 0x58000, - 0x60000, - 0x68000, - 0x70000, - 0x78000 }; - -unsigned long flash_base; - -int eraseSector(unsigned char chip, unsigned char secnum) -{ - - if(chip == 0) - flash_base = FLASH0_BASE; - else - flash_base = FLASH1_BASE; - - serial_puts("Erasing Sector: 0x"); - putHexW(flash_base + (secaddr[secnum]<<1)); - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x80; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base + (secaddr[secnum]<<1))) = 0x30; - - if((*((volatile unsigned short *)(flash_base)) & 0x44) == (*((volatile unsigned short *)(flash_base)) & 0x44)) - { - serial_puts(" -- ERROR\n"); - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - - while ((*((volatile unsigned short *)(flash_base)) & 0x44) != (*((volatile unsigned short *)(flash_base)) & 0x44)) - {} - serial_puts(" +> OK\n"); - return 0; -} - -int eraseFlash(unsigned char chip) -{ - if(chip == 0) - flash_base = FLASH0_BASE; - else - flash_base = FLASH1_BASE; - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x80; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x10; - - if((*((volatile unsigned short *)(flash_base)) & 0x44) == (*((volatile unsigned short *)(flash_base)) & 0x44)) - { - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - - while ((*((volatile unsigned short *)(flash_base)) & 0x44) != (*((volatile unsigned short *)(flash_base)) & 0x44)) - {} - return 0; -} - -int writeWord(unsigned long addr, unsigned short data) -{ - flash_base = addr & 0xFF000000; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xA0; - *((volatile unsigned short *)(addr)) = data; - - if(*((volatile unsigned short *)(addr)) == *((volatile unsigned short *)(addr))) - { - serial_puts("NACK"); - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - while(*((volatile unsigned short *)(addr)) != *((volatile unsigned short *)(addr))) - {} - return 0; -} - -void prepareBulk(unsigned long dst) -{ - flash_base = dst & 0xFF000000; - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x20; -} - -void endBulk(unsigned long dst) -{ - flash_base = dst & 0xFF000000; - - *((volatile unsigned short *)(flash_base)) = 0x90; - *((volatile unsigned short *)(flash_base)) = 0x00; -} - -int writeBulk(unsigned long src, unsigned long dst, unsigned long cnt) -{ - unsigned short check1, check2; - while(cnt--) - { - *((volatile unsigned short *)dst) = 0xA0; - *((volatile unsigned short *)dst) = *((volatile unsigned short *)src); - -retry: - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if((check1 & 0x40) == (check2 & 0x40)) - goto done; - if(!(check2 & 0x20)) - goto retry; - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if((check1 & 0x40) == (check2 & 0x40)) - goto done; - *((volatile unsigned short *)dst) = 0xF0; - return -1; - -done: - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if(check1 != check2) - goto retry; - - src+=2; - dst+=2; - } - - return 0; -} diff --git a/boop/branches/ram_version/telekatz_soundtest/flash.h b/boop/branches/ram_version/telekatz_soundtest/flash.h deleted file mode 100644 index 9b14f65..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/flash.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - flash.h - writing/erasing flash - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef FLASH_H -#define FLASH_H - -#define FLASH0_BASE 0x80000000 -#define FLASH1_BASE 0x82000000 - -void prepareBulk(unsigned long dst); -void endBulk(unsigned long dst); -int eraseSector(unsigned char chip, unsigned char secnum); -int eraseFlash(unsigned char chip); -int writeWord(unsigned long addr, unsigned short data); -int writeBulk(unsigned long src, unsigned long dst, unsigned long cnt); -void lcd_set(unsigned char s); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/fonty.c b/boop/branches/ram_version/telekatz_soundtest/fonty.c deleted file mode 100644 index d2cca53..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/fonty.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - fonty.c - drawing text & font handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lcd.h" -#include "fonty.h" - -#include "fonts/charset.info" -#include "fonts/charset.bits" -/* -#include "fonts/smooth.info" -#include "fonts/smooth.bits" -*/ -static unsigned char tx, ty, coff, dbl; -unsigned char *font_bits, *font_info, font_dlines; -unsigned char *font_bitsUM, *font_bitsUL, *font_bitsMM, *font_bitsML, *font_bitsLM, *font_bitsLL; - -void set_font(unsigned char f) -{ - switch(f) - { -/* - case 2: - coff = 0; - dbl = 16; - font_info = (unsigned char*) smooth_info; - font_bitsUM = (unsigned char*) smooth_mt_bits; - font_bitsUL = (unsigned char*) smooth_lt_bits; - font_bitsLM = (unsigned char*) smooth_mb_bits; - font_bitsLL = (unsigned char*) smooth_lb_bits; - font_dlines = smooth_dlines; - break; -*/ - case 1: - coff = 0; - dbl = 1; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - default: - coff = 0; - dbl = 0; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - } -} - -void _draw_char(unsigned int ch, unsigned char c, unsigned char m) -{ - unsigned char p,q,r,s,t; - unsigned int cpos, cnt; - - cpos = 0; - - for(cnt=0; cnt>1] & 0x0F); - } - else - { - cpos += (font_info[cnt>>1] >> 4); - } - } - - p = font_info[ch>>1]; - if(ch & 0x01) - { - p &= 0x0F; - } - else - { - p >>= 4; - } - - if(dbl == 1) - { - if(ty & 0x07) - { - t = ty & 0x07; - p <<= 1; - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q << t; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q << t; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q >> (8-t); - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q >> (8-t); - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q << t; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q << t; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q >> (8-t); - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q >> (8-t); - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+16,p,m); - - } - else - { - p <<= 1; - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty,p,m); - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - } - tx += p+2; - } - else - { - - if(ty & 0x07) - { - s = ty & 0x07; - - for(cnt=0;cnt> (8-s); - else - drawbuf[0][p-cnt-1] = 0x00; - - if(c & 0x01) - drawbuf[1][p-cnt-1] = font_bits[cpos+cnt] >> (8-s); - else - drawbuf[1][p-cnt-1] = 0x00; - } - do_rcu(tx,ty+8,p,m); - } - else - { - for(cnt=0;cnt>4]+coff, c, m); - _draw_char(hval[v & 0x0F]+coff, c, m); -} - -void draw_hexS(unsigned char x, unsigned char y, const unsigned short v, unsigned char c, unsigned char m) -{ - tx = x; - ty = y; - draw_hexC(x, y, v >> 8, c, m); - draw_hexC(tx, ty, v & 0xFF, c, m); -} - -void draw_hexW(unsigned char x, unsigned char y, const unsigned long v, unsigned char c, unsigned char m) -{ - draw_hexS(x, y, v >> 16, c, m); - draw_hexS(tx, ty, v & 0xFFFF, c, m); -} diff --git a/boop/branches/ram_version/telekatz_soundtest/fonty.h b/boop/branches/ram_version/telekatz_soundtest/fonty.h deleted file mode 100644 index ca274b4..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/fonty.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - fonty.h - drawing text & font handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef FONTY_H -#define FONTY_H - -extern unsigned char drawbuf[2][128]; - -void set_font(unsigned char f); -void draw_char(unsigned char x, unsigned char y, unsigned char ch, unsigned char c, unsigned char m); -void draw_string(unsigned char x, unsigned char y, char *st, unsigned char c, unsigned char m); -void draw_hexC(unsigned char x, unsigned char y, const unsigned char v, unsigned char c, unsigned char m); -void draw_hexS(unsigned char x, unsigned char y, const unsigned short v, unsigned char c, unsigned char m); -void draw_hexW(unsigned char x, unsigned char y, const unsigned long v, unsigned char c, unsigned char m); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/global.c b/boop/branches/ram_version/telekatz_soundtest/global.c deleted file mode 100644 index e9394c5..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/global.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - global.c - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" - -void *memcpy(void *dest,void *src,int count) -{ - char *tmp = (char *) dest, *s = (char *) src; - - while (count--) - *tmp++ = *s++; - - return dest; -} - -int memcmp(const void * cs,const void * ct,int count) -{ - const unsigned char *su1, *su2; - signed char res = 0; - - for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--) - if ((res = *su1 - *su2) != 0) - break; - return res; -} - -unsigned char GetHWversion(void) { - if(((IOPIN2 >> 28) & 3) == 3) - return(((((IOPIN0 >> 5) & 1) << 4) | (((IOPIN2 >> 30) & 1) << 3) | (((IOPIN2 >> 16) & 1) << 2) | 3)); - return(((IOPIN2 >> 27) & 2) + ((IOPIN2 >> 29) & 1) + (((IOPIN1 >> 23) & 7) << 2)); -} diff --git a/boop/branches/ram_version/telekatz_soundtest/global.h b/boop/branches/ram_version/telekatz_soundtest/global.h deleted file mode 100644 index 4215ebe..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/global.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - global.h - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef GLOBAL_H -#define GLOBAL_H - -//Uncomment if you want compile with demo sound -//#define WITH_SOUND - - -typedef unsigned char BOOL; -typedef unsigned char BYTE; -typedef unsigned short WORD; -typedef unsigned long DWORD; - -#define false 0 -#define true 1 - -#define NULL 0 - -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#define min(a,b) (((a) < (b)) ? (a) : (b)) - -#define SPEED_30 0 -#define SPEED_60 1 - -#define SYS_IR 0x20 -#define SYS_KEY 0x40 -#define SYS_TURBO 0x80 - -#ifndef __MAIN_C__ -extern char sysInfo; -#endif /* __MAIN_C__ */ - -#define PCON_IDLE 0x01 -#define PCON_PDOWN 0x02 - -void *memcpy(void *dest,void *src,int count); -int memcmp(const void * cs,const void * ct,int count); -unsigned char GetHWversion(void); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/infrared.c b/boop/branches/ram_version/telekatz_soundtest/infrared.c deleted file mode 100644 index 7fc9312..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/infrared.c +++ /dev/null @@ -1,181 +0,0 @@ -/* - infrared.c - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "irq.h" -#include "lpc2220.h" -#include "keyboard.h" - -#include "externs.h" - -static unsigned char c_cnt; -static unsigned int b_len; - -unsigned char mod_enable; -unsigned char hi_border; -unsigned char lo_border; -unsigned int cycles; - -ir_fn irEncoder; -ir_fn irSend; -ir_fn irRepeat; -ir_fn irStop; - -const struct irModule defModule = { defIR, defSender, defRepeater, defStopper, 20, 0, 3 }; - -unsigned long keyMap[42]; - -void initIR(void) -{ - setIR(defModule); -} - -void startIrIRQ(void) -{ - - T1TCR = 0x02; - T1TC = 0; - T1PC = 0; - T1PR = 0x00; - T1MCR = 0x03; - T1TCR = 0x01; - - VICVectAddr1 = (unsigned long)&(irIRQ); - VICVectCntl1 = VIC_SLOT_EN | INT_SRC_TIMER1; - VICIntEnable = INT_TIMER1; -} - -void setIR(struct irModule module) -{ - T1TCR = 0x02; - irEncoder = module.encoder; - irSend = module.sender; - irRepeat = module.repeater; - irStop = module.stopper; - T1MR0 = module.tval; - hi_border = module.hi_border; - lo_border = module.lo_border; - cycles = 100; - T1TCR = 0x01; -} -/* Stubs for various interrupts (may be replaced later) */ -/* ---------------------------------------------------- */ - -void defIR(void) -{ - return; -} - -void defSender(void) -{ - return; -} - -void defRepeater(void) -{ - return; -} -void defStopper(void) -{ - return; -} - -void __attribute__ ((interrupt("IRQ"))) irIRQ(void) -{ - c_cnt++; - if(c_cnt <= hi_border) - { - FIOSET0 = (mod_enable<<21); - } - else - { - FIOCLR0 = (1<<21); - if(c_cnt >= lo_border) - { - c_cnt = 0; - b_len++; - if(b_len >= cycles) - { - irEncoder(); - b_len = 0; - } - } - } - - T1IR = 1; - VICVectAddr = 0; -} - -void runIR(void) -{ - T1TCR = 0x01; -} - -void stopIR(void) -{ - T1TCR = 0x03; -} - -#define doKey( _X, _Y ) if(_X) return keyMap[_Y]; else - -unsigned long getCode(void) -{ - doKey(KEY_A, 0); - doKey(KEY_B, 1); - doKey(KEY_C, 2); - doKey(KEY_D, 3); - doKey(KEY_Betty, 4); - doKey(KEY_Exit, 5); - doKey(KEY_Up, 6); - doKey(KEY_Down, 7); - doKey(KEY_Left, 8); - doKey(KEY_Right, 9); - doKey(KEY_OK, 10); - doKey(KEY_Vplus, 11); - doKey(KEY_Vminus, 12); - doKey(KEY_Mute, 13); - doKey(KEY_Pplus, 14); - doKey(KEY_Pminus, 15); - doKey(KEY_1, 16); - doKey(KEY_2, 17); - doKey(KEY_3, 18); - doKey(KEY_4, 19); - doKey(KEY_5, 20); - doKey(KEY_6, 21); - doKey(KEY_7, 22); - doKey(KEY_8, 23); - doKey(KEY_9, 24); - doKey(KEY_0, 25); - doKey(KEY_Minus, 26); - doKey(KEY_AV, 27); - doKey(KEY_Menu, 28); - doKey(KEY_PiP, 29); - doKey(KEY_AB, 30); - doKey(KEY_16_9, 31); - doKey(KEY_Info, 32); - doKey(KEY_VTX1, 33); - doKey(KEY_VTX2, 34); - doKey(KEY_VTX3, 35); - doKey(KEY_Blue, 36); - doKey(KEY_Yellow, 37); - doKey(KEY_Green, 38); - doKey(KEY_Red, 39); - doKey(KEY_TV, 40); - doKey(KEY_Power, 41); - return 0xFFFFFFFF; -} diff --git a/boop/branches/ram_version/telekatz_soundtest/infrared.h b/boop/branches/ram_version/telekatz_soundtest/infrared.h deleted file mode 100644 index 241c157..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/infrared.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - infrared.h - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef INFRARED_H -#define INFRARED_H - -typedef void(*ir_fn)(void); - -extern ir_fn irSend; -extern ir_fn irRepeat; -extern ir_fn irStop; - -typedef struct irModule -{ - ir_fn encoder; - ir_fn sender; - ir_fn repeater; - ir_fn stopper; - int tval; - unsigned int hi_border; - unsigned int lo_border; -} irModule; - -extern unsigned char mod_enable; -extern unsigned char hi_border; -extern unsigned char lo_border; -extern unsigned int cycles; -extern unsigned long keyMap[42]; - -void defIR(void); -void defSender(void); -void defRepeater(void); -void defStopper(void); - -void irIRQ (void) __attribute__ ((interrupt("IRQ"))) ; - -void initIR(void); -void startIrIRQ(void); -void setIR(struct irModule module); -void runIR(void); -void stopIR(void); -unsigned long getCode(void); - -#endif - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_itt.c b/boop/branches/ram_version/telekatz_soundtest/ir_itt.c deleted file mode 100644 index 04ebf64..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_itt.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - ir_itt.c - itt protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_itt.h" -#include "itt_codes.h" - -const struct irModule ITT_Module = -{ - ITT_Encode, - ITT_Send, - ITT_Repeat, - ITT_Stop, - 43, // carrier - 2, // carrier-on - 3 // carrier-off -}; - -const struct irModule ITT2_Module = -{ - ITT_Encode, - ITT_Send, - ITT_Repeat, - ITT_Stop, - 46, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -static unsigned short itt_cmd; -static unsigned short itt_actcmd; -static unsigned char itt_state; -static unsigned char itt_bit; -static unsigned char itt_numbits; -static unsigned char itt_wait; -static unsigned char itt_leadtime; -static unsigned char itt_bittime0; -static unsigned char itt_bittime1; - -#define ITT_IDLE 0x00 -#define ITT_LEADIN_A 0x01 -#define ITT_LEADIN_B 0x02 -#define ITT_START_A 0x03 -#define ITT_START_B 0x04 -#define ITT_BIT_A 0x05 -#define ITT_BIT_B 0x06 -#define ITT_LEADOUT_A 0x07 -#define ITT_LEADOUT_B 0x08 -#define ITT_STOP 0x09 -#define ITT_WAIT 0x0A - -#define ITT_LEADTIME 13 -#define ITT_BITTIME_0 4 -#define ITT_BITTIME_1 8 -#define ITT_WAITTIME 130 - -#define ITT2_LEADTIME 15 -#define ITT2_BITTIME_0 4 -#define ITT2_BITTIME_1 9 - -void ITT_Encode (void) -{ - switch(itt_state) - { - case ITT_IDLE: - mod_enable = 0; - break; - - case ITT_LEADIN_A: - case ITT_START_A: - case ITT_BIT_A: - case ITT_LEADOUT_A: - case ITT_STOP: - cycles = 1; - mod_enable = 1; - itt_state++; - break; - - case ITT_LEADIN_B: - case ITT_LEADOUT_B: - mod_enable = 0; - cycles = itt_leadtime; - itt_state++; - break; - - case ITT_START_B: - mod_enable = 0; - cycles = itt_bittime0; - itt_state++; - break; - - case ITT_BIT_B: - mod_enable = 0; - if(itt_cmd & 0x01) - cycles = itt_bittime1; - else - cycles = itt_bittime0; - itt_cmd >>= 1; - itt_bit++; - if(itt_bit == itt_numbits) - itt_state++; - else - itt_state--; - break; - - case ITT_WAIT: - mod_enable = 0; - cycles = 40; - itt_wait++; - if(itt_wait >= ITT_WAITTIME) - { - itt_bit = 0; - itt_wait = 0; - itt_state = ITT_IDLE; - } - break; - } -} - -void ITT_Init(unsigned char map) -{ - itt_state = ITT_IDLE; - itt_cmd = 0x0000; - itt_actcmd = 0x0000; - itt_bit = 0x00; - itt_numbits = 0x0A; - itt_wait = 0; - ITT_LoadMap(map); - cycles = 1; -} - -void ITT_Send(void) -{ - itt_actcmd = getCode(); - ITT_Repeat(); -} - -void ITT_Repeat(void) -{ - if(itt_actcmd != 0x0000) - { - if(itt_state == ITT_IDLE) - { - itt_cmd = itt_actcmd; - itt_state++; - runIR(); - } - } -} - -void ITT_Stop(void) -{ -waitend1: - if(itt_state != ITT_IDLE) - goto waitend1; - - itt_state++; - - if(itt_actcmd != 0x00000000) - { -waitend2: - if(itt_state != ITT_IDLE) - goto waitend2; - } - itt_actcmd = 0x0000; - stopIR(); -} - -void ITT_CopyMap(unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void ITT_LoadMap(unsigned char map) -{ - switch(map) - { - case 0: - itt_leadtime = ITT_LEADTIME; - itt_bittime0 = ITT_BITTIME_0; - itt_bittime1 = ITT_BITTIME_1; - setIR(ITT_Module); - ITT_CopyMap((unsigned short*)ITT_seleco_019); - break; - case 1: - itt_leadtime = ITT_LEADTIME; - itt_bittime0 = ITT_BITTIME_0; - itt_bittime1 = ITT_BITTIME_1; - setIR(ITT_Module); - ITT_CopyMap((unsigned short*)ITT_seleco_049); - break; - case 2: - itt_leadtime = ITT2_LEADTIME; - itt_bittime0 = ITT2_BITTIME_0; - itt_bittime1 = ITT2_BITTIME_1; - setIR(ITT2_Module); - ITT_CopyMap((unsigned short*)ITT_seleco_108); - break; - default: - itt_leadtime = ITT_LEADTIME; - itt_bittime0 = ITT_BITTIME_0; - itt_bittime1 = ITT_BITTIME_1; - setIR(ITT_Module); - ITT_CopyMap((unsigned short*)ITT_seleco_131); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_itt.h b/boop/branches/ram_version/telekatz_soundtest/ir_itt.h deleted file mode 100644 index cf8fa75..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_itt.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_itt.h - itt protocol ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_ITT_H -#define IR_ITT_H - -void ITT_Encode (void) ; - -void ITT_Init(unsigned char map); -void ITT_Send(void); -void ITT_Repeat(void); -void ITT_Stop(void); -void ITT_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c b/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c deleted file mode 100644 index b7820d8..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - ir_nrc17.c - nokia remote control 17 encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_nrc17.h" -#include "nrc17_codes.h" - -#define NRC17_IDLE 0x00 -#define NRC17_PRE_A 0x01 -#define NRC17_PRE_B 0x02 -#define NRC17_START_A 0x03 -#define NRC17_START_B 0x04 -#define NRC17_BIT_A 0x05 -#define NRC17_BIT_B 0x06 -#define NRC17_WAIT 0x07 - -#define NRC17_BONTIME 19 -#define NRC17_BOFFTIME 19 -#define NRC17_PTIME 95 -#define NRC17_GTIME 156 -#define NRC17_WTIME 38 - -#define NRC17_STARTSTOP_DBOX2 0xFEFF -#define NRC17_STARTSTOP_TP720 0x01FF - -const struct irModule NRC17_Module = -{ - NRC17_Encode, - NRC17_Send, - NRC17_Repeat, - NRC17_Stop, - 40, // carrier - 1, // carrier-on - 4 // carrier-off -}; - - -static unsigned short nrc17_cmd; -static unsigned short nrc17_actcmd; -static unsigned short nrc17_startstop; -static unsigned char nrc17_state; -static unsigned char nrc17_bit; -static unsigned char nrc17_numbits; -static unsigned short nrc17_wait; -static unsigned short nrc17_pause; - -void NRC17_Encode(void) -{ - switch(nrc17_state) - { - case NRC17_IDLE: - mod_enable = 0; - break; - - case NRC17_PRE_A: - case NRC17_START_A: - cycles = NRC17_BONTIME; // 0.5 ms - mod_enable = 1; - nrc17_state++; - break; - - case NRC17_PRE_B: - case NRC17_START_B: - if(nrc17_state == NRC17_PRE_B) - cycles = NRC17_PTIME; // 2,5 ms - else - cycles = NRC17_BOFFTIME; // 0.5 ms - mod_enable = 0; - nrc17_state++; - break; - - case NRC17_BIT_A: - if(nrc17_cmd & 0x0001) - mod_enable = 1; - else - mod_enable = 0; - nrc17_cmd >>= 1; - nrc17_state++; - break; - - case NRC17_BIT_B: - if(mod_enable == 1) - mod_enable = 0; - else - mod_enable = 1; - nrc17_bit++; - if(nrc17_bit == nrc17_numbits) - nrc17_state++; - else - nrc17_state--; - break; - - case NRC17_WAIT: - mod_enable = 0; - nrc17_wait++; - cycles = NRC17_BONTIME; // 1 ms - if(nrc17_wait >= nrc17_pause) - { - nrc17_bit = 0; - nrc17_wait = 0; - nrc17_pause = NRC17_PTIME; - nrc17_state = NRC17_IDLE; - } - break; - - } -} - -void NRC17_CopyMap(unsigned char xtra, unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void NRC17_LoadMap(unsigned char map) -{ - switch(map) - { - case 0: // nokia dbox2, 16 bit data - NRC17_CopyMap(0x00, (unsigned short*)NRC17_dbox2); - nrc17_startstop = NRC17_STARTSTOP_DBOX2; - nrc17_numbits = 16; - break; - case 1: // tp720 - tv, 9 bit data - NRC17_CopyMap(0x00, (unsigned short*)NRC17_grundig_tp720); - nrc17_startstop = NRC17_STARTSTOP_TP720; - nrc17_numbits = 9; - break; - case 2 : // tp720 - sat, 9 bit data - NRC17_CopyMap(0x40, (unsigned short*)NRC17_grundig_tp720); - nrc17_startstop = NRC17_STARTSTOP_TP720; - nrc17_numbits = 9; - break; - default : // tp720 - video, 9 bit data - NRC17_CopyMap(0x80, (unsigned short*)NRC17_grundig_tp720); - nrc17_startstop = NRC17_STARTSTOP_TP720; - nrc17_numbits = 9; - break; - } -} - -void NRC17_Init(unsigned char map) -{ - nrc17_state = NRC17_IDLE; - nrc17_cmd = 0x0000; - nrc17_actcmd = 0x0000; - nrc17_bit = 0x00; - nrc17_numbits = 16; - nrc17_wait = 0; - nrc17_pause = NRC17_BONTIME; - NRC17_LoadMap(map); - setIR(NRC17_Module); -} - -void NRC17_Send(void) -{ - nrc17_actcmd = getCode(); - if(nrc17_actcmd != 0x0000) - { - if(nrc17_state == NRC17_IDLE) - { - nrc17_pause = NRC17_WTIME; - nrc17_cmd = nrc17_startstop; - nrc17_state++; - runIR(); - } - } -} - -void NRC17_Repeat(void) -{ - if(nrc17_actcmd != 0x0000) - { - if(nrc17_state == NRC17_IDLE) - { - nrc17_pause = NRC17_GTIME; - nrc17_cmd = nrc17_actcmd; - nrc17_state++; - } - } -} - -void NRC17_Stop(void) -{ - if(nrc17_actcmd != 0x0000) - { -retry: - if(nrc17_state == NRC17_IDLE) - { - nrc17_cmd = nrc17_startstop; - nrc17_state++; - } - else - goto retry; - -waitend: - if(nrc17_state != NRC17_IDLE) - goto waitend; - } - nrc17_actcmd = 0x0000; - stopIR(); -} - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h b/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h deleted file mode 100644 index 96ea18f..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_nrc17.h - nokia remote control 17 encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_NRC17_H -#define IR_NRC17_H - -void NRC17_Encode (void) ; - -void NRC17_LoadMap(unsigned char map); -void NRC17_Init(unsigned char map); -void NRC17_Send(void); -void NRC17_Repeat(void); -void NRC17_Stop(void); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.c b/boop/branches/ram_version/telekatz_soundtest/ir_rc5.c deleted file mode 100644 index 5ffdd36..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - ir_rc5.c - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_rc5.h" -#include "rc5_codes.h" - -const struct irModule RC5_Module = -{ - RC5_Encode, - RC5_Send, - RC5_Repeat, - RC5_Stop, - 42, // carrier - 1, // carrier-on - 4 // carrier-off -}; - -static unsigned short rc5_cmd; -static unsigned short rc5_actcmd; -static unsigned char rc5_state; -static unsigned char rc5_bit; -static unsigned char rc5_wait; -static unsigned char rc5_toggle; - -#define RC5_IDLE 0x00 -#define RC5_START_A 0x01 -#define RC5_START_B 0x02 -#define RC5_BIT_A 0x03 -#define RC5_BIT_B 0x04 -#define RC5_WAIT 0x05 - - -#define RC5_BITTIME 32 -#define RC5_WAITTIME 100 - -void RC5_Encode (void) -{ - switch(rc5_state) - { - case RC5_IDLE: - mod_enable = 0; - break; - - case RC5_START_A: - mod_enable = 0; - rc5_state++; - break; - - case RC5_START_B: - mod_enable = 1; - rc5_state++; - break; - - case RC5_BIT_A: - if(rc5_cmd & 0x1000) - mod_enable = 0; - else - mod_enable = 1; - rc5_cmd <<= 1; - rc5_state++; - break; - - case RC5_BIT_B: - if(mod_enable == 0) - mod_enable = 1; - else - mod_enable = 0; - rc5_bit++; - if(rc5_bit == 13) - rc5_state++; - else - rc5_state--; - break; - - case RC5_WAIT: - mod_enable = 0; - rc5_wait++; - if(rc5_wait >= RC5_WAITTIME) - { - rc5_bit = 0; - rc5_wait = 0; - rc5_state = RC5_IDLE; - } - break; - } -} - -void RC5_Init(unsigned char map) -{ - rc5_state = RC5_IDLE; - rc5_cmd = 0x0000; - rc5_actcmd = 0x0000; - rc5_bit = 0x00; - rc5_wait = 0; - RC5_LoadMap(map); - setIR(RC5_Module); - cycles = RC5_BITTIME; -} - -void RC5_Send(void) -{ - rc5_actcmd = getCode(); - - if(rc5_toggle & 0x01) - rc5_actcmd &= 0xF7FF; - RC5_Repeat(); -} - -void RC5_Repeat(void) -{ - if(rc5_actcmd != 0x0000) - { - if(rc5_state == RC5_IDLE) - { - rc5_cmd = rc5_actcmd; - rc5_state++; - runIR(); - } - } -} - -void RC5_Stop(void) -{ - if(rc5_actcmd != 0x00000000) - { -waitend: - if(rc5_state != RC5_IDLE) - goto waitend; - } - - rc5_toggle++; - rc5_actcmd = 0x0000; - stopIR(); -} - -void RC5_CopyMap(unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void RC5_LoadMap(unsigned char map) -{ - switch(map) - { - default: - RC5_CopyMap((unsigned short*)RC5_tv); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.h b/boop/branches/ram_version/telekatz_soundtest/ir_rc5.h deleted file mode 100644 index f820b7a..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_rc5.h - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RC5_H -#define IR_RC5_H - -void RC5_Encode (void) ; - -void RC5_Init(unsigned char map); -void RC5_Send(void); -void RC5_Repeat(void); -void RC5_Stop(void); -void RC5_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rca.c b/boop/branches/ram_version/telekatz_soundtest/ir_rca.c deleted file mode 100644 index 808cc55..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rca.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - ir_rca.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_rca.h" -#include "rca_codes.h" - -const struct irModule RCA_Module = -{ - RCA_Encode, - RCA_Send, - RCA_Repeat, - RCA_Stop, - 37, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -static unsigned int rca_cmd; -static unsigned int rca_actcmd; -static unsigned char rca_state; -static unsigned char rca_bit; -static unsigned char rca_wait; - -#define RCA_IDLE 0x00 -#define RCA_PRE_A 0x01 -#define RCA_PRE_B 0x02 -#define RCA_BIT_A 0x03 -#define RCA_BIT_B 0x04 -#define RCA_IBIT_A 0x05 -#define RCA_IBIT_B 0x06 -#define RCA_STOP 0x07 -#define RCA_WAIT 0x08 - -#define RCA_NUMBITS 12 -#define RCA_BITTIME 28 -#define RCA_BIT0 2*RCA_BITTIME -#define RCA_BIT1 4*RCA_BITTIME -#define RCA_PRETIME 8*RCA_BITTIME -#define RCA_WAITTIME 30 - -void RCA_Encode (void) -{ - switch(rca_state) - { - case RCA_IDLE: - mod_enable = 0; - break; - - case RCA_PRE_A: - cycles = RCA_PRETIME; - mod_enable = 1; - rca_state++; - break; - - case RCA_PRE_B: - mod_enable = 0; - rca_cmd = rca_actcmd; - rca_state++; - break; - - case RCA_BIT_A: - case RCA_IBIT_A: - case RCA_STOP: - cycles = RCA_BITTIME; - mod_enable = 1; - rca_state++; - break; - - case RCA_BIT_B: - case RCA_IBIT_B: - mod_enable = 0; - if(rca_cmd & 0x0800) - cycles = RCA_BIT1; - else - cycles = RCA_BIT0; - rca_cmd <<= 1; - rca_bit++; - if(rca_bit == RCA_NUMBITS) - { - if(rca_state == RCA_BIT_B) - { - rca_cmd = ~rca_actcmd; - rca_bit = 0; - } - rca_state++; - } - else - rca_state--; - break; - - case RCA_WAIT: - mod_enable = 0; - cycles = RCA_BITTIME; - rca_wait++; - if(rca_wait >= RCA_WAITTIME) - { - rca_bit = 0; - rca_wait = 0; - rca_state = RCA_IDLE; - } - break; - } -} - -void RCA_Init(unsigned char map) -{ - rca_state = RCA_IDLE; - rca_cmd = 0x0000; - rca_actcmd = 0x0000; - rca_bit = 0x00; - rca_wait = 0; - RCA_LoadMap(map); - setIR(RCA_Module); - cycles = RCA_BITTIME; -} - -void RCA_Send(void) -{ - rca_actcmd = getCode(); - RCA_Repeat(); -} - -void RCA_Repeat(void) -{ - if(rca_actcmd != 0x0000) - { - if(rca_state == RCA_IDLE) - { - rca_state++; - runIR(); - } - } -} - -void RCA_Stop(void) -{ - if(rca_actcmd != 0x00000000) - { -waitend: - if(rca_state != RCA_IDLE) - goto waitend; - } - stopIR(); -} - -void RCA_CopyMapPC(unsigned short pre, unsigned char *map) -{ - int x; - for(x=0;x<42;x++) - { - if(map[x] != 0) - keyMap[x] = pre | map[x]; - else - keyMap[x] = 0x0000; - } -} - -void RCA_LoadMap(unsigned char map) -{ - switch(map) - { - default: - RCA_CopyMapPC(0x0500, (unsigned char*)RCA_xbox); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rca.h b/boop/branches/ram_version/telekatz_soundtest/ir_rca.h deleted file mode 100644 index 495b7b8..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rca.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_rca.h - rca protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RCA_H -#define IR_RCA_H - -void RCA_Encode (void) ; - -void RCA_Init(unsigned char map); -void RCA_Send(void); -void RCA_Repeat(void); -void RCA_Stop(void); -void RCA_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c b/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c deleted file mode 100644 index 7f5a505..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - ir_rcmm.c - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_rcmm.h" -#include "rcmm_codes.h" - -const struct irModule RCMM_Module = -{ - RCMM_Encode, - RCMM_Send, - RCMM_Repeat, - RCMM_Stop, - 42, // carrier - 1, // carrier-on - 4 // carrier-off -}; - -static unsigned int rcmm_cmd; -static unsigned int rcmm_actcmd; -static unsigned char rcmm_state; -static unsigned char rcmm_bit; -static unsigned short rcmm_wait; -static unsigned short rcmm_pause; -static unsigned char rcmm_len; -static unsigned char rcmm_trail; - -#define RCMM_IDLE 0x00 -#define RCMM_HEADER_A 0x01 -#define RCMM_HEADER_B 0x02 -#define RCMM_BIT_A 0x03 -#define RCMM_BIT_B 0x04 -#define RCMM_TRAIL 0x05 -#define RCMM_WAIT 0x06 - -#define RCMM_HEADER_ON 15 -#define RCMM_HEADER_OFF 10 -#define RCMM_BIT_ON 6 -#define RCMM_BIT_00 10 -#define RCMM_BIT_01 16 -#define RCMM_BIT_10 22 -#define RCMM_BIT_11 28 -#define RCMM_PTIME 110; - -const unsigned char rcmm_times[4] = { RCMM_BIT_00, RCMM_BIT_01, RCMM_BIT_10, RCMM_BIT_11 }; - -void RCMM_Encode (void) -{ - switch(rcmm_state) - { - case RCMM_IDLE: - mod_enable = 0; - break; - - case RCMM_HEADER_A: - case RCMM_BIT_A: - mod_enable = 1; - if(rcmm_state == RCMM_HEADER_A) - cycles = RCMM_HEADER_ON; - else - cycles = RCMM_BIT_ON; - rcmm_state++; - break; - - case RCMM_HEADER_B: - mod_enable = 0; - cycles = RCMM_HEADER_OFF; - rcmm_state++; - break; - - case RCMM_BIT_B: - mod_enable = 0; - cycles = rcmm_times[(rcmm_cmd & 0xC0000000) >> 30]; - rcmm_cmd <<= 2; - rcmm_bit += 2; - if(rcmm_bit == rcmm_len) - rcmm_state++; - else - rcmm_state--; - break; - - case RCMM_TRAIL: - if(rcmm_trail) - { - mod_enable = 1; - cycles = RCMM_BIT_ON; - } - else - cycles = 1; - rcmm_state++; - break; - - case RCMM_WAIT: - mod_enable = 0; - rcmm_wait++; - cycles = RCMM_BIT_ON; // 1 ms - if(rcmm_wait >= rcmm_pause) - { - rcmm_bit = 0; - rcmm_wait = 0; - rcmm_pause = RCMM_PTIME; - rcmm_state = RCMM_IDLE; - } - break; - - - } -} - -void RCMM_Init(unsigned char map) -{ - rcmm_cmd = 0x00000000; - rcmm_actcmd = 0x00000000; - rcmm_state = RCMM_IDLE; - rcmm_bit = 0; - rcmm_wait = 0; - rcmm_pause = RCMM_PTIME; - RCMM_LoadMap(map); - setIR(RCMM_Module); -} - -void RCMM_Send(void) -{ - rcmm_actcmd = getCode(); - RCMM_Repeat(); -} - -void RCMM_Repeat(void) -{ - if(rcmm_actcmd != 0x00000000) - { - if(rcmm_state == RCMM_IDLE) - { - rcmm_cmd = rcmm_actcmd; - rcmm_state++; - runIR(); - } - } -} - -void RCMM_Stop(void) -{ - if(rcmm_actcmd != 0x00000000) - { -waitend: - if(rcmm_state != RCMM_IDLE) - goto waitend; - } - rcmm_actcmd = 0x0000; - stopIR(); -} - -void RCMM_CopyMapPrefix(unsigned int prefix, unsigned char *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = prefix + map[x]; - } - keyMap[0] = 0x00000000; -} - -void RCMM_LoadMap(unsigned char map) -{ - switch(map) - { - default: - RCMM_CopyMapPrefix(0x0D500800, (unsigned char*)RCMM_galaxis); - rcmm_len = 32; - rcmm_trail = 1; - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h b/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h deleted file mode 100644 index 35fce71..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_rcmm.h - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RCMM_H -#define IR_RCMM_H - -void RCMM_Encode (void) ; - -void RCMM_Init(unsigned char map); -void RCMM_Send(void); -void RCMM_Repeat(void); -void RCMM_Stop(void); -void RCMM_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.c b/boop/branches/ram_version/telekatz_soundtest/ir_rec80.c deleted file mode 100644 index daf2bb2..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - ir_rec80.c - nec rec80 and derivates ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_rec80.h" -#include "rec80_codes.h" - -const struct irModule REC80_Module = -{ - REC80_Encode, - REC80_Send, - REC80_Repeat, - REC80_Stop, - 47, // carrier - 1, // carrier-on - 4, // carrier-off -}; - -static unsigned int rec80_cmd; -static unsigned int rec80_actcmd; -static unsigned int rec80_preamble; -static unsigned char rec80_state; -static unsigned char rec80_bit; -static unsigned char rec80_numbits; -static unsigned short rec80_wait; -static unsigned short rec80_pause; - -#define REC80_IDLE 0x00 -#define REC80_HEAD_A 0x01 -#define REC80_HEAD_B 0x02 -#define REC80_PRE_A 0x03 -#define REC80_PRE_B 0x04 -#define REC80_BIT_A 0x05 -#define REC80_BIT_B 0x06 -#define REC80_TRAIL 0x07 -#define REC80_WAIT 0x08 - -#define REC80_HEADER_1 128 -#define REC80_HEADER_0 51 -#define REC80_BONTIME 13 -#define REC80_BITTIME_0 13 -#define REC80_BITTIME_1 38 -#define REC80_WAITTIME 187 - -void REC80_Encode (void) -{ - switch(rec80_state) - { - case REC80_IDLE: - mod_enable = 0; - break; - - case REC80_HEAD_B: - mod_enable = 0; - cycles = REC80_HEADER_0; - rec80_cmd = rec80_preamble; - rec80_bit = 0; - rec80_state++; - break; - - case REC80_HEAD_A: - case REC80_PRE_A: - case REC80_BIT_A: - case REC80_TRAIL: - mod_enable = 1; - if(rec80_state == REC80_HEAD_A) - cycles = REC80_HEADER_1; - else - cycles = REC80_BONTIME; - rec80_state++; - break; - - case REC80_PRE_B: - case REC80_BIT_B: - mod_enable = 0; - if(rec80_cmd & 0x01) - cycles = REC80_BITTIME_1; - else - cycles = REC80_BITTIME_0; - rec80_cmd >>= 1; - rec80_bit++; - if(rec80_bit == rec80_numbits) - { - if(rec80_state == REC80_PRE_B) - { - rec80_bit = 0; - rec80_cmd = rec80_actcmd; - } - rec80_state++; - } - else - rec80_state--; - break; - - case REC80_WAIT: - mod_enable = 0; - rec80_wait++; - cycles = REC80_BONTIME; // 1 ms - if(rec80_wait >= rec80_pause) - { - rec80_bit = 0; - rec80_wait = 0; - rec80_state = REC80_IDLE; - } - break; - } -} - -void REC80_Init(unsigned char map) -{ - rec80_cmd = 0x00000000; - rec80_actcmd = 0x00000000; - rec80_bit = 0; - rec80_numbits = 24; - rec80_wait = 0; - rec80_pause = REC80_WAITTIME; - rec80_state = REC80_IDLE; - REC80_LoadMap(map); - setIR(REC80_Module); -} - -void REC80_Send(void) -{ - rec80_actcmd = getCode(); - - if(rec80_actcmd & 0x80000000) - rec80_numbits = 24; - else - rec80_numbits = 0; - - rec80_actcmd &= 0x0FFFFFFF; - - REC80_Repeat(); -} - -void REC80_Repeat(void) -{ - if(rec80_actcmd != 0x00000000) - { - if(rec80_state == REC80_IDLE) - { - rec80_state++; - runIR(); - } - } -} - -void REC80_Stop(void) -{ - if(rec80_actcmd != 0x00000000) - { -waitend: - if(rec80_state != REC80_IDLE) - goto waitend; - } - rec80_actcmd = 0x00000000; - stopIR(); -} - -void REC80_CopyMap(unsigned int *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void REC80_LoadMap(unsigned char map) -{ - switch(map) - { - default: - rec80_preamble = 0x00A02002; - REC80_CopyMap((unsigned int*)REC80_rak_sc957wk); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.h b/boop/branches/ram_version/telekatz_soundtest/ir_rec80.h deleted file mode 100644 index ae1d73c..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_rec80.h - nec rec80 and derivates ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_REC80_H -#define IR_REC80_H - -void REC80_Encode (void) ; - -void REC80_Init(unsigned char map); -void REC80_Send(void); -void REC80_Repeat(void); -void REC80_Stop(void); -void REC80_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.c b/boop/branches/ram_version/telekatz_soundtest/ir_recs80.c deleted file mode 100644 index 6bf980b..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - ir_recs80.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_recs80.h" -#include "recs80_codes.h" - -const struct irModule RECS80_Module = -{ - RECS80_Encode, - RECS80_Send, - RECS80_Repeat, - RECS80_Stop, - 40, // carrier - 1, // carrier-on - 4 // carrier-off -}; - -static unsigned int recs80_cmd; -static unsigned int recs80_actcmd; -static unsigned char recs80_state; -static unsigned char recs80_bit; -static unsigned char recs80_wait; -static unsigned char recs80_toggle; - -#define RECS80_IDLE 0x00 -#define RECS80_BIT_A 0x01 -#define RECS80_BIT_B 0x02 -#define RECS80_STOP 0x03 -#define RECS80_WAIT 0x04 - -#define RECS80_NUMBITS 11 -#define RECS80_BITTIME 7 -#define RECS80_BIT0 27*RECS80_BITTIME -#define RECS80_BIT1 41*RECS80_BITTIME -#define RECS80_WAITTIME 10 - -void RECS80_Encode (void) -{ - switch(recs80_state) - { - case RECS80_IDLE: - mod_enable = 0; - break; - - case RECS80_BIT_A: - case RECS80_STOP: - cycles = RECS80_BITTIME; - mod_enable = 1; - recs80_state++; - break; - - case RECS80_BIT_B: - mod_enable = 0; - if(recs80_cmd & 0x0400) - cycles = RECS80_BIT1; - else - cycles = RECS80_BIT0; - recs80_cmd <<= 1; - recs80_bit++; - if(recs80_bit == RECS80_NUMBITS) - recs80_state++; - else - recs80_state--; - break; - - case RECS80_WAIT: - mod_enable = 0; - cycles = RECS80_BIT0; - recs80_wait++; - if(recs80_wait >= RECS80_WAITTIME) - { - recs80_bit = 0; - recs80_wait = 0; - recs80_state = RECS80_IDLE; - } - break; - } -} - -void RECS80_Init(unsigned char map) -{ - recs80_state = RECS80_IDLE; - recs80_cmd = 0x0000; - recs80_actcmd = 0x0000; - recs80_bit = 0x00; - recs80_wait = 0; - recs80_toggle = 1; - RECS80_LoadMap(map); - setIR(RECS80_Module); - cycles = RECS80_BITTIME; -} - -void RECS80_Send(void) -{ - recs80_actcmd = getCode(); - - if(recs80_toggle & 0x01) - recs80_actcmd |= 0x0200; - RECS80_Repeat(); -} - -void RECS80_Repeat(void) -{ - if(recs80_actcmd != 0x0000) - { - if(recs80_state == RECS80_IDLE) - { - recs80_cmd = recs80_actcmd; - recs80_state++; - runIR(); - } - } -} - -void RECS80_Stop(void) -{ - if(recs80_actcmd != 0x00000000) - { -waitend: - if(recs80_state != RECS80_IDLE) - goto waitend; - } - recs80_toggle++; - stopIR(); -} - -void RECS80_CopyMap(unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void RECS80_LoadMap(unsigned char map) -{ - switch(map) - { - case 0: - RECS80_CopyMap((unsigned short*)RECS80_seleco_020); - break; - default: - RECS80_CopyMap((unsigned short*)RECS80_seleco_157); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.h b/boop/branches/ram_version/telekatz_soundtest/ir_recs80.h deleted file mode 100644 index d094f15..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_recs80.h - phillips recs80 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RECS80_H -#define IR_RECS80_H - -void RECS80_Encode (void) ; - -void RECS80_Init(unsigned char map); -void RECS80_Send(void); -void RECS80_Repeat(void); -void RECS80_Stop(void); -void RECS80_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.c b/boop/branches/ram_version/telekatz_soundtest/ir_sirc.c deleted file mode 100644 index 29e6b01..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - ir_sirc.c - sony sirc protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_sirc.h" -#include "sirc_codes.h" - -static unsigned int sirc_cmd; -static unsigned int sirc_actcmd; -static unsigned char sirc_state; -static unsigned char sirc_bit; -static unsigned char sirc_numbits; -static unsigned short sirc_wait; -static unsigned short sirc_pause; - -#define SIRC_IDLE 0x00 -#define SIRC_START_A 0x01 -#define SIRC_START_B 0x02 -#define SIRC_BIT_A 0x03 -#define SIRC_BIT_B 0x04 -#define SIRC_WAIT 0x05 - -#define SIRC_STARTLEN 96 -#define SIRC_BITLEN_0 24 -#define SIRC_BITLEN_1 48 -#define SIRC_BITOFF 24 -#define SIRC_GTIME 45 - -const struct irModule SIRC_Module = -{ - SIRC_Encode, - SIRC_Send, - SIRC_Repeat, - SIRC_Stop, - 38, // carrier - 1, // carrier-on - 4, // carrier-off -}; - -void SIRC_Encode (void) -{ - switch(sirc_state) - { - case SIRC_IDLE: - mod_enable = 0; - break; - - case SIRC_START_A: - mod_enable = 1; - cycles = SIRC_STARTLEN; - sirc_state++; - break; - - case SIRC_START_B: - mod_enable = 0; - cycles = SIRC_BITOFF; - sirc_state++; - break; - - case SIRC_BIT_A: - mod_enable = 1; - if(sirc_cmd & 0x01) - cycles = SIRC_BITLEN_1; - else - cycles = SIRC_BITLEN_0; - sirc_cmd >>= 1; - sirc_state++; - break; - - case SIRC_BIT_B: - mod_enable = 0; - cycles = SIRC_BITOFF; - sirc_bit++; - if(sirc_bit == sirc_numbits) - sirc_state++; - else - sirc_state--; - break; - - case SIRC_WAIT: - mod_enable = 0; - sirc_wait++; - cycles = SIRC_BITOFF; // 1 ms - if(sirc_wait >= sirc_pause) - { - sirc_bit = 0; - sirc_wait = 0; - sirc_state = SIRC_IDLE; - } - break; - - } -} - -void SIRC_Init(unsigned char map) -{ - sirc_cmd = 0x00000000; - sirc_actcmd = 0x00000000; - sirc_bit = 0; - sirc_numbits = 12; - sirc_wait = 0; - sirc_pause = SIRC_GTIME; - sirc_state = SIRC_IDLE; - SIRC_LoadMap(map); - setIR(SIRC_Module); -} - -void SIRC_Send(void) -{ - sirc_actcmd = getCode(); - - if(sirc_actcmd & 0x800000) - sirc_numbits = 20; - else if(sirc_actcmd & 0x8000) - sirc_numbits = 15; - else - sirc_numbits = 12; - SIRC_Repeat(); -} - -void SIRC_Repeat(void) -{ - if(sirc_actcmd != 0x00000000) - { - if(sirc_state == SIRC_IDLE) - { - sirc_cmd = sirc_actcmd; - sirc_state++; - runIR(); - } - } -} - -void SIRC_Stop(void) -{ - if(sirc_actcmd != 0x00000000) - { -waitend: - if(sirc_state != SIRC_IDLE) - goto waitend; - } - sirc_actcmd = 0x0000; - stopIR(); -} - -void SIRC_CopyMapS(unsigned int pre, unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void SIRC_CopyMapI(unsigned int pre, unsigned int *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void SIRC_LoadMap(unsigned char map) -{ - switch(map) - { - case 0: - SIRC_CopyMapS(0x8000, (unsigned short*)SIRC_rm_pp411_av2); - break; - default: - SIRC_CopyMapS(0, (unsigned short*)SIRC_tv); - break; - } -} - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.h b/boop/branches/ram_version/telekatz_soundtest/ir_sirc.h deleted file mode 100644 index 35c28b1..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - ir_sirc.h - sony sirc protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_SIRC_H -#define IR_SIRC_H - -void SIRC_Encode (void) ; - -void SIRC_Init(unsigned char map); -void SIRC_Send(void); -void SIRC_Repeat(void); -void SIRC_Stop(void); -void SIRC_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c b/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c deleted file mode 100644 index bb24046..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - ir_spaceenc.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "ir_spaceenc.h" -#include "spaceenc_codes.h" - -const struct irModule SPACEENC_Module = -{ - SPACEENC_Encode, - SPACEENC_Send, - SPACEENC_Repeat, - SPACEENC_Stop, - 37, // carrier - 1, // carrier-on - 4 // carrier-off -}; - -const struct irModule SPACEENC2_Module = -{ - SPACEENC_Encode, - SPACEENC2_Send, - SPACEENC2_Repeat, - SPACEENC2_Stop, - 37, // carrier - 1, // carrier-on - 4 // carrier-off -}; - -static unsigned int spaceenc_cmd; -static unsigned int spaceenc_pre; -static unsigned int spaceenc_actcmd; -static unsigned int spaceenc_bit; -static unsigned char spaceenc_state; -static unsigned char spaceenc_numbits; -static unsigned char spaceenc_prebits; -static unsigned char spaceenc_wait; -static unsigned char spaceenc_waittime; - -static unsigned char spaceenc_bittime; -static unsigned char spaceenc_bit0; -static unsigned char spaceenc_bit1; - -static unsigned int *spaceenc_codes; -static unsigned char *spaceenc_precodes; - -#define SPACEENC_IDLE 0x00 -#define SPACEENC_PRE_A 0x01 -#define SPACEENC_PRE_B 0x02 -#define SPACEENC_BIT_A 0x03 -#define SPACEENC_BIT_B 0x04 -#define SPACEENC_STOP 0x05 -#define SPACEENC_WAIT 0x06 - -#define SPACEENC_NUMBITS 6 -#define SPACEENC_BITTIME 20 -#define SPACEENC_BIT0 65 -#define SPACEENC_BIT1 150 -#define SPACEENC_WAITTIME 59 - -#define SPACEENC2_BITTIME 14 -#define SPACEENC2_BIT0 7 -#define SPACEENC2_BIT1 28 -#define SPACEENC2_WAITTIME 170 - -void SPACEENC_Encode (void) -{ - switch(spaceenc_state) - { - case SPACEENC_IDLE: - mod_enable = 0; - break; - - case SPACEENC_PRE_A: - case SPACEENC_BIT_A: - cycles = spaceenc_bittime; - mod_enable = 1; - spaceenc_state++; - break; - - case SPACEENC_PRE_B: - mod_enable = 0; - if(spaceenc_cmd & 0x01) - cycles = spaceenc_bit1; - else - cycles = spaceenc_bit0; - spaceenc_cmd >>= 1; - spaceenc_bit++; - if(spaceenc_bit == spaceenc_prebits) - { - spaceenc_state = SPACEENC_BIT_A; - spaceenc_bit = 0; - spaceenc_cmd = spaceenc_codes[spaceenc_actcmd]; - } - else - { - spaceenc_state--; - } - break; - - case SPACEENC_BIT_B: - mod_enable = 0; - if(spaceenc_cmd & 0x01) - cycles = spaceenc_bit1; - else - cycles = spaceenc_bit0; - spaceenc_cmd >>= 1; - spaceenc_bit++; - if(spaceenc_bit == spaceenc_numbits) - spaceenc_state++; - else - spaceenc_state--; - break; - - case SPACEENC_STOP: - cycles = spaceenc_bittime; - mod_enable = 1; - spaceenc_state++; - break; - - case SPACEENC_WAIT: - mod_enable = 0; - spaceenc_wait++; - if(spaceenc_wait >= spaceenc_waittime) - { - spaceenc_bit = 0; - spaceenc_wait = 0; - spaceenc_state = SPACEENC_IDLE; - } - break; - } -} - -void SPACEENC_Init(unsigned char map) -{ - spaceenc_state = SPACEENC_IDLE; - spaceenc_cmd = 0x0000; - spaceenc_actcmd = 0x0000; - spaceenc_wait = 0; - spaceenc_bit = 0; - SPACEENC_LoadMap(map); - cycles = SPACEENC_BITTIME; -} - -void SPACEENC_Send(void) -{ - spaceenc_actcmd = getCode(); - SPACEENC_Repeat(); - runIR(); -} - -void SPACEENC_Repeat(void) -{ - if(spaceenc_actcmd != 0x00000000) - { - if(spaceenc_state == SPACEENC_IDLE) - { - spaceenc_cmd = spaceenc_actcmd; - spaceenc_state = SPACEENC_BIT_A; - } - } -} - -void SPACEENC_Stop(void) -{ -waitend1: - while(spaceenc_state != SPACEENC_IDLE) - goto waitend1; - - if(spaceenc_actcmd != 0x00000000) - { - SPACEENC_Repeat(); - -waitend2: - if(spaceenc_state != SPACEENC_IDLE) - goto waitend2; - } - spaceenc_actcmd = 0x00000000; - stopIR(); -} - -void SPACEENC2_Send(void) -{ - spaceenc_actcmd = getCode(); - SPACEENC2_Repeat(); -} - -void SPACEENC2_Repeat(void) -{ - if(spaceenc_actcmd != 0x00000000) - { - if(spaceenc_state == SPACEENC_IDLE) - { - spaceenc_cmd = spaceenc_precodes[spaceenc_actcmd]; - spaceenc_state = SPACEENC_PRE_A; - runIR(); - } - } -} - -void SPACEENC2_Stop(void) -{ - if(spaceenc_actcmd != 0x00000000) - { -waitend2: - if(spaceenc_state != SPACEENC_IDLE) - goto waitend2; - } - spaceenc_actcmd = 0x00000000; - stopIR(); -} - -void SPACEENC_CopyMapC(unsigned char *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void SPACEENC_CopyMapS(unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void SPACEENC_CopyMapI(unsigned int *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void SPACEENC_LoadMap(unsigned char map) -{ - switch(map) - { - case 0: - SPACEENC_CopyMapC((unsigned char*)SPACEENC_seleco_027); - spaceenc_numbits = SPACEENC_NUMBITS; - spaceenc_prebits = 0; - spaceenc_pre = 0x00; - spaceenc_bittime = SPACEENC_BITTIME; - spaceenc_bit0 = SPACEENC_BIT0; - spaceenc_bit1 = SPACEENC_BIT1; - spaceenc_waittime = SPACEENC_WAITTIME; - setIR(SPACEENC_Module); - break; - default: - SPACEENC_CopyMapC((unsigned char*)SPACEENC_schneider_dtv3); - spaceenc_numbits = 32; - spaceenc_prebits = 8; - spaceenc_bittime = SPACEENC2_BITTIME; - spaceenc_bit0 = SPACEENC2_BIT0; - spaceenc_bit1 = SPACEENC2_BIT1; - spaceenc_waittime = SPACEENC2_WAITTIME; - spaceenc_codes = (unsigned int*) dtv3_codes; - spaceenc_precodes = (unsigned char*) dtv3_pre; - setIR(SPACEENC2_Module); - break; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h b/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h deleted file mode 100644 index a1238db..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - ir_spaceenc.h - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_SPACEENC_H -#define IR_SPACEENC_H - -void SPACEENC_Encode (void) ; - -void SPACEENC_Init(unsigned char map); -void SPACEENC_Send(void); -void SPACEENC_Repeat(void); -void SPACEENC_Stop(void); -void SPACEENC2_Send(void); -void SPACEENC2_Repeat(void); -void SPACEENC2_Stop(void); -void SPACEENC_LoadMap(unsigned char map); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/irq.c b/boop/branches/ram_version/telekatz_soundtest/irq.c deleted file mode 100644 index 9992c8d..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/irq.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - irq.c - irq core functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "irq.h" - -#define IRQ_MASK 0x00000080 - -static inline unsigned asm_get_cpsr(void) -{ - unsigned long retval; - asm volatile (" mrs %0, cpsr" : "=r" (retval) : /* no inputs */ ); - return retval; - -} - -static inline void asm_set_cpsr(unsigned val) -{ - asm volatile (" msr cpsr, %0" : /* no outputs */ : "r" (val) ); -} - -unsigned enableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr(_cpsr & ~IRQ_MASK); - return _cpsr; -} - -unsigned disableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr(_cpsr | IRQ_MASK); - return _cpsr; -} - -unsigned restoreIRQ(unsigned oldCPSR) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK)); - return _cpsr; -} - -void IRQ_Routine (void) { - -} - -void FIQ_Routine (void) { - while (1) ; -} - - -void SWI_Routine (void) { - while (1) ; -} - - -void UNDEF_Routine (void) { - while (1) ; -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/irq.h b/boop/branches/ram_version/telekatz_soundtest/irq.h deleted file mode 100644 index 798224b..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/irq.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - irq.h - irq core functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IRQ_H -#define IRQ_H - -#define INT_WDT 0x00000001 -#define INT_CORE0 0x00000004 -#define INT_CORE1 0x00000008 -#define INT_TIMER0 0x00000010 -#define INT_TIMER1 0x00000020 -#define INT_UART0 0x00000040 -#define INT_UART1 0x00000080 -#define INT_PWM 0x00000100 -#define INT_I2C 0x00000200 -#define INT_SPI0 0x00000400 -#define INT_SPI1 0x00000800 -#define INT_PLL 0x00001000 -#define INT_RTC 0x00002000 -#define INT_EINT0 0x00004000 -#define INT_EINT1 0x00008000 -#define INT_EINT2 0x00010000 -#define INT_EINTT2 0x00020000 -#define INT_ADC 0x00040000 - -#define INT_SRC_WDT 0 -#define INT_SRC_CORE0 2 -#define INT_SRC_CORE1 3 -#define INT_SRC_TIMER0 4 -#define INT_SRC_TIMER1 5 -#define INT_SRC_UART0 6 -#define INT_SRC_UART1 7 -#define INT_SRC_PWM 8 -#define INT_SRC_I2C 9 -#define INT_SRC_SPI0 10 -#define INT_SRC_SPI1 11 -#define INT_SRC_PLL 12 -#define INT_SRC_RTC 13 -#define INT_SRC_EINT0 14 -#define INT_SRC_EINT1 15 -#define INT_SRC_EINT2 16 -#define INT_SRC_EINT3 17 -#define INT_SRC_ADC 18 - -#define VIC_SLOT_EN 0x00000020 - -void IRQ_Routine (void) __attribute__ ((interrupt("IRQ"))); -void FIQ_Routine (void) __attribute__ ((interrupt("FIQ"))); -void SWI_Routine (void) __attribute__ ((interrupt("SWI"))); -void UNDEF_Routine (void) __attribute__ ((interrupt("UNDEF"))); - - -unsigned enableIRQ(void); -unsigned disableIRQ(void); -unsigned restoreIRQ(unsigned oldCPSR); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/itt_codes.h b/boop/branches/ram_version/telekatz_soundtest/itt_codes.h deleted file mode 100644 index da46d08..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/itt_codes.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef ITT_CODES_H -#define ITT_CODES_H - -#include "ir-codes/itt/seleco_019" -#include "ir-codes/itt/seleco_049" -#include "ir-codes/itt/seleco_108" -#include "ir-codes/itt/seleco_131" - -#endif - diff --git a/boop/branches/ram_version/telekatz_soundtest/keyboard.c b/boop/branches/ram_version/telekatz_soundtest/keyboard.c deleted file mode 100644 index 546a168..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/keyboard.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - keyboard.c - button handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "keyboard.h" -#include "lpc2220.h" -#include "irq.h" - -unsigned int keys[2]; -unsigned char autorepeat; -unsigned char batcnt; - -static unsigned int xkeys[2]; -static unsigned int keytest; -static unsigned char half; -static int x; - -void initKeys(void) -{ - keys[0] = 0; - keys[1] = 0; -} - -void startKeyIRQ(void) -{ - autorepeat = 0; - - T0TCR = 0x02; - T0TC = 187490; - T0PR = 0x03; // 7.500.000 Hz / 4 = 1.875.000 Hz - T0MR0 = 187500; // 1.875.000 Hz / 187.500 = 10 Hz - T0MCR = 0x03; - T0TCR = 0x01; - - VICVectAddr15 = (unsigned long)&(keyIRQ); - VICVectCntl15 = VIC_SLOT_EN | INT_SRC_TIMER0; - VICIntEnable = INT_TIMER0; -} - -/* Stubs for various interrupts (may be replaced later) */ -/* ---------------------------------------------------- */ - -void __attribute__ ((interrupt("IRQ"))) keyIRQ(void) -{ - xkeys[0] = 0; - xkeys[1] = 0; - keytest = 0x01; - half = 0; - - batcnt--; - - for(x=(1<<18); x!=(1<<23); x<<=1) - { - IOCLR2=x; - testLine(FIOPIN0&(1<<28)); - testLine(FIOPIN0&(1<<27)); - testLine(FIOPIN0&(1<<22)); - testLine(FIOPIN0&(1<<13)); - testLine(IOPIN3&(1<<21)); - testLine(IOPIN3&(1<<20)); - IOSET2=x; - } - - keytest = 0x01; - half = 1; - - for(; x!=(1<<25); x<<=1) - { - IOCLR2=x; - testLine(FIOPIN0&(1<<28)); - testLine(FIOPIN0&(1<<27)); - testLine(FIOPIN0&(1<<22)); - testLine(FIOPIN0&(1<<13)); - testLine(IOPIN3&(1<<21)); - testLine(IOPIN3&(1<<20)); - IOSET2=x; - } - - keys[0] = xkeys[0]; - keys[1] = xkeys[1]; - if(autorepeat < AUTO_TIMEOUT) - autorepeat++; - T0IR = 1; - VICVectAddr = 0; - - -} diff --git a/boop/branches/ram_version/telekatz_soundtest/keyboard.h b/boop/branches/ram_version/telekatz_soundtest/keyboard.h deleted file mode 100644 index 1875ad8..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/keyboard.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - keyboard.h - button handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef KEYBOARD_H -#define KEYBOARD_H - -#define KEY_5 (keys[0] & 0x00000001) -#define KEY_6 (keys[0] & 0x00000002) -#define KEY_C (keys[0] & 0x00000004) -#define KEY_B (keys[0] & 0x00000008) -#define KEY_A (keys[0] & 0x00000010) -#define KEY_1 (keys[0] & 0x00000020) -#define KEY_8 (keys[0] & 0x00000040) -#define KEY_9 (keys[0] & 0x00000080) -#define KEY_D (keys[0] & 0x00000100) -#define KEY_Up (keys[0] & 0x00000200) -#define KEY_Betty (keys[0] & 0x00000400) -#define KEY_4 (keys[0] & 0x00000800) -#define KEY_0 (keys[0] & 0x00001000) -#define KEY_AV (keys[0] & 0x00002000) -#define KEY_Right (keys[0] & 0x00004000) -#define KEY_Left (keys[0] & 0x00008000) -#define KEY_Vplus (keys[0] & 0x00010000) -#define KEY_7 (keys[0] & 0x00020000) -#define KEY_AB (keys[0] & 0x00040000) -#define KEY_16_9 (keys[0] & 0x00080000) -#define KEY_Exit (keys[0] & 0x00100000) -#define KEY_OK (keys[0] & 0x00200000) -#define KEY_Vminus (keys[0] & 0x00400000) -#define KEY_Minus (keys[0] & 0x00800000) -#define KEY_VTX2 (keys[0] & 0x01000000) -#define KEY_VTX3 (keys[0] & 0x02000000) -#define KEY_Pplus (keys[0] & 0x04000000) -#define KEY_Down (keys[0] & 0x08000000) -#define KEY_Menu (keys[0] & 0x10000000) -#define KEY_PiP (keys[0] & 0x20000000) - -#define KEY_Yellow (keys[1] & 0x00000001) -#define KEY_Blue (keys[1] & 0x00000002) -#define KEY_Pminus (keys[1] & 0x00000004) -#define KEY_Mute (keys[1] & 0x00000008) -#define KEY_Info (keys[1] & 0x00000010) -#define KEY_VTX1 (keys[1] & 0x00000020) -#define KEY_TV (keys[1] & 0x00000040) -#define KEY_Power (keys[1] & 0x00000080) -#define KEY_3 (keys[1] & 0x00000100) -#define KEY_2 (keys[1] & 0x00000200) -#define KEY_Red (keys[1] & 0x00000400) -#define KEY_Green (keys[1] & 0x00000800) - -#define AUTO_TIMEOUT 5 - -#define testLine(_c) \ -{ \ - if(!(_c)) \ - { \ - xkeys[half] |= keytest; \ - } \ - keytest <<= 1; \ -} - -void __attribute__ ((interrupt("IRQ"))) keyIRQ (void); - -void startKeyIRQ(void); -void initKeys(void); -void scanKeys(void); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/lcd.c b/boop/branches/ram_version/telekatz_soundtest/lcd.c deleted file mode 100644 index 71af337..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/lcd.c +++ /dev/null @@ -1,617 +0,0 @@ -/* - lcd.c - lcd control & graphics primitives - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "lcd.h" -#include "fonty.h" -//#include "b.h" - -void pause(unsigned int ptime) -{ - unsigned long xx; - xx = ptime * 750; - while(xx) - { - xx--; - }; -} - -void lcd_set(unsigned char s) -{ - if(s == 0) - { - LCD_CMD = 0xA0; // set segment remap (00H mapped to seg0) - LCD_CMD = 0xC8; // set com output scan direction (remapped mode) - } - else - { - LCD_CMD = 0xA1; // set segment remap (7FH mapped to seg0) - LCD_CMD = 0xC0; // set com output scan direction (normal mode) - } -} - -void lcd_init(unsigned char s) -{ - - LCD_CMD = 0xE1; // exit power save mode - LCD_CMD = 0xE2; // software reset - pause(0x32); - LCD_CMD = 0xAB; // start internal oscillator - LCD_CMD = 0x27; // set internal regulator resistor ratio (8.1) - LCD_CMD = 0x81; // volume cmd - LCD_CMD = 0x3A; // volume cmd value - LCD_CMD = 0x65; // set DC-DC converter factor (4x) - LCD_CMD = 0x60; // set upper window corner ax cmd - LCD_CMD = 0x1C; // set upper window corner ax value - LCD_CMD = 0x61; // set upper window corner ay cmd - LCD_CMD = 0x0A; // set upper window corner ay value - LCD_CMD = 0x62; // set lower window corner bx cmd - LCD_CMD = 0x75; // set lower window corner bx value - LCD_CMD = 0x63; // set lower window corner by cmd - LCD_CMD = 0x81; // set lower window corner by value - LCD_CMD = 0x90; // set PWM and FRC (4-frames) - LCD_CMD = 0x88; // set white mode frame 2nd and 1st cmd - LCD_CMD = 0x00; // set white mode frame 2nd and 1st value - LCD_CMD = 0x89; // set white mode frame 4th and 3rd cmd - LCD_CMD = 0x00; // set white mode frame 4th and 3rd value - LCD_CMD = 0x8A; // set light gray mode frame 2nd and 1st cmd - LCD_CMD = 0x36; // set light gray mode frame 2nd and 1st value - LCD_CMD = 0x8B; // set light gray mode frame 4th and 3rd cmd - LCD_CMD = 0x63; // set light gray mode frame 4th and 3rd vakue - LCD_CMD = 0x8C; // set dark gray mode frame 2nd and 1st cmd - LCD_CMD = 0x67; // set dark gray mode frame 2nd and 1st value - LCD_CMD = 0x8D; // set dark gray mode frame 4th and 3rd cmd - LCD_CMD = 0x76; // set dark gray mode frame 4th and 3rd vakue - LCD_CMD = 0x8E; // set black mode frame 2nd and 1st cmd - LCD_CMD = 0xAC; // set black mode frame 2nd and 1st value - LCD_CMD = 0x8F; // set black mode frame 4th and 3rd cmd - LCD_CMD = 0xCA; // set black mode frame 4th and 3rd value - LCD_CMD = 0x66; // set DC-DC converter factor (5x) - lcd_set(s); - -// LCD_CMD = 0x2E; // set power control register (boost on, reg on, buffer off) - -// pause(0x64); - - LCD_CMD = 0x2f; // set power control register (boost on, reg on, buffer on) 0x2F; - LCD_CMD = 0xA4; // set entire display on, normal mode) - LCD_CMD = 0xA6; // set normal display mode, inverse = 0xA7 - - - lcd_fill(0x00); - - LCD_CMD = 0xAF; - - set_font(0); -} - -void lcd_enable(unsigned char e) -{ - if(e) - { - LCD_CMD = 0xAF; // set display on - } - else - { - LCD_CMD = 0xAE; // set display off - } -} - -void lcd_fill(unsigned char f) -{ - unsigned char x,y; - for(y=0;y<20;y++) - { - LCD_CMD = 0xB0; - LCD_CMD = y; - LCD_CMD = 0x10; - LCD_CMD = 0x00; - for(x=0;x<128;x++) - { - LCD_DATA = f; - LCD_DATA = f; - } - } -} - -void draw_logo(void) -{/* - unsigned short f; - unsigned char x,y; - f=0; - for(y=0;y>3;y++) - { - LCD_CMD = 0xB0; - LCD_CMD = y; - LCD_CMD = 0x10; - LCD_CMD = 0x00; - for(x=0;x> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - q = LCD_DATA; - q = l; - - while(q--) - { - rcubuf[0][q] = LCD_DATA; - rcubuf[1][q] = LCD_DATA; - } - - q = LCD_DATA; - - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - q = l; - - switch(m) - { - case DRAW_PUT: // draw put - while(q--) - { - LCD_DATA = rcubuf[0][q] | drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] | drawbuf[1][q]; - } - break; - case DRAW_XOR: // draw xor - while(q--) - { - LCD_DATA = rcubuf[0][q] ^ drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] ^ drawbuf[1][q]; - } - break; - case DRAW_ERASE: // draw erase - while(q--) - { - LCD_DATA = rcubuf[0][q] & ~drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] & ~drawbuf[1][q]; - } - break; - } -} - -void do_rcuS(unsigned char x, unsigned char y, unsigned char m) -{ - unsigned char q; - - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - q = LCD_DATA; - rcubuf[0][0] = LCD_DATA; - rcubuf[1][0] = LCD_DATA; - - q = LCD_DATA; - - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - switch(m) - { - case 0: // draw put - LCD_DATA = rcubuf[0][0] | drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] | drawbuf[1][0]; - break; - case 1: // draw xor - LCD_DATA = rcubuf[0][0] ^ drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] ^ drawbuf[1][0]; - break; - case 2: // draw erase - LCD_DATA = rcubuf[0][0] & ~drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] & ~drawbuf[1][0]; - break; - } -} - -void draw_block(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m) -{ - unsigned char q,s; - unsigned char yy,ss,vv,ww,xx; - unsigned char segm; - - s = y; - - if(h) - { - - - - yy = h; - ss = y >> 3; - vv = y & 0x07; - - ww = yy & 0x07; - - segm = 0xFF; - - xx = 8; - if(yy < 8) - { - segm >>= (8-ww); - xx -= (8-ww); - if(vv > (8-xx)) - { - xx = yy -(vv-(8-xx)); - } - else - { - xx = yy; - } - } - else - { - xx -= vv; - } - - segm <<= vv; - - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = segm; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = segm; - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - - yy -= xx; - - while(yy > 8) - { - s += 8; - yy -= 8; - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = 0xFF; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = 0xFF; - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - } - - if(yy) - { - s += 8; - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = 0xFF >> (8-yy); - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = 0xFF >> (8-yy); - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - } - } -} - -void draw_hline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m) -{ - unsigned char p,q; - - q = l; - p = 0x01 << (y & 0x07); - - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = p; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = p; - else - drawbuf[1][q] = 0; - } - do_rcu(x,y,l,m); -} - -void draw_vline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m) -{ - unsigned char s; - unsigned char yy,ss,vv,ww,xx; - unsigned char segm; - - s = y; - - if(l) - { - - - - yy = l; - ss = y >> 3; - vv = y & 0x07; - - ww = yy & 0x07; - - segm = 0xFF; - - xx = 8; - if(yy < 8) - { - segm >>= (8-ww); - xx -= (8-ww); - if(vv > (8-xx)) - { - xx = yy -(vv-(8-xx)); - } - else - { - xx = yy; - } - } - else - { - xx -= vv; - } - - segm <<= vv; - - if(c & 0x02) - drawbuf[0][0] = segm; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = segm; - else - drawbuf[1][0] = 0; - - do_rcuS(x,s,m); - - yy -= xx; - - while(yy > 8) - { - s += 8; - yy -= 8; - if(c & 0x02) - drawbuf[0][0] = 0xFF; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = 0xFF; - else - drawbuf[1][0] = 0; - do_rcuS(x,s,m); - } - - if(yy) - { - s += 8; - if(c & 0x02) - drawbuf[0][0] = 0xFF >> (8-yy); - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = 0xFF >> (8-yy); - else - drawbuf[1][0] = 0; - do_rcuS(x,s,m); - } - } -} - -void draw_rect(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char lw, unsigned char c, unsigned char m) -{ - if(lw) - { - if(lw == 1) - { - draw_hline(x, y, w, c, m); - draw_hline(x, y+h-1, w, c, m); - - draw_vline(x, y+1, h-2, c, m); - draw_vline(x+w-1, y+1, h-2, c, m); - } - else - { - draw_block(x, y, w, lw, c, m); - draw_block(x, y+h-lw, w, lw, c, m); - draw_block(x, y+lw, lw, h-(2*lw), c, m); - draw_block(x+w-lw, y+lw, lw, h-(2*lw), c, m); - } - } -} - -void draw_pixel(unsigned char x, unsigned char y, unsigned char c, unsigned char m) -{ - unsigned char p; - - p = 0x01 << (y & 0x07); - - if(c & 0x02) - drawbuf[0][0] = p; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = p; - else - drawbuf[1][0] = 0; - - do_rcuS(x,y,m); -} - -void draw_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned char c, unsigned char m) -{ - unsigned char i,dx,dy,px,py; - unsigned int x,y; - - if (y2 > y1) // incl. POSITIVE - { - dx=x2-x1; - dy=y2-y1; - px=x1; - py=y1; - draw_pixel(x1, y1, c, m); // first pixel - if (dx>=dy) // incl. is more horizontal than vertical - { - y = y1; - for(i=0;i=dx) - { - y-=dx; - py+=1; - } - px+=1; - draw_pixel(px, py, c, m); - } - } - else // incl. is more vertical than horizontal - { - x = x1; - for(i=0;i=dy) - { - x-=dy; - px+=1; - } - py+=1; - draw_pixel(px, py, c, m); //?????? - } - }; - } - else if (y2 < y1) // incl. NEGATIVE - { - dx=x2-x1; - dy=y1-y2; // inverted to produce a positive value - dx=dx; - dy=dy; - px=x1; - py=y2; // Note: due to inverted "dy", - draw_pixel(x2, y2, c, m); // the first pixel became the last one - if (dx>=dy) // incl. is more horizontal than vertical - { - y = y1; - py=y1; - for(i=0;i=dx) - { - y-=dx; - py-=1; - } - px+=1; - draw_pixel(px, py, c, m); - } - } - else // incl. is more vertical than horizontal - { - x = x1; - px=x2; - for(i=0;i=dy) - { - x-=dy; - px-=1; - } - py+=1; - draw_pixel(px, py, c, m); - } - }; - } -} - -void draw_circle(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m) -{ - signed int tswitch; - unsigned char y, x = 0; - unsigned char d; - - d = cy - cx; - y = radius; - tswitch = 3 - 2 * radius; - while (x <= y) - { - draw_pixel(cx + x, cy + y, c, m); - draw_pixel(cx + x, cy - y, c, m); - draw_pixel(cx - x, cy + y, c, m); - draw_pixel(cx - x, cy - y, c, m); - - draw_pixel(cy + y - d, cy + x, c, m); - draw_pixel(cy + y - d, cy - x, c, m); - draw_pixel(cy - y - d, cy + x, c, m); - draw_pixel(cy - y - d, cy - x, c, m); - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/lcd.h b/boop/branches/ram_version/telekatz_soundtest/lcd.h deleted file mode 100644 index 8aaa59d..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/lcd.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - lcd.h - lcd control & graphics primitives - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef LCD_H -#define LCD_H - -// the lcd data & command ports -#define LCD_CMD (*((volatile unsigned char *) 0x81000000)) -#define LCD_DATA (*((volatile unsigned char *) 0x81000001)) - -// drawmodes -#define DRAW_PUT 0 -#define DRAW_XOR 1 -#define DRAW_ERASE 2 - -void lcd_init(unsigned char s); -void lcd_enable(unsigned char e); -void do_rcu(unsigned char x, unsigned char y, unsigned char l, unsigned char m); -void do_rcuS(unsigned char x, unsigned char y, unsigned char m); -void pause(unsigned int ptime); - -void lcd_fill(unsigned char f); -void draw_logo(void); -void draw_block(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m); -void draw_hline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); -void draw_vline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); -void draw_rect(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char lw, unsigned char c, unsigned char m); -void draw_pixel(unsigned char x, unsigned char y, unsigned char c, unsigned char m); -void draw_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned char c, unsigned char m); -void draw_circle(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220.h b/boop/branches/ram_version/telekatz_soundtest/lpc2220.h deleted file mode 100644 index 0a65789..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/lpc2220.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - lpc2220.h - register definitions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef LPC2220_H -#define LPC2220_H - -/* External Memory Controller (EMC) */ -#define BCFG0 (*((volatile unsigned long *) 0xFFE00000)) -#define BCFG1 (*((volatile unsigned long *) 0xFFE00004)) -#define BCFG2 (*((volatile unsigned long *) 0xFFE00008)) -#define BCFG3 (*((volatile unsigned long *) 0xFFE0000C)) - -/* Vectored Interrupt Controller (VIC) */ -#define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000)) -#define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004)) -#define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008)) -#define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C)) -#define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010)) -#define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014)) -#define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018)) -#define VICSoftIntClr (*((volatile unsigned long *) 0xFFFFF01C)) -#define VICProtection (*((volatile unsigned long *) 0xFFFFF020)) -#define VICVectAddr (*((volatile unsigned long *) 0xFFFFF030)) -#define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034)) -#define VICVectAddr0 (*((volatile unsigned long *) 0xFFFFF100)) -#define VICVectAddr1 (*((volatile unsigned long *) 0xFFFFF104)) -#define VICVectAddr2 (*((volatile unsigned long *) 0xFFFFF108)) -#define VICVectAddr3 (*((volatile unsigned long *) 0xFFFFF10C)) -#define VICVectAddr4 (*((volatile unsigned long *) 0xFFFFF110)) -#define VICVectAddr5 (*((volatile unsigned long *) 0xFFFFF114)) -#define VICVectAddr6 (*((volatile unsigned long *) 0xFFFFF118)) -#define VICVectAddr7 (*((volatile unsigned long *) 0xFFFFF11C)) -#define VICVectAddr8 (*((volatile unsigned long *) 0xFFFFF120)) -#define VICVectAddr9 (*((volatile unsigned long *) 0xFFFFF124)) -#define VICVectAddr10 (*((volatile unsigned long *) 0xFFFFF128)) -#define VICVectAddr11 (*((volatile unsigned long *) 0xFFFFF12C)) -#define VICVectAddr12 (*((volatile unsigned long *) 0xFFFFF130)) -#define VICVectAddr13 (*((volatile unsigned long *) 0xFFFFF134)) -#define VICVectAddr14 (*((volatile unsigned long *) 0xFFFFF138)) -#define VICVectAddr15 (*((volatile unsigned long *) 0xFFFFF13C)) -#define VICVectCntl0 (*((volatile unsigned long *) 0xFFFFF200)) -#define VICVectCntl1 (*((volatile unsigned long *) 0xFFFFF204)) -#define VICVectCntl2 (*((volatile unsigned long *) 0xFFFFF208)) -#define VICVectCntl3 (*((volatile unsigned long *) 0xFFFFF20C)) -#define VICVectCntl4 (*((volatile unsigned long *) 0xFFFFF210)) -#define VICVectCntl5 (*((volatile unsigned long *) 0xFFFFF214)) -#define VICVectCntl6 (*((volatile unsigned long *) 0xFFFFF218)) -#define VICVectCntl7 (*((volatile unsigned long *) 0xFFFFF21C)) -#define VICVectCntl8 (*((volatile unsigned long *) 0xFFFFF220)) -#define VICVectCntl9 (*((volatile unsigned long *) 0xFFFFF224)) -#define VICVectCntl10 (*((volatile unsigned long *) 0xFFFFF228)) -#define VICVectCntl11 (*((volatile unsigned long *) 0xFFFFF22C)) -#define VICVectCntl12 (*((volatile unsigned long *) 0xFFFFF230)) -#define VICVectCntl13 (*((volatile unsigned long *) 0xFFFFF234)) -#define VICVectCntl14 (*((volatile unsigned long *) 0xFFFFF238)) -#define VICVectCntl15 (*((volatile unsigned long *) 0xFFFFF23C)) - -#define SCS (*((volatile unsigned char *) 0xE01FC1A0)) -#define FIOPIN0 (*((volatile unsigned long *) 0x3FFFC014)) -#define FIOSET0 (*((volatile unsigned long *) 0x3FFFC018)) -#define FIODIR0 (*((volatile unsigned long *) 0x3FFFC000)) -#define FIOCLR0 (*((volatile unsigned long *) 0x3FFFC01C)) - -/* Pin Connect Block */ -#define PINSEL0 (*((volatile unsigned long *) 0xE002C000)) -#define PINSEL1 (*((volatile unsigned long *) 0xE002C004)) -#define PINSEL2 (*((volatile unsigned long *) 0xE002C014)) - -/* General Purpose Input/Output (GPIO) */ -#define IOPIN0 (*((volatile unsigned long *) 0xE0028000)) -#define IOSET0 (*((volatile unsigned long *) 0xE0028004)) -#define IODIR0 (*((volatile unsigned long *) 0xE0028008)) -#define IOCLR0 (*((volatile unsigned long *) 0xE002800C)) -#define IOPIN1 (*((volatile unsigned long *) 0xE0028010)) -#define IOSET1 (*((volatile unsigned long *) 0xE0028014)) -#define IODIR1 (*((volatile unsigned long *) 0xE0028018)) -#define IOCLR1 (*((volatile unsigned long *) 0xE002801C)) -#define IOPIN2 (*((volatile unsigned long *) 0xE0028020)) -#define IOSET2 (*((volatile unsigned long *) 0xE0028024)) -#define IODIR2 (*((volatile unsigned long *) 0xE0028028)) -#define IOCLR2 (*((volatile unsigned long *) 0xE002802C)) -#define IOPIN3 (*((volatile unsigned long *) 0xE0028030)) -#define IOSET3 (*((volatile unsigned long *) 0xE0028034)) -#define IODIR3 (*((volatile unsigned long *) 0xE0028038)) -#define IOCLR3 (*((volatile unsigned long *) 0xE002803C)) - -/* Phase Locked Loop (PLL) */ -#define PLLCON (*((volatile unsigned char *) 0xE01FC080)) -#define PLLCFG (*((volatile unsigned char *) 0xE01FC084)) -#define PLLSTAT (*((volatile unsigned short*) 0xE01FC088)) -#define PLLFEED (*((volatile unsigned char *) 0xE01FC08C)) - -/* VPB Divider */ -#define VPBDIV (*((volatile unsigned char *) 0xE01FC100)) - -/* Power Control */ -#define PCON (*((volatile unsigned char *) 0xE01FC0C0)) -#define PCONP (*((volatile unsigned long *) 0xE01FC0C4)) - -/* External Interrupts */ -#define EXTINT (*((volatile unsigned char *) 0xE01FC140)) -#define EXTWAKE (*((volatile unsigned char *) 0xE01FC144)) -#define EXTMODE (*((volatile unsigned char *) 0xE01FC148)) -#define EXTPOLAR (*((volatile unsigned char *) 0xE01FC14C)) - -/* Timer 0 */ -#define T0IR (*((volatile unsigned long *) 0xE0004000)) -#define T0TCR (*((volatile unsigned long *) 0xE0004004)) -#define T0TC (*((volatile unsigned long *) 0xE0004008)) -#define T0PR (*((volatile unsigned long *) 0xE000400C)) -#define T0PC (*((volatile unsigned long *) 0xE0004010)) -#define T0MCR (*((volatile unsigned long *) 0xE0004014)) -#define T0MR0 (*((volatile unsigned long *) 0xE0004018)) -#define T0MR1 (*((volatile unsigned long *) 0xE000401C)) -#define T0MR2 (*((volatile unsigned long *) 0xE0004020)) -#define T0MR3 (*((volatile unsigned long *) 0xE0004024)) -#define T0CCR (*((volatile unsigned long *) 0xE0004028)) -#define T0CR0 (*((volatile unsigned long *) 0xE000402C)) -#define T0CR1 (*((volatile unsigned long *) 0xE0004030)) -#define T0CR2 (*((volatile unsigned long *) 0xE0004034)) -#define T0CR3 (*((volatile unsigned long *) 0xE0004038)) -#define T0EMR (*((volatile unsigned long *) 0xE000403C)) - -/* Timer 1 */ -#define T1IR (*((volatile unsigned long *) 0xE0008000)) -#define T1TCR (*((volatile unsigned long *) 0xE0008004)) -#define T1TC (*((volatile unsigned long *) 0xE0008008)) -#define T1PR (*((volatile unsigned long *) 0xE000800C)) -#define T1PC (*((volatile unsigned long *) 0xE0008010)) -#define T1MCR (*((volatile unsigned long *) 0xE0008014)) -#define T1MR0 (*((volatile unsigned long *) 0xE0008018)) -#define T1MR1 (*((volatile unsigned long *) 0xE000801C)) -#define T1MR2 (*((volatile unsigned long *) 0xE0008020)) -#define T1MR3 (*((volatile unsigned long *) 0xE0008024)) -#define T1CCR (*((volatile unsigned long *) 0xE0008028)) -#define T1CR0 (*((volatile unsigned long *) 0xE000802C)) -#define T1CR1 (*((volatile unsigned long *) 0xE0008030)) -#define T1CR2 (*((volatile unsigned long *) 0xE0008034)) -#define T1CR3 (*((volatile unsigned long *) 0xE0008038)) -#define T1EMR (*((volatile unsigned long *) 0xE000803C)) - -/* Pulse Width Modulator (PWM) */ -#define PWMIR (*((volatile unsigned long *) 0xE0014000)) -#define PWMTCR (*((volatile unsigned long *) 0xE0014004)) -#define PWMTC (*((volatile unsigned long *) 0xE0014008)) -#define PWMPR (*((volatile unsigned long *) 0xE001400C)) -#define PWMPC (*((volatile unsigned long *) 0xE0014010)) -#define PWMMCR (*((volatile unsigned long *) 0xE0014014)) -#define PWMMR0 (*((volatile unsigned long *) 0xE0014018)) -#define PWMMR1 (*((volatile unsigned long *) 0xE001401C)) -#define PWMMR2 (*((volatile unsigned long *) 0xE0014020)) -#define PWMMR3 (*((volatile unsigned long *) 0xE0014024)) -#define PWMMR4 (*((volatile unsigned long *) 0xE0014040)) -#define PWMMR5 (*((volatile unsigned long *) 0xE0014044)) -#define PWMMR6 (*((volatile unsigned long *) 0xE0014048)) -#define PWMCCR (*((volatile unsigned long *) 0xE0014028)) -#define PWMCR0 (*((volatile unsigned long *) 0xE001402C)) -#define PWMCR1 (*((volatile unsigned long *) 0xE0014030)) -#define PWMCR2 (*((volatile unsigned long *) 0xE0014034)) -#define PWMCR3 (*((volatile unsigned long *) 0xE0014038)) -#define PWMEMR (*((volatile unsigned long *) 0xE001403C)) -#define PWMPCR (*((volatile unsigned long *) 0xE001404C)) -#define PWMLER (*((volatile unsigned long *) 0xE0014050)) - -/* Universal Asynchronous Receiver Transmitter 0 (UART0) */ -#define U0RBR (*((volatile unsigned char *) 0xE000C000)) -#define U0THR (*((volatile unsigned char *) 0xE000C000)) -#define U0IER (*((volatile unsigned char *) 0xE000C004)) -#define U0IIR (*((volatile unsigned char *) 0xE000C008)) -#define U0FCR (*((volatile unsigned char *) 0xE000C008)) -#define U0LCR (*((volatile unsigned char *) 0xE000C00C)) -#define U0MCR (*((volatile unsigned char *) 0xE000C010)) -#define U0LSR (*((volatile unsigned char *) 0xE000C014)) -#define U0MSR (*((volatile unsigned char *) 0xE000C018)) -#define U0SCR (*((volatile unsigned char *) 0xE000C01C)) -#define U0FDR (*((volatile unsigned char *) 0xE000C028)) -#define U0DLL (*((volatile unsigned char *) 0xE000C000)) -#define U0DLM (*((volatile unsigned char *) 0xE000C004)) - -/* Universal Asynchronous Receiver Transmitter 1 (UART1) */ -#define U1RBR (*((volatile unsigned char *) 0xE0010000)) -#define U1THR (*((volatile unsigned char *) 0xE0010000)) -#define U1IER (*((volatile unsigned char *) 0xE0010004)) -#define U1IIR (*((volatile unsigned char *) 0xE0010008)) -#define U1FCR (*((volatile unsigned char *) 0xE0010008)) -#define U1LCR (*((volatile unsigned char *) 0xE001000C)) -#define U1MCR (*((volatile unsigned char *) 0xE0010010)) -#define U1LSR (*((volatile unsigned char *) 0xE0010014)) -#define U1MSR (*((volatile unsigned char *) 0xE0010018)) -#define U1SCR (*((volatile unsigned char *) 0xE001001C)) -#define U1DLL (*((volatile unsigned char *) 0xE0010000)) -#define U1DLM (*((volatile unsigned char *) 0xE0010004)) - -/* I2C Interface */ -#define I2CONSET (*((volatile unsigned char *) 0xE001C000)) -#define I2STAT (*((volatile unsigned char *) 0xE001C004)) -#define I2DAT (*((volatile unsigned char *) 0xE001C008)) -#define I2ADR (*((volatile unsigned char *) 0xE001C00C)) -#define I2SCLH (*((volatile unsigned short*) 0xE001C010)) -#define I2SCLL (*((volatile unsigned short*) 0xE001C014)) -#define I2CONCLR (*((volatile unsigned char *) 0xE001C018)) - -/* SPI0 (Serial Peripheral Interface 0) */ -#define S0SPCR (*((volatile unsigned char *) 0xE0020000)) -#define S0SPSR (*((volatile unsigned char *) 0xE0020004)) -#define S0SPDR (*((volatile unsigned char *) 0xE0020008)) -#define S0SPCCR (*((volatile unsigned char *) 0xE002000C)) -#define S0SPTCR (*((volatile unsigned char *) 0xE0020010)) -#define S0SPTSR (*((volatile unsigned char *) 0xE0020014)) -#define S0SPTOR (*((volatile unsigned char *) 0xE0020018)) -#define S0SPINT (*((volatile unsigned char *) 0xE002001C)) - -/* SPI1 (Serial Peripheral Interface 1) */ -#define S1SPCR (*((volatile unsigned char *) 0xE0030000)) -#define S1SPSR (*((volatile unsigned char *) 0xE0030004)) -#define S1SPDR (*((volatile unsigned char *) 0xE0030008)) -#define S1SPCCR (*((volatile unsigned char *) 0xE003000C)) -#define S1SPTCR (*((volatile unsigned char *) 0xE0030010)) -#define S1SPTSR (*((volatile unsigned char *) 0xE0030014)) -#define S1SPTOR (*((volatile unsigned char *) 0xE0030018)) -#define S1SPINT (*((volatile unsigned char *) 0xE003001C)) - -/* Real Time Clock */ -#define ILR (*((volatile unsigned char *) 0xE0024000)) -#define CTC (*((volatile unsigned short*) 0xE0024004)) -#define CCR (*((volatile unsigned char *) 0xE0024008)) -#define CIIR (*((volatile unsigned char *) 0xE002400C)) -#define AMR (*((volatile unsigned char *) 0xE0024010)) -#define CTIME0 (*((volatile unsigned long *) 0xE0024014)) -#define CTIME1 (*((volatile unsigned long *) 0xE0024018)) -#define CTIME2 (*((volatile unsigned long *) 0xE002401C)) -#define SEC (*((volatile unsigned char *) 0xE0024020)) -#define MIN (*((volatile unsigned char *) 0xE0024024)) -#define HOUR (*((volatile unsigned char *) 0xE0024028)) -#define DOM (*((volatile unsigned char *) 0xE002402C)) -#define DOW (*((volatile unsigned char *) 0xE0024030)) -#define DOY (*((volatile unsigned short*) 0xE0024034)) -#define MONTH (*((volatile unsigned char *) 0xE0024038)) -#define YEAR (*((volatile unsigned short*) 0xE002403C)) -#define ALSEC (*((volatile unsigned char *) 0xE0024060)) -#define ALMIN (*((volatile unsigned char *) 0xE0024064)) -#define ALHOUR (*((volatile unsigned char *) 0xE0024068)) -#define ALDOM (*((volatile unsigned char *) 0xE002406C)) -#define ALDOW (*((volatile unsigned char *) 0xE0024070)) -#define ALDOY (*((volatile unsigned short*) 0xE0024074)) -#define ALMON (*((volatile unsigned char *) 0xE0024078)) -#define ALYEAR (*((volatile unsigned short*) 0xE002407C)) -#define PREINT (*((volatile unsigned short*) 0xE0024080)) -#define PREFRAC (*((volatile unsigned short*) 0xE0024084)) - -/* A/D Converter */ -#define ADCR (*((volatile unsigned long *) 0xE0034000)) -#define ADDR (*((volatile unsigned long *) 0xE0034004)) - -/* Watchdog */ -#define WDMOD (*((volatile unsigned char *) 0xE0000000)) -#define WDTC (*((volatile unsigned long *) 0xE0000004)) -#define WDFEED (*((volatile unsigned char *) 0xE0000008)) -#define WDTV (*((volatile unsigned long *) 0xE000000C)) - -/* Memory Mapping control register */ -#define MEMMAP (*((volatile unsigned long *) 0xE01FC040)) - -#define SSPCR0 (*((volatile unsigned long *) 0xE005C000)) -#define SSPCR1 (*((volatile unsigned char *) 0xE005C004)) -#define SSPDR (*((volatile unsigned char *) 0xE005C008)) -#define SSPSR (*((volatile unsigned char *) 0xE005C00C)) -#define SSPCPSR (*((volatile unsigned char *) 0xE005C010)) - -#endif /* __ASM_ARCH_HARDWARE_H */ diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220.ld b/boop/branches/ram_version/telekatz_soundtest/lpc2220.ld deleted file mode 100644 index 27e6dfd..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/lpc2220.ld +++ /dev/null @@ -1,66 +0,0 @@ -/* identify the Entry Point */ - -ENTRY(Reset_Handler) - -/* specify the LPC2106 memory areas */ - -MEMORY -{ - flash : ORIGIN = 0x00000000, LENGTH = 128K /* free FLASH EPROM area */ - ram : ORIGIN = 0x40000200, LENGTH = 64K - 0x200 /* free RAM area */ -} - -/* define a global symbol _stack_end */ - -_stack_end = 0x4000FEDC; - -/* now define the output sections */ - -SECTIONS -{ - startup : - { - *(.startup) - } >ram /* the startup code goes into FLASH */ - - .text : /* collect all sections that should go into FLASH after startup */ - { - *(.text) /* all .text sections (code) */ - *(.rodata) /* all .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* all .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* all .glue_7 sections (no idea what these are) */ - *(.glue_7t) /* all .glue_7t sections (no idea what these are) */ - _etext = .; /* define a global symbol _etext just after the last code byte */ - } >ram /* put all the above into FLASH */ - - .data : /* collect all initialized .data sections that go into RAM */ - { - _data = .; /* create a global symbol marking the start of the .data section */ - *(.data) /* all .data sections */ - _edata = .; /* define a global symbol marking the end of the .data section */ - } >ram /* put all the above into RAM (but load the LMA copy into FLASH) */ - - .bss : /* collect all uninitialized .bss sections that go into RAM */ - { - _bss_start = .; /* define a global symbol marking the start of the .bss section */ - *(.bss) /* all .bss sections */ - } >ram /* put all the above in RAM (it will be cleared in the startup code */ - - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - _bss_end = . ; /* define a global symbol marking the end of the .bss section */ - - _end = .; /* define a global symbol marking the end of application RAM */ -} - -PROVIDE( MEMMAP = 0xE01FC040 ); -PROVIDE( BCFG0 = 0xFFE00000 ); -PROVIDE( BCFG1 = 0xFFE00004 ); -PROVIDE( BCFG2 = 0xFFE00008 ); -PROVIDE( PINSEL0 = 0xE002C000 ); -PROVIDE( PINSEL1 = 0xE002C004 ); -PROVIDE( PINSEL2 = 0xE002C014 ); -PROVIDE( IO0PIN = 0xE0028000 ); -PROVIDE( IO0DIR = 0xE0028008 ); -PROVIDE( IO2SET = 0xE0028024 ); -PROVIDE( VICVectAddr = 0xFFFFF030 ); - diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld b/boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld deleted file mode 100644 index 73ff62a..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld +++ /dev/null @@ -1,113 +0,0 @@ -/* - lpc2220.ld - linker script, flash based - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -/* identify the Entry Point */ - -ENTRY(_startup) - -/* specify the LPC2106 memory areas */ - -MEMORY -{ - ram : ORIGIN = 0x40000000, LENGTH = 64K /* free RAM area */ - flash : ORIGIN = 0x80000000, LENGTH = 1M /* FLASH ROM */ -} - -/* define a global symbol _stack_end */ - -_stack_end = 0x4000FEDC; - -/* now define the output sections */ - -SECTIONS -{ - . = 0; /* set location counter to address zero */ - - startup : - { - *(.startup) - } >flash /* the startup code goes into FLASH */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .text : /* collect all sections that should go into FLASH after startup */ - { - *(.text) /* all .text sections (code) */ - *(.rodata) /* all .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* all .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* all .glue_7 sections (no idea what these are) */ - *(.glue_7t) /* all .glue_7t sections (no idea what these are) */ - _etext = .; /* define a global symbol _etext just after the last code byte */ - } >flash /* put all the above into FLASH */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .fastcode : - { - __fastcode_load = LOADADDR(.fastcode); - __fastcode_start = .; - /* functions with __attribute__ ((section (".text.fastcode")))*/ - *(.text.fastcode) - *(.text.ramvectors) - *(.text.keyIRQ) - *(.text.soundIRQ) - *(.text.irIRQ) - *(.text.scanKeys) - *(.text.defIR) - *(.text.RC5_Encode) - *(.text.RCMM_Encode) - *(.text.NRC17_Encode) - *(.text.SIRC_Encode) - *(.text.REC80_Encode) - *(.text.ITT_Encode) - *(.text.SPACEENC_Encode) - *(.text.RECS80_Encode) - *(.text.RCA_Encode) - . = ALIGN (4); - __fastcode_end = .; - } >ram AT>flash - - - .data : /* collect all initialized .data sections that go into RAM */ - { - _data = .; /* create a global symbol marking the start of the .data section */ - *(.data) /* all .data sections */ - _edata = .; /* define a global symbol marking the end of the .data section */ - } >ram AT >flash /* put all the above into RAM (but load the LMA copy into FLASH) */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .bss : /* collect all uninitialized .bss sections that go into RAM */ - { - _bss_start = .; /* define a global symbol marking the start of the .bss section */ - *(.bss) /* all .bss sections */ - } >ram /* put all the above in RAM (it will be cleared in the startup code */ - - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - _bss_end = . ; /* define a global symbol marking the end of the .bss section */ -} -_end = .; /* define a global symbol marking the end of application RAM */ - -PROVIDE( MEMMAP = 0xE01FC040 ); -PROVIDE( BCFG0 = 0xFFE00000 ); -PROVIDE( BCFG1 = 0xFFE00004 ); -PROVIDE( BCFG2 = 0xFFE00008 ); -PROVIDE( PINSEL0 = 0xE002C000 ); -PROVIDE( PINSEL1 = 0xE002C004 ); -PROVIDE( PINSEL2 = 0xE002C014 ); -PROVIDE( IO0PIN = 0xE0028000 ); -PROVIDE( IO0DIR = 0xE0028008 ); -PROVIDE( IO2SET = 0xE0028024 ); -PROVIDE( VICVectAddr = 0xFFFFF030 ); diff --git a/boop/branches/ram_version/telekatz_soundtest/main.c b/boop/branches/ram_version/telekatz_soundtest/main.c deleted file mode 100644 index a8bd367..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/main.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - main.c - main program routines - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -//#define WITH_SOUND - -typedef volatile unsigned int *reg32_t; - -#include "lpc2220.h" -#include "lcd.h" -#include "irq.h" -#include "soundcore.h" -#include "fonty.h" -#include "keyboard.h" -#include "externs.h" - -static unsigned int old_tval; - -unsigned long checksum; -unsigned short count; -unsigned long adr; -const char hval[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }; - -unsigned char idle; -unsigned char ccbuf[64]; - -extern unsigned char cc1100rx; -extern unsigned char batcnt; - -#define KEY_IDLE 0x00 -#define KEY_PRESS 0x01 -#define KEY_HOLD 0x02 -#define KEY_RELEASE 0x03 - -#define SPEED_30 0 -#define SPEED_60 1 - -void setSpeed(unsigned char sp) -{ - disableIRQ(); - switch(sp) - { - case SPEED_60: // turbo speed (60 mhz) - BCFG0 = 0x100005EF; - PLLCFG = 0x45; // 0100.0101 = PSEL=10=4 MSEL=00101=6 = 240mhz Fcco - PLLFEED = 0xAA; - PLLFEED = 0x55; - - VPBDIV = 0x00; - - BCFG0 = 0x100004A0; - BCFG2 = 0x100004A0; - BCFG1 = 0x00000C21; - break; - - case SPEED_30: // normal speed (30 mhz) - default: - BCFG0 = 0x100005EF; - PLLCFG = 0x42; // 0100.0010 = PSEL=10=4 MSEL=00010=3 - PLLFEED = 0xAA; - PLLFEED = 0x55; - - VPBDIV = 0x02; - - BCFG0 = 0x10000420; - BCFG2 = 0x10000420; - BCFG1 = 0x00000400; - break; - } - enableIRQ(); -} - - -int main(void) -{ - unsigned char key_state, bl_vol; - unsigned int oldkeys[2], ok[2]; - - setSpeed(SPEED_30); - - //************************************************************************************* - - - - //************************************************************************************* - oldkeys[0] = 0; - oldkeys[1] = 0; - ok[0] = 0; - ok[1] = 0; - key_state = KEY_IDLE; - old_tval = 0; - bl_vol = 0xff; - lcd_init(0); - SCS |= 0x01; - FIODIR0 |= ((1<<21) | (1<<4) | (1<<11) | (1<<6) | (1<<23) | (1<<19) | (1<<17)); - - initKeys(); - //initIR(); - IODIR0 |= (1<<12); - //VPBDIV = 0x02; - startKeyIRQ(); - startPWMIRQ(); - - idle =0; - enableIRQ(); - - while (1) - { - - switch(key_state) - { - case KEY_IDLE: - if(keys[0] != oldkeys[0] || keys[1] != oldkeys[1]) - { - if(keys[0] != 0 || keys[1] != 0) - { - draw_hexW(72,140,ok[0],3,DRAW_ERASE); - draw_hexW(72,150,ok[1],3,DRAW_ERASE); - draw_hexW(72,140,keys[0],3,DRAW_PUT); - draw_hexW(72,150,keys[1],3,DRAW_PUT); - ok[0] = keys[0]; - ok[1] = keys[1]; - key_state = KEY_PRESS; - } - - oldkeys[0] = keys[0]; - oldkeys[1] = keys[1]; - - if(KEY_A) - { - if(timeout & 0x08) - timeout = 0; - else - timeout = 0x08; - } - else if(KEY_B) - { - - - } - else if(KEY_C) - { - - } - else if(KEY_D) - { - - } - else if(KEY_Vminus) - { - FIOCLR0 |= (1<<11); - } - else if(KEY_Vplus) - { - FIOSET0 |= (1<<11); - playSID(); - } - else if(KEY_OK) - { - - } - else if(KEY_Mute) - { - - } - else if(KEY_1) - { - - } - else if(KEY_2) - { - - } - else if(KEY_3) - { - - } - else if(KEY_4) - { - - } - else if(KEY_5) - { - - } - else if(KEY_6) - { - - } - else if(KEY_7) - { - - } - else if(KEY_8) - { - - } - else if(KEY_9) - { - - } - } - break; - case KEY_PRESS: - //irSend(); - key_state = KEY_HOLD; - autorepeat = 0; - break; - case KEY_HOLD: - if(autorepeat >= AUTO_TIMEOUT) - //irRepeat(); - - if(keys[0] == 0 && keys[1] == 0) - key_state = KEY_RELEASE; - - break; - case KEY_RELEASE: - //irStop(); - key_state = KEY_IDLE; - break; - } - - - } - return 0; -} - - diff --git a/boop/branches/ram_version/telekatz_soundtest/serial.c b/boop/branches/ram_version/telekatz_soundtest/serial.c deleted file mode 100644 index 9ceb8be..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/serial.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * minor changes (c) 2007 ch.klippel - * - * (C) Copyright 2004 - * DAVE Srl - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * (C) Copyright 2002-2004 - * Wolfgang Denk, DENX Software Engineering, - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Marius Groeger - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Alex Zuepke - * - * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) - * - * 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 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "lpc2220.h" -#include "serial.h" - -/* flush serial input queue. returns 0 on success or negative error - * number otherwise - */ -int serial_flush_input(void) -{ - volatile unsigned int tmp; - - /* keep on reading as long as the receiver is not empty */ - while(RX_DATA(U0LSR)) { - tmp = GET_CHAR(U0RBR); - } - - return 0; -} - - -/* flush output queue. returns 0 on success or negative error number - * otherwise - */ -int serial_flush_output(void) -{ - /* wait until the transmitter is no longer busy */ - while(TX_READY(U0LSR)==0) { - } - - return 0; -} - - -void serial_setbrg (unsigned int baudrate) -{ - - /* get correct divisor */ - U0LCR = 0x83; - - switch(baudrate) { - - case 75: - U0DLL = 161; - U0DLM = 1; - U0FDR = (1 << 4) + 14; - break; - - case 150: - U0DLL = 195; - U0DLM = 0; - U0FDR = (1 << 4) + 15; - break; - - case 300: - U0DLL = 184; - U0DLM = 0; - U0FDR = (2 << 4) + 15; - break; - - case 600: - U0DLL = 156; - U0DLM = 0; - U0FDR = (1 << 4) + 4; - break; - - case 1200: - U0DLL = 130; - U0DLM = 0; - U0FDR = (7 << 4) + 14; - break; - - case 2400: - U0DLL = 180; - U0DLM = 0; - U0FDR = (12 << 4) + 1; - break; - - case 4800: - U0DLL = 90; - U0DLM = 0; - U0FDR = (1 << 4) + 4; - break; - - case 9600: - U0DLL = 23; - U0DLM = 0; - U0FDR = (8 << 4) + 9; - break; - - case 19200: - U0DLL = 11; - U0DLM = 0; - U0FDR = (9 << 4) + 11; - break; - - case 38400: - U0DLL = 5; - U0DLM = 0; - U0FDR = (9 << 4) + 13; - break; - - case 57600: - U0DLL = 6; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - - case 115200: - U0DLL = 3; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - } - U0LCR = 0x03; - - serial_flush_output(); - serial_flush_input(); -} - - -/* - * Initialise the serial port with the given baudrate. The settings - * are always 8 data bits, no parity, 1 stop bit, no start bits. - * - */ -int serial_init (void) -{ -// PINSEL0=0x05; // pin select -> tx, rx - serial_setbrg (115200); -// serial_setbrg (57600); - U0FCR = 0x07; // enable fifo - return (0); -} - - -/* - * Output a single byte to the serial port. - */ -void serial_putc (const char c) -{ - /* wait for room in the transmit FIFO */ - while(TX_READY(U0LSR)==0); - - PUT_CHAR(U0THR,c); -} - -/* - * Read a single byte from the serial port. Returns 1 on success, 0 - * otherwise. When the function is succesfull, the character read is - * written into its argument c. - */ -int serial_tstc (void) -{ - return (RX_DATA(U0LSR)); -} - -/* - * Read a single byte from the serial port. Returns 1 on success, 0 - * otherwise. When the function is succesfull, the character read is - * written into its argument c. - */ -int serial_getc (void) -{ - int rv; - - for(;;) { - rv = serial_tstc(); - - if(rv > 0) - return (GET_CHAR(U0RBR)); - } -} - -void -serial_puts (const char *s) -{ - while (*s != 0) { - serial_putc (*s++); - } -} - -const char hval[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }; - -void putHexC(const unsigned char v) -{ - serial_putc(hval[v>>4]); - serial_putc(hval[v & 0x0F]); -} - -void putHexS(const unsigned short v) -{ - putHexC(v >> 8); - putHexC(v & 0xFF); -} - -void putHexW(const unsigned long v) -{ - putHexS(v >> 16); - putHexS(v & 0xFFFF); -} diff --git a/boop/branches/ram_version/telekatz_soundtest/serial.h b/boop/branches/ram_version/telekatz_soundtest/serial.h deleted file mode 100644 index 95739b6..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/serial.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - serial.h - serial port functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef BOOP_SERIAL_H -#define BOOP_SERIAL_H - -#define USRRxData (1 << 0) -#define USRTxHoldEmpty (1 << 6) -#define GET_CHAR(p) p -#define PUT_CHAR(p,c) (p= (unsigned )(c)) -#define TX_READY(s) ((s) & USRTxHoldEmpty) -#define RX_DATA(s) ((s) & USRRxData) - -int serial_flush_input(void); -int serial_flush_output(void); -void serial_setbrg (unsigned int baudrate); -int serial_init (void); -void serial_putc (const char c); -int serial_tstc (void); -int serial_getc (void); -void serial_puts (const char *s); - -void putHexC(const unsigned char v); -void putHexS(const unsigned short v); -void putHexW(const unsigned long v); - -#endif /* BOOP_SERIAL_H */ diff --git a/boop/branches/ram_version/telekatz_soundtest/sirc_codes.h b/boop/branches/ram_version/telekatz_soundtest/sirc_codes.h deleted file mode 100644 index 83b1bac..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/sirc_codes.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef SIRC_CODES_H -#define SIRC_CODES_H - -#include "./ir-codes/sirc/rm-pp411" -#include "./ir-codes/sirc/tv" - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/soundcore.c b/boop/branches/ram_version/telekatz_soundtest/soundcore.c deleted file mode 100644 index 89a9176..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/soundcore.c +++ /dev/null @@ -1,961 +0,0 @@ -/* - soundcore.c - sound core routines (output, ipol, mixing, ...) - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "soundcore.h" -#include "lpc2220.h" - -#define AUTO_OFF_TIME 0xf000 - -static unsigned char bl_val, cmp_val; -unsigned char out1; -unsigned char timeout; -static unsigned int auto_timeout; - -struct t_voice voices[MAXVOICES]; - -//*************************************************************************** - -typedef unsigned short uint16_t; -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef signed short int16_t; -typedef unsigned long uint32_t; - - -#define FALSE 0 -#define TRUE 1 - -// CPU clock 16MHz -#define F_CPU 16000000 - -#define FINT (F_CPU/512) // 512=256PWM steps / 0.5 step per PWM interrupt -// FINT = 31250Hz @F_CPU16MHz - -#define FS (FINT/2) -// FS = 15625Hz @F_CPU16MHz - -#define MAXTIME 6000 -#define OSCILLATORS 3 - -struct IIR_filter* filter04_06; - -uint16_t freq_coefficient[OSCILLATORS]; - -uint16_t mstimer=0; - -uint16_t noise; - -// SID registers - -struct Voice -{ - uint16_t Freq; // Frequency: FreqLo/FreqHi - uint16_t PW; // PulseWitdht: PW LO/HI only 12 bits used in SID - uint8_t ControlReg; // NOISE,RECTANGLE,SAWTOOTH,TRIANGLE,TEST,RINGMOD,SYNC,GATE - uint8_t AttackDecay; // bit0-3 decay, bit4-7 attack - uint8_t SustainRelease; // bit0-3 release, bit4-7 sustain -}; - -struct Blocks -{ - struct Voice voice1; - struct Voice voice2; - struct Voice voice3; - uint16_t FC; // not implemented - uint8_t RES_Filt; // partly implemented - uint8_t Mode_Vol; // partly implemented - uint8_t POTX; // not implemented - uint8_t POTY; // not implemented - uint8_t OSC3_Random;// not implemented - uint8_t ENV3; // not implemented -}; - -#define NUMREGISTERS 29 - -union Soundprocessor -{ - struct Blocks block; - uint8_t sidregister[NUMREGISTERS]; -} Sid; - -// SID voice controll register bits -#define GATE (1<<0) -#define SYNC (1<<1) // not implemented -#define RINGMOD (1<<2) // implemented -#define TEST (1<<3) // not implemented -#define TRIANGLE (1<<4) -#define SAWTOOTH (1<<5) -#define RECTANGLE (1<<6) -#define NOISE (1<<7) - -// SID RES/FILT ( reg.23 ) -#define FILT1 (1<<0) -#define FILT2 (1<<1) -#define FILT3 (1<<2) -// SID MODE/VOL ( reg.24 ) -#define VOICE3OFF (1<<7) - -// attack, decay, release envelope timings -uint16_t AttackRate[16]={2,4,16,24,38,58,68,80,100,250,500,800,1000,3000,5000,8000}; -uint16_t DecayReleaseRate[16]={6,24,48,72,114,168,204,240,300,750,1500,2400,3000,9000,15000,24000}; - -// oszillator waveform arrays -int8_t wave0[256]; -int8_t wave1[256]; -int8_t wave2[256]; - -// envelope arrays - -uint8_t envelope[OSCILLATORS]; - -uint16_t m_attack[OSCILLATORS]; -uint16_t m_decay[OSCILLATORS]; -uint16_t m_release[OSCILLATORS]; - -uint8_t release_flag[OSCILLATORS]; -uint8_t attackdecay_flag[OSCILLATORS]; - - -int16_t level_sustain[OSCILLATORS]; -//int test[9]; -//struct IIR_filter filter04_06; -// = {0,0,0,0, B0, B1, B2, A1, A2}; //initialize filter with 0.4 cutoff frequency - -//uint16_t t_attack[OSCILLATORS]; -//uint16_t t_decay[OSCILLATORS]; -//uint16_t t_release[OSCILLATORS]; - -/************************************************************************ - - interrupt routine - - - calculate waverform phases - - calculate waveforms - - set PWM output - - increase system timer - -************************************************************************/ -uint8_t get_wavenum(struct Voice *voice) -{ - uint8_t n; - - if(voice==&Sid.block.voice1) n=0; - if(voice==&Sid.block.voice2) n=1; - if(voice==&Sid.block.voice3) n=2; - - return n; -} - -void setfreq(struct Voice *voice,uint16_t freq) -{ - uint32_t templong; - uint8_t n; - - n=get_wavenum(voice); - - templong=freq; - freq_coefficient[n]=templong*65536/FS; -} - -void init_waveform(struct Voice *voice) -{ - uint16_t n; - int16_t val; - uint8_t wavetype; - int8_t *wave_array; - - wavetype=voice->ControlReg; - - n=get_wavenum(voice); - - if(n==0) wave_array=wave0; - if(n==1) wave_array=wave1; - if(n==2) wave_array=wave2; - - val=-128; - - for(n=0;n<256;n++) - { - *wave_array=0xFF; - - if(wavetype&SAWTOOTH) - { - *wave_array&=val; - } - - if(wavetype&TRIANGLE) - { - if(n&0x80) *wave_array&=((n^0xFF)<<1)-128; - else *wave_array&=(n<<1)-128; - } - - if(wavetype&RECTANGLE) - { - if(n>(voice->PW >> 4)) // SID has 12Bit pwm, here we use only 8Bit - { - *wave_array&=127; - } - else *wave_array&=-127; - } - - // if(wavetype&NOISE) *wave_array&=zufall(); - // noise has to be online calculated - - val++; - wave_array++; - } -} -//#define MAXLEVEL ( 0xFFFF / OSCILLATORS ) -#define MAXLEVEL 19000 -#define SUSTAINFAKTOR ( MAXLEVEL / 15 ) - -void setenvelope(struct Voice *voice) -{ - uint8_t n; - - n=get_wavenum(voice); - attackdecay_flag[n]=TRUE; - -// t_attack[n]=AttackRate[voice->AttackDecay>>4]; -// t_decay[n]=DecayReleaseRate[voice->AttackDecay&0x0F]; -// t_release[n]=DecayReleaseRate[voice->SustainRelease&0x0F]; - level_sustain[n]=(voice->SustainRelease>>4)*SUSTAINFAKTOR; - -// m_attack[n]=MAXLEVEL/t_attack[n]; - m_attack[n]=MAXLEVEL/AttackRate[voice->AttackDecay>>4]; -// m_decay[n]=(MAXLEVEL-level_sustain[n]*SUSTAINFAKTOR)/t_decay[n]; - m_decay[n]=(MAXLEVEL-level_sustain[n]*SUSTAINFAKTOR)/DecayReleaseRate[voice->AttackDecay&0x0F]; - -// m_release[n]=(level_sustain[n]*SUSTAINFAKTOR)/t_release[n]; - m_release[n]=(level_sustain[n])/DecayReleaseRate[voice->SustainRelease&0x0F]; -} -/************************************************************************ - - uint8_t set_sidregister(uint8_t regnum, uint8_t value) - - The registers of the virtual SID are set by this routine. - For some registers it is necessary to transform the SID-register - values to some internal settings of the emulator. - To select this registers and to start the calculation, the switch/ - case statement is used. - For instance: If setting the SID status register, new waveforms in - the waveform array are calculated. - - 4.2007 ch - -************************************************************************/ -uint8_t set_sidregister(uint8_t regnum, uint8_t value) -{ - //uint16_t temp; - uint8_t regnum1; - - regnum1=regnum; - - if (regnum > 13) regnum++; - if (regnum > 6 ) regnum++; - - if(regnum>NUMREGISTERS-1) return 1; - Sid.sidregister[regnum]=value; - - switch(regnum1) - { - //voice1 - case 1: - { - //temp=(Sid.sidregister[0]+(Sid.sidregister[1]<<8))/17; - //setfreq(&Sid.block.voice1,temp); - - freq_coefficient[0]=(Sid.sidregister[0]+(Sid.sidregister[1]<<8))/4; - - }break; - case 3: init_waveform(&Sid.block.voice1);break; - case 4: init_waveform(&Sid.block.voice1);break; - case 5: setenvelope(&Sid.block.voice1);break; - case 6: setenvelope(&Sid.block.voice1);break; - - //voice2 - case 8: - { - //temp=(Sid.sidregister[7]+(Sid.sidregister[8]<<8))/17; - //setfreq(&Sid.block.voice2,temp); - freq_coefficient[1]=(Sid.sidregister[7]+(Sid.sidregister[8]<<8))/4; - }break; - case 10: init_waveform(&Sid.block.voice2);break; - case 11: init_waveform(&Sid.block.voice2);break; - case 12: setenvelope(&Sid.block.voice2);break; - case 13: setenvelope(&Sid.block.voice2);break; - - //voice3 - case 15: - { - //temp=(Sid.sidregister[14]+(Sid.sidregister[15]<<8))/17; - //setfreq(&Sid.block.voice3,temp); - freq_coefficient[2]=(Sid.sidregister[14]+(Sid.sidregister[15]<<8))/4; - }break; - case 17: init_waveform(&Sid.block.voice3);break; - case 18: init_waveform(&Sid.block.voice3);break; - case 19: setenvelope(&Sid.block.voice3);break; - case 20: setenvelope(&Sid.block.voice3);break; - } - return 0; -} - - -void startPWMIRQ(void) -{ - timeout = 0; - auto_timeout = 0; - out1 = 0; - - PWMTC = 0; -// PWMPR = 0; - PWMPR = 0; - PWMMR0 = 0x1FF; // pwm rate - PWMMR2 = 0x00; // pwm value - PWMLER = 0x05; - PWMMCR = 0x03; - PWMPCR = (1<<10); - PWMTCR = 0x03; - PWMTCR = 0x09; - - VICVectAddr0 = (unsigned long)&(soundIRQ); - VICVectCntl0 = VIC_SLOT_EN | INT_SRC_PWM; - //VICIntSelect |= INT_PWM; - VICIntEnable = INT_PWM; - -} - - -void setBL(unsigned char level) -{ - bl_val = level; -} - -unsigned char getBL(void) -{ - return bl_val; -} - - - -void __attribute__ ((interrupt("IRQ"))) soundIRQ (void) -{ - - PWMIR = 0x01; - - static uint16_t phase0,phase1,phase2; - static int16_t temp,temp1; - static uint8_t k,flag=0; - static uint8_t timer; - static uint16_t noise8; - static uint16_t sig0,sig1,sig2; - static uint16_t tempphase; - - - - //DEBUGPIN_ON; // Pin to measure processing time - - flag^=1; - if(flag) - { - //DEBUGPIN_ON; // Pin to measure processing time - // Voice1 - tempphase=phase0+freq_coefficient[0]; //0.88us - if(Sid.block.voice1.ControlReg&NOISE) - { - if((tempphase^phase0)&0x4000) sig0=noise8*envelope[0]; - } - else - { - if(Sid.block.voice1.ControlReg&RINGMOD) - { - if(phase2&0x8000) sig0=envelope[0]*-wave0[phase0>>8]; - else sig0=envelope[0]*wave0[phase0>>8]; - } - else sig0=envelope[0]*wave0[phase0>>8]; //2.07us - } - phase0=tempphase; - - // Voice2 - tempphase=phase1+freq_coefficient[1]; //0.88us - if(Sid.block.voice2.ControlReg&NOISE) - { - if((tempphase^phase1)&0x4000) sig1=noise8*envelope[1]; - } - else - { - if(Sid.block.voice2.ControlReg&RINGMOD) - { - if(phase0&0x8000) sig1=envelope[1]*-wave1[phase1>>8]; - else sig1=envelope[1]*wave1[phase1>>8]; - } - else sig1=0xff*wave1[phase1>>8]; //2.07us - } - phase1=tempphase; - - // Voice3 - tempphase=phase2+freq_coefficient[2]; //0.88us - if(Sid.block.voice3.ControlReg&NOISE) - { - if((tempphase^phase2)&0x4000) sig2=noise8*envelope[2]; - } - else - { - if(Sid.block.voice3.ControlReg&RINGMOD) - { - if(phase1&0x8000) sig2=envelope[2]*-wave2[phase2>>8]; - else sig2=envelope[2]*wave2[phase2>>8]; - } - else sig2=envelope[2]*wave2[phase2>>8]; //2.07us - } - phase2=tempphase; - } - else - { - - // temp=sig0+sig1+sig2; - - // voice filter selection - temp=0; // direct output variable - temp1=0; // filter output variable - if(Sid.block.RES_Filt&FILT1) temp1+=sig0; - else temp+=sig0; - if(Sid.block.RES_Filt&FILT2) temp1+=sig1; - else temp+=sig1; - if(Sid.block.RES_Filt&FILT3) temp1+=sig2; - else if(!(Sid.block.Mode_Vol&VOICE3OFF))temp+=sig2; // voice 3 with specal turn off bit - - //filterOutput = IIR2((struct IIR_filter*)&filter04_06, filterInput); - //IIR2(filter04_06, temp1); - k=(temp>>8)+128; - k+=temp1>>10; // not real filter implemeted yet - - //OCR1A=k; // Output to PWM - PWMMR2 = k; - PWMLER = 0x04; - - //DEBUGPIN_ON; // Pin to measure processing time - - // noise generator - for(k=1;k<2;k++) - { - temp1 = noise; - noise=noise << 1; - - temp1 ^= noise; - if ( ( temp1 & 0x4000 ) == 0x4000 ) - { - noise |= 1; - } - } - noise8=noise>>6; -#ifdef NOISEOFF - noise8=0; -#endif - } - - timer--; - if(timer==0) - { - mstimer++; // increase millisecond timer - // mstimerrate=0.992 milli seconds @FCPU16MHz - timer=31; - } - - - VICVectAddr = 0; -} - - - -// SID Registers -#define VOICE1 0 -#define VOICE2 7 -#define VOICE3 14 -#define CONTROLREG 4 -#define ATTACKDECAY 5 -#define SUSTAINRELEASE 6 - -// SID Control Register Bits -#define GATE (1<<0) -#define GATEOFF 0 -#define SYNC (1<<1) // not implemented -#define RINGMOD (1<<2) -#define TEST (1<<3) // not implemented -#define TRIANGLE (1<<4) -#define SAWTOOTH (1<<5) -#define RECTANGLE (1<<6) -#define NOISE (1<<7) - -// notes VOICE1 -#define C1_1 1+VOICE1,0x02,0+VOICE1,0x25, -#define C2_1 1+VOICE1,0x04,0+VOICE1,0x49, -#define C3_1 1+VOICE1,0x08,0+VOICE1,0x93, -#define C4_1 1,0x11,0,0x25, -#define D4_1 1,0x13,0,0x3F, -#define E4_1 1,0x15,0,0x9A, -#define F4_1 1,0x16,0,0xE3, -#define G4_1 1,0x19,0,0x81, -#define A4_1 1,0x1C,0,0xC6, -#define B4_1 1,0x20,0,0x5E, -#define C5_1 1,0x22,0,0x4B, - -// notes VOICE3 -#define C2_2 1+VOICE2,0x04,0+VOICE2,0x49, -#define C4_2 1+VOICE2,0x11,0+VOICE2,0x25, -#define D4_2 1+VOICE2,0x13,0+VOICE2,0x3F, -#define E4_2 1+VOICE2,0x15,0+VOICE2,0x9A, - -// notes VOICE3 -#define C2_3 1+VOICE3,0x04,0+VOICE3,0x49, -#define C4_3 1+VOICE3,0x11,0+VOICE3,0x25, -#define D4_3 1+VOICE3,0x13,0+VOICE3,0x3F, -#define E4_3 1+VOICE3,0x15,0+VOICE3,0x9A, -#define F4_3 1+VOICE3,0x16,0+VOICE3,0xE3, -#define G4_3 1+VOICE3,0x19,0+VOICE3,0x81, -#define A4_3 1+VOICE3,0x1C,0+VOICE3,0xC6, -#define B4_3 1+VOICE3,0x20,0+VOICE3,0x5E, -#define C5_3 1+VOICE3,0x22,0+VOICE3,0x4B, - -// waveforms -#define SETNOISE_1 4,0x81,5,0xBB,6,0xAD, -#define SETNOISE_2 11,0x81,12,0xBB,13,0xAD, -#define SETNOISE_3 18,0x81,19,0xBB,20,0xAD, -#define SETTRIANGLE_1 4,0x11,5,0xBB,6,0xAA, -#define SETTRIANGLE_2 4+VOICE2,0x11,5+VOICE2,0xBB,6+VOICE2,0xAA, -#define SETTRIANGLE_3 4+VOICE3,0x11,5+VOICE3,0xBB,6+VOICE3,0xAA, -#define SETRECTANGLE_1 VOICE1+CONTROLREG,RECTANGLE+GATE,5+VOICE1,0xBB,6+VOICE1,0xAA, - -#define SLOWATTACK 0xB0 -#define FASTATTACK 0x00 -#define SLOWDECAY 0x0A -#define FASTDECAY 0x00 -#define SUSTAINQUITE 0x00 -#define SUSTAINNORM 0xA0 -#define SUSTAINLOUD 0xF0 -#define SLOWRELEASE 0x09 -#define FASTRELEASE 0x00 - - -// pause controll, no SID registers, values will be interpreted by the EMULATOR -#define QUARTER 0xF0,0x00,0xF1,0x01, // pause quarter tone -#define HALF 0xF0,0x00,0xF1,0x02, // pause half tone -#define ONESEC 0xF0,0x00,0xF1,0x04, // pause 2 seconds -#define TWOSEC 0xF0,0x00,0xF1,0x08, // pause 2 seconds -#define FIVESEC 0xF0,0x00,0xF1,40, // pause 2 seconds -#define STOP 0xFF,0xFF, // stops sound generation - -/**************************************************************************** - - static uint8_t sound[] - - Sound Data Array - - The main programm parses the sound data array. - It reads the register address and data from the array - and writes it to the "virtual SID registers". - 0xF0,0xF1 and 0xFF are no SID registers and interpreted as - controll code for the parser. F0+256*F1 gives the value in milliseconds - to pause parsing and let the SID playing it's sound. - After the pause the next register values are read and written to the SID. - At the end of the array ther should be the values 0xFF,0xFF which stop - the parser and stop sound generation. - - syntax: - -static uint8_t sound[] PROGMEM ={ - sidregister,value, - sidregister,value, - .... - 0xF0,pauselowvalue, - 0xF1,pausehighvalue, - .... - sidregister,value, - sidregister,value, - 0xF0,pauselowvalue, - 0xF1,pausehighvalue, - 0xFF,0xFF // stop command, turn sound off -}; - - April 2007 (c) Christoph Haberer, christoph(at)roboterclub-freiburg.de - -****************************************************************************/ -static uint8_t sound[] = { - -/************************************************************* - attack,decay,sustain,release example -*************************************************************/ - - - SETTRIANGLE_1 // set triangle waveform - - ATTACKDECAY+VOICE1,SLOWATTACK+SLOWDECAY, - SUSTAINRELEASE+VOICE1,SUSTAINNORM+SLOWRELEASE, - - - //ATTACKDECAY+VOICE1,0xAA, - //SUSTAINRELEASE+VOICE1,0x1A, - - //ATTACKDECAY+VOICE1,FASTATTACK+5, - //ATTACKDECAY+VOICE1,0xA, - //SUSTAINRELEASE+VOICE1,0x8A, - //SUSTAINRELEASE+VOICE1,SUSTAINQUITE+FASTRELEASE, - - C4_1 // note C4 one channel1 ( voice1 ) - TWOSEC // wait 2 seconds - //FIVESEC - - VOICE1+CONTROLREG,TRIANGLE+GATEOFF, // gate off to start release cycle - - TWOSEC // wait 2 seconds - - //STOP - -/************************************************************* - tone latter -*************************************************************/ - - SETTRIANGLE_1 - C4_1 - HALF - D4_1 - HALF - E4_1 - HALF - F4_1 - HALF - G4_1 - HALF - A4_1 - HALF - B4_1 - HALF - C5_1 - HALF - - TWOSEC - -/************************************************************* - 3 tone example -*************************************************************/ - - SETTRIANGLE_1 - C4_1 - HALF - SETTRIANGLE_2 - E4_2 - HALF - SETTRIANGLE_3 - G4_3 - HALF - - TWOSEC - - // start release cycle - VOICE1+CONTROLREG,TRIANGLE+GATEOFF, - VOICE2+CONTROLREG,TRIANGLE+GATEOFF, - VOICE3+CONTROLREG,TRIANGLE+GATEOFF, - - TWOSEC - TWOSEC - -/************************************************************* - PWM example -*************************************************************/ - - SETRECTANGLE_1 - C4_1 - - 2,0x00, // set PWM value - 3,0x04, // set PWM value - ONESEC - - 2,0x00, // set PWM value - 3,0x06, // set PWM value - ONESEC - - 2,0x00, // set PWM value - 3,0x08, // set PWM value - TWOSEC - -/************************************************************* - ring modulation example -*************************************************************/ - - SETTRIANGLE_1 - F4_1 - - 6,0x8B, // sustain/release - - SETTRIANGLE_3 - C4_3 - 6+VOICE3,0x08, // sustain/release - - VOICE1+CONTROLREG,0x14, // set ringmod, gate off for decay - VOICE3+CONTROLREG,0x00, // gate off - - TWOSEC - TWOSEC - -/************************************************************* - noise example -*************************************************************/ - - // shotnoise - 1,0x40, - 0,0x00, - SETNOISE_1 - ATTACKDECAY+VOICE1,FASTATTACK+5, - SUSTAINRELEASE+VOICE1,SUSTAINQUITE+FASTRELEASE, - QUARTER - - // shotnoise - 1,0x40, - 0,0x00, - SETNOISE_1 - ATTACKDECAY+VOICE1,FASTATTACK+5, - SUSTAINRELEASE+VOICE1,SUSTAINQUITE+FASTRELEASE, - QUARTER - - // shotnoise - 1,0x40, - 0,0x00, - SETNOISE_1 - ATTACKDECAY+VOICE1,FASTATTACK+5, - SUSTAINRELEASE+VOICE1,SUSTAINQUITE+FASTRELEASE, - QUARTER - - VOICE1+CONTROLREG,NOISE+GATEOFF, - - TWOSEC - - // light noise - SETNOISE_1 - 1,0x40, - 0,0x00, - - ATTACKDECAY+VOICE1,SLOWATTACK+SLOWDECAY, - SUSTAINRELEASE+VOICE1,SUSTAINNORM+0x0B, - TWOSEC - - VOICE1+CONTROLREG,NOISE+GATEOFF, - TWOSEC - - // dark noise - SETNOISE_1 - 1,0x05, - 0,0x00, - TWOSEC - -/************************************************************* - 3 tone example -*************************************************************/ - - SETTRIANGLE_1 - C4_1 - HALF - SETTRIANGLE_2 - E4_2 - HALF - SETTRIANGLE_3 - G4_3 - HALF - - TWOSEC - - // start release cycle - VOICE1+CONTROLREG,TRIANGLE+GATEOFF, - VOICE2+CONTROLREG,TRIANGLE+GATEOFF, - VOICE3+CONTROLREG,TRIANGLE+GATEOFF, - - TWOSEC - TWOSEC - - -/************************************************************* - 3 tone gong -*************************************************************/ -/* - SETTRIANGLE_1 - ATTACKDECAY+VOICE1,FASTATTACK+SLOWDECAY, - SUSTAINRELEASE+VOICE1,1+SLOWRELEASE, - C4_1 - HALF - - SETTRIANGLE_2 - ATTACKDECAY+VOICE2,FASTATTACK+SLOWDECAY, - SUSTAINRELEASE+VOICE2,1+SLOWRELEASE, - D4_2 - HALF - - SETTRIANGLE_3 - ATTACKDECAY+VOICE3,FASTATTACK+SLOWDECAY, - SUSTAINRELEASE+VOICE3,1+SLOWRELEASE, - E4_3 - HALF - - TWOSEC - - // start release cycle - VOICE1+CONTROLREG,TRIANGLE+GATEOFF, - VOICE2+CONTROLREG,TRIANGLE+GATEOFF, - VOICE3+CONTROLREG,TRIANGLE+GATEOFF, -*/ -/*************************************************************/ - STOP - }; - - -void playSID(void) { - - int16_t amp[OSCILLATORS]; - uint16_t schedule_timer,temp; - uint8_t n,flag; - uint8_t controll_regadr[3]; - uint16_t soundindex; - - soundindex = 0; - schedule_timer=0; - noise = 0xaa; - - controll_regadr[0] = 4; - controll_regadr[1] = 12; - controll_regadr[2] = 20; - -// struct Voice voice; - - attackdecay_flag[0]=TRUE; - attackdecay_flag[1]=TRUE; - attackdecay_flag[2]=TRUE; - - //initialize SID-registers - - Sid.sidregister[6]=0xF0; - Sid.sidregister[14]=0xF0; - Sid.sidregister[22]=0xF0; - setenvelope(&Sid.block.voice1); - setenvelope(&Sid.block.voice2); - setenvelope(&Sid.block.voice3); - - // set all amplitudes to zero - for(n=0;nMAXLEVEL) - { - amp[n]=MAXLEVEL; - attackdecay_flag[n]=FALSE; // if level reached, then switch to decay - } - } - else // decay cycle - { - if(amp[n]>level_sustain[n]) - { - amp[n]-=m_decay[n]; - if(amp[n]0) - { - amp[n]-=m_release[n]; - if(amp[n]<0) amp[n]=0; - } - } - envelope[n]=amp[n]>>8; - } - //DEBUGPIN_OFF; // Pin to measure processing time - - //DEBUGPIN_ON; // Pin to measure processing time - if(schedule_timer==0) - { -// schedule_timer=MAXTIME; - - flag=TRUE; - while(flag) - { - n=sound[soundindex]; - soundindex++; - - if(n - - 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 3 of the License, 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, see . -*/ - -#ifndef SOUNDCORE_H -#define SOUNDCORE_H - -#define SOUND_OFF 0x00 -#define SOUND_ON 0x01 - -#define MODE_STOP 0x01 -#define MODE_START 0x02 -#define MODE_ONESHOT 0x04 -#define MODE_LOOP 0x08 -#define MODE_SAMPLE 0x10 -#define MODE_SYNTH 0x20 -#define MODE_FREE 0x40 - -#define MAXVOICES 16 - -typedef void(*callback_fn)(void *voice); - -struct t_voice -{ - callback_fn callback; - unsigned char *buffer; - unsigned char mode; - unsigned int len; - unsigned int pos; - short speed; -}; - -extern unsigned char timeout; - -void startPWMIRQ(void); -void __attribute__ ((interrupt("IRQ"))) soundIRQ (void); - -void setBL(unsigned char level); -unsigned char getBL(void); -void initSound(void); -void switchSound(unsigned char onoff); -void playSound(unsigned char *sound, unsigned long len); -void stopSound(void); -void waitSound(void); -void initVoices(void); - -void playSID(void); - -#endif diff --git a/boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h b/boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h deleted file mode 100644 index 501d6f4..0000000 --- a/boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef SPACEENC_CODES_H -#define SPACEENC_CODES_H - -#include "ir-codes/spaceenc/seleco_027" -#include "ir-codes/spaceenc/schneider_dtv3" - -#endif - diff --git a/boop/trunk/buffer.c b/boop/buffer.c similarity index 100% rename from boop/trunk/buffer.c rename to boop/buffer.c diff --git a/boop/trunk/buffer.h b/boop/buffer.h similarity index 100% rename from boop/trunk/buffer.h rename to boop/buffer.h diff --git a/boop/trunk/cc1100/Make.conf b/boop/cc1100/Make.conf similarity index 100% rename from boop/trunk/cc1100/Make.conf rename to boop/cc1100/Make.conf diff --git a/boop/trunk/cc1100/cc1100.c b/boop/cc1100/cc1100.c similarity index 100% rename from boop/trunk/cc1100/cc1100.c rename to boop/cc1100/cc1100.c diff --git a/boop/trunk/cc1100/cc1100.h b/boop/cc1100/cc1100.h similarity index 100% rename from boop/trunk/cc1100/cc1100.h rename to boop/cc1100/cc1100.h diff --git a/boop/trunk/cc1100/fs20.c b/boop/cc1100/fs20.c similarity index 100% rename from boop/trunk/cc1100/fs20.c rename to boop/cc1100/fs20.c diff --git a/boop/trunk/cc1100/fs20.h b/boop/cc1100/fs20.h similarity index 100% rename from boop/trunk/cc1100/fs20.h rename to boop/cc1100/fs20.h diff --git a/boop/trunk/cc1100/rf.c b/boop/cc1100/rf.c similarity index 100% rename from boop/trunk/cc1100/rf.c rename to boop/cc1100/rf.c diff --git a/boop/trunk/cc1100/rf.h b/boop/cc1100/rf.h similarity index 100% rename from boop/trunk/cc1100/rf.h rename to boop/cc1100/rf.h diff --git a/boop/trunk/cc1100/scan.c b/boop/cc1100/scan.c similarity index 100% rename from boop/trunk/cc1100/scan.c rename to boop/cc1100/scan.c diff --git a/boop/trunk/cc1100/scan.h b/boop/cc1100/scan.h similarity index 100% rename from boop/trunk/cc1100/scan.h rename to boop/cc1100/scan.h diff --git a/boop/trunk/crt.s b/boop/crt.s similarity index 100% rename from boop/trunk/crt.s rename to boop/crt.s diff --git a/boop/trunk/display/GrayScaler.exe b/boop/display/GrayScaler.exe similarity index 100% rename from boop/trunk/display/GrayScaler.exe rename to boop/display/GrayScaler.exe diff --git a/boop/trunk/display/Hourglas_2bpp.bmp b/boop/display/Hourglas_2bpp.bmp similarity index 100% rename from boop/trunk/display/Hourglas_2bpp.bmp rename to boop/display/Hourglas_2bpp.bmp diff --git a/boop/trunk/display/Hourglas_t_3bpp_t.bmp b/boop/display/Hourglas_t_3bpp_t.bmp similarity index 100% rename from boop/trunk/display/Hourglas_t_3bpp_t.bmp rename to boop/display/Hourglas_t_3bpp_t.bmp diff --git a/boop/trunk/display/Make.conf b/boop/display/Make.conf similarity index 100% rename from boop/trunk/display/Make.conf rename to boop/display/Make.conf diff --git a/boop/trunk/display/backlight.c b/boop/display/backlight.c similarity index 100% rename from boop/trunk/display/backlight.c rename to boop/display/backlight.c diff --git a/boop/trunk/display/backlight.h b/boop/display/backlight.h similarity index 100% rename from boop/trunk/display/backlight.h rename to boop/display/backlight.h diff --git a/boop/trunk/display/boop_logo b/boop/display/boop_logo similarity index 100% rename from boop/trunk/display/boop_logo rename to boop/display/boop_logo diff --git a/boop/trunk/display/drawDigit.c b/boop/display/drawDigit.c similarity index 100% rename from boop/trunk/display/drawDigit.c rename to boop/display/drawDigit.c diff --git a/boop/trunk/display/drawDigit.h b/boop/display/drawDigit.h similarity index 100% rename from boop/trunk/display/drawDigit.h rename to boop/display/drawDigit.h diff --git a/boop/trunk/display/drawIcon.c b/boop/display/drawIcon.c similarity index 100% rename from boop/trunk/display/drawIcon.c rename to boop/display/drawIcon.c diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/charset.bits b/boop/display/fonts/charset.bits similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/charset.bits rename to boop/display/fonts/charset.bits diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/charset.info b/boop/display/fonts/charset.info similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/charset.info rename to boop/display/fonts/charset.info diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/smooth.bits b/boop/display/fonts/smooth.bits similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/smooth.bits rename to boop/display/fonts/smooth.bits diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/smooth.info b/boop/display/fonts/smooth.info similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/smooth.info rename to boop/display/fonts/smooth.info diff --git a/boop/trunk/display/fonty.c b/boop/display/fonty.c similarity index 100% rename from boop/trunk/display/fonty.c rename to boop/display/fonty.c diff --git a/boop/trunk/display/fonty.h b/boop/display/fonty.h similarity index 100% rename from boop/trunk/display/fonty.h rename to boop/display/fonty.h diff --git a/boop/trunk/display/icon.h b/boop/display/icon.h similarity index 100% rename from boop/trunk/display/icon.h rename to boop/display/icon.h diff --git a/boop/trunk/display/iconHourglas.h b/boop/display/iconHourglas.h similarity index 100% rename from boop/trunk/display/iconHourglas.h rename to boop/display/iconHourglas.h diff --git a/boop/trunk/display/iconHourglas2.h b/boop/display/iconHourglas2.h similarity index 100% rename from boop/trunk/display/iconHourglas2.h rename to boop/display/iconHourglas2.h diff --git a/boop/trunk/display/iconHourglas2_t.h b/boop/display/iconHourglas2_t.h similarity index 100% rename from boop/trunk/display/iconHourglas2_t.h rename to boop/display/iconHourglas2_t.h diff --git a/boop/trunk/display/iconHourglas_t.h b/boop/display/iconHourglas_t.h similarity index 100% rename from boop/trunk/display/iconHourglas_t.h rename to boop/display/iconHourglas_t.h diff --git a/boop/trunk/display/lcd.c b/boop/display/lcd.c similarity index 100% rename from boop/trunk/display/lcd.c rename to boop/display/lcd.c diff --git a/boop/trunk/display/lcd.h b/boop/display/lcd.h similarity index 100% rename from boop/trunk/display/lcd.h rename to boop/display/lcd.h diff --git a/boop/trunk/flash/Make.conf b/boop/flash/Make.conf similarity index 100% rename from boop/trunk/flash/Make.conf rename to boop/flash/Make.conf diff --git a/boop/trunk/flash/bfs.c b/boop/flash/bfs.c similarity index 100% rename from boop/trunk/flash/bfs.c rename to boop/flash/bfs.c diff --git a/boop/trunk/flash/bfs.h b/boop/flash/bfs.h similarity index 100% rename from boop/trunk/flash/bfs.h rename to boop/flash/bfs.h diff --git a/boop/trunk/flash/flash.c b/boop/flash/flash.c similarity index 100% rename from boop/trunk/flash/flash.c rename to boop/flash/flash.c diff --git a/boop/trunk/flash/flash.h b/boop/flash/flash.h similarity index 100% rename from boop/trunk/flash/flash.h rename to boop/flash/flash.h diff --git a/boop/trunk/games/Make.conf b/boop/games/Make.conf similarity index 100% rename from boop/trunk/games/Make.conf rename to boop/games/Make.conf diff --git a/boop/trunk/games/c4_map.h b/boop/games/c4_map.h similarity index 100% rename from boop/trunk/games/c4_map.h rename to boop/games/c4_map.h diff --git a/boop/trunk/games/connect4.c b/boop/games/connect4.c similarity index 100% rename from boop/trunk/games/connect4.c rename to boop/games/connect4.c diff --git a/boop/trunk/games/connect4.h b/boop/games/connect4.h similarity index 100% rename from boop/trunk/games/connect4.h rename to boop/games/connect4.h diff --git a/boop/trunk/games/gamesmenu.c b/boop/games/gamesmenu.c similarity index 100% rename from boop/trunk/games/gamesmenu.c rename to boop/games/gamesmenu.c diff --git a/boop/trunk/games/gamesmenu.h b/boop/games/gamesmenu.h similarity index 100% rename from boop/trunk/games/gamesmenu.h rename to boop/games/gamesmenu.h diff --git a/boop/trunk/games/sokoban.c b/boop/games/sokoban.c similarity index 100% rename from boop/trunk/games/sokoban.c rename to boop/games/sokoban.c diff --git a/boop/trunk/games/sokoban.h b/boop/games/sokoban.h similarity index 100% rename from boop/trunk/games/sokoban.h rename to boop/games/sokoban.h diff --git a/boop/trunk/games/sokoban_levels.h b/boop/games/sokoban_levels.h similarity index 100% rename from boop/trunk/games/sokoban_levels.h rename to boop/games/sokoban_levels.h diff --git a/boop/trunk/games/tic_tac_toe.c b/boop/games/tic_tac_toe.c similarity index 100% rename from boop/trunk/games/tic_tac_toe.c rename to boop/games/tic_tac_toe.c diff --git a/boop/trunk/games/tic_tac_toe.h b/boop/games/tic_tac_toe.h similarity index 100% rename from boop/trunk/games/tic_tac_toe.h rename to boop/games/tic_tac_toe.h diff --git a/boop/trunk/global.c b/boop/global.c similarity index 100% rename from boop/trunk/global.c rename to boop/global.c diff --git a/boop/trunk/global.h b/boop/global.h similarity index 100% rename from boop/trunk/global.h rename to boop/global.h diff --git a/boop/trunk/gui/Cross_2bpp.bmp b/boop/gui/Cross_2bpp.bmp similarity index 100% rename from boop/trunk/gui/Cross_2bpp.bmp rename to boop/gui/Cross_2bpp.bmp diff --git a/boop/trunk/gui/Cross_t_3bpp_t.bmp b/boop/gui/Cross_t_3bpp_t.bmp similarity index 100% rename from boop/trunk/gui/Cross_t_3bpp_t.bmp rename to boop/gui/Cross_t_3bpp_t.bmp diff --git a/boop/trunk/gui/FF_2bpp.bmp b/boop/gui/FF_2bpp.bmp similarity index 100% rename from boop/trunk/gui/FF_2bpp.bmp rename to boop/gui/FF_2bpp.bmp diff --git a/boop/trunk/gui/FR_2bpp.bmp b/boop/gui/FR_2bpp.bmp similarity index 100% rename from boop/trunk/gui/FR_2bpp.bmp rename to boop/gui/FR_2bpp.bmp diff --git a/boop/trunk/gui/Leo_Gray_128_2bpp.bmp b/boop/gui/Leo_Gray_128_2bpp.bmp similarity index 100% rename from boop/trunk/gui/Leo_Gray_128_2bpp.bmp rename to boop/gui/Leo_Gray_128_2bpp.bmp diff --git a/boop/trunk/gui/Make.conf b/boop/gui/Make.conf similarity index 100% rename from boop/trunk/gui/Make.conf rename to boop/gui/Make.conf diff --git a/boop/trunk/gui/Pause_2bpp.bmp b/boop/gui/Pause_2bpp.bmp similarity index 100% rename from boop/trunk/gui/Pause_2bpp.bmp rename to boop/gui/Pause_2bpp.bmp diff --git a/boop/trunk/gui/Play_2bpp.bmp b/boop/gui/Play_2bpp.bmp similarity index 100% rename from boop/trunk/gui/Play_2bpp.bmp rename to boop/gui/Play_2bpp.bmp diff --git a/boop/trunk/gui/Stop_2bpp.bmp b/boop/gui/Stop_2bpp.bmp similarity index 100% rename from boop/trunk/gui/Stop_2bpp.bmp rename to boop/gui/Stop_2bpp.bmp diff --git a/boop/trunk/gui/controls.c b/boop/gui/controls.c similarity index 100% rename from boop/trunk/gui/controls.c rename to boop/gui/controls.c diff --git a/boop/trunk/gui/controls.h b/boop/gui/controls.h similarity index 100% rename from boop/trunk/gui/controls.h rename to boop/gui/controls.h diff --git a/boop/trunk/gui/iconCross.h b/boop/gui/iconCross.h similarity index 100% rename from boop/trunk/gui/iconCross.h rename to boop/gui/iconCross.h diff --git a/boop/trunk/gui/iconCross_t.h b/boop/gui/iconCross_t.h similarity index 100% rename from boop/trunk/gui/iconCross_t.h rename to boop/gui/iconCross_t.h diff --git a/boop/trunk/gui/iconFf.h b/boop/gui/iconFf.h similarity index 100% rename from boop/trunk/gui/iconFf.h rename to boop/gui/iconFf.h diff --git a/boop/trunk/gui/iconFr.h b/boop/gui/iconFr.h similarity index 100% rename from boop/trunk/gui/iconFr.h rename to boop/gui/iconFr.h diff --git a/boop/trunk/gui/iconHourglas.h b/boop/gui/iconHourglas.h similarity index 100% rename from boop/trunk/gui/iconHourglas.h rename to boop/gui/iconHourglas.h diff --git a/boop/trunk/gui/iconHourglas_t.h b/boop/gui/iconHourglas_t.h similarity index 100% rename from boop/trunk/gui/iconHourglas_t.h rename to boop/gui/iconHourglas_t.h diff --git a/boop/trunk/gui/iconLeo_gray_128.h b/boop/gui/iconLeo_gray_128.h similarity index 100% rename from boop/trunk/gui/iconLeo_gray_128.h rename to boop/gui/iconLeo_gray_128.h diff --git a/boop/trunk/gui/iconPause.h b/boop/gui/iconPause.h similarity index 100% rename from boop/trunk/gui/iconPause.h rename to boop/gui/iconPause.h diff --git a/boop/trunk/gui/iconPlay.h b/boop/gui/iconPlay.h similarity index 100% rename from boop/trunk/gui/iconPlay.h rename to boop/gui/iconPlay.h diff --git a/boop/trunk/gui/iconStop.h b/boop/gui/iconStop.h similarity index 100% rename from boop/trunk/gui/iconStop.h rename to boop/gui/iconStop.h diff --git a/boop/trunk/gui/mainmenu.c b/boop/gui/mainmenu.c similarity index 100% rename from boop/trunk/gui/mainmenu.c rename to boop/gui/mainmenu.c diff --git a/boop/trunk/gui/mainmenu.h b/boop/gui/mainmenu.h similarity index 100% rename from boop/trunk/gui/mainmenu.h rename to boop/gui/mainmenu.h diff --git a/boop/trunk/gui/menu.c b/boop/gui/menu.c similarity index 100% rename from boop/trunk/gui/menu.c rename to boop/gui/menu.c diff --git a/boop/trunk/gui/menu.h b/boop/gui/menu.h similarity index 100% rename from boop/trunk/gui/menu.h rename to boop/gui/menu.h diff --git a/boop/trunk/gui/settingsmenu.c b/boop/gui/settingsmenu.c similarity index 100% rename from boop/trunk/gui/settingsmenu.c rename to boop/gui/settingsmenu.c diff --git a/boop/trunk/gui/settingsmenu.h b/boop/gui/settingsmenu.h similarity index 100% rename from boop/trunk/gui/settingsmenu.h rename to boop/gui/settingsmenu.h diff --git a/boop/trunk/gui/testmenu.c b/boop/gui/testmenu.c similarity index 100% rename from boop/trunk/gui/testmenu.c rename to boop/gui/testmenu.c diff --git a/boop/trunk/gui/testmenu.h b/boop/gui/testmenu.h similarity index 100% rename from boop/trunk/gui/testmenu.h rename to boop/gui/testmenu.h diff --git a/boop/trunk/infrared/Make.conf b/boop/infrared/Make.conf similarity index 100% rename from boop/trunk/infrared/Make.conf rename to boop/infrared/Make.conf diff --git a/boop/trunk/infrared/codes.c b/boop/infrared/codes.c similarity index 100% rename from boop/trunk/infrared/codes.c rename to boop/infrared/codes.c diff --git a/boop/trunk/infrared/codes.h b/boop/infrared/codes.h similarity index 100% rename from boop/trunk/infrared/codes.h rename to boop/infrared/codes.h diff --git a/boop/trunk/infrared/encoders.c b/boop/infrared/encoders.c similarity index 100% rename from boop/trunk/infrared/encoders.c rename to boop/infrared/encoders.c diff --git a/boop/trunk/infrared/encoders.h b/boop/infrared/encoders.h similarity index 100% rename from boop/trunk/infrared/encoders.h rename to boop/infrared/encoders.h diff --git a/boop/trunk/infrared/infrared.c b/boop/infrared/infrared.c similarity index 100% rename from boop/trunk/infrared/infrared.c rename to boop/infrared/infrared.c diff --git a/boop/trunk/infrared/infrared.h b/boop/infrared/infrared.h similarity index 100% rename from boop/trunk/infrared/infrared.h rename to boop/infrared/infrared.h diff --git a/boop/trunk/infrared/infrared_encoders.h b/boop/infrared/infrared_encoders.h similarity index 100% rename from boop/trunk/infrared/infrared_encoders.h rename to boop/infrared/infrared_encoders.h diff --git a/boop/trunk/infrared/infraredirq.c b/boop/infrared/infraredirq.c similarity index 100% rename from boop/trunk/infrared/infraredirq.c rename to boop/infrared/infraredirq.c diff --git a/boop/trunk/infrared/infraredirq.h b/boop/infrared/infraredirq.h similarity index 100% rename from boop/trunk/infrared/infraredirq.h rename to boop/infrared/infraredirq.h diff --git a/boop/trunk/infrared/ir_capture.c b/boop/infrared/ir_capture.c similarity index 100% rename from boop/trunk/infrared/ir_capture.c rename to boop/infrared/ir_capture.c diff --git a/boop/trunk/infrared/ir_capture.h b/boop/infrared/ir_capture.h similarity index 100% rename from boop/trunk/infrared/ir_capture.h rename to boop/infrared/ir_capture.h diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_019 b/boop/infrared/ir_codes/itt/seleco_019 similarity index 100% rename from boop/trunk/infrared/ir_codes/itt/seleco_019 rename to boop/infrared/ir_codes/itt/seleco_019 diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_049 b/boop/infrared/ir_codes/itt/seleco_049 similarity index 100% rename from boop/trunk/infrared/ir_codes/itt/seleco_049 rename to boop/infrared/ir_codes/itt/seleco_049 diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_108 b/boop/infrared/ir_codes/itt/seleco_108 similarity index 100% rename from boop/trunk/infrared/ir_codes/itt/seleco_108 rename to boop/infrared/ir_codes/itt/seleco_108 diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_131 b/boop/infrared/ir_codes/itt/seleco_131 similarity index 100% rename from boop/trunk/infrared/ir_codes/itt/seleco_131 rename to boop/infrared/ir_codes/itt/seleco_131 diff --git a/boop/trunk/infrared/ir_codes/lirc/apple_remote1 b/boop/infrared/ir_codes/lirc/apple_remote1 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/apple_remote1 rename to boop/infrared/ir_codes/lirc/apple_remote1 diff --git a/boop/trunk/infrared/ir_codes/lirc/fs20 b/boop/infrared/ir_codes/lirc/fs20 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/fs20 rename to boop/infrared/ir_codes/lirc/fs20 diff --git a/boop/trunk/infrared/ir_codes/lirc/hx2262 b/boop/infrared/ir_codes/lirc/hx2262 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/hx2262 rename to boop/infrared/ir_codes/lirc/hx2262 diff --git a/boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 b/boop/infrared/ir_codes/lirc/olympus_rm-1 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 rename to boop/infrared/ir_codes/lirc/olympus_rm-1 diff --git a/boop/trunk/infrared/ir_codes/lirc/rev008340 b/boop/infrared/ir_codes/lirc/rev008340 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/rev008340 rename to boop/infrared/ir_codes/lirc/rev008340 diff --git a/boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 b/boop/infrared/ir_codes/lirc/samsung_ue46b6000 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 rename to boop/infrared/ir_codes/lirc/samsung_ue46b6000 diff --git a/boop/trunk/infrared/ir_codes/lirc/str_de545 b/boop/infrared/ir_codes/lirc/str_de545 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/str_de545 rename to boop/infrared/ir_codes/lirc/str_de545 diff --git a/boop/trunk/infrared/ir_codes/lirc/ufs910 b/boop/infrared/ir_codes/lirc/ufs910 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/ufs910 rename to boop/infrared/ir_codes/lirc/ufs910 diff --git a/boop/trunk/infrared/ir_codes/lirc/ufs922 b/boop/infrared/ir_codes/lirc/ufs922 similarity index 100% rename from boop/trunk/infrared/ir_codes/lirc/ufs922 rename to boop/infrared/ir_codes/lirc/ufs922 diff --git a/boop/trunk/infrared/ir_codes/nrc17/dbox2 b/boop/infrared/ir_codes/nrc17/dbox2 similarity index 100% rename from boop/trunk/infrared/ir_codes/nrc17/dbox2 rename to boop/infrared/ir_codes/nrc17/dbox2 diff --git a/boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 b/boop/infrared/ir_codes/nrc17/grundig_tp720 similarity index 100% rename from boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 rename to boop/infrared/ir_codes/nrc17/grundig_tp720 diff --git a/boop/trunk/infrared/ir_codes/rc5/HARMONY_655 b/boop/infrared/ir_codes/rc5/HARMONY_655 similarity index 100% rename from boop/trunk/infrared/ir_codes/rc5/HARMONY_655 rename to boop/infrared/ir_codes/rc5/HARMONY_655 diff --git a/boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 b/boop/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 similarity index 100% rename from boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 rename to boop/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 diff --git a/boop/trunk/infrared/ir_codes/rc5/tv b/boop/infrared/ir_codes/rc5/tv similarity index 100% rename from boop/trunk/infrared/ir_codes/rc5/tv rename to boop/infrared/ir_codes/rc5/tv diff --git a/boop/trunk/infrared/ir_codes/rc6/dvd b/boop/infrared/ir_codes/rc6/dvd similarity index 100% rename from boop/trunk/infrared/ir_codes/rc6/dvd rename to boop/infrared/ir_codes/rc6/dvd diff --git a/boop/trunk/infrared/ir_codes/rc6/tv b/boop/infrared/ir_codes/rc6/tv similarity index 100% rename from boop/trunk/infrared/ir_codes/rc6/tv rename to boop/infrared/ir_codes/rc6/tv diff --git a/boop/trunk/infrared/ir_codes/rc6/ufs922 b/boop/infrared/ir_codes/rc6/ufs922 similarity index 100% rename from boop/trunk/infrared/ir_codes/rc6/ufs922 rename to boop/infrared/ir_codes/rc6/ufs922 diff --git a/boop/trunk/infrared/ir_codes/rca/xbox b/boop/infrared/ir_codes/rca/xbox similarity index 100% rename from boop/trunk/infrared/ir_codes/rca/xbox rename to boop/infrared/ir_codes/rca/xbox diff --git a/boop/trunk/infrared/ir_codes/rcmm/galaxis b/boop/infrared/ir_codes/rcmm/galaxis similarity index 100% rename from boop/trunk/infrared/ir_codes/rcmm/galaxis rename to boop/infrared/ir_codes/rcmm/galaxis diff --git a/boop/trunk/infrared/ir_codes/rcmm/ufs910 b/boop/infrared/ir_codes/rcmm/ufs910 similarity index 100% rename from boop/trunk/infrared/ir_codes/rcmm/ufs910 rename to boop/infrared/ir_codes/rcmm/ufs910 diff --git a/boop/trunk/infrared/ir_codes/rec80/rak_sc957wk b/boop/infrared/ir_codes/rec80/rak_sc957wk similarity index 100% rename from boop/trunk/infrared/ir_codes/rec80/rak_sc957wk rename to boop/infrared/ir_codes/rec80/rak_sc957wk diff --git a/boop/trunk/infrared/ir_codes/recs80/seleco_020 b/boop/infrared/ir_codes/recs80/seleco_020 similarity index 100% rename from boop/trunk/infrared/ir_codes/recs80/seleco_020 rename to boop/infrared/ir_codes/recs80/seleco_020 diff --git a/boop/trunk/infrared/ir_codes/recs80/seleco_157 b/boop/infrared/ir_codes/recs80/seleco_157 similarity index 100% rename from boop/trunk/infrared/ir_codes/recs80/seleco_157 rename to boop/infrared/ir_codes/recs80/seleco_157 diff --git a/boop/trunk/infrared/ir_codes/rf/cc1100_a0 b/boop/infrared/ir_codes/rf/cc1100_a0 similarity index 100% rename from boop/trunk/infrared/ir_codes/rf/cc1100_a0 rename to boop/infrared/ir_codes/rf/cc1100_a0 diff --git a/boop/trunk/infrared/ir_codes/rf/cc1100_a1 b/boop/infrared/ir_codes/rf/cc1100_a1 similarity index 100% rename from boop/trunk/infrared/ir_codes/rf/cc1100_a1 rename to boop/infrared/ir_codes/rf/cc1100_a1 diff --git a/boop/trunk/infrared/ir_codes/sirc/UFD400 b/boop/infrared/ir_codes/sirc/UFD400 similarity index 100% rename from boop/trunk/infrared/ir_codes/sirc/UFD400 rename to boop/infrared/ir_codes/sirc/UFD400 diff --git a/boop/trunk/infrared/ir_codes/sirc/rm-pp411 b/boop/infrared/ir_codes/sirc/rm-pp411 similarity index 100% rename from boop/trunk/infrared/ir_codes/sirc/rm-pp411 rename to boop/infrared/ir_codes/sirc/rm-pp411 diff --git a/boop/trunk/infrared/ir_codes/sirc/tv b/boop/infrared/ir_codes/sirc/tv similarity index 100% rename from boop/trunk/infrared/ir_codes/sirc/tv rename to boop/infrared/ir_codes/sirc/tv diff --git a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 b/boop/infrared/ir_codes/spaceenc/schneider_dtv3 similarity index 100% rename from boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 rename to boop/infrared/ir_codes/spaceenc/schneider_dtv3 diff --git a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra b/boop/infrared/ir_codes/spaceenc/schneider_dtv3_xtra similarity index 100% rename from boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra rename to boop/infrared/ir_codes/spaceenc/schneider_dtv3_xtra diff --git a/boop/trunk/infrared/ir_codes/spaceenc/seleco_027 b/boop/infrared/ir_codes/spaceenc/seleco_027 similarity index 100% rename from boop/trunk/infrared/ir_codes/spaceenc/seleco_027 rename to boop/infrared/ir_codes/spaceenc/seleco_027 diff --git a/boop/trunk/infrared/ir_itt.c b/boop/infrared/ir_itt.c similarity index 100% rename from boop/trunk/infrared/ir_itt.c rename to boop/infrared/ir_itt.c diff --git a/boop/trunk/infrared/ir_itt.h b/boop/infrared/ir_itt.h similarity index 100% rename from boop/trunk/infrared/ir_itt.h rename to boop/infrared/ir_itt.h diff --git a/boop/trunk/infrared/ir_lirc.c b/boop/infrared/ir_lirc.c similarity index 100% rename from boop/trunk/infrared/ir_lirc.c rename to boop/infrared/ir_lirc.c diff --git a/boop/trunk/infrared/ir_lirc.h b/boop/infrared/ir_lirc.h similarity index 100% rename from boop/trunk/infrared/ir_lirc.h rename to boop/infrared/ir_lirc.h diff --git a/boop/trunk/infrared/ir_nrc17.c b/boop/infrared/ir_nrc17.c similarity index 100% rename from boop/trunk/infrared/ir_nrc17.c rename to boop/infrared/ir_nrc17.c diff --git a/boop/trunk/infrared/ir_nrc17.h b/boop/infrared/ir_nrc17.h similarity index 100% rename from boop/trunk/infrared/ir_nrc17.h rename to boop/infrared/ir_nrc17.h diff --git a/boop/trunk/infrared/ir_raw.c b/boop/infrared/ir_raw.c similarity index 100% rename from boop/trunk/infrared/ir_raw.c rename to boop/infrared/ir_raw.c diff --git a/boop/trunk/infrared/ir_raw.h b/boop/infrared/ir_raw.h similarity index 100% rename from boop/trunk/infrared/ir_raw.h rename to boop/infrared/ir_raw.h diff --git a/boop/trunk/infrared/ir_rc5.c b/boop/infrared/ir_rc5.c similarity index 100% rename from boop/trunk/infrared/ir_rc5.c rename to boop/infrared/ir_rc5.c diff --git a/boop/trunk/infrared/ir_rc5.h b/boop/infrared/ir_rc5.h similarity index 100% rename from boop/trunk/infrared/ir_rc5.h rename to boop/infrared/ir_rc5.h diff --git a/boop/trunk/infrared/ir_rc6.c b/boop/infrared/ir_rc6.c similarity index 100% rename from boop/trunk/infrared/ir_rc6.c rename to boop/infrared/ir_rc6.c diff --git a/boop/trunk/infrared/ir_rc6.h b/boop/infrared/ir_rc6.h similarity index 100% rename from boop/trunk/infrared/ir_rc6.h rename to boop/infrared/ir_rc6.h diff --git a/boop/trunk/infrared/ir_rca.c b/boop/infrared/ir_rca.c similarity index 100% rename from boop/trunk/infrared/ir_rca.c rename to boop/infrared/ir_rca.c diff --git a/boop/trunk/infrared/ir_rca.h b/boop/infrared/ir_rca.h similarity index 100% rename from boop/trunk/infrared/ir_rca.h rename to boop/infrared/ir_rca.h diff --git a/boop/trunk/infrared/ir_rcmm.c b/boop/infrared/ir_rcmm.c similarity index 100% rename from boop/trunk/infrared/ir_rcmm.c rename to boop/infrared/ir_rcmm.c diff --git a/boop/trunk/infrared/ir_rcmm.h b/boop/infrared/ir_rcmm.h similarity index 100% rename from boop/trunk/infrared/ir_rcmm.h rename to boop/infrared/ir_rcmm.h diff --git a/boop/trunk/infrared/ir_rec80.c b/boop/infrared/ir_rec80.c similarity index 100% rename from boop/trunk/infrared/ir_rec80.c rename to boop/infrared/ir_rec80.c diff --git a/boop/trunk/infrared/ir_rec80.h b/boop/infrared/ir_rec80.h similarity index 100% rename from boop/trunk/infrared/ir_rec80.h rename to boop/infrared/ir_rec80.h diff --git a/boop/trunk/infrared/ir_recs80.c b/boop/infrared/ir_recs80.c similarity index 100% rename from boop/trunk/infrared/ir_recs80.c rename to boop/infrared/ir_recs80.c diff --git a/boop/trunk/infrared/ir_recs80.h b/boop/infrared/ir_recs80.h similarity index 100% rename from boop/trunk/infrared/ir_recs80.h rename to boop/infrared/ir_recs80.h diff --git a/boop/trunk/infrared/ir_rf.c b/boop/infrared/ir_rf.c similarity index 100% rename from boop/trunk/infrared/ir_rf.c rename to boop/infrared/ir_rf.c diff --git a/boop/trunk/infrared/ir_rf.h b/boop/infrared/ir_rf.h similarity index 100% rename from boop/trunk/infrared/ir_rf.h rename to boop/infrared/ir_rf.h diff --git a/boop/trunk/infrared/ir_selector.c b/boop/infrared/ir_selector.c similarity index 100% rename from boop/trunk/infrared/ir_selector.c rename to boop/infrared/ir_selector.c diff --git a/boop/trunk/infrared/ir_selector.h b/boop/infrared/ir_selector.h similarity index 100% rename from boop/trunk/infrared/ir_selector.h rename to boop/infrared/ir_selector.h diff --git a/boop/trunk/infrared/ir_sirc.c b/boop/infrared/ir_sirc.c similarity index 100% rename from boop/trunk/infrared/ir_sirc.c rename to boop/infrared/ir_sirc.c diff --git a/boop/trunk/infrared/ir_sirc.h b/boop/infrared/ir_sirc.h similarity index 100% rename from boop/trunk/infrared/ir_sirc.h rename to boop/infrared/ir_sirc.h diff --git a/boop/trunk/infrared/ir_spaceenc.c b/boop/infrared/ir_spaceenc.c similarity index 100% rename from boop/trunk/infrared/ir_spaceenc.c rename to boop/infrared/ir_spaceenc.c diff --git a/boop/trunk/infrared/ir_spaceenc.h b/boop/infrared/ir_spaceenc.h similarity index 100% rename from boop/trunk/infrared/ir_spaceenc.h rename to boop/infrared/ir_spaceenc.h diff --git a/boop/trunk/interrupt/Make.conf b/boop/interrupt/Make.conf similarity index 100% rename from boop/trunk/interrupt/Make.conf rename to boop/interrupt/Make.conf diff --git a/boop/trunk/interrupt/irq.c b/boop/interrupt/irq.c similarity index 100% rename from boop/trunk/interrupt/irq.c rename to boop/interrupt/irq.c diff --git a/boop/trunk/interrupt/irq.h b/boop/interrupt/irq.h similarity index 100% rename from boop/trunk/interrupt/irq.h rename to boop/interrupt/irq.h diff --git a/boop/trunk/keyboard/Make.conf b/boop/keyboard/Make.conf similarity index 100% rename from boop/trunk/keyboard/Make.conf rename to boop/keyboard/Make.conf diff --git a/boop/trunk/keyboard/keyboard.c b/boop/keyboard/keyboard.c similarity index 100% rename from boop/trunk/keyboard/keyboard.c rename to boop/keyboard/keyboard.c diff --git a/boop/trunk/keyboard/keyboard.h b/boop/keyboard/keyboard.h similarity index 100% rename from boop/trunk/keyboard/keyboard.h rename to boop/keyboard/keyboard.h diff --git a/boop/trunk/keyboard/keyirq.c b/boop/keyboard/keyirq.c similarity index 100% rename from boop/trunk/keyboard/keyirq.c rename to boop/keyboard/keyirq.c diff --git a/boop/trunk/keyboard/keyirq.h b/boop/keyboard/keyirq.h similarity index 100% rename from boop/trunk/keyboard/keyirq.h rename to boop/keyboard/keyirq.h diff --git a/boop/trunk/lpc2220.h b/boop/lpc2220.h similarity index 100% rename from boop/trunk/lpc2220.h rename to boop/lpc2220.h diff --git a/boop/trunk/lpc2220_rom.ld b/boop/lpc2220_rom.ld similarity index 100% rename from boop/trunk/lpc2220_rom.ld rename to boop/lpc2220_rom.ld diff --git a/boop/trunk/main.c b/boop/main.c similarity index 100% rename from boop/trunk/main.c rename to boop/main.c diff --git a/boop/trunk/rtc/Make.conf b/boop/rtc/Make.conf similarity index 100% rename from boop/trunk/rtc/Make.conf rename to boop/rtc/Make.conf diff --git a/boop/trunk/rtc/i2c.c b/boop/rtc/i2c.c similarity index 100% rename from boop/trunk/rtc/i2c.c rename to boop/rtc/i2c.c diff --git a/boop/trunk/rtc/i2c.h b/boop/rtc/i2c.h similarity index 100% rename from boop/trunk/rtc/i2c.h rename to boop/rtc/i2c.h diff --git a/boop/trunk/rtc/rtc.c b/boop/rtc/rtc.c similarity index 100% rename from boop/trunk/rtc/rtc.c rename to boop/rtc/rtc.c diff --git a/boop/trunk/rtc/rtc.h b/boop/rtc/rtc.h similarity index 100% rename from boop/trunk/rtc/rtc.h rename to boop/rtc/rtc.h diff --git a/boop/trunk/rtc/rtctimer.c b/boop/rtc/rtctimer.c similarity index 100% rename from boop/trunk/rtc/rtctimer.c rename to boop/rtc/rtctimer.c diff --git a/boop/trunk/rtc/rtctimer.h b/boop/rtc/rtctimer.h similarity index 100% rename from boop/trunk/rtc/rtctimer.h rename to boop/rtc/rtctimer.h diff --git a/boop/trunk/serial/Make.conf b/boop/serial/Make.conf similarity index 100% rename from boop/trunk/serial/Make.conf rename to boop/serial/Make.conf diff --git a/boop/trunk/serial/redirector.c b/boop/serial/redirector.c similarity index 100% rename from boop/trunk/serial/redirector.c rename to boop/serial/redirector.c diff --git a/boop/trunk/serial/redirector.h b/boop/serial/redirector.h similarity index 100% rename from boop/trunk/serial/redirector.h rename to boop/serial/redirector.h diff --git a/boop/trunk/serial/serial.c b/boop/serial/serial.c similarity index 100% rename from boop/trunk/serial/serial.c rename to boop/serial/serial.c diff --git a/boop/trunk/serial/serial.h b/boop/serial/serial.h similarity index 100% rename from boop/trunk/serial/serial.h rename to boop/serial/serial.h diff --git a/boop/trunk/serial/serirq.c b/boop/serial/serirq.c similarity index 100% rename from boop/trunk/serial/serirq.c rename to boop/serial/serirq.c diff --git a/boop/branches/ram_version/telekatz_soundtest/sound3.h b/boop/sound3.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/sound3.h rename to boop/sound3.h diff --git a/boop/trunk/syscalls.c b/boop/syscalls.c similarity index 100% rename from boop/trunk/syscalls.c rename to boop/syscalls.c diff --git a/boop/trunk/timer/Make.conf b/boop/timer/Make.conf similarity index 100% rename from boop/trunk/timer/Make.conf rename to boop/timer/Make.conf diff --git a/boop/trunk/timer/timerfuncs.c b/boop/timer/timerfuncs.c similarity index 100% rename from boop/trunk/timer/timerfuncs.c rename to boop/timer/timerfuncs.c diff --git a/boop/trunk/timer/timerfuncs.h b/boop/timer/timerfuncs.h similarity index 100% rename from boop/trunk/timer/timerfuncs.h rename to boop/timer/timerfuncs.h diff --git a/boop/trunk/timer/timerirq.c b/boop/timer/timerirq.c similarity index 100% rename from boop/trunk/timer/timerirq.c rename to boop/timer/timerirq.c diff --git a/boop/trunk/timer/timerirq.h b/boop/timer/timerirq.h similarity index 100% rename from boop/trunk/timer/timerirq.h rename to boop/timer/timerirq.h diff --git a/boop/trunk/tools/Make.conf b/boop/tools/Make.conf similarity index 100% rename from boop/trunk/tools/Make.conf rename to boop/tools/Make.conf diff --git a/boop/trunk/tools/scart_icp.c b/boop/tools/scart_icp.c similarity index 100% rename from boop/trunk/tools/scart_icp.c rename to boop/tools/scart_icp.c diff --git a/boop/trunk/tools/scart_icp.h b/boop/tools/scart_icp.h similarity index 100% rename from boop/trunk/tools/scart_icp.h rename to boop/tools/scart_icp.h diff --git a/boop/trunk/tools/scart_image.h b/boop/tools/scart_image.h similarity index 100% rename from boop/trunk/tools/scart_image.h rename to boop/tools/scart_image.h diff --git a/boop/trunk/tools/scart_image_data.h b/boop/tools/scart_image_data.h similarity index 100% rename from boop/trunk/tools/scart_image_data.h rename to boop/tools/scart_image_data.h diff --git a/boop/trunk/tools/toolsmenu.c b/boop/tools/toolsmenu.c similarity index 100% rename from boop/trunk/tools/toolsmenu.c rename to boop/tools/toolsmenu.c diff --git a/boop/trunk/tools/toolsmenu.h b/boop/tools/toolsmenu.h similarity index 100% rename from boop/trunk/tools/toolsmenu.h rename to boop/tools/toolsmenu.h diff --git a/boop/trunk/CHANGELOG b/boop/trunk/CHANGELOG deleted file mode 100644 index d267b83..0000000 --- a/boop/trunk/CHANGELOG +++ /dev/null @@ -1,2 +0,0 @@ -06.12.2007 : -- starting complete code rework diff --git a/boop/trunk/LICENSE b/boop/trunk/LICENSE deleted file mode 100644 index 94a9ed0..0000000 --- a/boop/trunk/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 of the License, 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/boop/trunk/Makefile.local.Telekatz b/boop/trunk/Makefile.local.Telekatz deleted file mode 100644 index 2a8c536..0000000 --- a/boop/trunk/Makefile.local.Telekatz +++ /dev/null @@ -1,23 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -##### Copy this file to Makefile.local for your Windows -##### installation -##### -############################################################### - -ARMBASE = F:/Tools/WinARM -INCLUDEPATH = $(ARMBASE)/include -LIBPATH = $(ARMBASE)/arm-elf/lib/interwork -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-elf- -LPCTOOL = lpctool.exe - -CFLAGS = -Wall -mthumb-interwork -msoft-float -ggdb - -######################## EOF ################################## - diff --git a/boop/trunk/audio/sounds.h b/boop/trunk/audio/sounds.h deleted file mode 100644 index 2fd1f10..0000000 --- a/boop/trunk/audio/sounds.h +++ /dev/null @@ -1,4417 +0,0 @@ -#define sound1_len 0x0000371C -const unsigned char sound1_data[] = { - 0x80,0x7D,0x7B,0x7A,0x7A,0x7D,0x7F,0x80,0x7E,0x7D,0x7F,0x7D,0x7C,0x7F,0x80,0x81, - 0x83,0x83,0x82,0x80,0x7F,0x7D,0x7D,0x7E,0x87,0x8D,0x90,0x92,0x81,0x77,0x6D,0x6B, - 0x72,0x7A,0x77,0x76,0x6B,0x5A,0x80,0x7F,0x73,0x8A,0x8A,0x83,0x7B,0x86,0x80,0x77, - 0x7B,0x75,0x79,0x7C,0x7F,0x7A,0x7A,0x7D,0x7F,0x7D,0x7A,0x88,0x89,0x86,0x88,0x7A, - 0x7E,0x8F,0x8B,0x8B,0xA2,0xA3,0x9A,0x9A,0x82,0x7F,0x93,0x8E,0x98,0xA7,0x97,0x94, - 0x9D,0x95,0x77,0x78,0x8A,0x8F,0x94,0x89,0x79,0x6D,0x6C,0x6B,0x66,0x75,0x7A,0x6E, - 0x6A,0x62,0x5B,0x57,0x5C,0x5E,0x5D,0x61,0x5A,0x59,0x57,0x54,0x61,0x6F,0x70,0x69, - 0x6B,0x73,0x6F,0x63,0x64,0x74,0x7F,0x7D,0x76,0x74,0x71,0x71,0x6E,0x70,0x78,0x77, - 0x79,0x78,0x77,0x7D,0x86,0xA1,0xA9,0x9A,0x8F,0x8C,0x8F,0x8E,0x8F,0x8D,0x8C,0x8D, - 0x90,0x97,0x8C,0x78,0x7B,0x89,0x8C,0x8E,0x96,0x9E,0x97,0x8F,0x89,0x84,0x8C,0x92, - 0x94,0x8D,0x88,0x81,0x7C,0x86,0x8C,0x91,0x99,0x9A,0x95,0x8E,0x8C,0x8B,0x88,0x8D, - 0x94,0x95,0x8F,0x8C,0x88,0x8C,0x93,0x99,0x9A,0x99,0x95,0x8D,0x8E,0x88,0x90,0xA3, - 0xA8,0xA3,0x93,0x87,0x84,0x80,0x80,0x86,0x84,0x7A,0x6E,0x65,0x60,0x5F,0x68,0x6E, - 0x68,0x5C,0x52,0x4B,0x4A,0x57,0x62,0x69,0x70,0x6A,0x5D,0x5C,0x5F,0x63,0x68,0x70, - 0x70,0x67,0x68,0x67,0x6B,0x77,0x78,0x70,0x6C,0x61,0x5D,0x61,0x67,0x76,0x78,0x78, - 0x73,0x70,0x74,0x7D,0x88,0x97,0x9E,0x96,0x95,0x90,0x89,0x92,0x98,0x96,0x95,0x87, - 0x7A,0x79,0x7D,0x87,0x95,0xA1,0xA1,0x96,0x8F,0x8C,0x89,0x8E,0x93,0x8D,0x89,0x86, - 0x7E,0x83,0x93,0x96,0x94,0x91,0x84,0x7D,0x7F,0x8B,0x98,0x9E,0xA2,0x99,0x8C,0x89, - 0x8C,0x90,0x9B,0x95,0x8F,0x8F,0x8C,0x92,0x9E,0xA6,0xA7,0x9E,0x8D,0x82,0x82,0x8C, - 0x98,0xA2,0xA0,0x9B,0x91,0x85,0x85,0x82,0x80,0x7C,0x6F,0x63,0x60,0x62,0x68,0x70, - 0x6C,0x66,0x5B,0x4F,0x50,0x57,0x5F,0x66,0x69,0x68,0x5F,0x5E,0x62,0x62,0x69,0x6A, - 0x66,0x63,0x6A,0x72,0x76,0x7B,0x75,0x6A,0x60,0x5A,0x5A,0x61,0x6C,0x70,0x73,0x74, - 0x73,0x7A,0x80,0x86,0x8F,0x93,0x94,0x95,0x99,0x9C,0x9E,0x9E,0x95,0x8A,0x80,0x7D, - 0x7E,0x87,0x8E,0x92,0x97,0x97,0x95,0x8E,0x8A,0x88,0x83,0x82,0x84,0x87,0x8E,0x94, - 0x99,0x9C,0x96,0x8C,0x82,0x7F,0x85,0x8D,0x9B,0xA5,0xA5,0xA4,0x9D,0x98,0x93,0x8D, - 0x8D,0x8D,0x93,0x9A,0x9F,0xA4,0xA4,0xA1,0x96,0x8D,0x89,0x8A,0x8D,0x93,0x99,0x9C, - 0xA1,0x9E,0x95,0x85,0x7C,0x76,0x78,0x7F,0x7B,0x7A,0x78,0x71,0x6D,0x65,0x5C,0x52, - 0x50,0x55,0x59,0x65,0x6A,0x6B,0x6C,0x64,0x59,0x50,0x4E,0x54,0x59,0x65,0x71,0x71, - 0x74,0x71,0x6C,0x63,0x5B,0x60,0x62,0x65,0x6C,0x71,0x75,0x70,0x6A,0x61,0x5B,0x62, - 0x6B,0x7C,0x8D,0x93,0x9D,0x9E,0x9F,0x9E,0x94,0x92,0x90,0x92,0x95,0x9B,0x9F,0x98, - 0x95,0x89,0x7F,0x7C,0x7B,0x85,0x8D,0x90,0x90,0x8C,0x88,0x82,0x7A,0x7B,0x7B,0x7D, - 0x82,0x88,0x92,0x9B,0xA0,0x98,0x8B,0x81,0x7F,0x8B,0x9B,0xA0,0xA0,0x9A,0x95,0x94, - 0x90,0x92,0x8E,0x8A,0x96,0x99,0xA0,0xA9,0xAB,0xA2,0x94,0x87,0x7D,0x83,0x8F,0x96, - 0x9B,0x96,0x8E,0x88,0x7B,0x74,0x72,0x6E,0x70,0x6B,0x6D,0x74,0x73,0x77,0x68,0x52, - 0x4D,0x4C,0x57,0x67,0x6B,0x69,0x61,0x5C,0x5A,0x54,0x55,0x55,0x5C,0x62,0x68,0x72, - 0x73,0x78,0x6A,0x5A,0x56,0x50,0x5D,0x67,0x69,0x6D,0x66,0x63,0x60,0x5B,0x5F,0x63, - 0x6D,0x7E,0x89,0x99,0xA6,0xA9,0xA5,0x93,0x88,0x85,0x8D,0x9D,0x9F,0xA4,0x99,0x8F, - 0x8C,0x7F,0x7E,0x7B,0x7C,0x85,0x84,0x8E,0x92,0x93,0x8D,0x79,0x73,0x6F,0x7B,0x88, - 0x90,0x95,0x8C,0x8D,0x8E,0x89,0x87,0x87,0x8B,0x97,0x9B,0x9E,0xA2,0x9C,0x99,0x8E, - 0x87,0x87,0x8E,0x9C,0xA3,0xA4,0xA1,0x9C,0x93,0x8A,0x88,0x84,0x8A,0x8F,0x8B,0x96, - 0x99,0x97,0x8D,0x78,0x6E,0x6A,0x73,0x7F,0x7E,0x79,0x72,0x6C,0x63,0x60,0x5A,0x58, - 0x60,0x63,0x68,0x71,0x70,0x6D,0x62,0x51,0x50,0x57,0x63,0x70,0x71,0x74,0x73,0x6C, - 0x67,0x60,0x5C,0x60,0x66,0x65,0x69,0x72,0x72,0x6F,0x5E,0x4E,0x56,0x59,0x6C,0x7B, - 0x7D,0x89,0x8A,0x8D,0x8B,0x8C,0x8E,0x94,0x9C,0x9B,0xA3,0xA6,0xA3,0x9A,0x84,0x7F, - 0x84,0x85,0x93,0x91,0x8F,0x8D,0x85,0x81,0x7A,0x7D,0x7F,0x87,0x89,0x8C,0x95,0x95, - 0x95,0x88,0x7A,0x7E,0x89,0x94,0x9E,0x9D,0x9B,0x95,0x91,0x8C,0x88,0x8B,0x91,0x99, - 0x97,0xA1,0xA6,0xA4,0x9E,0x8F,0x86,0x8B,0x97,0xA0,0x9F,0x9B,0x95,0x8C,0x88,0x83, - 0x81,0x82,0x8C,0x8C,0x8A,0x8D,0x84,0x80,0x6D,0x60,0x60,0x65,0x72,0x75,0x74,0x70, - 0x69,0x62,0x5F,0x5A,0x5B,0x60,0x66,0x66,0x6D,0x73,0x71,0x67,0x59,0x58,0x5E,0x6B, - 0x76,0x77,0x70,0x6A,0x62,0x5A,0x5D,0x5D,0x5F,0x65,0x62,0x6A,0x78,0x81,0x7C,0x6D, - 0x68,0x73,0x85,0x99,0xA5,0xA3,0xA2,0x9E,0x98,0x93,0x94,0x98,0x99,0x96,0x9A,0x9E, - 0x9F,0x96,0x86,0x79,0x74,0x81,0x86,0x8F,0x92,0x8B,0x88,0x81,0x7C,0x78,0x7E,0x88, - 0x93,0x95,0x99,0x9B,0x92,0x8B,0x83,0x81,0x85,0x93,0x9F,0xA4,0xA0,0x94,0x8B,0x82, - 0x88,0x8D,0x95,0x97,0x94,0xA1,0xA4,0xA5,0x90,0x80,0x81,0x84,0x93,0x9B,0x99,0x92, - 0x8B,0x85,0x7E,0x79,0x7C,0x7E,0x7A,0x7E,0x85,0x83,0x7E,0x6C,0x59,0x57,0x5F,0x6A, - 0x70,0x75,0x73,0x6C,0x64,0x5C,0x56,0x59,0x64,0x69,0x6C,0x76,0x7B,0x76,0x68,0x5B, - 0x57,0x60,0x6C,0x71,0x70,0x71,0x69,0x61,0x5A,0x56,0x5A,0x68,0x73,0x75,0x7F,0x84, - 0x83,0x7D,0x79,0x7D,0x8C,0x9D,0xAA,0xAF,0xA9,0x9F,0x91,0x8B,0x8D,0x92,0x98,0x8C, - 0x91,0x9B,0x9E,0x97,0x7A,0x6D,0x6E,0x7A,0x8B,0x8E,0x8A,0x8A,0x89,0x81,0x79,0x75, - 0x7B,0x89,0x8C,0x94,0x9B,0x99,0x90,0x81,0x7C,0x7E,0x8E,0x98,0xA0,0xA0,0x99,0x91, - 0x84,0x85,0x86,0x93,0x91,0x8E,0x9E,0xA3,0xA9,0x97,0x7F,0x79,0x7F,0x90,0x94,0x91, - 0x8E,0x88,0x82,0x79,0x71,0x71,0x7A,0x79,0x7C,0x82,0x7D,0x78,0x66,0x5D,0x5A,0x60, - 0x70,0x77,0x7D,0x73,0x67,0x5E,0x5B,0x5C,0x66,0x67,0x60,0x72,0x78,0x81,0x70,0x59, - 0x54,0x52,0x67,0x71,0x72,0x70,0x6B,0x62,0x5B,0x57,0x5D,0x6A,0x6A,0x77,0x7C,0x83, - 0x88,0x7B,0x79,0x7B,0x8A,0x9B,0xA6,0xAB,0xA5,0x9D,0x8A,0x84,0x85,0x90,0x99,0x91, - 0x99,0x97,0x92,0x84,0x6F,0x6C,0x70,0x83,0x8C,0x90,0x8C,0x82,0x7C,0x71,0x74,0x7B, - 0x84,0x82,0x8D,0x99,0x9A,0x93,0x7C,0x76,0x77,0x87,0x96,0x9A,0x9C,0x98,0x90,0x80, - 0x7B,0x81,0x8F,0x9B,0x9F,0xA0,0x9C,0x97,0x8D,0x80,0x7C,0x83,0x8C,0x99,0x9B,0x8F, - 0x83,0x73,0x6E,0x76,0x7B,0x7F,0x78,0x7D,0x86,0x83,0x78,0x60,0x5A,0x5D,0x6D,0x79, - 0x79,0x78,0x6F,0x68,0x61,0x5C,0x63,0x6F,0x65,0x70,0x7A,0x7B,0x7B,0x65,0x5B,0x59, - 0x62,0x6D,0x70,0x72,0x72,0x6E,0x5C,0x57,0x57,0x62,0x71,0x72,0x7B,0x7E,0x80,0x7A, - 0x73,0x75,0x7D,0x93,0x9F,0xA7,0xA9,0x9D,0x93,0x8C,0x8B,0x96,0x97,0x91,0x9C,0xA0, - 0xA0,0x8B,0x72,0x6F,0x72,0x80,0x8A,0x8C,0x8A,0x85,0x7C,0x71,0x6F,0x79,0x81,0x80, - 0x8E,0x8F,0x90,0x89,0x76,0x75,0x76,0x86,0x92,0x97,0x99,0x95,0x8B,0x7F,0x7E,0x84, - 0x94,0x97,0x9C,0xA4,0x9F,0x9A,0x86,0x7F,0x81,0x8C,0x99,0x9B,0x9A,0x92,0x87,0x7C, - 0x78,0x80,0x85,0x80,0x8A,0x8D,0x8D,0x84,0x6D,0x64,0x64,0x73,0x7C,0x7E,0x81,0x7C, - 0x70,0x65,0x60,0x63,0x73,0x79,0x7A,0x7E,0x78,0x72,0x65,0x5C,0x61,0x6A,0x77,0x7D, - 0x7B,0x77,0x69,0x5B,0x58,0x5D,0x6B,0x70,0x72,0x7C,0x7E,0x7A,0x69,0x64,0x6D,0x7A, - 0x90,0x97,0x9D,0x9F,0x96,0x8F,0x88,0x92,0x9C,0x94,0x9D,0xA5,0xA8,0xA0,0x85,0x7A, - 0x75,0x80,0x89,0x8A,0x8D,0x8C,0x83,0x70,0x6A,0x70,0x7E,0x86,0x85,0x8A,0x88,0x84, - 0x76,0x6F,0x72,0x7A,0x8D,0x92,0x96,0x96,0x89,0x81,0x79,0x81,0x8E,0x8A,0x97,0x9D, - 0xA3,0x9F,0x87,0x81,0x7E,0x8C,0x9A,0x9D,0x9F,0x9A,0x8F,0x7F,0x79,0x82,0x87,0x87, - 0x8E,0x8F,0x94,0x8E,0x75,0x6C,0x69,0x73,0x7F,0x83,0x86,0x82,0x74,0x65,0x5E,0x67, - 0x77,0x7A,0x7B,0x80,0x7D,0x78,0x6A,0x5E,0x60,0x6C,0x79,0x7D,0x80,0x7B,0x6D,0x63, - 0x5C,0x64,0x71,0x70,0x75,0x7A,0x7A,0x77,0x63,0x5F,0x67,0x70,0x81,0x85,0x8C,0x92, - 0x86,0x7C,0x7D,0x89,0x98,0x9C,0x9C,0xA1,0xA3,0x9D,0x8D,0x82,0x85,0x8D,0x93,0x8E, - 0x8C,0x8D,0x84,0x78,0x6E,0x70,0x7D,0x7D,0x7C,0x84,0x85,0x85,0x78,0x6A,0x6E,0x73, - 0x7F,0x81,0x81,0x8B,0x89,0x80,0x78,0x79,0x84,0x88,0x86,0x90,0x96,0x96,0x8F,0x7F, - 0x81,0x85,0x8E,0x96,0x93,0x99,0x99,0x8D,0x83,0x7C,0x86,0x8F,0x88,0x8E,0x92,0x91, - 0x8E,0x79,0x75,0x74,0x79,0x84,0x7D,0x82,0x83,0x7C,0x71,0x66,0x6D,0x79,0x78,0x76, - 0x7C,0x7D,0x81,0x72,0x66,0x67,0x6B,0x78,0x77,0x78,0x7A,0x79,0x70,0x64,0x65,0x70, - 0x75,0x71,0x79,0x7B,0x7E,0x76,0x64,0x66,0x69,0x76,0x7D,0x7D,0x88,0x8A,0x86,0x7B, - 0x78,0x84,0x92,0x8E,0x8F,0x98,0x99,0x9D,0x88,0x80,0x82,0x84,0x91,0x8B,0x8C,0x90, - 0x8B,0x7F,0x73,0x73,0x80,0x83,0x7D,0x87,0x89,0x8D,0x81,0x6F,0x73,0x72,0x7C,0x82, - 0x81,0x89,0x89,0x81,0x72,0x70,0x7C,0x86,0x82,0x83,0x8B,0x8F,0x8F,0x7B,0x75,0x7A, - 0x7E,0x88,0x88,0x8A,0x8E,0x8C,0x81,0x74,0x76,0x82,0x84,0x81,0x8B,0x8B,0x8E,0x85, - 0x72,0x75,0x74,0x7C,0x82,0x81,0x89,0x87,0x7F,0x72,0x6C,0x76,0x82,0x80,0x80,0x87, - 0x87,0x87,0x79,0x6F,0x72,0x77,0x81,0x80,0x83,0x88,0x84,0x7B,0x70,0x6F,0x7A,0x81, - 0x7E,0x86,0x8B,0x8B,0x84,0x73,0x74,0x75,0x7E,0x86,0x84,0x8E,0x8D,0x85,0x7B,0x74, - 0x7C,0x87,0x89,0x87,0x8D,0x8E,0x8E,0x81,0x75,0x78,0x7B,0x85,0x86,0x84,0x8A,0x86, - 0x7C,0x71,0x6D,0x76,0x80,0x7C,0x81,0x84,0x85,0x82,0x6E,0x6D,0x6F,0x76,0x7E,0x7C, - 0x83,0x85,0x80,0x74,0x6D,0x75,0x7F,0x81,0x7E,0x85,0x88,0x8A,0x81,0x72,0x77,0x79, - 0x82,0x86,0x83,0x8A,0x8A,0x84,0x78,0x73,0x7C,0x86,0x85,0x84,0x8B,0x8A,0x8C,0x7F, - 0x75,0x79,0x7B,0x85,0x85,0x86,0x8C,0x8A,0x81,0x75,0x75,0x82,0x88,0x81,0x86,0x8B, - 0x8C,0x89,0x78,0x77,0x78,0x7F,0x86,0x81,0x87,0x88,0x85,0x7B,0x71,0x76,0x81,0x84, - 0x7E,0x87,0x8B,0x8A,0x84,0x75,0x76,0x7A,0x82,0x86,0x84,0x8B,0x8C,0x86,0x7B,0x74, - 0x7A,0x88,0x86,0x85,0x8E,0x8C,0x90,0x80,0x77,0x78,0x79,0x86,0x83,0x84,0x8A,0x88, - 0x82,0x72,0x71,0x79,0x80,0x80,0x7C,0x84,0x86,0x85,0x7A,0x6F,0x72,0x75,0x80,0x81, - 0x7F,0x85,0x85,0x7C,0x73,0x70,0x7A,0x82,0x7E,0x88,0x88,0x8A,0x89,0x77,0x77,0x72, - 0x7A,0x86,0x82,0x88,0x8A,0x88,0x7D,0x72,0x79,0x81,0x88,0x85,0x87,0x8B,0x8D,0x8A, - 0x7C,0x76,0x89,0x86,0x88,0x8F,0x6D,0x80,0x8B,0x6D,0x5E,0x6A,0x7E,0x84,0x8C,0x96, - 0x95,0x94,0x92,0x92,0x92,0x8D,0x95,0x93,0x91,0x94,0x91,0x89,0x71,0x62,0x60,0x61, - 0x60,0x5D,0x62,0x63,0x6A,0x65,0x5C,0x64,0x68,0x76,0x81,0x7F,0x88,0x8D,0x8B,0x80, - 0x7D,0x86,0x91,0x9A,0xA8,0xB5,0xBB,0xBE,0xB1,0xA7,0xA1,0x9C,0xA1,0x9D,0x9B,0x9A, - 0x98,0x8A,0x76,0x71,0x71,0x7C,0x78,0x73,0x7B,0x7A,0x77,0x63,0x58,0x56,0x54,0x57, - 0x4B,0x4C,0x54,0x57,0x54,0x4D,0x50,0x5C,0x6C,0x6F,0x78,0x80,0x80,0x84,0x7B,0x79, - 0x73,0x6F,0x7A,0x82,0x8E,0x92,0x98,0x9B,0x9C,0xA8,0xAB,0xAF,0xAC,0xAC,0xB5,0xB2, - 0xB0,0xA4,0x98,0x93,0x91,0x96,0x95,0x93,0x91,0x8F,0x8E,0x87,0x7D,0x77,0x70,0x6A, - 0x63,0x5B,0x56,0x51,0x49,0x46,0x47,0x4D,0x54,0x58,0x60,0x63,0x66,0x61,0x5E,0x63, - 0x6A,0x7A,0x7D,0x84,0x8F,0x97,0x9F,0x9C,0xA0,0xA8,0xB2,0xBD,0xC3,0xC6,0xC6,0xC6, - 0xBD,0xB1,0xAA,0xA6,0xA2,0x9E,0x9A,0x94,0x90,0x85,0x7C,0x74,0x69,0x68,0x66,0x64, - 0x64,0x5F,0x59,0x4A,0x3E,0x39,0x3A,0x3E,0x3A,0x40,0x42,0x45,0x48,0x45,0x4C,0x52, - 0x5F,0x69,0x6E,0x78,0x7C,0x7C,0x7A,0x79,0x7D,0x83,0x8B,0x92,0x9C,0xA5,0xAB,0xA7, - 0xA5,0xA7,0xA7,0xAF,0xB5,0xB9,0xC2,0xC4,0xC0,0xB9,0xB2,0xB1,0xAE,0xA9,0xA4,0xA2, - 0xA1,0x9E,0x97,0x8F,0x88,0x80,0x7D,0x7A,0x71,0x6E,0x6C,0x66,0x5B,0x52,0x50,0x51, - 0x4F,0x50,0x52,0x51,0x55,0x4B,0x46,0x44,0x45,0x50,0x55,0x60,0x69,0x70,0x76,0x6F, - 0x6E,0x75,0x80,0x85,0x88,0x92,0x96,0x9D,0x9D,0x97,0x9B,0x9F,0xA7,0xAB,0xAC,0xB2, - 0xB2,0xB0,0xA5,0x9D,0xA0,0xA2,0xA2,0xA1,0xA3,0xA2,0xA2,0x98,0x8B,0x85,0x7F,0x80, - 0x7E,0x7D,0x7D,0x7F,0x7B,0x6C,0x65,0x63,0x6B,0x6B,0x6A,0x70,0x6E,0x71,0x69,0x5B, - 0x56,0x53,0x5E,0x62,0x65,0x6D,0x6F,0x70,0x67,0x62,0x63,0x6B,0x73,0x74,0x7C,0x81, - 0x85,0x83,0x7C,0x7B,0x7C,0x85,0x8D,0x90,0x97,0x9C,0x9A,0x90,0x8A,0x8B,0x92,0x96, - 0x97,0x9E,0x9F,0xA2,0x9C,0x91,0x8D,0x88,0x90,0x94,0x94,0x99,0x99,0x98,0x8D,0x84, - 0x81,0x81,0x87,0x85,0x88,0x8A,0x89,0x87,0x76,0x6F,0x69,0x6A,0x73,0x71,0x73,0x75, - 0x73,0x68,0x59,0x55,0x5A,0x61,0x65,0x6B,0x6F,0x74,0x73,0x67,0x63,0x61,0x6A,0x76, - 0x7B,0x82,0x89,0x8D,0x86,0x7A,0x76,0x7A,0x86,0x88,0x8E,0x95,0x95,0x9B,0x8F,0x87, - 0x84,0x83,0x8D,0x8F,0x95,0x98,0x9B,0x9A,0x8C,0x86,0x88,0x91,0x95,0x99,0xA0,0xA3, - 0xA8,0xA0,0x95,0x8E,0x8C,0x95,0x98,0x9A,0x9D,0x9E,0x9A,0x8B,0x81,0x79,0x7B,0x7E, - 0x7B,0x81,0x80,0x80,0x7A,0x6B,0x63,0x5C,0x60,0x62,0x63,0x66,0x67,0x6A,0x60,0x56, - 0x51,0x53,0x5A,0x5A,0x63,0x69,0x6F,0x71,0x65,0x5E,0x58,0x5A,0x61,0x65,0x6D,0x73, - 0x7C,0x79,0x6F,0x6B,0x6C,0x76,0x7A,0x80,0x8A,0x8F,0x96,0x8E,0x86,0x81,0x7F,0x88, - 0x8C,0x94,0x9A,0xA1,0xA5,0x9A,0x90,0x8B,0x91,0x96,0x98,0xA1,0xA4,0xAA,0xA6,0x9A, - 0x94,0x8E,0x91,0x95,0x99,0xA0,0xA3,0xA8,0x9F,0x93,0x8C,0x8A,0x8F,0x8F,0x96,0x9B, - 0x9C,0x9D,0x91,0x8A,0x80,0x7B,0x7E,0x7D,0x83,0x83,0x87,0x86,0x78,0x6F,0x67,0x6A, - 0x6A,0x6D,0x77,0x77,0x7C,0x75,0x6C,0x64,0x5A,0x5E,0x5E,0x64,0x69,0x6B,0x71,0x69, - 0x5F,0x56,0x56,0x5C,0x5C,0x66,0x6B,0x70,0x72,0x69,0x66,0x5E,0x5E,0x65,0x69,0x72, - 0x74,0x7D,0x7F,0x76,0x70,0x6B,0x73,0x76,0x7D,0x88,0x8B,0x94,0x8D,0x87,0x83,0x7D, - 0x85,0x87,0x91,0x97,0x9B,0xA6,0xA1,0x9A,0x90,0x90,0x97,0x97,0xA3,0xA7,0xAC,0xAF, - 0xA4,0x9E,0x91,0x90,0x94,0x95,0x9E,0x9D,0xA4,0xA6,0x9B,0x92,0x86,0x8A,0x8B,0x8E, - 0x98,0x96,0x9C,0x96,0x8C,0x86,0x79,0x7D,0x7A,0x7D,0x82,0x81,0x89,0x81,0x77,0x6D, - 0x64,0x68,0x64,0x6D,0x72,0x71,0x76,0x69,0x64,0x5A,0x54,0x5A,0x57,0x61,0x62,0x68, - 0x6E,0x66,0x61,0x55,0x56,0x5B,0x5B,0x69,0x6A,0x6F,0x70,0x67,0x67,0x5B,0x5D,0x60, - 0x62,0x6F,0x6F,0x7A,0x7A,0x74,0x6F,0x66,0x6D,0x6D,0x73,0x82,0x83,0x8E,0x89,0x86, - 0x84,0x7A,0x82,0x80,0x89,0x8F,0x91,0x9D,0x99,0x95,0x89,0x82,0x89,0x87,0x94,0x9B, - 0x9E,0xA5,0x9B,0x9D,0x94,0x8E,0x91,0x8E,0x9B,0x9B,0xA3,0xAA,0xA4,0x9F,0x91,0x90, - 0x92,0x92,0xA0,0xA1,0xA7,0xA8,0x9D,0x9D,0x8F,0x8F,0x8E,0x8D,0x97,0x94,0x9D,0x9D, - 0x96,0x8C,0x7B,0x7C,0x78,0x7B,0x86,0x83,0x8A,0x82,0x79,0x73,0x65,0x67,0x60,0x65, - 0x6C,0x6C,0x76,0x74,0x71,0x64,0x58,0x5C,0x59,0x64,0x6E,0x6F,0x78,0x6E,0x6D,0x65, - 0x5C,0x5F,0x59,0x64,0x67,0x6C,0x76,0x72,0x6F,0x60,0x59,0x5C,0x5A,0x6A,0x70,0x76, - 0x7C,0x73,0x75,0x6A,0x67,0x68,0x65,0x72,0x74,0x7E,0x85,0x85,0x83,0x74,0x73,0x74, - 0x78,0x88,0x8D,0x97,0x98,0x92,0x93,0x87,0x88,0x84,0x87,0x91,0x94,0x9F,0xA2,0xA3, - 0x9B,0x8D,0x8C,0x89,0x91,0x9F,0xA3,0xAE,0xA9,0xA5,0xA2,0x96,0x97,0x90,0x94,0x9A, - 0x9D,0xA8,0xA9,0xA8,0x9D,0x8F,0x8E,0x8B,0x94,0x9F,0xA2,0xA9,0xA2,0x9F,0x98,0x8E, - 0x8D,0x84,0x89,0x8C,0x90,0x98,0x98,0x97,0x89,0x7E,0x7C,0x77,0x80,0x86,0x8A,0x8F, - 0x86,0x83,0x7B,0x75,0x73,0x6A,0x6D,0x6D,0x73,0x7A,0x7B,0x79,0x6B,0x62,0x5E,0x5A, - 0x64,0x6B,0x70,0x73,0x6B,0x69,0x61,0x5E,0x59,0x51,0x56,0x57,0x60,0x68,0x6C,0x6B, - 0x5F,0x58,0x54,0x53,0x5F,0x66,0x6F,0x71,0x6D,0x6E,0x67,0x66,0x60,0x5B,0x61,0x64, - 0x6F,0x77,0x7E,0x7E,0x71,0x69,0x64,0x66,0x73,0x7C,0x86,0x89,0x86,0x87,0x80,0x7F, - 0x7B,0x77,0x7D,0x7F,0x8A,0x93,0x9A,0x99,0x8C,0x83,0x7E,0x7F,0x8C,0x94,0x9F,0xA0, - 0x9D,0x9D,0x96,0x96,0x91,0x8F,0x92,0x95,0xA0,0xA9,0xAF,0xAD,0xA0,0x98,0x92,0x95, - 0xA1,0xA8,0xB2,0xB0,0xAC,0xA9,0xA2,0xA0,0x98,0x96,0x95,0x96,0x9F,0xA4,0xA9,0xA3, - 0x95,0x8B,0x83,0x85,0x8F,0x96,0x9D,0x98,0x92,0x8E,0x88,0x87,0x7F,0x7C,0x7A,0x7B, - 0x84,0x89,0x8F,0x8A,0x7E,0x74,0x6B,0x6D,0x77,0x7E,0x84,0x81,0x7C,0x77,0x73,0x72, - 0x6B,0x67,0x64,0x65,0x6D,0x72,0x79,0x76,0x6B,0x60,0x56,0x56,0x60,0x68,0x6F,0x6D, - 0x69,0x66,0x62,0x63,0x5E,0x5B,0x58,0x59,0x61,0x68,0x70,0x70,0x67,0x5D,0x54,0x54, - 0x5F,0x6A,0x72,0x73,0x6F,0x6D,0x6B,0x6C,0x6A,0x67,0x65,0x65,0x6C,0x75,0x7E,0x82, - 0x7D,0x73,0x6B,0x68,0x72,0x7E,0x88,0x8B,0x85,0x83,0x80,0x83,0x82,0x7E,0x7D,0x7C, - 0x83,0x8C,0x95,0x9B,0x97,0x8E,0x84,0x80,0x89,0x95,0x9F,0xA3,0x9E,0x9C,0x97,0x9A, - 0x99,0x95,0x92,0x8E,0x92,0x98,0xA0,0xA6,0xA3,0x99,0x8E,0x86,0x8B,0x94,0x9C,0xA1, - 0x9B,0x97,0x92,0x92,0x92,0x8D,0x8A,0x83,0x84,0x89,0x90,0x98,0x97,0x90,0x85,0x7A, - 0x7C,0x85,0x8F,0x96,0x91,0x8E,0x89,0x89,0x8B,0x88,0x86,0x7F,0x7D,0x81,0x87,0x90, - 0x91,0x8B,0x81,0x74,0x72,0x7A,0x83,0x8C,0x87,0x83,0x7D,0x79,0x7D,0x7B,0x7B,0x74, - 0x6F,0x72,0x76,0x7F,0x82,0x7E,0x78,0x6B,0x67,0x6D,0x74,0x7F,0x7E,0x79,0x75,0x6F, - 0x74,0x76,0x76,0x73,0x6B,0x6B,0x6C,0x73,0x7A,0x7A,0x77,0x6D,0x64,0x6A,0x70,0x7A, - 0x7D,0x77,0x76,0x6F,0x73,0x78,0x78,0x79,0x71,0x6E,0x70,0x74,0x7E,0x82,0x80,0x7C, - 0x70,0x71,0x77,0x7C,0x86,0x81,0x80,0x7D,0x7A,0x82,0x82,0x81,0x7D,0x75,0x77,0x7B, - 0x82,0x8A,0x87,0x84,0x7A,0x73,0x7A,0x7D,0x86,0x88,0x83,0x82,0x7D,0x7F,0x83,0x80, - 0x7E,0x7A,0x76,0x7C,0x80,0x85,0x88,0x83,0x7D,0x77,0x79,0x80,0x86,0x8B,0x89,0x85, - 0x82,0x82,0x83,0x85,0x84,0x82,0x81,0x81,0x84,0x88,0x8A,0x87,0x83,0x7F,0x7F,0x85, - 0x88,0x8C,0x8B,0x89,0x87,0x85,0x84,0x85,0x85,0x84,0x83,0x81,0x82,0x84,0x84,0x83, - 0x81,0x80,0x80,0x82,0x83,0x85,0x86,0x85,0x83,0x81,0x80,0x82,0x84,0x84,0x84,0x84, - 0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x85,0x86,0x87,0x86,0x85,0x85,0x85, - 0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,0x84,0x84,0x84,0x84,0x83,0x83,0x82,0x82, - 0x81,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x81,0x80,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F,0x7E, - 0x7E,0x7E,0x7E,0x7D,0x7D,0x7D,0x7D,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80, - 0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7E, - 0x7D,0x7D,0x7D,0x7F,0x81,0x81,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x80,0x80,0x7F,0x7E,0x7D,0x7D, - 0x7F,0x7F,0x7E,0x7D,0x7C,0x7C,0x7B,0x7B,0x7B,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7D, - 0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E, - 0x7E,0x7E,0x7E,0x7E,0x7D,0x7E,0x80,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x80,0x81, - 0x81,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x81,0x81,0x81,0x82,0x82,0x81,0x80,0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x82,0x81, - 0x81,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81, - 0x80,0x80,0x7F,0x7E,0x7E,0x7F,0x7F,0x7E,0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x81, - 0x81,0x81,0x81,0x82,0x81,0x80,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x81,0x80,0x7F, - 0x7F,0x80,0x81,0x82,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x82, - 0x82,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81, - 0x82,0x82,0x82,0x81,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7E,0x7E,0x7E, - 0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x80,0x80,0x80,0x81,0x80,0x80, - 0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x82,0x82, - 0x82,0x82,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x80, - 0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x81,0x82,0x82,0x82,0x81,0x82,0x81,0x81, - 0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x80,0x80, - 0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7E,0x7E,0x7E, - 0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x82,0x82,0x81,0x81,0x80, - 0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x81,0x81,0x82, - 0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x80,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x81,0x80,0x80,0x7F,0x7E, - 0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7E,0x80,0x88,0x88,0x68,0x6C,0x85,0x8E,0x7D,0x7A, - 0x95,0x75,0x6D,0x83,0x7F,0x80,0x84,0x94,0x84,0x79,0x86,0x88,0x81,0x77,0x87,0x85, - 0x76,0x73,0x77,0x7F,0x80,0x81,0x87,0x86,0x78,0x7F,0x86,0x8C,0x86,0x86,0x87,0x74, - 0x7C,0x75,0x7C,0x87,0x8B,0x8B,0x75,0x7E,0x73,0x6C,0x90,0x81,0x68,0x82,0x7A,0x6A, - 0x6A,0x72,0x82,0x76,0x77,0x79,0x77,0x7A,0x75,0x7B,0x7A,0x7A,0x82,0x8B,0x8C,0x87, - 0x8B,0x8F,0x85,0x7F,0x88,0x83,0x77,0x84,0x92,0x8F,0x90,0x99,0xA5,0x9C,0x94,0x91, - 0x81,0x7D,0x89,0x8F,0x91,0x98,0x96,0x90,0x8F,0x8F,0x8E,0x7E,0x79,0x81,0x83,0x85, - 0x86,0x84,0x80,0x76,0x6F,0x73,0x6D,0x65,0x67,0x71,0x75,0x78,0x7C,0x71,0x6B,0x6C, - 0x6E,0x77,0x6F,0x64,0x67,0x6E,0x6A,0x66,0x6E,0x6F,0x6D,0x72,0x77,0x70,0x72,0x76, - 0x67,0x5C,0x6D,0x7C,0x7A,0x77,0x7D,0x81,0x76,0x74,0x73,0x74,0x7D,0x7D,0x75,0x77, - 0x85,0x86,0x8A,0x93,0xA2,0xAE,0x9F,0x9C,0xA8,0x98,0x90,0x9A,0x97,0x9C,0x97,0x8D, - 0x8A,0x91,0x88,0x78,0x7E,0x7D,0x86,0x87,0x7E,0x86,0x86,0x80,0x79,0x83,0x91,0x86, - 0x8B,0x88,0x8A,0x97,0x86,0x89,0x93,0x99,0x95,0x90,0x8F,0x89,0x95,0x8E,0x8B,0x8C, - 0x84,0x85,0x7D,0x8F,0x90,0x87,0x91,0x87,0x9A,0x94,0x8A,0x92,0x85,0x8D,0x80,0x79, - 0x7D,0x83,0x8E,0x89,0x90,0x8F,0x8B,0x7A,0x7D,0x8C,0x83,0x86,0x7A,0x7C,0x87,0x79, - 0x78,0x70,0x6D,0x70,0x63,0x5D,0x5F,0x65,0x6A,0x65,0x69,0x66,0x5E,0x55,0x56,0x67, - 0x60,0x5F,0x62,0x66,0x73,0x61,0x5F,0x64,0x63,0x6B,0x60,0x63,0x70,0x72,0x79,0x79, - 0x7C,0x74,0x66,0x5D,0x5E,0x6E,0x6B,0x70,0x79,0x7A,0x83,0x79,0x75,0x7A,0x7C,0x7F, - 0x7D,0x89,0x9F,0xA2,0xA6,0xA6,0xA1,0x9D,0x8E,0x87,0x88,0x96,0x9C,0x97,0x9C,0x99, - 0x9B,0x94,0x80,0x7F,0x84,0x84,0x87,0x86,0x93,0x9A,0x94,0x93,0x88,0x85,0x81,0x7F, - 0x85,0x8D,0xA1,0xA7,0x9F,0x9B,0x97,0x95,0x88,0x82,0x8D,0x8C,0x94,0x94,0x91,0x9C, - 0x95,0x8B,0x84,0x88,0x8C,0x89,0x85,0x88,0x9E,0xA2,0x9B,0x8C,0x87,0x90,0x84,0x7C, - 0x88,0x8E,0x95,0x90,0x8B,0x8F,0x82,0x7A,0x73,0x76,0x7B,0x70,0x67,0x6F,0x84,0x7B, - 0x6B,0x69,0x6C,0x6A,0x59,0x59,0x6A,0x6C,0x67,0x62,0x60,0x63,0x59,0x54,0x5B,0x65, - 0x63,0x5A,0x52,0x65,0x74,0x67,0x64,0x66,0x72,0x70,0x5F,0x6A,0x79,0x78,0x6D,0x63, - 0x6D,0x6D,0x66,0x6C,0x70,0x76,0x73,0x6E,0x6B,0x7A,0x8C,0x84,0x84,0x8A,0x93,0x92, - 0x88,0x94,0xA1,0xA5,0xA3,0xA0,0xA0,0x9C,0x96,0x97,0x96,0x93,0x8E,0x8A,0x83,0x89, - 0x9A,0x8F,0x88,0x88,0x89,0x89,0x79,0x80,0x8F,0x94,0x8E,0x87,0x8C,0x89,0x82,0x8E, - 0x97,0x9B,0x98,0x91,0x90,0x83,0x94,0x9E,0x92,0x98,0x8E,0x8E,0x8D,0x82,0x8B,0x91, - 0x94,0x91,0x86,0x8E,0x88,0x82,0x8F,0x96,0x95,0x87,0x85,0x85,0x8B,0x9C,0x95,0x90, - 0x8A,0x85,0x82,0x76,0x7C,0x87,0x86,0x82,0x77,0x74,0x6D,0x62,0x6B,0x71,0x73,0x6B, - 0x66,0x5F,0x54,0x67,0x70,0x68,0x65,0x5E,0x5C,0x5B,0x54,0x5E,0x64,0x66,0x67,0x60, - 0x63,0x5D,0x5B,0x64,0x68,0x6A,0x68,0x63,0x61,0x6B,0x7E,0x79,0x6A,0x6F,0x69,0x66, - 0x60,0x68,0x78,0x78,0x75,0x72,0x75,0x73,0x76,0x7B,0x89,0x92,0x8B,0x8A,0x8B,0x8A, - 0x9E,0xB2,0xAB,0xA9,0xA2,0x9A,0x94,0x89,0x8F,0x9A,0x9A,0x97,0x91,0x8A,0x89,0x81, - 0x82,0x8C,0x8E,0x86,0x7C,0x78,0x80,0x99,0x97,0x91,0x93,0x8C,0x8C,0x85,0x84,0x98, - 0x9F,0x96,0x95,0x8E,0x92,0x89,0x86,0x98,0x99,0x96,0x8C,0x89,0x82,0x90,0xA3,0x9C, - 0x9A,0x8F,0x8B,0x8D,0x7D,0x8A,0x98,0x93,0x96,0x8C,0x88,0x88,0x7B,0x7F,0x8C,0x8C, - 0x82,0x7A,0x71,0x77,0x8D,0x86,0x7D,0x7B,0x70,0x6D,0x63,0x5D,0x6F,0x75,0x6F,0x6B, - 0x65,0x62,0x58,0x55,0x65,0x69,0x5E,0x5C,0x5A,0x4D,0x5D,0x72,0x69,0x69,0x64,0x5A, - 0x5F,0x5A,0x5C,0x6E,0x73,0x75,0x70,0x6B,0x69,0x61,0x60,0x71,0x6E,0x67,0x6A,0x60, - 0x67,0x80,0x82,0x79,0x80,0x7D,0x7A,0x73,0x77,0x90,0x9C,0x9D,0x9E,0x9E,0x9C,0x9C, - 0x99,0xA8,0xAD,0xA4,0xA0,0x9A,0x8D,0x91,0xA8,0xA3,0x9B,0x94,0x8D,0x89,0x7A,0x7B, - 0x8E,0x8F,0x88,0x8A,0x83,0x84,0x83,0x81,0x8E,0x94,0x8F,0x8B,0x85,0x83,0x98,0xA2, - 0x99,0x96,0x94,0x8E,0x8A,0x82,0x91,0xA3,0x98,0x98,0x97,0x92,0x8E,0x86,0x8E,0x9A, - 0x98,0x90,0x8D,0x86,0x84,0x9A,0x9F,0x91,0x93,0x8A,0x82,0x7E,0x75,0x85,0x8D,0x83, - 0x82,0x7B,0x78,0x77,0x6D,0x74,0x7C,0x75,0x6D,0x67,0x5C,0x65,0x7D,0x71,0x67,0x6C, - 0x64,0x5F,0x53,0x59,0x6E,0x65,0x5D,0x66,0x62,0x5F,0x5A,0x5B,0x69,0x66,0x5F,0x60, - 0x5F,0x58,0x69,0x7B,0x70,0x70,0x6C,0x68,0x67,0x61,0x67,0x77,0x71,0x6D,0x74,0x73, - 0x74,0x70,0x78,0x81,0x82,0x7D,0x82,0x82,0x83,0xA3,0xAB,0xA4,0xAA,0xA4,0x9C,0x9A, - 0x95,0xA1,0xAA,0xA1,0x9F,0x9F,0x97,0x8F,0x8A,0x8B,0x92,0x8B,0x87,0x8A,0x7D,0x7E, - 0x97,0x91,0x8B,0x92,0x88,0x86,0x83,0x81,0x8F,0x91,0x8B,0x8F,0x92,0x8F,0x8B,0x8A, - 0x95,0x98,0x92,0x95,0x93,0x85,0x8F,0xA6,0xA0,0x99,0x9F,0x94,0x8D,0x88,0x84,0x91, - 0x92,0x8F,0x94,0x92,0x8C,0x85,0x83,0x85,0x86,0x7F,0x7D,0x84,0x72,0x74,0x8C,0x82, - 0x77,0x80,0x77,0x6D,0x68,0x63,0x6E,0x70,0x66,0x68,0x71,0x68,0x5D,0x61,0x61,0x63, - 0x5F,0x5A,0x60,0x59,0x59,0x6E,0x71,0x64,0x6C,0x6E,0x5B,0x5A,0x5D,0x5C,0x65,0x63, - 0x64,0x70,0x6D,0x66,0x68,0x6B,0x6A,0x68,0x66,0x6D,0x69,0x5F,0x77,0x8A,0x74,0x78, - 0x8C,0x7F,0x79,0x7F,0x82,0x8C,0x91,0x8E,0xA0,0xAB,0x9F,0xA1,0xAD,0xA7,0x9B,0x9C, - 0x9D,0x9C,0x91,0x8E,0xA4,0xA0,0x8C,0x93,0x9A,0x86,0x7C,0x84,0x84,0x83,0x7E,0x7E, - 0x8B,0x8D,0x80,0x8A,0x95,0x8C,0x85,0x85,0x86,0x89,0x82,0x84,0x9A,0x9A,0x8A,0x97, - 0xA4,0x91,0x8C,0x98,0x95,0x92,0x8E,0x90,0x95,0x94,0x90,0x93,0x9A,0x95,0x91,0x8C, - 0x89,0x89,0x8A,0x86,0x87,0x8A,0x83,0x85,0x87,0x83,0x7E,0x80,0x81,0x77,0x76,0x7A, - 0x73,0x72,0x75,0x72,0x6F,0x6C,0x6D,0x6B,0x69,0x69,0x67,0x68,0x67,0x66,0x64,0x61, - 0x61,0x63,0x63,0x63,0x61,0x64,0x64,0x62,0x64,0x65,0x63,0x61,0x65,0x66,0x67,0x68, - 0x6A,0x6C,0x69,0x6C,0x6D,0x6E,0x70,0x72,0x74,0x77,0x7C,0x7B,0x7C,0x81,0x83,0x84, - 0x87,0x8B,0x8C,0x8E,0x91,0x92,0x93,0x93,0x95,0x96,0x95,0x95,0x95,0x98,0x96,0x94, - 0x96,0x94,0x92,0x90,0x90,0x91,0x91,0x8E,0x91,0x8D,0x8A,0x8B,0x8A,0x8B,0x89,0x89, - 0x88,0x8A,0x88,0x86,0x87,0x86,0x88,0x88,0x86,0x8A,0x89,0x86,0x8B,0x8B,0x89,0x8A, - 0x8B,0x8A,0x8A,0x8B,0x8A,0x8B,0x8A,0x8A,0x8A,0x88,0x86,0x85,0x86,0x84,0x83,0x81, - 0x7F,0x80,0x7F,0x7D,0x7F,0x80,0x7D,0x7D,0x7C,0x7A,0x7A,0x7A,0x7A,0x7A,0x79,0x79, - 0x79,0x77,0x78,0x77,0x77,0x75,0x73,0x72,0x71,0x72,0x71,0x70,0x70,0x72,0x71,0x6F, - 0x71,0x72,0x70,0x71,0x72,0x71,0x72,0x73,0x74,0x75,0x76,0x75,0x77,0x75,0x75,0x77, - 0x76,0x78,0x78,0x77,0x77,0x79,0x79,0x79,0x7B,0x7D,0x7E,0x80,0x80,0x81,0x83,0x82, - 0x86,0x87,0x88,0x8B,0x89,0x8A,0x8B,0x8C,0x8D,0x8C,0x8B,0x8B,0x89,0x88,0x88,0x86, - 0x85,0x84,0x82,0x80,0x81,0x7F,0x81,0x81,0x7E,0x7F,0x7E,0x7D,0x7D,0x7F,0x7E,0x80, - 0x80,0x80,0x80,0x7F,0x80,0x80,0x82,0x82,0x82,0x81,0x82,0x80,0x80,0x80,0x80,0x82, - 0x81,0x80,0x81,0x81,0x82,0x84,0x83,0x83,0x84,0x84,0x84,0x86,0x86,0x86,0x87,0x85, - 0x85,0x85,0x85,0x85,0x85,0x86,0x83,0x81,0x81,0x7F,0x7E,0x80,0x7E,0x7F,0x7F,0x7F, - 0x80,0x7E,0x7D,0x7F,0x7F,0x7C,0x7D,0x7C,0x7E,0x7F,0x7D,0x7F,0x80,0x7F,0x7C,0x7C, - 0x7C,0x7D,0x7D,0x7D,0x7D,0x7B,0x7A,0x7C,0x78,0x78,0x7C,0x79,0x7A,0x7A,0x7B,0x7C, - 0x7D,0x7E,0x80,0x80,0x80,0x81,0x80,0x83,0x83,0x83,0x87,0x87,0x85,0x87,0x87,0x86, - 0x86,0x87,0x87,0x86,0x84,0x84,0x84,0x82,0x84,0x85,0x84,0x84,0x83,0x83,0x84,0x83, - 0x82,0x83,0x82,0x82,0x81,0x82,0x83,0x81,0x81,0x82,0x81,0x7E,0x7F,0x7F,0x7E,0x80, - 0x7F,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7E,0x7E,0x7F,0x80,0x7F,0x82,0x81,0x81,0x81, - 0x81,0x82,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x81,0x81,0x81,0x81,0x81,0x80,0x80, - 0x80,0x7E,0x7F,0x7D,0x7D,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7F,0x80,0x81, - 0x81,0x82,0x82,0x83,0x80,0x7F,0x81,0x7D,0x7E,0x80,0x7F,0x7E,0x7E,0x7C,0x7B,0x7C, - 0x7A,0x7A,0x7C,0x7D,0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x7F,0x81,0x83,0x83,0x84, - 0x84,0x83,0x84,0x83,0x82,0x83,0x83,0x83,0x84,0x84,0x82,0x82,0x81,0x81,0x81,0x81, - 0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x83,0x82,0x83,0x84,0x84,0x83,0x82, - 0x82,0x81,0x81,0x81,0x81,0x81,0x7F,0x80,0x7E,0x7E,0x7B,0x7B,0x7D,0x7B,0x7C,0x7C, - 0x7D,0x7D,0x7E,0x7D,0x7D,0x7E,0x7F,0x80,0x80,0x82,0x83,0x83,0x84,0x83,0x83,0x84, - 0x83,0x82,0x83,0x83,0x82,0x83,0x82,0x81,0x81,0x80,0x7F,0x7F,0x7D,0x7E,0x7F,0x7F, - 0x7F,0x7E,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x82,0x82,0x82,0x81,0x83,0x82,0x83,0x83, - 0x81,0x81,0x80,0x80,0x80,0x80,0x7F,0x7E,0x7E,0x7D,0x7C,0x7C,0x7C,0x7B,0x7C,0x7D, - 0x7C,0x7C,0x7D,0x7C,0x7C,0x7E,0x7E,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x81, - 0x82,0x82,0x82,0x81,0x82,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F, - 0x7E,0x7F,0x7F,0x7F,0x81,0x80,0x7F,0x80,0x81,0x7F,0x80,0x81,0x80,0x81,0x81,0x80, - 0x80,0x82,0x80,0x80,0x7F,0x7E,0x7E,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7B,0x7B,0x7B, - 0x7B,0x7C,0x7C,0x7C,0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82, - 0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x7F,0x7E,0x7E,0x7E,0x7E, - 0x7D,0x7E,0x7E,0x7D,0x7E,0x7D,0x7D,0x7E,0x7E,0x7D,0x7F,0x80,0x7F,0x80,0x82,0x80, - 0x81,0x82,0x80,0x81,0x81,0x81,0x81,0x82,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7D, - 0x7D,0x7E,0x7D,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x81,0x81,0x81, - 0x82,0x81,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x82,0x81,0x81, - 0x80,0x80,0x7F,0x7F,0x7F,0x7E,0x7E,0x7D,0x7D,0x7D,0x7E,0x7E,0x7D,0x7D,0x7E,0x7E, - 0x7E,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x7F,0x80,0x81,0x80,0x80,0x81,0x81,0x80, - 0x80,0x80,0x7F,0x7F,0x7F,0x7E,0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7E,0x7F,0x7E,0x7F, - 0x81,0x81,0x81,0x82,0x83,0x82,0x83,0x83,0x82,0x83,0x83,0x83,0x82,0x83,0x82,0x81, - 0x82,0x82,0x81,0x82,0x82,0x81,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x7F,0x80,0x7F,0x81,0x80,0x81,0x82,0x82,0x93,0x85,0x86,0x85,0x64,0x7E,0x82,0x6B, - 0x69,0x76,0x7F,0x85,0x8A,0x8B,0x8C,0x88,0x95,0xA1,0xA0,0xA8,0x9F,0x91,0x88,0x75, - 0x88,0x91,0x6D,0x6B,0x75,0x68,0x59,0x59,0x54,0x51,0x5F,0x5E,0x5D,0x54,0x64,0x6F, - 0x6D,0x79,0x6F,0x97,0xAB,0x8C,0x95,0xA2,0x93,0xA7,0xA2,0x91,0xC3,0xA0,0xA1,0xB7, - 0x99,0xB5,0xAC,0x90,0x8E,0x8B,0x93,0x8F,0x7A,0x80,0x73,0x6C,0x7A,0x6B,0x86,0x91, - 0x6A,0x7C,0x87,0x77,0x87,0x67,0x44,0x68,0x6D,0x66,0x6C,0x59,0x50,0x59,0x60,0x62, - 0x64,0x7D,0x87,0x92,0x9D,0x92,0x89,0x8A,0x89,0x80,0x8F,0xA3,0xB3,0xB7,0x9D,0x99, - 0xB2,0xA4,0xA7,0xA4,0x8F,0x97,0x8D,0x88,0x7E,0x7E,0x81,0x6A,0x65,0x64,0x6C,0x6D, - 0x59,0x55,0x4B,0x4B,0x51,0x44,0x3D,0x40,0x47,0x3B,0x37,0x49,0x58,0x5A,0x5D,0x74, - 0x81,0x85,0xA2,0xB2,0xA0,0x9C,0x8C,0x8E,0x9F,0x9A,0x9E,0xA0,0xA2,0xBD,0xCC,0xD2, - 0xD2,0xC1,0xC5,0xC7,0xB1,0xB2,0xAA,0x89,0x81,0x7C,0x7A,0x8A,0x7F,0x6F,0x69,0x5E, - 0x5D,0x68,0x66,0x60,0x56,0x4B,0x67,0x69,0x5D,0x63,0x62,0x6E,0x6B,0x66,0x64,0x60, - 0x73,0x78,0x81,0x86,0x82,0x96,0xA0,0x9A,0xA4,0x96,0x8A,0x94,0x8B,0x9C,0x9D,0x8F, - 0x8F,0x8B,0x92,0x8E,0x91,0x94,0x87,0x97,0x94,0x91,0xA7,0x9C,0x91,0x96,0x97,0x95, - 0x91,0x8D,0x75,0x68,0x71,0x72,0x7C,0x6F,0x6B,0x81,0x82,0x7C,0x64,0x4C,0x51,0x57, - 0x63,0x6C,0x59,0x49,0x47,0x44,0x46,0x54,0x5A,0x4C,0x49,0x47,0x4A,0x4A,0x4E,0x5B, - 0x63,0x7F,0x92,0x94,0x88,0x72,0x7E,0x93,0x8E,0x9B,0xA2,0xA0,0xA9,0x8F,0x7E,0x84, - 0x80,0x7F,0xA2,0xBB,0xA8,0xA6,0xB1,0xB7,0xBC,0xB1,0xB7,0xBC,0xB9,0xB9,0xAD,0xA2, - 0x99,0x8D,0x94,0xAC,0xAF,0x9F,0x8C,0x80,0x80,0x82,0x8A,0x83,0x7D,0x83,0x92,0x7D, - 0x6E,0x6C,0x5C,0x6B,0x65,0x61,0x64,0x5E,0x5F,0x61,0x65,0x5E,0x60,0x6B,0x66,0x67, - 0x79,0x60,0x52,0x60,0x51,0x59,0x5E,0x59,0x66,0x70,0x72,0x70,0x72,0x70,0x78,0x73, - 0x79,0x81,0x83,0x87,0x8D,0x98,0x9A,0xA1,0x99,0x91,0x9D,0x9E,0x8F,0x8B,0x90,0x8D, - 0x8B,0x7C,0x80,0x95,0x8D,0x87,0x84,0x7F,0x76,0x73,0x71,0x65,0x73,0x78,0x78,0x8C, - 0x90,0x8F,0x97,0x95,0x88,0x83,0x78,0x6A,0x6C,0x69,0x6C,0x79,0x81,0x70,0x69,0x70, - 0x6A,0x73,0x79,0x6B,0x6B,0x74,0x78,0x78,0x7B,0x7C,0x76,0x7E,0x7A,0x77,0x8C,0x8B, - 0x8C,0x84,0x80,0x92,0x8F,0x90,0x93,0x8F,0x8B,0x87,0x91,0x91,0x91,0xAB,0xAD,0x9B, - 0x9F,0xAC,0xA7,0xA0,0x99,0x93,0xAF,0xBC,0xB2,0xB7,0xAA,0xA4,0xA9,0xAC,0xAA,0x97, - 0x8E,0x96,0x99,0x91,0x84,0x90,0x95,0x84,0x7D,0x74,0x6D,0x53,0x43,0x45,0x41,0x49, - 0x49,0x51,0x60,0x67,0x60,0x59,0x58,0x49,0x4F,0x55,0x53,0x51,0x50,0x57,0x51,0x46, - 0x43,0x4F,0x54,0x52,0x5E,0x5C,0x5A,0x63,0x5A,0x64,0x71,0x6B,0x7B,0x90,0x9E,0xA7, - 0xA2,0xA6,0x9F,0x9D,0xA9,0xAE,0xB2,0xAC,0xAB,0xAD,0xA4,0x9B,0x99,0xA0,0xA4,0x8E, - 0x8E,0x93,0x7F,0x88,0x8E,0x83,0x87,0x84,0x89,0xA2,0x9E,0x86,0x8B,0x8E,0x8C,0xA1, - 0x9F,0x96,0x99,0x90,0x9F,0xAC,0x9E,0x94,0x8E,0x95,0x95,0x87,0x88,0x89,0x81,0x80, - 0x81,0x86,0x85,0x83,0x81,0x88,0x89,0x82,0x86,0x85,0x82,0x76,0x6F,0x76,0x6D,0x77, - 0x91,0x87,0x7A,0x64,0x70,0x8A,0x75,0x6B,0x5E,0x4D,0x49,0x54,0x5F,0x5C,0x5F,0x58, - 0x59,0x69,0x67,0x5B,0x5B,0x58,0x5E,0x5F,0x5C,0x6C,0x6D,0x69,0x6C,0x72,0x74,0x70, - 0x81,0x8C,0x7A,0x75,0x7E,0x7A,0x7B,0x82,0x84,0x84,0x89,0x90,0x99,0xA9,0xA5,0xAB, - 0xB8,0xB6,0xB6,0xAF,0xA8,0xAB,0xA7,0xA5,0xA5,0x99,0x8B,0x87,0x9D,0xAC,0x99,0x93, - 0x98,0x89,0x80,0x83,0x82,0x7B,0x79,0x7C,0x88,0x86,0x75,0x75,0x7B,0x80,0x7C,0x73, - 0x7B,0x8D,0x89,0x87,0x81,0x6E,0x72,0x70,0x78,0x7D,0x63,0x6A,0x77,0x72,0x6F,0x68, - 0x63,0x6C,0x72,0x6D,0x7E,0x7C,0x64,0x69,0x73,0x78,0x7C,0x74,0x7B,0x86,0x7C,0x83, - 0x84,0x72,0x6A,0x6D,0x7C,0x78,0x6D,0x73,0x70,0x6A,0x69,0x69,0x6C,0x74,0x72,0x71, - 0x75,0x6C,0x65,0x6D,0x7B,0x7D,0x6E,0x6C,0x77,0x79,0x7E,0x83,0x7D,0x76,0x73,0x78, - 0x89,0x80,0x6F,0x78,0x80,0x83,0x84,0x84,0x89,0x8D,0x94,0x9D,0xAC,0xAD,0xA6,0xAE, - 0xB3,0xB8,0xAB,0xA3,0xB5,0xB5,0xA9,0xAB,0xAA,0xA5,0x9A,0x95,0xA0,0x90,0x7F,0x88, - 0x85,0x7A,0x74,0x72,0x7C,0x7E,0x77,0x80,0x87,0x80,0x79,0x73,0x75,0x77,0x6F,0x67, - 0x76,0x7B,0x6F,0x74,0x74,0x79,0x7B,0x7C,0x89,0x7E,0x74,0x7D,0x82,0x6E,0x65,0x6A, - 0x6E,0x74,0x70,0x73,0x7F,0x7B,0x7B,0x85,0x81,0x7A,0x6D,0x67,0x72,0x72,0x6C,0x67, - 0x61,0x63,0x67,0x70,0x7C,0x71,0x6B,0x7C,0x79,0x66,0x59,0x5F,0x67,0x64,0x69,0x75, - 0x7D,0x76,0x7A,0x7C,0x6E,0x69,0x60,0x66,0x71,0x68,0x6C,0x69,0x61,0x6B,0x6F,0x82, - 0x8C,0x76,0x7B,0x8D,0x85,0x77,0x76,0x7D,0x87,0x8F,0x90,0x9E,0xA5,0xA8,0xB6,0xBB, - 0xB7,0xAF,0xAE,0xB6,0xBE,0xB4,0xAA,0xAE,0xAB,0xA2,0xA5,0xBA,0xAC,0x9D,0xA6,0xA1, - 0x9A,0x8C,0x8B,0x91,0x84,0x82,0x90,0x90,0x8B,0x8B,0x89,0x87,0x83,0x7C,0x7C,0x88, - 0x86,0x81,0x87,0x8A,0x87,0x7B,0x89,0x96,0x81,0x88,0x92,0x86,0x79,0x73,0x83,0x80, - 0x77,0x83,0x88,0x85,0x7B,0x7B,0x78,0x70,0x6C,0x5F,0x6B,0x70,0x66,0x68,0x68,0x68, - 0x5C,0x6D,0x7E,0x70,0x5F,0x5B,0x66,0x67,0x4C,0x43,0x6E,0x51,0x3A,0x5C,0x57,0x55, - 0x5A,0x6B,0x63,0x45,0x49,0x59,0x58,0x49,0x54,0x53,0x44,0x42,0x57,0x71,0x68,0x6A, - 0x7B,0x7A,0x62,0x5D,0x68,0x6E,0x6E,0x77,0x8A,0x8B,0x8F,0x94,0x9C,0xA9,0xAB,0xAC, - 0xAC,0xB2,0xBC,0xB9,0xB7,0xB4,0xA9,0xB2,0xC8,0xBC,0xB0,0xBA,0xAF,0xA6,0xA1,0x94, - 0x9D,0x98,0x86,0x94,0xA1,0x97,0x8D,0x8C,0x90,0x97,0x95,0x8A,0x8A,0x90,0x96,0x99, - 0x9C,0x9C,0x98,0xB1,0xB4,0xAD,0xB4,0xAE,0xA8,0x9B,0x95,0x9A,0x95,0x8B,0x98,0xA1, - 0x95,0x96,0x93,0x90,0x93,0x84,0x81,0x85,0x7D,0x7D,0x75,0x77,0x75,0x68,0x80,0x84, - 0x77,0x7E,0x7F,0x79,0x6E,0x65,0x62,0x61,0x55,0x56,0x64,0x60,0x56,0x51,0x54,0x60, - 0x58,0x4C,0x4C,0x49,0x46,0x40,0x40,0x42,0x3A,0x51,0x60,0x4D,0x54,0x54,0x4F,0x57, - 0x4B,0x4C,0x57,0x48,0x48,0x59,0x5C,0x64,0x68,0x66,0x72,0x84,0x89,0x83,0x82,0x8A, - 0x90,0x8E,0x96,0x93,0x90,0xA1,0x9C,0x94,0x99,0x97,0x92,0x96,0x92,0x90,0x96,0x8A, - 0x83,0x8D,0x8D,0x8D,0x8C,0x83,0x87,0x88,0x89,0x8A,0x85,0x8B,0x8D,0x8F,0x99,0x92, - 0x98,0xA9,0xA0,0xA2,0xAB,0xA7,0xA7,0xA8,0xA2,0xAA,0xA8,0x96,0x9D,0xA1,0xA2,0xB0, - 0xA6,0xA3,0xAA,0xA0,0xA4,0xA3,0x99,0x9A,0x8E,0x92,0x98,0x87,0x95,0x9A,0x8D,0x96, - 0x94,0x93,0x92,0x83,0x82,0x83,0x72,0x70,0x76,0x74,0x78,0x74,0x71,0x76,0x6D,0x66, - 0x67,0x60,0x5E,0x56,0x51,0x58,0x4A,0x53,0x6E,0x64,0x65,0x6F,0x6B,0x70,0x64,0x60, - 0x70,0x67,0x5D,0x6C,0x72,0x73,0x75,0x76,0x86,0x8B,0x83,0x8B,0x8D,0x87,0x88,0x8B, - 0x90,0x86,0x86,0x9B,0x95,0x94,0x9D,0x8F,0x87,0x79,0x72,0x7F,0x6F,0x60,0x6A,0x70, - 0x72,0x72,0x70,0x7D,0x7B,0x6F,0x79,0x74,0x6C,0x6D,0x70,0x7A,0x71,0x76,0x8C,0x81, - 0x84,0x96,0x92,0x8D,0x83,0x81,0x8D,0x82,0x7A,0x87,0x84,0x87,0x91,0x92,0x95,0x8D, - 0x88,0x8F,0x88,0x81,0x7E,0x80,0x84,0x77,0x82,0x94,0x84,0x87,0x95,0x90,0x8A,0x7E, - 0x79,0x7B,0x6E,0x6D,0x7B,0x78,0x71,0x73,0x7B,0x7E,0x74,0x71,0x73,0x68,0x62,0x61, - 0x60,0x60,0x55,0x61,0x78,0x66,0x68,0x78,0x6F,0x66,0x5F,0x67,0x6A,0x5B,0x65,0x76, - 0x6F,0x71,0x80,0x88,0x8C,0x84,0x8B,0x93,0x8A,0x8E,0x94,0x93,0x98,0x93,0xA2,0xBB, - 0xA6,0xA2,0xB7,0xAB,0xA1,0x9D,0x9A,0x96,0x82,0x83,0x90,0x81,0x7B,0x84,0x89,0x88, - 0x7F,0x80,0x7E,0x70,0x73,0x79,0x74,0x74,0x6E,0x76,0x93,0x83,0x7F,0x9C,0x90,0x86, - 0x8D,0x8C,0x85,0x79,0x7F,0x8D,0x87,0x82,0x91,0x96,0x91,0x97,0x9B,0x96,0x86,0x85, - 0x8B,0x82,0x82,0x82,0x77,0x8E,0x92,0x7F,0x95,0x92,0x83,0x85,0x7D,0x7A,0x70,0x6C, - 0x7A,0x76,0x6B,0x78,0x80,0x7B,0x7D,0x7F,0x7A,0x71,0x6B,0x6F,0x68,0x64,0x6D,0x62, - 0x67,0x7E,0x6C,0x72,0x85,0x74,0x72,0x75,0x6F,0x6D,0x62,0x66,0x76,0x70,0x71,0x82, - 0x88,0x85,0x8C,0x92,0x8C,0x8A,0x8B,0x89,0x84,0x89,0x90,0x84,0x92,0xA0,0x8B,0x99, - 0xA5,0x90,0x8C,0x91,0x89,0x7E,0x79,0x80,0x80,0x76,0x7A,0x82,0x7D,0x80,0x89,0x82, - 0x79,0x79,0x79,0x72,0x6C,0x75,0x76,0x6A,0x7E,0x8B,0x76,0x83,0x95,0x82,0x7D,0x88, - 0x82,0x75,0x74,0x7E,0x7D,0x73,0x7E,0x8C,0x84,0x89,0x94,0x8C,0x85,0x86,0x85,0x7F, - 0x7D,0x7D,0x80,0x77,0x7F,0x97,0x7D,0x7C,0x99,0x88,0x7A,0x8A,0x85,0x72,0x74,0x7C, - 0x79,0x72,0x7B,0x82,0x7B,0x7D,0x89,0x83,0x7C,0x84,0x82,0x77,0x78,0x79,0x7A,0x75, - 0x73,0x8B,0x81,0x71,0x8F,0x88,0x70,0x7F,0x81,0x6F,0x73,0x7A,0x75,0x71,0x78,0x7F, - 0x7B,0x7E,0x8A,0x87,0x80,0x8C,0x8C,0x83,0x85,0x88,0x86,0x8A,0x84,0x85,0x9A,0x89, - 0x87,0x9E,0x8A,0x82,0x96,0x88,0x7A,0x82,0x7D,0x78,0x7B,0x7C,0x7E,0x7C,0x7F,0x83, - 0x7E,0x7F,0x83,0x7A,0x77,0x7C,0x7C,0x79,0x7B,0x76,0x6F,0x87,0x83,0x74,0x8A,0x86, - 0x76,0x86,0x85,0x74,0x7C,0x7E,0x78,0x79,0x7D,0x81,0x7D,0x7D,0x88,0x86,0x81,0x8A, - 0x8A,0x82,0x85,0x84,0x80,0x83,0x84,0x7D,0x77,0x89,0x84,0x77,0x8D,0x88,0x75,0x80, - 0x84,0x72,0x76,0x7E,0x71,0x6F,0x7A,0x79,0x75,0x7A,0x7E,0x7D,0x7C,0x82,0x81,0x7E, - 0x80,0x7F,0x7D,0x7F,0x7E,0x7C,0x77,0x80,0x86,0x7A,0x86,0x8D,0x7E,0x7F,0x88,0x7A, - 0x78,0x81,0x7B,0x78,0x80,0x7F,0x7C,0x82,0x86,0x86,0x88,0x8B,0x89,0x8A,0x8D,0x8A, - 0x87,0x87,0x84,0x83,0x86,0x80,0x80,0x8A,0x84,0x83,0x8E,0x85,0x81,0x86,0x7E,0x79, - 0x7B,0x79,0x76,0x7A,0x7C,0x78,0x7C,0x80,0x7E,0x7E,0x84,0x82,0x80,0x83,0x81,0x7D, - 0x7E,0x7F,0x79,0x7B,0x85,0x7E,0x7F,0x8B,0x84,0x7F,0x87,0x81,0x76,0x7B,0x7C,0x79, - 0x7C,0x7F,0x7D,0x81,0x84,0x83,0x86,0x87,0x86,0x88,0x8A,0x87,0x85,0x85,0x83,0x82, - 0x82,0x83,0x82,0x7F,0x81,0x82,0x7F,0x7F,0x7C,0x79,0x7A,0x7B,0x79,0x79,0x7A,0x7B, - 0x7E,0x7F,0x7F,0x80,0x82,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x85,0x83,0x81, - 0x85,0x86,0x83,0x84,0x85,0x82,0x82,0x83,0x7F,0x7D,0x7E,0x7F,0x7F,0x81,0x80,0x7F, - 0x82,0x82,0x82,0x82,0x82,0x81,0x83,0x83,0x82,0x81,0x81,0x80,0x81,0x81,0x7F,0x7E, - 0x7E,0x7D,0x7D,0x7E,0x7E,0x7D,0x7B,0x7B,0x7A,0x77,0x77,0x7A,0x79,0x7A,0x7B,0x7B, - 0x7B,0x7C,0x7F,0x80,0x7F,0x80,0x82,0x81,0x81,0x82,0x81,0x81,0x80,0x82,0x80,0x80, - 0x82,0x81,0x81,0x81,0x81,0x81,0x80,0x7F,0x80,0x80,0x7F,0x7E,0x7F,0x80,0x80,0x80, - 0x80,0x80,0x81,0x81,0x80,0x80,0x82,0x82,0x82,0x82,0x7F,0x7F,0x7F,0x81,0x80,0x7E, - 0x7F,0x7F,0x7D,0x7C,0x7D,0x7E,0x7E,0x7E,0x80,0x7F,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F, - 0x80,0x7F,0x7D,0x80,0x82,0x81,0x7F,0x7F,0x7F,0x80,0x84,0x83,0x7F,0x80,0x85,0x84, - 0x82,0x81,0x7F,0x81,0x83,0x80,0x7C,0x7A,0x7B,0x7F,0x7F,0x7D,0x7E,0x7F,0x80,0x7C, - 0x7B,0x7D,0x7E,0x7F,0x7F,0x82,0x82,0x7D,0x80,0x83,0x82,0x83,0x7F,0x80,0x83,0x80, - 0x7D,0x7F,0x80,0x7D,0x7F,0x7D,0x7F,0x7F,0x80,0x82,0x83,0x80,0x7D,0x7B,0x77,0x79, - 0x7A,0x7D,0x7D,0x7E,0x7F,0x7C,0x7F,0x82,0x7F,0x82,0x86,0x84,0x82,0x84,0x8B,0x85, - 0x83,0x86,0x89,0x81,0x7F,0x85,0x81,0x80,0x82,0x82,0x82,0x83,0x81,0x80,0x83,0x7F, - 0x7C,0x7C,0x7C,0x7B,0x74,0x7B,0x81,0x7B,0x7F,0x80,0x7D,0x7E,0x7E,0x7F,0x81,0x80, - 0x7B,0x82,0x82,0x83,0x85,0x84,0x87,0x84,0x84,0x84,0x83,0x7F,0x84,0x88,0x83,0x86, - 0x85,0x81,0x85,0x86,0x82,0x80,0x83,0x82,0x7D,0x81,0x85,0x7F,0x83,0x86,0x7E,0x7F, - 0x81,0x7D,0x7E,0x82,0x7D,0x7F,0x81,0x7B,0x7A,0x7F,0x80,0x7E,0x80,0x7F,0x7F,0x7E, - 0x7C,0x81,0x80,0x82,0x84,0x83,0x80,0x80,0x81,0x80,0x82,0x81,0x7D,0x7E,0x80,0x81, - 0x82,0x87,0x83,0x7D,0x81,0x7C,0x7D,0x7F,0x81,0x7F,0x80,0x80,0x81,0x86,0x81,0x83, - 0x82,0x7F,0x7E,0x7D,0x82,0x82,0x82,0x82,0x81,0x81,0x82,0x84,0x80,0x82,0x81,0x7E, - 0x81,0x7D,0x7E,0x7F,0x7F,0x82,0x7E,0x7F,0x80,0x7E,0x7C,0x7E,0x7E,0x7E,0x7E,0x80, - 0x83,0x82,0x81,0x81,0x80,0x7F,0x83,0x81,0x84,0x85,0x81,0x83,0x86,0x82,0x83,0x85, - 0x83,0x83,0x83,0x83,0x81,0x85,0x85,0x81,0x83,0x83,0x7D,0x7D,0x80,0x7D,0x7E,0x80, - 0x7C,0x7D,0x7F,0x80,0x7F,0x7B,0x7C,0x7F,0x7C,0x7D,0x7D,0x7E,0x7E,0x80,0x7E,0x80, - 0x7F,0x7E,0x81,0x82,0x83,0x80,0x80,0x80,0x7E,0x7C,0x7F,0x7F,0x7D,0x82,0x81,0x7D, - 0x82,0x81,0x80,0x83,0x7F,0x81,0x80,0x82,0x80,0x7F,0x81,0x7F,0x83,0x80,0x82,0x86, - 0x80,0x83,0x83,0x81,0x84,0x85,0x84,0x82,0x81,0x81,0x7F,0x82,0x80,0x82,0x83,0x83, - 0x84,0x80,0x84,0x83,0x7D,0x80,0x7D,0x7C,0x7E,0x80,0x81,0x7D,0x7D,0x82,0x7F,0x7C, - 0x80,0x80,0x7E,0x80,0x7E,0x7C,0x7E,0x7E,0x7E,0x7E,0x80,0x81,0x81,0x81,0x81,0x83, - 0x84,0x86,0x83,0x81,0x85,0x83,0x81,0x80,0x82,0x84,0x7F,0x82,0x81,0x7E,0x82,0x80, - 0x7E,0x7C,0x7C,0x80,0x7E,0x7E,0x7F,0x7E,0x80,0x81,0x7C,0x7D,0x80,0x7C,0x7F,0x7F, - 0x7F,0x82,0x83,0x85,0x82,0x82,0x84,0x84,0x82,0x80,0x84,0x80,0x80,0x83,0x80,0x80, - 0x80,0x81,0x80,0x7F,0x81,0x7E,0x7E,0x80,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x7C,0x7A, - 0x7F,0x80,0x80,0x7F,0x81,0x81,0x80,0x80,0x7D,0x80,0x81,0x82,0x82,0x81,0x81,0x83, - 0x81,0x81,0x82,0x80,0x80,0x80,0x81,0x82,0x81,0x81,0x82,0x80,0x80,0x80,0x7E,0x81, - 0x7F,0x7C,0x7D,0x7B,0x7D,0x7C,0x7F,0x7F,0x7D,0x81,0x81,0x80,0x82,0x7F,0x7E,0x7F, - 0x7F,0x7F,0x80,0x82,0x7F,0x82,0x82,0x82,0x83,0x81,0x81,0x80,0x80,0x81,0x7F,0x7E, - 0x80,0x80,0x83,0x82,0x81,0x82,0x81,0x7D,0x7E,0x7E,0x7D,0x7E,0x7E,0x7F,0x7E,0x7F, - 0x80,0x7F,0x7E,0x7B,0x7F,0x80,0x7E,0x7F,0x80,0x81,0x7E,0x7F,0x7F,0x7F,0x81,0x82, - 0x81,0x7F,0x81,0x84,0x82,0x82,0x81,0x81,0x83,0x80,0x7F,0x7D,0x7F,0x80,0x7C,0x7E, - 0x7E,0x7F,0x82,0x80,0x7F,0x80,0x7E,0x80,0x7F,0x7D,0x7D,0x80,0x80,0x7E,0x80,0x82, - 0x81,0x80,0x83,0x82,0x7F,0x81,0x83,0x7E,0x80,0x83,0x7D,0x81,0x83,0x7F,0x81,0x82, - 0x81,0x82,0x82,0x81,0x7F,0x82,0x83,0x80,0x7E,0x80,0x80,0x7D,0x80,0x7F,0x7E,0x7F, - 0x80,0x81,0x81,0x81,0x81,0x80,0x7E,0x7E,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7F, - 0x81,0x81,0x81,0x81,0x80,0x81,0x81,0x7E,0x81,0x81,0x7D,0x7E,0x7F,0x7C,0x7C,0x7F, - 0x7E,0x7D,0x7E,0x7D,0x7D,0x80,0x7E,0x7F,0x81,0x7F,0x81,0x81,0x81,0x7E,0x81,0x82, - 0x7F,0x83,0x80,0x81,0x83,0x80,0x81,0x84,0x83,0x83,0x81,0x82,0x82,0x80,0x81,0x80, - 0x80,0x82,0x80,0x80,0x83,0x81,0x7D,0x7F,0x7F,0x7D,0x80,0x82,0x7C,0x7F,0x80,0x7B, - 0x7E,0x81,0x7F,0x7E,0x7F,0x7F,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x82,0x82,0x81, - 0x7F,0x81,0x80,0x7D,0x7F,0x81,0x80,0x7F,0x82,0x7F,0x7F,0x82,0x81,0x7E,0x80,0x81, - 0x7C,0x81,0x7E,0x7F,0x80,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7D,0x80,0x7F, - 0x7F,0x7F,0x80,0x82,0x81,0x80,0x7F,0x81,0x7F,0x7F,0x81,0x7F,0x7E,0x80,0x7F,0x7E, - 0x7F,0x7F,0x81,0x80,0x7E,0x81,0x81,0x7F,0x81,0x80,0x7F,0x81,0x81,0x7F,0x82,0x81, - 0x81,0x83,0x80,0x81,0x82,0x81,0x81,0x81,0x80,0x80,0x81,0x81,0x80,0x7F,0x82,0x81, - 0x81,0x83,0x81,0x82,0x82,0x81,0x7F,0x81,0x81,0x81,0x81,0x80,0x81,0x7F,0x80,0x7F, - 0x7F,0x7F,0x7F,0x7E,0x80,0x80,0x7F,0x81,0x81,0x82,0x82,0x7E,0x7E,0x80,0x7E,0x80, - 0x81,0x81,0x81,0x80,0x83,0x81,0x80,0x81,0x82,0x7F,0x82,0x82,0x7E,0x81,0x7F,0x7F, - 0x80,0x81,0x7E,0x7E,0x81,0x7F,0x83,0x81,0x81,0x81,0x80,0x82,0x80,0x80,0x81,0x7E, - 0x80,0x85,0x7F,0x80,0x84,0x81,0x82,0x83,0x82,0x81,0x82,0x81,0x81,0x83,0x82,0x81, - 0x83,0x87,0x8F,0x80,0x68,0x7A,0x8B,0x8B,0x76,0x87,0x8C,0x6C,0x7C,0x82,0x7D,0x81, - 0x8B,0x90,0x7E,0x81,0x89,0x86,0x79,0x7B,0x8B,0x7C,0x71,0x75,0x7D,0x83,0x81,0x82, - 0x89,0x7C,0x72,0x7C,0x76,0x79,0x7C,0x7F,0x81,0x84,0x85,0x81,0x88,0x89,0x8C,0x89, - 0x81,0x85,0x86,0x85,0x87,0x81,0x81,0x85,0x7E,0x7F,0x85,0x81,0x7C,0x81,0x7A,0x7A, - 0x83,0x7B,0x7A,0x7B,0x7A,0x78,0x77,0x7B,0x81,0x88,0x86,0x7B,0x7B,0x85,0x84,0x82, - 0x8D,0x89,0x81,0x84,0x86,0x83,0x80,0x85,0x85,0x81,0x80,0x7F,0x7F,0x83,0x86,0x7E, - 0x78,0x7B,0x7E,0x7A,0x7A,0x80,0x7A,0x79,0x7C,0x7F,0x80,0x7C,0x78,0x7C,0x80,0x79, - 0x7D,0x7E,0x84,0x89,0x84,0x82,0x7E,0x7F,0x83,0x86,0x88,0x86,0x7F,0x80,0x86,0x85, - 0x85,0x84,0x81,0x7E,0x79,0x7C,0x7D,0x7C,0x80,0x7F,0x7A,0x7A,0x7D,0x7E,0x81,0x80, - 0x7F,0x7F,0x7A,0x7E,0x83,0x81,0x81,0x7F,0x80,0x81,0x82,0x83,0x7F,0x7F,0x82,0x81, - 0x80,0x84,0x82,0x84,0x83,0x81,0x80,0x7E,0x80,0x80,0x80,0x7C,0x7C,0x7F,0x81,0x80, - 0x7F,0x82,0x83,0x82,0x7F,0x7C,0x7B,0x7A,0x7C,0x7F,0x7F,0x7D,0x7C,0x7F,0x80,0x80, - 0x7E,0x82,0x84,0x7E,0x7C,0x7E,0x81,0x7F,0x7C,0x7F,0x81,0x81,0x81,0x80,0x84,0x86, - 0x82,0x80,0x7C,0x7C,0x7D,0x7C,0x7D,0x7B,0x7B,0x7B,0x7E,0x7F,0x7F,0x82,0x83,0x81, - 0x82,0x83,0x81,0x81,0x81,0x7F,0x80,0x81,0x83,0x81,0x84,0x86,0x82,0x81,0x7F,0x80, - 0x81,0x7F,0x7E,0x7E,0x7E,0x7C,0x7C,0x80,0x81,0x82,0x81,0x81,0x83,0x7E,0x7E,0x80, - 0x81,0x80,0x80,0x82,0x82,0x80,0x81,0x80,0x81,0x80,0x80,0x7E,0x7F,0x7F,0x7D,0x7E, - 0x7E,0x7E,0x7F,0x7F,0x80,0x82,0x80,0x7D,0x7D,0x7E,0x7F,0x7F,0x7E,0x7E,0x80,0x80, - 0x7F,0x7F,0x81,0x83,0x7F,0x7F,0x7F,0x7D,0x7E,0x7F,0x82,0x82,0x83,0x82,0x80,0x80, - 0x82,0x82,0x80,0x81,0x82,0x7F,0x7E,0x80,0x80,0x80,0x81,0x82,0x80,0x80,0x81,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x82,0x80,0x7E,0x81,0x81,0x80,0x80,0x81,0x7F, - 0x7E,0x80,0x7E,0x80,0x82,0x82,0x82,0x80,0x7E,0x7F,0x82,0x80,0x7C,0x7F,0x7E,0x7F, - 0x80,0x7E,0x7E,0x7F,0x81,0x81,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x7F,0x80,0x81,0x81, - 0x81,0x83,0x80,0x7F,0x80,0x7E,0x81,0x80,0x81,0x7F,0x7D,0x80,0x7F,0x81,0x82,0x81, - 0x82,0x81,0x7F,0x80,0x82,0x81,0x83,0x82,0x80,0x82,0x82,0x81,0x83,0x82,0x82,0x83, - 0x81,0x83,0x81,0x7F,0x82,0x83,0x81,0x81,0x81,0x82,0x81,0x80,0x83,0x81,0x7F,0x80, - 0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x81,0x7F,0x81,0x83,0x80,0x80,0x80,0x82, - 0x81,0x81,0x82,0x80,0x7F,0x82,0x82,0x82,0x84,0x82,0x7F,0x80,0x80,0x7F,0x80,0x81, - 0x81,0x81,0x7F,0x80,0x81,0x81,0x81,0x81,0x81,0x7F,0x7F,0x80,0x7F,0x7E,0x82,0x80, - 0x7E,0x7F,0x7F,0x81,0x82,0x83,0x80,0x82,0x83,0x80,0x81,0x82,0x82,0x81,0x81,0x82, - 0x81,0x80,0x82,0x82,0x83,0x84,0x81,0x81,0x82,0x7F,0x80,0x81,0x7D,0x7D,0x7F,0x81, - 0x81,0x80,0x81,0x80,0x7E,0x80,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x7F,0x82,0x81, - 0x81,0x81,0x80,0x80,0x80,0x81,0x80,0x7F,0x7F,0x80,0x7E,0x7D,0x7F,0x80,0x7F,0x7D, - 0x7F,0x7F,0x7E,0x7E,0x80,0x80,0x7C,0x7F,0x80,0x7F,0x80,0x81,0x82,0x81,0x81,0x80, - 0x7F,0x7F,0x7F,0x7F,0x80,0x7E,0x7C,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x81,0x80,0x7F, - 0x82,0x81,0x81,0x80,0x80,0x7F,0x80,0x80,0x81,0x80,0x81,0x80,0x7D,0x7E,0x7F,0x7E, - 0x7F,0x80,0x7D,0x7D,0x7F,0x7E,0x7E,0x7F,0x80,0x81,0x80,0x80,0x81,0x7F,0x7F,0x80, - 0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7E,0x7F,0x80,0x7E,0x7F,0x80,0x7F,0x7F, - 0x7E,0x7D,0x7D,0x7D,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x81,0x80, - 0x7F,0x7F,0x7E,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x81,0x7F,0x80,0x80,0x7E,0x7E, - 0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x7F,0x7E, - 0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x81,0x80,0x80,0x81,0x7F,0x80,0x81,0x80,0x80, - 0x7F,0x7F,0x80,0x7F,0x80,0x80,0x80,0x81,0x80,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F, - 0x80,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x80,0x80,0x81,0x80,0x80,0x82,0x81,0x80, - 0x82,0x82,0x80,0x7F,0x81,0x81,0x7F,0x80,0x81,0x80,0x7E,0x7F,0x80,0x7F,0x80,0x80, - 0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x81,0x80,0x81,0x7F,0x80,0x82,0x81,0x81,0x81, - 0x80,0x81,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x81,0x80,0x82,0x81,0x80,0x80, - 0x7F,0x7F,0x7F,0x80,0x7F,0x80,0x81,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82, - 0x81,0x82,0x83,0x82,0x82,0x82,0x83,0x82,0x81,0x82,0x81,0x80,0x80,0x80,0x80,0x80, - 0x7F,0x80,0x81,0x80,0x7F,0x80,0x81,0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82, - 0x82,0x81,0x81,0x81,0x82,0x83,0x82,0x82,0x83,0x83,0x82,0x81,0x82,0x81,0x81,0x82, - 0x81,0x81,0x82,0x82,0x81,0x82,0x81,0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x80,0x80, - 0x80,0x80,0x81,0x81,0x80,0x82,0x81,0x81,0x81,0x82,0x81,0x81,0x82,0x81,0x82,0x82, - 0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x81,0x7F,0x7F,0x81, - 0x80,0x80,0x81,0x80,0x7F,0x80,0x80,0x7F,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80, - 0x81,0x81,0x81,0x81,0x81,0x80,0x82,0x7F,0x91,0x88,0x83,0x89,0x66,0x78,0x84,0x6D, - 0x67,0x75,0x7F,0x83,0x8A,0x8A,0x8C,0x87,0x92,0xA2,0x9F,0x9A,0x95,0x91,0x8D,0x89, - 0x87,0x82,0x76,0x6A,0x61,0x5D,0x5F,0x63,0x6A,0x60,0x5F,0x6B,0x69,0x6A,0x70,0x6E, - 0x74,0x81,0x7E,0x8C,0x86,0x7C,0x92,0x83,0x7C,0x9A,0xB1,0xA3,0xA1,0xBA,0xB3,0xA7, - 0xA1,0x91,0x95,0x9D,0x8F,0x84,0x84,0x7D,0x77,0x7B,0x78,0x77,0x76,0x6C,0x6A,0x6D, - 0x70,0x73,0x73,0x67,0x5D,0x57,0x59,0x52,0x51,0x57,0x4E,0x56,0x60,0x6A,0x6F,0x69, - 0x6E,0x7E,0x8E,0x92,0x98,0x9B,0x9B,0x98,0x9C,0xA7,0xAC,0xAB,0xB0,0xBF,0xC5,0xB8, - 0xA8,0xAC,0xB2,0xB3,0xAC,0xAD,0xB0,0xA3,0x9E,0x9B,0x91,0x85,0x78,0x79,0x77,0x6E, - 0x6D,0x66,0x58,0x4E,0x4C,0x4A,0x45,0x3F,0x40,0x40,0x40,0x4A,0x4D,0x54,0x5F,0x5D, - 0x5F,0x60,0x62,0x61,0x5E,0x62,0x65,0x6E,0x71,0x70,0x78,0x78,0x7A,0x86,0x8F,0x93, - 0x91,0x97,0x9B,0xA0,0xA4,0xA0,0x9D,0x97,0x9D,0x9B,0x91,0x8D,0x8B,0x93,0x95,0x94, - 0x95,0x90,0x8E,0x8D,0x8E,0x91,0x90,0x8D,0x92,0x93,0x89,0x7B,0x73,0x6D,0x69,0x67, - 0x67,0x6D,0x6F,0x71,0x70,0x6E,0x6E,0x73,0x78,0x7D,0x7F,0x7D,0x7D,0x7C,0x79,0x7A, - 0x7E,0x80,0x86,0x8C,0x8E,0x95,0x9A,0x9C,0x9E,0xA2,0xA7,0xA9,0xAB,0xA9,0xA7,0xA4, - 0xA3,0xA1,0x9C,0x9C,0x9B,0x99,0x97,0x91,0x8E,0x8B,0x87,0x85,0x82,0x7F,0x7A,0x74, - 0x6E,0x69,0x6C,0x66,0x60,0x5D,0x5D,0x5D,0x5A,0x57,0x53,0x55,0x58,0x5C,0x62,0x67, - 0x6D,0x72,0x74,0x76,0x7B,0x7F,0x83,0x88,0x88,0x85,0x83,0x8B,0x90,0x8D,0x8E,0x8E, - 0x8B,0x90,0x92,0x85,0x81,0x87,0x80,0x7C,0x7E,0x77,0x78,0x7D,0x74,0x71,0x77,0x75, - 0x70,0x6C,0x66,0x66,0x64,0x5A,0x56,0x55,0x56,0x63,0x69,0x64,0x62,0x5E,0x56,0x54, - 0x4C,0x44,0x4C,0x56,0x57,0x5A,0x60,0x65,0x6A,0x6A,0x67,0x6E,0x76,0x78,0x7F,0x89, - 0x90,0x94,0x94,0x93,0x98,0xA8,0xB2,0xB2,0xB3,0xBA,0xC0,0xC2,0xC2,0xC1,0xCB,0xD1, - 0xCB,0xC6,0xC7,0xCB,0xC7,0xBE,0xB7,0xB6,0xB6,0xAC,0xA7,0xA8,0xA6,0x9F,0x94,0x8B, - 0x84,0x87,0x90,0x88,0x7E,0x81,0x7E,0x78,0x75,0x70,0x76,0x7F,0x7B,0x77,0x7E,0x80, - 0x77,0x70,0x6D,0x6F,0x73,0x6F,0x6E,0x79,0x7C,0x71,0x68,0x6A,0x6A,0x6A,0x79,0x7D, - 0x76,0x79,0x74,0x6A,0x6A,0x66,0x68,0x76,0x7B,0x7A,0x83,0x88,0x83,0x7F,0x7F,0x85, - 0x8F,0x90,0x8F,0x9B,0x9E,0x95,0x8C,0x8F,0x91,0x8F,0xA0,0xAD,0xA5,0xA2,0xA0,0x97, - 0x91,0x8B,0x87,0x91,0x96,0x8E,0x90,0x92,0x86,0x79,0x72,0x72,0x78,0x78,0x73,0x78, - 0x7B,0x70,0x62,0x5E,0x62,0x58,0x5D,0x6C,0x67,0x5F,0x5C,0x54,0x4C,0x4A,0x47,0x4D, - 0x54,0x50,0x50,0x52,0x4C,0x47,0x45,0x47,0x4F,0x56,0x55,0x5A,0x5D,0x56,0x4E,0x4E, - 0x54,0x53,0x5C,0x6E,0x70,0x6F,0x72,0x71,0x73,0x78,0x7C,0x8B,0x9A,0x9E,0xA7,0xB2, - 0xB1,0xB1,0xB5,0xBC,0xCA,0xD1,0xD1,0xD7,0xD9,0xD1,0xC9,0xC9,0xCA,0xC2,0xC7,0xD3, - 0xCB,0xBE,0xB8,0xAE,0xA5,0x9F,0x9B,0xA1,0xA6,0x9E,0x98,0x99,0x91,0x88,0x85,0x87, - 0x8F,0x90,0x8B,0x8E,0x8B,0x7F,0x7C,0x80,0x83,0x7D,0x89,0x9A,0x92,0x87,0x87,0x80, - 0x7A,0x78,0x77,0x7F,0x82,0x77,0x73,0x71,0x68,0x5F,0x5E,0x62,0x67,0x67,0x65,0x69, - 0x64,0x5A,0x5B,0x61,0x65,0x5E,0x66,0x7B,0x75,0x68,0x6B,0x6C,0x67,0x67,0x6B,0x76, - 0x7B,0x74,0x71,0x73,0x6E,0x68,0x6A,0x6F,0x74,0x74,0x71,0x71,0x6E,0x66,0x65,0x6A, - 0x6B,0x64,0x6E,0x81,0x77,0x6C,0x71,0x70,0x6B,0x6C,0x71,0x7E,0x82,0x79,0x7B,0x82, - 0x7B,0x77,0x7C,0x83,0x89,0x88,0x84,0x88,0x85,0x7D,0x7F,0x86,0x88,0x80,0x87,0x9A, - 0x90,0x80,0x85,0x86,0x7F,0x7E,0x85,0x8F,0x93,0x8B,0x89,0x8E,0x87,0x82,0x87,0x8E, - 0x93,0x94,0x92,0x95,0x93,0x8D,0x91,0x98,0x9A,0x93,0x9B,0xAD,0xA3,0x92,0x96,0x95, - 0x8A,0x84,0x86,0x8C,0x8A,0x7C,0x76,0x77,0x6C,0x62,0x65,0x68,0x68,0x66,0x62,0x63, - 0x61,0x58,0x5C,0x62,0x62,0x5D,0x61,0x75,0x72,0x63,0x6A,0x70,0x6B,0x6B,0x73,0x7F, - 0x86,0x7F,0x7F,0x87,0x84,0x7F,0x86,0x8D,0x91,0x92,0x90,0x94,0x93,0x8C,0x8F,0x95, - 0x95,0x8E,0x92,0xA6,0xA1,0x91,0x97,0x99,0x91,0x90,0x95,0x9E,0xA3,0x98,0x95,0x9C, - 0x94,0x8C,0x90,0x95,0x96,0x94,0x90,0x90,0x8D,0x83,0x84,0x88,0x86,0x7E,0x7E,0x8E, - 0x89,0x74,0x75,0x76,0x6A,0x64,0x67,0x6E,0x70,0x66,0x5F,0x64,0x5C,0x51,0x55,0x5A, - 0x5B,0x5A,0x57,0x59,0x56,0x4D,0x4C,0x50,0x50,0x49,0x4D,0x61,0x5D,0x4D,0x52,0x56, - 0x4E,0x4D,0x54,0x5F,0x64,0x5D,0x5C,0x64,0x5F,0x59,0x61,0x6B,0x70,0x71,0x72,0x77, - 0x78,0x73,0x78,0x81,0x84,0x81,0x8C,0xA3,0xA0,0x95,0x9F,0xA4,0x9F,0xA1,0xA9,0xB6, - 0xBB,0xB0,0xB1,0xB7,0xAC,0xA3,0xA8,0xAC,0xAB,0xA6,0xA2,0xA3,0x9A,0x91,0x93,0x95, - 0x90,0x89,0x93,0xA3,0x95,0x8A,0x93,0x90,0x88,0x88,0x8F,0x99,0x97,0x8F,0x93,0x96, - 0x8D,0x8C,0x92,0x98,0x9B,0x9A,0x9B,0x9E,0x96,0x91,0x97,0x99,0x95,0x91,0x9F,0xAC, - 0x9B,0x93,0x9B,0x95,0x8C,0x8E,0x95,0x9B,0x98,0x8F,0x93,0x92,0x88,0x86,0x8B,0x8E, - 0x8D,0x89,0x89,0x88,0x7E,0x7A,0x7D,0x7C,0x74,0x74,0x84,0x82,0x6F,0x6D,0x6E,0x63, - 0x5E,0x5F,0x66,0x69,0x5F,0x59,0x5B,0x53,0x4A,0x4B,0x50,0x54,0x53,0x4F,0x50,0x4D, - 0x44,0x45,0x49,0x48,0x43,0x4D,0x5E,0x56,0x4A,0x51,0x50,0x49,0x4B,0x52,0x5E,0x61, - 0x59,0x5D,0x63,0x5C,0x5A,0x60,0x67,0x6E,0x6D,0x6F,0x74,0x72,0x6F,0x74,0x79,0x79, - 0x7A,0x8E,0x98,0x8B,0x8D,0x93,0x8F,0x8E,0x95,0xA1,0xAC,0xAA,0xA9,0xB4,0xB4,0xB0, - 0xB7,0xBF,0xC8,0xCD,0xCC,0xCF,0xCE,0xC5,0xC2,0xC3,0xC1,0xB9,0xBD,0xCD,0xC3,0xB1, - 0xB2,0xAC,0xA0,0x9B,0x9C,0xA3,0xA4,0x99,0x96,0x98,0x8E,0x88,0x8C,0x8E,0x91,0x91, - 0x8F,0x91,0x8D,0x87,0x87,0x8A,0x86,0x83,0x94,0x9D,0x8C,0x88,0x8C,0x84,0x81,0x81, - 0x88,0x8F,0x8A,0x83,0x87,0x85,0x7C,0x7D,0x80,0x83,0x84,0x81,0x82,0x82,0x7B,0x78, - 0x79,0x7A,0x74,0x79,0x8B,0x84,0x76,0x78,0x74,0x6D,0x6A,0x6C,0x73,0x75,0x6C,0x6A, - 0x6B,0x63,0x5D,0x5E,0x61,0x63,0x60,0x5D,0x5E,0x59,0x52,0x50,0x51,0x4C,0x48,0x5A, - 0x62,0x51,0x4F,0x52,0x4A,0x47,0x48,0x4F,0x59,0x56,0x51,0x55,0x54,0x4F,0x50,0x55, - 0x5C,0x5F,0x5E,0x62,0x65,0x61,0x5F,0x62,0x66,0x62,0x6A,0x81,0x7E,0x72,0x79,0x78, - 0x73,0x75,0x7B,0x86,0x8B,0x86,0x8A,0x90,0x8D,0x8B,0x90,0x98,0xA0,0xA3,0xA5,0xAC, - 0xAE,0xAD,0xAE,0xB5,0xB8,0xB8,0xCD,0xDA,0xCC,0xCB,0xCD,0xC4,0xBE,0xBD,0xC2,0xC7, - 0xBE,0xB6,0xB5,0xAE,0xA4,0x9D,0x9B,0x9B,0x98,0x91,0x8D,0x8B,0x83,0x7A,0x77,0x75, - 0x6E,0x77,0x88,0x7E,0x73,0x76,0x70,0x6A,0x6A,0x6E,0x7A,0x7B,0x75,0x78,0x7A,0x77, - 0x74,0x77,0x7E,0x83,0x82,0x83,0x86,0x84,0x80,0x7D,0x7F,0x7C,0x7F,0x95,0x95,0x86, - 0x87,0x82,0x7B,0x7A,0x7A,0x84,0x89,0x82,0x7F,0x81,0x7E,0x79,0x76,0x7A,0x7F,0x7F, - 0x7B,0x7B,0x7A,0x75,0x6F,0x6E,0x6D,0x68,0x7A,0x85,0x74,0x70,0x70,0x67,0x61,0x5F, - 0x66,0x6E,0x68,0x61,0x62,0x60,0x5B,0x58,0x59,0x5F,0x61,0x5E,0x5E,0x5F,0x5C,0x57, - 0x55,0x58,0x52,0x5B,0x73,0x6A,0x5E,0x63,0x60,0x5B,0x5A,0x5D,0x6B,0x6E,0x68,0x69, - 0x6C,0x6B,0x69,0x69,0x71,0x78,0x78,0x79,0x7C,0x7E,0x7C,0x79,0x7E,0x7F,0x7F,0x97, - 0xA0,0x91,0x93,0x96,0x92,0x92,0x93,0xA0,0xAC,0xA9,0xA8,0xAC,0xAE,0xAC,0xA8,0xAA, - 0xB0,0xB1,0xAD,0xAB,0xA9,0xA3,0x9A,0x96,0x94,0x8C,0x97,0xA3,0x92,0x87,0x85,0x7B, - 0x74,0x6E,0x71,0x7B,0x76,0x6E,0x6F,0x70,0x6F,0x68,0x68,0x6F,0x73,0x71,0x71,0x73, - 0x74,0x6F,0x6D,0x72,0x70,0x7B,0x92,0x8D,0x83,0x86,0x83,0x81,0x7E,0x81,0x8F,0x94, - 0x8E,0x8C,0x8F,0x91,0x8D,0x89,0x8D,0x94,0x95,0x92,0x91,0x93,0x90,0x88,0x89,0x85, - 0x8A,0xA0,0x9D,0x90,0x91,0x8C,0x87,0x81,0x7F,0x89,0x8D,0x87,0x83,0x83,0x84,0x80, - 0x79,0x7B,0x7F,0x7F,0x7B,0x77,0x79,0x76,0x6D,0x6B,0x68,0x6C,0x80,0x80,0x71,0x70, - 0x6C,0x68,0x62,0x5E,0x67,0x6F,0x6B,0x65,0x65,0x68,0x66,0x61,0x62,0x68,0x6D,0x6B, - 0x68,0x6B,0x6D,0x67,0x65,0x65,0x69,0x82,0x87,0x7A,0x7B,0x7B,0x7A,0x77,0x74,0x7F, - 0x8B,0x8B,0x87,0x88,0x90,0x93,0x8E,0x8F,0x98,0xA1,0xA2,0x9F,0xA1,0xA7,0xA4,0xA2, - 0xA1,0xA3,0xBA,0xC4,0xB5,0xAE,0xAC,0xA8,0xA1,0x96,0x98,0xA0,0x9F,0x96,0x8C,0x8C, - 0x8B,0x81,0x78,0x77,0x7C,0x7B,0x72,0x6C,0x6C,0x69,0x62,0x5D,0x5A,0x6D,0x7E,0x73, - 0x68,0x68,0x68,0x66,0x5F,0x60,0x6C,0x76,0x78,0x73,0x75,0x7C,0x7C,0x78,0x79,0x82, - 0x8A,0x8A,0x86,0x87,0x89,0x87,0x84,0x81,0x8F,0xA5,0xA2,0x96,0x91,0x90,0x91,0x8A, - 0x84,0x8A,0x94,0x97,0x92,0x8C,0x8C,0x8E,0x8B,0x84,0x85,0x8B,0x8D,0x89,0x83,0x80, - 0x7F,0x7C,0x74,0x76,0x8B,0x92,0x89,0x7F,0x77,0x77,0x74,0x6C,0x6A,0x72,0x78,0x79, - 0x73,0x6F,0x70,0x71,0x6E,0x6A,0x6B,0x6F,0x70,0x6E,0x6B,0x68,0x66,0x63,0x60,0x6F, - 0x7D,0x79,0x73,0x6D,0x68,0x69,0x65,0x61,0x65,0x6C,0x72,0x75,0x74,0x74,0x76,0x78, - 0x79,0x7A,0x7C,0x81,0x86,0x89,0x88,0x87,0x88,0x85,0x8E,0xA3,0xA9,0xA5,0xA1,0x9B, - 0x9B,0x9D,0x98,0x96,0x99,0x9C,0xA2,0xA3,0x9E,0x9B,0x9A,0x99,0x96,0x94,0x91,0x90, - 0x90,0x8D,0x88,0x85,0x80,0x7A,0x83,0x8C,0x89,0x85,0x7F,0x76,0x77,0x77,0x70,0x6F, - 0x6E,0x6D,0x72,0x73,0x71,0x72,0x72,0x71,0x74,0x76,0x75,0x74,0x74,0x75,0x76,0x76, - 0x76,0x74,0x7D,0x86,0x82,0x80,0x81,0x7D,0x81,0x84,0x80,0x81,0x82,0x81,0x85,0x84, - 0x83,0x85,0x83,0x83,0x85,0x86,0x87,0x87,0x87,0x88,0x88,0x87,0x86,0x85,0x88,0x8C, - 0x88,0x88,0x88,0x84,0x87,0x88,0x83,0x84,0x84,0x82,0x82,0x7F,0x7C,0x7C,0x78,0x77, - 0x78,0x79,0x79,0x78,0x77,0x78,0x79,0x79,0x79,0x78,0x7B,0x80,0x7D,0x7C,0x7D,0x7A, - 0x7D,0x80,0x7C,0x7D,0x7E,0x7B,0x7B,0x79,0x77,0x78,0x75,0x75,0x77,0x78,0x79,0x79, - 0x79,0x7A,0x7C,0x7D,0x7E,0x7D,0x7F,0x86,0x84,0x81,0x84,0x81,0x84,0x8A,0x86,0x87, - 0x89,0x84,0x84,0x85,0x82,0x83,0x82,0x80,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x86, - 0x87,0x85,0x83,0x87,0x88,0x82,0x82,0x82,0x7E,0x83,0x83,0x7D,0x7E,0x7A,0x76,0x77, - 0x74,0x72,0x72,0x6F,0x70,0x71,0x72,0x73,0x73,0x73,0x75,0x77,0x79,0x79,0x78,0x79, - 0x80,0x7F,0x7B,0x7F,0x7E,0x80,0x86,0x82,0x81,0x82,0x7E,0x7F,0x81,0x7E,0x7E,0x7D, - 0x7C,0x7E,0x80,0x81,0x81,0x82,0x83,0x85,0x88,0x88,0x87,0x86,0x89,0x8E,0x8B,0x89, - 0x8C,0x89,0x8C,0x8F,0x8A,0x8A,0x89,0x84,0x86,0x85,0x81,0x81,0x7E,0x7D,0x7F,0x7F, - 0x80,0x80,0x81,0x81,0x84,0x85,0x83,0x82,0x81,0x85,0x89,0x84,0x84,0x85,0x81,0x86, - 0x87,0x83,0x86,0x8E,0x78,0x61,0x75,0x85,0x82,0x68,0x80,0x83,0x5F,0x72,0x7C,0x7B, - 0x7C,0x8B,0x91,0x7A,0x80,0x88,0x8B,0x82,0x80,0x8E,0x7D,0x71,0x78,0x81,0x81,0x80, - 0x81,0x85,0x7C,0x73,0x78,0x71,0x73,0x73,0x7A,0x7B,0x76,0x7D,0x7B,0x83,0x87,0x91, - 0x92,0x88,0x8C,0x90,0x8F,0x8D,0x89,0x89,0x88,0x8B,0x85,0x84,0x8A,0x80,0x7F,0x7F, - 0x7A,0x7C,0x73,0x6C,0x69,0x6A,0x6A,0x68,0x6D,0x71,0x7E,0x84,0x77,0x75,0x7C,0x7B, - 0x7B,0x87,0x85,0x7A,0x7F,0x7E,0x81,0x83,0x7F,0x87,0x7E,0x78,0x80,0x79,0x76,0x80, - 0x78,0x6F,0x77,0x7C,0x7A,0x79,0x79,0x7E,0x80,0x83,0x85,0x83,0x83,0x85,0x85,0x87, - 0x86,0x81,0x81,0x88,0x92,0x91,0x8A,0x88,0x85,0x88,0x83,0x80,0x83,0x7A,0x7B,0x82, - 0x82,0x81,0x81,0x86,0x84,0x80,0x86,0x89,0x88,0x87,0x85,0x88,0x82,0x84,0x85,0x82, - 0x84,0x87,0x87,0x84,0x84,0x85,0x82,0x80,0x7A,0x76,0x7A,0x76,0x7A,0x7F,0x7B,0x7B, - 0x7D,0x7E,0x81,0x87,0x80,0x82,0x87,0x7F,0x7C,0x84,0x85,0x80,0x83,0x7A,0x7D,0x88, - 0x89,0x84,0x82,0x85,0x7F,0x7C,0x79,0x77,0x72,0x70,0x7C,0x7D,0x79,0x7F,0x7C,0x7D, - 0x84,0x85,0x88,0x87,0x8B,0x82,0x85,0x89,0x83,0x87,0x80,0x85,0x8C,0x8C,0x89,0x88, - 0x8F,0x84,0x80,0x80,0x7C,0x7C,0x78,0x77,0x7A,0x7D,0x7A,0x77,0x7C,0x80,0x82,0x84, - 0x84,0x82,0x7E,0x80,0x84,0x83,0x7F,0x7E,0x7D,0x7D,0x85,0x81,0x7A,0x7C,0x7C,0x78, - 0x75,0x7D,0x78,0x77,0x76,0x75,0x7B,0x74,0x7A,0x7D,0x7A,0x83,0x82,0x85,0x88,0x7F, - 0x7D,0x83,0x94,0x93,0x8C,0x8E,0x89,0x85,0x89,0x88,0x7C,0x76,0x7D,0x7F,0x7B,0x7F, - 0x7D,0x78,0x81,0x84,0x82,0x84,0x83,0x86,0x83,0x7F,0x80,0x79,0x7E,0x83,0x7C,0x7C, - 0x91,0x9B,0x8E,0x8D,0x87,0x85,0x8A,0x82,0x7B,0x74,0x76,0x81,0x7E,0x80,0x81,0x7A, - 0x80,0x8A,0x84,0x80,0x81,0x88,0x8A,0x7D,0x7B,0x7E,0x7E,0x7D,0x76,0x7D,0x90,0x8F, - 0x89,0x87,0x81,0x81,0x83,0x7B,0x75,0x72,0x78,0x81,0x79,0x7B,0x7C,0x7E,0x86,0x87, - 0x82,0x80,0x7F,0x84,0x83,0x7A,0x82,0x85,0x82,0x7E,0x76,0x84,0x95,0x91,0x87,0x84, - 0x87,0x8A,0x83,0x77,0x73,0x71,0x79,0x7F,0x74,0x78,0x7E,0x80,0x8C,0x80,0x80,0x85, - 0x84,0x84,0x7A,0x7D,0x83,0x7F,0x7C,0x77,0x74,0x89,0x98,0x8B,0x87,0x85,0x83,0x88, - 0x7C,0x6F,0x74,0x74,0x7B,0x77,0x73,0x7F,0x80,0x84,0x89,0x7B,0x7E,0x83,0x79,0x7B, - 0x7D,0x7E,0x83,0x80,0x7A,0x75,0x7B,0x8E,0x91,0x84,0x8A,0x89,0x84,0x8A,0x7A,0x74, - 0x7B,0x7D,0x7E,0x78,0x77,0x82,0x87,0x84,0x7F,0x81,0x88,0x83,0x78,0x80,0x82,0x7E, - 0x80,0x7C,0x7A,0x76,0x7A,0x8F,0x8C,0x82,0x8C,0x86,0x85,0x8B,0x7B,0x75,0x7C,0x7B, - 0x7D,0x78,0x7A,0x82,0x8A,0x86,0x7E,0x81,0x87,0x82,0x7E,0x82,0x7C,0x7E,0x80,0x7A, - 0x7B,0x7A,0x7C,0x8D,0x89,0x7F,0x8B,0x85,0x87,0x89,0x76,0x79,0x7F,0x78,0x78,0x76, - 0x77,0x81,0x81,0x83,0x81,0x7E,0x8A,0x89,0x7B,0x82,0x82,0x7A,0x7A,0x77,0x7F,0x7B, - 0x75,0x8C,0x8E,0x80,0x8A,0x85,0x83,0x89,0x74,0x76,0x84,0x72,0x79,0x7A,0x72,0x82, - 0x82,0x7D,0x7F,0x85,0x86,0x87,0x7E,0x7C,0x80,0x7C,0x79,0x79,0x7C,0x78,0x74,0x86, - 0x8E,0x7F,0x8B,0x89,0x7F,0x89,0x7A,0x72,0x80,0x75,0x76,0x7A,0x70,0x81,0x85,0x7E, - 0x88,0x85,0x82,0x87,0x80,0x7D,0x80,0x82,0x7D,0x76,0x7E,0x7B,0x73,0x82,0x90,0x86, - 0x87,0x8C,0x82,0x8B,0x83,0x73,0x81,0x7A,0x71,0x7C,0x76,0x7B,0x85,0x7F,0x86,0x86, - 0x82,0x86,0x83,0x80,0x84,0x81,0x7D,0x7C,0x7C,0x80,0x75,0x76,0x8B,0x87,0x83,0x8B, - 0x83,0x84,0x8A,0x7B,0x7C,0x7F,0x71,0x7C,0x78,0x72,0x83,0x7F,0x7D,0x84,0x83,0x85, - 0x86,0x82,0x83,0x83,0x7F,0x78,0x7A,0x80,0x7B,0x75,0x7E,0x8D,0x83,0x86,0x8A,0x7E, - 0x8C,0x88,0x76,0x80,0x77,0x74,0x7E,0x71,0x75,0x81,0x79,0x7E,0x84,0x81,0x8A,0x85, - 0x81,0x87,0x81,0x7C,0x79,0x7A,0x82,0x7B,0x72,0x87,0x8B,0x82,0x8C,0x86,0x7F,0x8D, - 0x82,0x74,0x7D,0x76,0x78,0x7B,0x71,0x7D,0x7D,0x7E,0x87,0x7E,0x84,0x89,0x7F,0x82, - 0x84,0x7C,0x7A,0x7C,0x76,0x79,0x77,0x72,0x81,0x85,0x83,0x86,0x80,0x85,0x8B,0x7B, - 0x77,0x7B,0x76,0x78,0x77,0x70,0x7B,0x80,0x7D,0x84,0x81,0x84,0x8A,0x85,0x83,0x86, - 0x80,0x7D,0x7C,0x7D,0x7F,0x7A,0x7B,0x88,0x87,0x82,0x88,0x84,0x83,0x8C,0x81,0x76, - 0x81,0x7C,0x78,0x7D,0x76,0x7B,0x7F,0x7E,0x7E,0x7C,0x84,0x8C,0x82,0x82,0x87,0x7F, - 0x81,0x81,0x7F,0x81,0x7C,0x78,0x83,0x87,0x80,0x85,0x88,0x86,0x88,0x83,0x7E,0x82, - 0x7E,0x7B,0x7C,0x75,0x79,0x7F,0x7C,0x7E,0x7F,0x80,0x87,0x82,0x82,0x86,0x82,0x85, - 0x80,0x7C,0x80,0x7D,0x7B,0x81,0x87,0x7F,0x84,0x85,0x83,0x89,0x86,0x81,0x83,0x80, - 0x7D,0x7D,0x79,0x7B,0x81,0x7B,0x7D,0x80,0x7F,0x87,0x84,0x81,0x89,0x84,0x82,0x82, - 0x7E,0x84,0x82,0x7D,0x83,0x86,0x82,0x86,0x84,0x81,0x89,0x85,0x81,0x85,0x82,0x80, - 0x81,0x7A,0x7A,0x7F,0x7A,0x7D,0x80,0x80,0x84,0x83,0x81,0x86,0x84,0x82,0x83,0x81, - 0x81,0x81,0x79,0x7F,0x85,0x80,0x82,0x81,0x81,0x84,0x82,0x80,0x82,0x80,0x7F,0x81, - 0x7A,0x7B,0x81,0x7E,0x7D,0x81,0x7E,0x83,0x82,0x82,0x87,0x84,0x84,0x83,0x80,0x81, - 0x82,0x7D,0x83,0x88,0x81,0x83,0x83,0x82,0x87,0x82,0x80,0x85,0x82,0x82,0x83,0x7D, - 0x7F,0x81,0x7C,0x80,0x81,0x7B,0x84,0x88,0x82,0x86,0x83,0x82,0x87,0x82,0x85,0x84, - 0x7B,0x86,0x86,0x7D,0x85,0x82,0x82,0x8A,0x82,0x7E,0x84,0x7F,0x80,0x7F,0x79,0x80, - 0x7D,0x7B,0x80,0x7D,0x7B,0x84,0x86,0x81,0x83,0x82,0x84,0x84,0x7D,0x83,0x85,0x88, - 0x94,0x87,0x85,0x81,0x75,0x79,0x76,0x7B,0x7B,0x7E,0x71,0x75,0x7C,0x5F,0x76,0x92, - 0x75,0x79,0x89,0x7F,0x84,0x76,0x82,0x93,0x82,0x85,0x83,0x7D,0x82,0x82,0x88,0x89, - 0x82,0x87,0x8A,0x87,0x88,0x87,0x8C,0x8E,0x88,0x86,0x7F,0x79,0x7F,0x86,0x7C,0x77, - 0x82,0x88,0x86,0x89,0x86,0x7B,0x7E,0x88,0x8A,0x88,0x90,0x8D,0x87,0x89,0x86,0x7F, - 0x79,0x7C,0x85,0x8A,0x91,0x91,0x83,0x79,0x76,0x74,0x75,0x75,0x71,0x74,0x76,0x70, - 0x6D,0x6A,0x69,0x6D,0x72,0x70,0x6A,0x6A,0x68,0x64,0x6D,0x6E,0x63,0x6D,0x75,0x79, - 0x7C,0x75,0x74,0x79,0x72,0x6C,0x68,0x69,0x76,0x7C,0x72,0x70,0x77,0x79,0x7A,0x74, - 0x74,0x7F,0x80,0x7C,0x7B,0x7E,0x7C,0x89,0xA7,0xAF,0xB5,0xB6,0xA4,0xA4,0x9C,0x88, - 0x8B,0x90,0x8A,0x86,0x7E,0x82,0x92,0x89,0x7E,0x86,0x88,0x89,0x88,0x82,0x89,0x89, - 0x84,0x86,0x84,0x79,0x8C,0xA6,0x9A,0x98,0x9A,0x93,0x97,0x85,0x75,0x86,0x8C,0x89, - 0x8E,0x8B,0x94,0x97,0x82,0x82,0x88,0x82,0x80,0x79,0x7F,0x87,0x7F,0x77,0x7B,0x78, - 0x76,0x8F,0x92,0x85,0x8A,0x87,0x83,0x7D,0x69,0x6C,0x7A,0x77,0x7C,0x80,0x81,0x8B, - 0x80,0x73,0x7A,0x75,0x71,0x73,0x72,0x79,0x7A,0x6A,0x64,0x61,0x56,0x66,0x76,0x69, - 0x6A,0x6D,0x5E,0x5A,0x4D,0x48,0x5A,0x5D,0x5B,0x65,0x67,0x6C,0x68,0x5B,0x5F,0x67, - 0x69,0x6A,0x70,0x77,0x76,0x69,0x64,0x66,0x5E,0x6E,0x81,0x7A,0x7B,0x7B,0x6D,0x6E, - 0x67,0x65,0x7B,0x86,0x8C,0x99,0x9D,0xA2,0xA0,0x91,0x94,0x9E,0x9F,0xA2,0xA3,0xA0, - 0x99,0x86,0x83,0x86,0x7B,0x90,0xA6,0x99,0x97,0x93,0x86,0x81,0x7B,0x7B,0x8F,0x96, - 0x94,0x9B,0x99,0x93,0x8C,0x82,0x8B,0x99,0x97,0x9A,0x9E,0x9B,0x93,0x87,0x8A,0x8C, - 0x8B,0xA4,0xAB,0x9B,0x9B,0x90,0x82,0x7C,0x72,0x7C,0x8F,0x8F,0x8D,0x93,0x8D,0x84, - 0x78,0x74,0x85,0x8D,0x89,0x8B,0x8D,0x83,0x78,0x77,0x7D,0x7C,0x89,0x9F,0x97,0x8C, - 0x88,0x7B,0x73,0x6D,0x6A,0x78,0x7D,0x74,0x76,0x70,0x67,0x5D,0x52,0x59,0x66,0x63, - 0x61,0x63,0x5F,0x55,0x4D,0x56,0x56,0x5B,0x75,0x76,0x69,0x69,0x63,0x5D,0x5C,0x5B, - 0x67,0x73,0x6E,0x6C,0x6C,0x67,0x64,0x5D,0x60,0x70,0x73,0x72,0x77,0x78,0x76,0x71, - 0x77,0x81,0x7F,0x9B,0xB4,0xA8,0xA7,0xAA,0xA1,0x9E,0x98,0x98,0xA8,0xA4,0x97,0x9A, - 0x93,0x8B,0x86,0x83,0x90,0x96,0x8D,0x8E,0x90,0x89,0x83,0x83,0x8D,0x89,0x93,0xAE, - 0xA6,0x97,0x94,0x90,0x8D,0x8B,0x89,0x9B,0xA6,0x98,0x97,0x97,0x91,0x8C,0x88,0x8F, - 0x9A,0x96,0x92,0x90,0x85,0x83,0x81,0x87,0x8B,0x82,0x95,0xA8,0x91,0x85,0x8A,0x82, - 0x80,0x7C,0x80,0x94,0x92,0x81,0x83,0x84,0x7F,0x7C,0x7B,0x88,0x8E,0x87,0x85,0x82, - 0x7A,0x74,0x74,0x74,0x68,0x6E,0x87,0x7B,0x67,0x65,0x5F,0x5B,0x56,0x54,0x65,0x6F, - 0x60,0x5B,0x5E,0x59,0x55,0x54,0x5C,0x69,0x67,0x62,0x68,0x63,0x5B,0x5E,0x64,0x69, - 0x60,0x66,0x7E,0x72,0x5F,0x65,0x62,0x62,0x66,0x67,0x77,0x84,0x76,0x73,0x7F,0x7F, - 0x82,0x8A,0x95,0xA5,0xA7,0xA1,0xA2,0x9F,0x97,0x94,0x97,0x92,0x8C,0xA4,0xA9,0x8F, - 0x8D,0x8C,0x83,0x80,0x7F,0x89,0x94,0x90,0x87,0x8C,0x89,0x86,0x84,0x88,0x97,0x9A, - 0x92,0x93,0x93,0x89,0x8A,0x90,0x90,0x95,0x8F,0x91,0xA6,0x99,0x85,0x8D,0x89,0x83, - 0x86,0x87,0x91,0x95,0x86,0x86,0x89,0x86,0x83,0x81,0x8B,0x91,0x8A,0x84,0x85,0x83, - 0x80,0x7F,0x83,0x7F,0x7B,0x94,0x97,0x82,0x84,0x82,0x7C,0x79,0x76,0x81,0x8B,0x80, - 0x78,0x78,0x72,0x6A,0x65,0x68,0x70,0x73,0x69,0x68,0x68,0x5E,0x58,0x5D,0x62,0x64, - 0x63,0x5C,0x6D,0x74,0x5B,0x59,0x63,0x5F,0x60,0x5E,0x64,0x72,0x67,0x5C,0x63,0x63, - 0x60,0x62,0x64,0x6F,0x72,0x6A,0x6D,0x6F,0x6E,0x70,0x76,0x7E,0x7B,0x7F,0x9B,0x9E, - 0x91,0x97,0x97,0x97,0x98,0x93,0xA0,0xA9,0x98,0x94,0x97,0x8F,0x8C,0x8A,0x8E,0x97, - 0x93,0x89,0x8C,0x8C,0x85,0x82,0x89,0x90,0x91,0x8C,0x87,0x9B,0xA3,0x8A,0x89,0x90, - 0x8B,0x8A,0x88,0x8F,0x9B,0x92,0x86,0x8E,0x90,0x89,0x88,0x8C,0x91,0x92,0x89,0x88, - 0x8D,0x89,0x87,0x87,0x8C,0x85,0x7C,0x98,0x9E,0x88,0x87,0x88,0x83,0x81,0x7A,0x86, - 0x93,0x88,0x82,0x84,0x81,0x7F,0x7B,0x7F,0x8A,0x8A,0x80,0x80,0x82,0x7C,0x75,0x75, - 0x78,0x73,0x6F,0x6A,0x72,0x81,0x6C,0x60,0x69,0x65,0x60,0x5D,0x63,0x71,0x6A,0x5B, - 0x61,0x65,0x5F,0x5E,0x63,0x69,0x6C,0x66,0x64,0x6A,0x68,0x64,0x64,0x68,0x68,0x5E, - 0x6E,0x84,0x75,0x6A,0x71,0x70,0x6E,0x6F,0x76,0x87,0x8A,0x80,0x85,0x8E,0x8E,0x8C, - 0x90,0x9D,0xA2,0x9C,0x97,0x9B,0x9B,0x92,0x8F,0x95,0x98,0x91,0x8A,0x8E,0xA0,0x9A, - 0x84,0x88,0x8D,0x86,0x83,0x84,0x8F,0x95,0x87,0x82,0x8A,0x88,0x84,0x86,0x8C,0x91, - 0x8C,0x87,0x8B,0x8C,0x88,0x87,0x89,0x8D,0x87,0x81,0x98,0xA0,0x89,0x86,0x8B,0x86, - 0x85,0x7E,0x86,0x97,0x8F,0x83,0x86,0x88,0x85,0x81,0x85,0x8D,0x8D,0x86,0x83,0x87, - 0x89,0x81,0x80,0x89,0x8A,0x81,0x7A,0x8B,0x9A,0x85,0x79,0x81,0x80,0x77,0x6E,0x73, - 0x7F,0x78,0x6C,0x6C,0x71,0x6C,0x65,0x64,0x6C,0x70,0x67,0x66,0x67,0x66,0x64,0x63, - 0x67,0x69,0x5F,0x61,0x7B,0x76,0x62,0x68,0x69,0x69,0x60,0x67,0x76,0x6F,0x75,0x54, - 0x58,0x72,0x61,0x53,0x60,0x79,0x7F,0x83,0x87,0x90,0x8F,0x92,0xAA,0xB4,0xB5,0xB6, - 0xB2,0xBB,0xB0,0x8C,0xA0,0xA4,0x7E,0x79,0x7D,0x78,0x6E,0x66,0x50,0x5C,0x74,0x72, - 0x69,0x5D,0x74,0x7D,0x72,0x7D,0x8B,0x98,0xA0,0x9F,0xA2,0xB1,0xAD,0xC9,0xD0,0xB0, - 0xD6,0xBF,0xB4,0xC5,0xA8,0xB1,0xAC,0x98,0x8E,0x8D,0x94,0x93,0x71,0x68,0x71,0x62, - 0x71,0x68,0x6A,0x88,0x6C,0x6A,0x7B,0x76,0x7C,0x67,0x56,0x69,0x68,0x60,0x67,0x67, - 0x5C,0x5D,0x5F,0x74,0x7F,0x80,0x8B,0x82,0x8E,0x8D,0x7C,0x7D,0x81,0x7B,0x78,0x82, - 0x93,0x96,0x8B,0x80,0x91,0x8C,0x84,0x9A,0x8C,0x82,0x81,0x81,0x7D,0x72,0x77,0x74, - 0x72,0x6F,0x74,0x80,0x74,0x67,0x5B,0x50,0x5B,0x5F,0x4D,0x42,0x50,0x4C,0x43,0x49, - 0x55,0x66,0x5A,0x69,0x7D,0x71,0x76,0x86,0x83,0x85,0x83,0x7E,0x97,0x9B,0x98,0x9E, - 0x94,0xA5,0xB6,0xB3,0xC1,0xBE,0xB2,0xB4,0xAB,0x99,0x9E,0x89,0x78,0x8B,0x7A,0x87, - 0x9E,0x88,0x7B,0x71,0x6A,0x75,0x80,0x74,0x73,0x6B,0x6F,0x81,0x70,0x6F,0x73,0x76, - 0x81,0x78,0x7B,0x71,0x71,0x83,0x82,0x84,0x7B,0x82,0x96,0x8D,0x8D,0xA1,0x8C,0x8D, - 0x91,0x8A,0x9B,0x91,0x90,0x98,0x99,0x99,0x9B,0xA4,0xA4,0x9F,0xAB,0xAB,0xB1,0xB8, - 0xA5,0xA0,0xA1,0xA1,0x9E,0x93,0x89,0x6E,0x68,0x74,0x74,0x71,0x5C,0x5C,0x6D,0x67, - 0x58,0x45,0x34,0x36,0x3E,0x49,0x4C,0x3E,0x3B,0x44,0x42,0x44,0x4B,0x45,0x46,0x43, - 0x3D,0x47,0x4A,0x55,0x56,0x61,0x85,0x87,0x84,0x79,0x6B,0x7D,0x88,0x93,0xA8,0xA6, - 0xAF,0xBD,0xAD,0xA2,0xA8,0xAD,0xB0,0xCA,0xD7,0xBF,0xC2,0xCD,0xCF,0xCE,0xC7,0xC9, - 0xC3,0xC5,0xC8,0xB4,0xA0,0x8E,0x7A,0x79,0x8D,0x8E,0x7E,0x6C,0x5B,0x59,0x5D,0x5C, - 0x54,0x51,0x4E,0x5F,0x5A,0x43,0x3B,0x2F,0x46,0x49,0x47,0x55,0x4C,0x59,0x6C,0x69, - 0x5E,0x5C,0x68,0x6B,0x6C,0x85,0x7B,0x73,0x86,0x73,0x7B,0x91,0x8D,0x98,0x9E,0xAB, - 0xB3,0xAD,0xA9,0xB2,0xB4,0xB6,0xBB,0xB5,0xB8,0xBF,0xC7,0xBD,0xBD,0xBC,0xAE,0xB1, - 0xAB,0xA3,0xA1,0x9F,0x99,0x91,0x86,0x83,0x8E,0x81,0x7E,0x7F,0x74,0x6A,0x61,0x68, - 0x60,0x57,0x55,0x53,0x5F,0x68,0x62,0x58,0x56,0x52,0x51,0x50,0x44,0x43,0x45,0x4C, - 0x58,0x5F,0x5E,0x50,0x49,0x4D,0x56,0x61,0x58,0x51,0x5B,0x64,0x68,0x63,0x6B,0x6B, - 0x64,0x7E,0x80,0x84,0x90,0x89,0x8F,0x89,0x89,0x97,0x9F,0xAD,0xAB,0x9F,0x9E,0x97, - 0x98,0x98,0x9B,0xAF,0xA9,0x9C,0xA2,0xA5,0x95,0x8C,0x85,0x79,0x9A,0xB3,0xA9,0xA1, - 0x8C,0x8F,0x9B,0x9D,0x94,0x86,0x91,0xA1,0x9E,0x95,0x94,0x9B,0x9B,0x93,0x8F,0x89, - 0x8D,0x7B,0x6B,0x6D,0x66,0x6D,0x6E,0x69,0x7D,0x95,0x86,0x77,0x77,0x6E,0x76,0x74, - 0x6C,0x6D,0x71,0x79,0x6B,0x64,0x65,0x60,0x66,0x6B,0x73,0x7D,0x7E,0x84,0x7A,0x7E, - 0x88,0x81,0x80,0x7D,0x98,0xA9,0x92,0x83,0x73,0x76,0x84,0x7D,0x7E,0x84,0x87,0x87, - 0x7D,0x74,0x74,0x6E,0x76,0x70,0x6A,0x79,0x72,0x76,0x81,0x73,0x70,0x75,0x6D,0x7B, - 0x98,0x8E,0x80,0x80,0x74,0x89,0x96,0x7D,0x7B,0x7F,0x8D,0xA0,0x8F,0x86,0x83,0x79, - 0x81,0x80,0x7B,0x83,0x88,0x86,0x85,0x87,0x82,0x84,0x7C,0x75,0x8D,0x8C,0x81,0x7A, - 0x71,0x6F,0x66,0x62,0x5D,0x60,0x82,0x8B,0x7C,0x6D,0x5E,0x79,0x7D,0x74,0x6F,0x5C, - 0x64,0x6C,0x75,0x79,0x75,0x7C,0x78,0x7C,0x98,0x98,0x8A,0x86,0x82,0x92,0x90,0x8A, - 0x8E,0x95,0x9A,0x96,0x9B,0x95,0x92,0x99,0x97,0x92,0x8E,0x8F,0x92,0x94,0x96,0x94, - 0x88,0x94,0x95,0x97,0xAF,0xAF,0xAD,0xAE,0xA5,0xA2,0x9F,0x94,0x90,0x98,0x9F,0x9B, - 0x8E,0x7C,0x7C,0x8A,0x95,0x91,0x87,0x88,0x82,0x7A,0x7C,0x72,0x63,0x69,0x65,0x6C, - 0x79,0x71,0x6A,0x6A,0x6C,0x68,0x63,0x66,0x70,0x77,0x79,0x70,0x5F,0x5F,0x5B,0x57, - 0x56,0x4D,0x53,0x58,0x63,0x65,0x5E,0x5A,0x58,0x63,0x5D,0x67,0x77,0x68,0x66,0x69, - 0x69,0x6F,0x6F,0x6E,0x70,0x77,0x83,0x80,0x73,0x6E,0x6F,0x6F,0x6D,0x6F,0x70,0x6C, - 0x73,0x79,0x7C,0x7A,0x7D,0x85,0x7B,0x79,0x86,0x89,0x8A,0x93,0x94,0x8D,0x8E,0x91, - 0x8D,0x9B,0xA6,0xA1,0x9E,0x97,0x97,0x9B,0x8C,0x87,0x8C,0x8B,0x97,0xA0,0x9B,0x9B, - 0x93,0x9A,0xA0,0x9D,0xAE,0xB0,0xAA,0xA4,0x9E,0x96,0x90,0x98,0x9B,0x96,0x9D,0xA1, - 0xA3,0xA4,0x97,0x8E,0x87,0x7F,0x83,0x84,0x80,0x84,0x83,0x83,0x88,0x86,0x81,0x85, - 0x8F,0x97,0x8E,0x82,0x79,0x74,0x70,0x6B,0x71,0x6C,0x66,0x66,0x69,0x75,0x73,0x69, - 0x5A,0x57,0x5B,0x5F,0x63,0x55,0x53,0x59,0x58,0x5F,0x5D,0x56,0x67,0x74,0x7C,0x80, - 0x6F,0x66,0x62,0x60,0x65,0x6A,0x64,0x5A,0x5B,0x69,0x72,0x6F,0x71,0x6E,0x6F,0x7D, - 0x80,0x77,0x6E,0x75,0x77,0x7C,0x83,0x7F,0x8D,0x97,0x9A,0x98,0x88,0x83,0x82,0x88, - 0x8C,0x89,0x8B,0x7F,0x7B,0x8A,0x91,0x96,0x96,0x8C,0x8E,0x99,0x99,0x91,0x91,0x93, - 0x94,0xA0,0x9C,0x92,0x93,0xA0,0xA8,0xA4,0x9F,0x96,0x9C,0x9F,0xA0,0xA1,0x95,0x95, - 0x95,0x91,0x92,0x95,0x93,0x8F,0x8F,0x90,0x99,0x94,0x93,0x94,0x8B,0x8F,0x96,0x8D, - 0x89,0x92,0x92,0x8E,0x8C,0x89,0x88,0x8F,0x90,0x8C,0x8A,0x8A,0x8A,0x80,0x74,0x74, - 0x6F,0x6C,0x6D,0x6C,0x6A,0x64,0x6E,0x6C,0x62,0x6F,0x6A,0x64,0x62,0x5E,0x66,0x59, - 0x5C,0x59,0x4E,0x5E,0x5E,0x5D,0x5E,0x5E,0x5F,0x5B,0x5E,0x58,0x5C,0x64,0x5F,0x5F, - 0x5D,0x59,0x63,0x69,0x66,0x6A,0x64,0x63,0x6C,0x6F,0x7B,0x78,0x6E,0x75,0x76,0x77, - 0x7C,0x76,0x74,0x7A,0x7F,0x81,0x82,0x86,0x87,0x8D,0x8F,0x8A,0x8A,0x8F,0x8D,0x90, - 0x95,0x90,0x8C,0x8A,0x8B,0x8D,0x90,0x93,0x92,0x8E,0x8D,0x94,0x99,0x93,0x93,0x99, - 0x97,0x9A,0x9C,0x93,0x93,0x98,0x9D,0x9E,0x9C,0x9A,0x9B,0x9E,0xA0,0xA4,0x9F,0x9A, - 0x9A,0x95,0x9A,0xA5,0x9D,0x9D,0x9D,0x9A,0x9E,0x9D,0x9F,0x9B,0x9D,0xA0,0x97,0x95, - 0x91,0x8D,0x8E,0x8B,0x85,0x84,0x82,0x82,0x86,0x84,0x7F,0x7F,0x7D,0x7D,0x7A,0x7C, - 0x82,0x7A,0x7A,0x76,0x6D,0x77,0x75,0x74,0x79,0x79,0x78,0x76,0x75,0x6F,0x70,0x71, - 0x6A,0x69,0x68,0x67,0x68,0x61,0x5E,0x5F,0x66,0x69,0x61,0x5E,0x66,0x68,0x63,0x5F, - 0x58,0x57,0x63,0x69,0x68,0x6C,0x63,0x5C,0x61,0x63,0x63,0x6B,0x66,0x5E,0x65,0x69, - 0x6E,0x70,0x6B,0x6D,0x73,0x7A,0x7D,0x72,0x73,0x7A,0x79,0x7C,0x79,0x75,0x7C,0x81, - 0x84,0x85,0x80,0x7E,0x7D,0x87,0x8A,0x85,0x88,0x82,0x7E,0x87,0x86,0x85,0x85,0x83, - 0x87,0x8D,0x8E,0x87,0x86,0x8F,0x96,0x99,0x98,0x94,0x96,0x9A,0x9E,0xA0,0xA0,0x9F, - 0x99,0x9F,0xA0,0x9D,0x9D,0x93,0x91,0x94,0x96,0x9C,0x99,0x97,0x99,0x96,0x9A,0x97, - 0x8F,0x93,0x98,0x97,0x97,0x90,0x8B,0x8C,0x90,0x8F,0x8F,0x8F,0x8B,0x8B,0x89,0x87, - 0x86,0x83,0x82,0x84,0x82,0x82,0x83,0x7F,0x80,0x81,0x7D,0x7C,0x7B,0x79,0x80,0x80, - 0x79,0x7A,0x78,0x78,0x7A,0x79,0x7B,0x7E,0x7B,0x77,0x77,0x77,0x73,0x73,0x75,0x6E, - 0x6C,0x6E,0x6E,0x71,0x74,0x73,0x74,0x72,0x74,0x75,0x76,0x7D,0x76,0x77,0x7B,0x7A, - 0x80,0x7B,0x77,0x79,0x7A,0x7B,0x77,0x72,0x73,0x74,0x79,0x76,0x71,0x72,0x70,0x74, - 0x77,0x73,0x73,0x74,0x74,0x74,0x72,0x78,0x77,0x71,0x75,0x77,0x79,0x7C,0x78,0x7B, - 0x7E,0x80,0x7D,0x78,0x77,0x77,0x7E,0x7F,0x78,0x77,0x78,0x7D,0x80,0x7E,0x7C,0x7C, - 0x7E,0x7E,0x7D,0x82,0x86,0x82,0x85,0x84,0x82,0x88,0x84,0x80,0x85,0x85,0x80,0x7F, - 0x7D,0x7B,0x7E,0x82,0x7E,0x7D,0x7C,0x7E,0x81,0x80,0x7F,0x80,0x81,0x83,0x83,0x85, - 0x8D,0x8C,0x89,0x8A,0x82,0x87,0x8B,0x89,0x8F,0x8D,0x87,0x87,0x87,0x8A,0x89,0x87, - 0x83,0x80,0x82,0x85,0x85,0x84,0x81,0x83,0x87,0x86,0x84,0x81,0x87,0x8B,0x88,0x8A, - 0x85,0x84,0x8C,0x89,0x8A,0x88,0x82,0x83,0x81,0x86,0x86,0x81,0x80,0x7D,0x7F,0x82, - 0x80,0x82,0x7E,0x7E,0x83,0x81,0x7F,0x7C,0x80,0x85,0x83,0x83,0x7F,0x7B,0x83,0x82, - 0x82,0x86,0x7D,0x7C,0x7F,0x7E,0x85,0x84,0x80,0x7F,0x7E,0x82,0x83,0x80,0x81,0x80, - 0x82,0x85,0x82,0x7F,0x83,0x8A,0x86,0x81,0x82,0x82,0x85,0x89,0x85,0x85,0x83,0x7E, - 0x80,0x80,0x7F,0x7F,0x7B,0x78,0x7A,0x7B,0x7B,0x7D,0x7D,0x7D,0x80,0x83,0x84,0x7E, - 0x81,0x89,0x85,0x84,0x82,0x7F,0x83,0x86,0x86,0x82,0x80,0x7F,0x7E,0x81,0x7E,0x7B, - 0x7C,0x7B,0x7C,0x7A,0x79,0x7C,0x7B,0x7B,0x7C,0x7D,0x7D,0x7B,0x7D,0x81,0x7F,0x7F, - 0x7E,0x7E,0x82,0x85,0x85,0x7F,0x7D,0x7F,0x80,0x81,0x7F,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7D,0x7E,0x7E,0x81,0x80,0x82,0x82,0x7E,0x84,0x84,0x82,0x85,0x80,0x81,0x84,0x82, - 0x83,0x7F,0x7D,0x7F,0x7E,0x7F,0x7D,0x7A,0x7B,0x7B,0x7D,0x7C,0x7B,0x7D,0x7D,0x80, - 0x82,0x81,0x80,0x80,0x86,0x85,0x82,0x85,0x80,0x82,0x87,0x85,0x87,0x83,0x80,0x81, - 0x7E,0x7D,0x7C,0x79,0x7B,0x7A,0x7A,0x79,0x79,0x7B,0x7A,0x7C,0x7E,0x7E,0x7E,0x7E, - 0x83,0x82,0x80,0x81,0x7E,0x83,0x86,0x83,0x85,0x81,0x80,0x81,0x7F,0x80,0x7D,0x7B, - 0x7C,0x7B,0x7D,0x7D,0x7C,0x7D,0x7E,0x80,0x80,0x81,0x80,0x81,0x85,0x82,0x83,0x83, - 0x80,0x84,0x85,0x84,0x86,0x84,0x83,0x83,0x7F,0x81,0x7F,0x7D,0x80,0x7D,0x7C,0x7E, - 0x7E,0x80,0x81,0x81,0x81,0x81,0x81,0x84,0x86,0x84,0x84,0x82,0x80,0x84,0x83,0x82, - 0x85,0x81,0x81,0x80,0x7D,0x7F,0x7B,0x78,0x7B,0x78,0x7A,0x7D,0x7D,0x7E,0x7C,0x7D, - 0x7F,0x80,0x81,0x82,0x84,0x83,0x83,0x84,0x83,0x84,0x84,0x83,0x86,0x85,0x84,0x84, - 0x7F,0x7E,0x7E,0x7C,0x7D,0x7C,0x7B,0x7C,0x7B,0x7C,0x7C,0x7C,0x7C,0x7D,0x7F,0x80, - 0x82,0x82,0x80,0x82,0x80,0x81,0x83,0x82,0x86,0x85,0x83,0x84,0x80,0x7F,0x81,0x80, - 0x80,0x7F,0x7E,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x82,0x83,0x82,0x84,0x82,0x83, - 0x84,0x81,0x82,0x83,0x83,0x84,0x82,0x81,0x80,0x7D,0x7E,0x7D,0x7B,0x7C,0x7B,0x7B, - 0x7B,0x7B,0x7C,0x7B,0x7B,0x7E,0x7E,0x7E,0x80,0x81,0x81,0x80,0x82,0x82,0x82,0x83, - 0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x80,0x7F,0x7E,0x7E,0x7D,0x7C,0x7B,0x7C,0x7D, - 0x7D,0x7E,0x7E,0x7E,0x7F,0x80,0x82,0x82,0x82,0x83,0x83,0x84,0x85,0x85,0x86,0x86, - 0x85,0x85,0x85,0x82,0x81,0x80,0x80,0x80,0x7F,0x7C,0x7C,0x7C,0x7D,0x7C,0x7C,0x7C, - 0x7D,0x7E,0x7D,0x7E,0x7E,0x7E,0x7F,0x81,0x82,0x82,0x82,0x81,0x82,0x84,0x84,0x83, - 0x81,0x81,0x80,0x80,0x7F,0x7C,0x7B,0x7C,0x7D,0x7D,0x7D,0x7B,0x7D,0x7E,0x7E,0x7F, - 0x7F,0x7E,0x7F,0x81,0x82,0x81,0x80,0x81,0x82,0x84,0x85,0x84,0x83,0x82,0x81,0x80, - 0x7F,0x7D,0x7D,0x7B,0x7B,0x7B,0x79,0x7B,0x7D,0x7D,0x7E,0x7F,0x80,0x80,0x80,0x82, - 0x82,0x83,0x84,0x83,0x84,0x86,0x86,0x87,0x85,0x85,0x86,0x83, -}; -#define sound2_len 0x0000DC8C -const unsigned char sound2_data[] = { - 0x80,0x84,0x8C,0x88,0x7F,0x85,0x8E,0x8B,0x87,0x8B,0x88,0x7C,0x7C,0x81,0x7D,0x75, - 0x77,0x80,0x81,0x86,0x95,0x86,0x78,0x75,0x6A,0x71,0x78,0x75,0x76,0x95,0x7C,0x7C, - 0xA1,0x7D,0x82,0x8D,0x77,0x66,0x6A,0x79,0x70,0x72,0x75,0x76,0x7C,0x8B,0x90,0x86, - 0x87,0x89,0x81,0x6B,0x6D,0x6E,0x62,0x80,0x94,0x81,0x8C,0x95,0x82,0x8D,0x94,0x7C, - 0x80,0x7F,0x73,0x86,0x8B,0x8D,0x9D,0x9E,0x9D,0xA2,0xA0,0x96,0x83,0x8A,0x96,0x91, - 0x97,0x88,0x86,0x96,0x92,0x8B,0x7B,0x7C,0x87,0x72,0x67,0x69,0x6B,0x7C,0x7E,0x72, - 0x72,0x6C,0x69,0x68,0x5B,0x5B,0x60,0x5E,0x67,0x63,0x62,0x63,0x63,0x77,0x7B,0x7A, - 0x70,0x5A,0x59,0x64,0x5F,0x5D,0x5F,0x70,0x7B,0x6E,0x73,0x7A,0x7C,0x83,0x99,0xB1, - 0xB1,0xA1,0x99,0x98,0x89,0x89,0x8B,0x91,0xA7,0xAE,0xAA,0xA3,0x95,0x87,0x85,0x85, - 0x86,0x88,0x94,0x9F,0x94,0x88,0x81,0x7E,0x80,0x81,0x8A,0x92,0x8D,0x8B,0x85,0x7F, - 0x84,0x7F,0x79,0x88,0x93,0x8E,0x8B,0x7F,0x7B,0x7D,0x7D,0x88,0x87,0x8D,0x9D,0x8F, - 0x87,0x84,0x7B,0x8C,0x93,0x97,0xA0,0x95,0x8B,0x8D,0x89,0x88,0x8C,0x88,0x9B,0xA6, - 0x96,0x8A,0x76,0x6E,0x77,0x74,0x73,0x72,0x74,0x7B,0x6C,0x5D,0x62,0x64,0x66,0x6C, - 0x67,0x6A,0x65,0x52,0x48,0x4A,0x58,0x58,0x5B,0x6D,0x77,0x70,0x61,0x54,0x52,0x60, - 0x5F,0x5C,0x64,0x6B,0x6C,0x60,0x58,0x5C,0x66,0x6F,0x75,0x7A,0x84,0x88,0x8E,0x93, - 0x98,0x9E,0x9B,0x99,0x9B,0xAD,0xAA,0x98,0x90,0x8C,0x99,0xA3,0x99,0x94,0x97,0x94, - 0x8B,0x82,0x85,0x90,0x97,0x93,0x8F,0x90,0x8F,0x87,0x86,0x8F,0x93,0x91,0x84,0x85, - 0x99,0x9B,0x89,0x7A,0x78,0x86,0x87,0x81,0x87,0x8F,0x90,0x81,0x78,0x80,0x8F,0x99, - 0x9A,0x98,0x99,0x9A,0x8C,0x91,0x94,0x91,0x97,0x94,0x97,0x9B,0xA3,0xA1,0x90,0x8B, - 0x84,0x86,0x8B,0x83,0x7E,0x7C,0x78,0x6C,0x65,0x68,0x6D,0x71,0x6D,0x66,0x64,0x62, - 0x59,0x57,0x5F,0x5B,0x57,0x52,0x4F,0x64,0x6E,0x63,0x5B,0x57,0x5D,0x5F,0x58,0x5F, - 0x66,0x67,0x61,0x57,0x54,0x5F,0x67,0x66,0x71,0x78,0x77,0x75,0x78,0x87,0x95,0x9A, - 0x99,0x9C,0x9A,0xA3,0xAD,0xA4,0x9A,0x96,0x94,0x97,0x97,0x95,0x98,0x8F,0x89,0x8E, - 0x88,0x8B,0x93,0x8F,0x93,0x95,0x8E,0x87,0x86,0x8C,0x92,0x8F,0x88,0x89,0x85,0x8F, - 0x97,0x8B,0x81,0x7B,0x82,0x88,0x84,0x87,0x90,0x91,0x88,0x7E,0x7C,0x85,0x8E,0x8D, - 0x94,0x9E,0x9D,0x94,0x8A,0x92,0x9B,0x96,0x90,0x90,0x93,0x98,0xA3,0x99,0x8B,0x8B, - 0x86,0x86,0x89,0x7D,0x81,0x81,0x73,0x6D,0x64,0x67,0x70,0x6B,0x6B,0x6D,0x63,0x59, - 0x55,0x52,0x5A,0x59,0x51,0x59,0x55,0x58,0x71,0x6A,0x58,0x5A,0x56,0x5D,0x5D,0x59, - 0x64,0x67,0x60,0x59,0x56,0x5E,0x68,0x66,0x72,0x7C,0x7D,0x78,0x76,0x86,0x94,0x99, - 0x99,0x9B,0x99,0x95,0xA5,0xAD,0x9D,0x94,0x94,0x8E,0x92,0x8C,0x8E,0x96,0x8F,0x84, - 0x83,0x82,0x89,0x92,0x8F,0x97,0x97,0x8B,0x86,0x86,0x8B,0x92,0x88,0x87,0x82,0x7C, - 0x95,0x9D,0x8A,0x85,0x84,0x81,0x81,0x7F,0x87,0x92,0x8F,0x86,0x86,0x8B,0x8B,0x8E, - 0x92,0x9E,0x9E,0x96,0x8F,0x8B,0x97,0x9B,0x96,0x96,0x95,0x89,0x9A,0xA9,0x96,0x8D, - 0x85,0x82,0x7D,0x78,0x7B,0x7F,0x7C,0x6F,0x68,0x65,0x67,0x62,0x5D,0x67,0x68,0x5F, - 0x55,0x4E,0x52,0x57,0x52,0x51,0x55,0x4E,0x57,0x6F,0x62,0x5A,0x59,0x56,0x5A,0x54, - 0x5A,0x67,0x6C,0x62,0x5E,0x63,0x66,0x6F,0x6C,0x7B,0x89,0x89,0x88,0x88,0x92,0x9C, - 0x99,0x9C,0xA2,0x96,0x9E,0xB4,0xAC,0x99,0x96,0x90,0x8E,0x89,0x85,0x93,0x93,0x88, - 0x7F,0x83,0x87,0x85,0x87,0x8E,0x95,0x94,0x8E,0x84,0x83,0x84,0x86,0x86,0x88,0x83, - 0x81,0x9A,0x9A,0x88,0x83,0x85,0x82,0x7E,0x82,0x8E,0x96,0x8F,0x87,0x8F,0x8E,0x85, - 0x8F,0x92,0x98,0x9E,0x97,0x90,0x8F,0x8E,0x8A,0x8E,0x95,0x8F,0x86,0x9A,0xA8,0x8F, - 0x85,0x85,0x7B,0x77,0x76,0x78,0x83,0x7F,0x6C,0x6B,0x6B,0x61,0x5D,0x5F,0x62,0x68, - 0x60,0x56,0x58,0x53,0x4D,0x4F,0x58,0x59,0x4F,0x60,0x75,0x64,0x56,0x5C,0x59,0x55, - 0x56,0x5F,0x6A,0x71,0x67,0x66,0x6D,0x68,0x69,0x74,0x7F,0x8A,0x93,0x90,0x98,0x9A, - 0x95,0x9D,0xA5,0xA6,0x9C,0xA6,0xBA,0xA9,0x91,0x97,0x93,0x86,0x81,0x89,0x92,0x95, - 0x8E,0x85,0x8D,0x88,0x80,0x83,0x8A,0x8E,0x8C,0x88,0x89,0x85,0x7A,0x7D,0x84,0x87, - 0x7B,0x84,0x9D,0x93,0x82,0x88,0x8C,0x7F,0x81,0x87,0x92,0x9B,0x93,0x90,0x9A,0x95, - 0x8A,0x8E,0x94,0x95,0x95,0x95,0x96,0x97,0x8C,0x8D,0x97,0x94,0x89,0x8B,0x9F,0x99, - 0x81,0x85,0x86,0x74,0x6C,0x73,0x78,0x7B,0x76,0x6F,0x73,0x6D,0x5D,0x5B,0x60,0x5D, - 0x5D,0x5C,0x5C,0x5F,0x57,0x51,0x5A,0x5C,0x53,0x5D,0x6B,0x60,0x5B,0x65,0x5B,0x51, - 0x58,0x5A,0x5C,0x67,0x65,0x68,0x76,0x70,0x71,0x7C,0x7F,0x85,0x90,0x97,0x9E,0xA4, - 0xA0,0xA3,0xA6,0xA3,0xA8,0xB0,0xA5,0x9F,0xA5,0x99,0x8B,0x90,0x8F,0x86,0x8C,0x8D, - 0x88,0x8E,0x8D,0x83,0x89,0x89,0x7F,0x81,0x84,0x82,0x81,0x80,0x80,0x83,0x7C,0x80, - 0x90,0x8D,0x84,0x8C,0x93,0x85,0x80,0x89,0x88,0x86,0x8C,0x8D,0x91,0x99,0x93,0x93, - 0x9D,0x98,0x90,0x96,0x98,0x94,0x92,0x90,0x94,0x94,0x8E,0x94,0x9E,0x95,0x8C,0x8F, - 0x8E,0x80,0x79,0x7E,0x77,0x70,0x72,0x6E,0x6E,0x71,0x69,0x64,0x69,0x65,0x60,0x5F, - 0x5D,0x5A,0x59,0x57,0x5A,0x5E,0x5B,0x5D,0x65,0x65,0x5D,0x5C,0x65,0x64,0x5C,0x60, - 0x66,0x63,0x66,0x68,0x69,0x6F,0x72,0x74,0x79,0x80,0x86,0x8B,0x92,0x9E,0x9F,0xA1, - 0xA6,0xA8,0xA6,0xA5,0xA6,0xA4,0xA2,0x9D,0x99,0x94,0x95,0x92,0x8F,0x8D,0x8A,0x88, - 0x86,0x86,0x86,0x84,0x82,0x83,0x82,0x80,0x7E,0x7E,0x7D,0x7E,0x7E,0x7D,0x81,0x82, - 0x82,0x84,0x82,0x84,0x85,0x85,0x86,0x88,0x89,0x8C,0x8E,0x91,0x94,0x93,0x93,0x93, - 0x93,0x93,0x94,0x96,0x95,0x95,0x95,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x8D,0x88, - 0x85,0x81,0x7F,0x7C,0x7B,0x77,0x74,0x73,0x71,0x6C,0x69,0x68,0x63,0x62,0x62,0x61, - 0x5F,0x5E,0x5C,0x5B,0x59,0x5B,0x5C,0x5E,0x5F,0x60,0x61,0x60,0x61,0x60,0x63,0x63, - 0x64,0x67,0x69,0x6D,0x6F,0x72,0x76,0x7B,0x7E,0x86,0x8E,0x93,0x9A,0x9F,0xA2,0xA5, - 0xA4,0xA3,0xA5,0xA1,0xA0,0x9E,0x9A,0x97,0x94,0x92,0x8E,0x8C,0x88,0x87,0x84,0x84, - 0x83,0x81,0x80,0x7C,0x7B,0x7B,0x7B,0x7A,0x7B,0x7B,0x7A,0x7B,0x7C,0x7C,0x7C,0x7E, - 0x7F,0x7F,0x7F,0x81,0x81,0x82,0x85,0x86,0x87,0x8A,0x8C,0x8D,0x8E,0x92,0x91,0x90, - 0x93,0x92,0x93,0x96,0x96,0x95,0x98,0x96,0x93,0x91,0x91,0x8F,0x8E,0x8D,0x8B,0x88, - 0x85,0x81,0x7E,0x7A,0x78,0x75,0x72,0x72,0x6E,0x6B,0x69,0x67,0x65,0x64,0x63,0x62, - 0x5F,0x5E,0x60,0x5D,0x5D,0x5D,0x5C,0x5D,0x5E,0x5C,0x5E,0x60,0x60,0x60,0x62,0x63, - 0x66,0x69,0x6B,0x6F,0x72,0x76,0x7A,0x7F,0x83,0x8B,0x91,0x96,0x9B,0x9E,0xA2,0xA2, - 0xA3,0xA3,0xA2,0xA0,0x9E,0x9B,0x97,0x94,0x90,0x8D,0x8B,0x87,0x84,0x82,0x81,0x7F, - 0x7D,0x7C,0x7D,0x7B,0x79,0x7A,0x79,0x78,0x78,0x78,0x78,0x79,0x7A,0x7D,0x7C,0x7E, - 0x80,0x81,0x83,0x83,0x84,0x86,0x89,0x8A,0x8C,0x8C,0x8F,0x8E,0x8D,0x8F,0x8F,0x8E, - 0x90,0x91,0x90,0x90,0x8F,0x8E,0x8E,0x8D,0x8B,0x8B,0x89,0x88,0x86,0x85,0x82,0x7F, - 0x7F,0x7D,0x7A,0x79,0x7B,0x77,0x77,0x74,0x72,0x73,0x6E,0x6D,0x6C,0x6B,0x6A,0x69, - 0x68,0x6A,0x6A,0x69,0x6B,0x6C,0x6C,0x6B,0x6D,0x6E,0x6E,0x6E,0x71,0x73,0x72,0x76, - 0x79,0x79,0x7D,0x7E,0x7F,0x84,0x84,0x86,0x8A,0x8B,0x8E,0x8E,0x8F,0x91,0x8F,0x8F, - 0x91,0x8F,0x8D,0x8C,0x8B,0x8A,0x89,0x86,0x85,0x85,0x82,0x80,0x80,0x81,0x7F,0x7E, - 0x7F,0x7D,0x7A,0x79,0x7B,0x79,0x79,0x7A,0x78,0x79,0x79,0x79,0x7A,0x7B,0x7B,0x7C, - 0x7C,0x80,0x7E,0x7E,0x82,0x81,0x82,0x83,0x85,0x86,0x87,0x86,0x88,0x88,0x88,0x88, - 0x87,0x88,0x88,0x8A,0x88,0x89,0x87,0x88,0x89,0x88,0x88,0x88,0x87,0x88,0x86,0x83, - 0x86,0x83,0x83,0x83,0x83,0x84,0x82,0x82,0x81,0x81,0x7F,0x80,0x7E,0x7F,0x7F,0x7D, - 0x7E,0x7D,0x7B,0x7B,0x7C,0x7A,0x7C,0x7B,0x7A,0x7B,0x7A,0x7C,0x7C,0x7D,0x7D,0x80, - 0x80,0x82,0x83,0x83,0x86,0x85,0x87,0x89,0x88,0x89,0x8B,0x89,0x8A,0x88,0x88,0x88, - 0x88,0x88,0x87,0x85,0x84,0x84,0x81,0x7F,0x7F,0x7F,0x7E,0x7D,0x7B,0x7B,0x79,0x78, - 0x7A,0x78,0x78,0x78,0x79,0x78,0x79,0x78,0x79,0x7A,0x7A,0x7B,0x7A,0x7B,0x7C,0x7B, - 0x7D,0x7E,0x7D,0x7F,0x80,0x80,0x81,0x80,0x81,0x80,0x81,0x82,0x82,0x82,0x82,0x84, - 0x82,0x83,0x82,0x83,0x84,0x83,0x84,0x83,0x82,0x83,0x84,0x81,0x83,0x83,0x82,0x81, - 0x82,0x82,0x81,0x81,0x80,0x81,0x80,0x81,0x7F,0x80,0x80,0x7E,0x7E,0x7E,0x7D,0x7D, - 0x7F,0x7E,0x7C,0x7C,0x7E,0x7D,0x7E,0x7C,0x7E,0x7F,0x7E,0x7E,0x7E,0x80,0x80,0x81, - 0x81,0x82,0x82,0x83,0x84,0x84,0x85,0x84,0x85,0x86,0x85,0x85,0x86,0x85,0x84,0x84, - 0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x80,0x7F,0x81,0x80,0x7F,0x7F,0x7E,0x7E,0x7D, - 0x7D,0x7D,0x7E,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7E,0x7D,0x7C,0x7D,0x7E,0x7E,0x7F, - 0x7E,0x7E,0x80,0x7E,0x7E,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x83, - 0x83,0x84,0x83,0x83,0x83,0x83,0x83,0x81,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x7F, - 0x80,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x7E,0x7E,0x7F,0x7E,0x7E,0x7F, - 0x7F,0x7F,0x7F,0x7E,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x7E,0x7F,0x80,0x80,0x80, - 0x7F,0x7F,0x7F,0x80,0x81,0x82,0x81,0x82,0x82,0x81,0x81,0x82,0x82,0x82,0x83,0x81, - 0x81,0x81,0x81,0x80,0x81,0x82,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7C,0x7D,0x7C, - 0x7C,0x7C,0x7C,0x7C,0x7D,0x7C,0x7C,0x7D,0x7C,0x7C,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E, - 0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x81,0x81,0x81,0x80,0x7F,0x80,0x80,0x80,0x80,0x80, - 0x80,0x80,0x7F,0x7F,0x80,0x81,0x80,0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x80,0x80, - 0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x81,0x81,0x7F,0x80,0x80,0x7F,0x7E,0x7E,0x7D, - 0x7D,0x7E,0x7D,0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x80,0x80,0x81,0x81,0x81, - 0x80,0x82,0x82,0x82,0x84,0x83,0x83,0x83,0x82,0x80,0x80,0x81,0x80,0x80,0x81,0x80, - 0x80,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x80,0x80,0x81,0x80,0x7F, - 0x80,0x7F,0x7F,0x80,0x80,0x7F,0x7F,0x80,0x7F,0x7E,0x80,0x7F,0x7F,0x7F,0x7D,0x7C, - 0x7D,0x7D,0x7D,0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x7F,0x81,0x82,0x80,0x81,0x81,0x82, - 0x81,0x83,0x82,0x84,0x97,0x82,0x86,0x84,0x64,0x7F,0x80,0x68,0x67,0x77,0x7E,0x86, - 0x8C,0x8B,0x8A,0x86,0x95,0xA0,0x9C,0x98,0x95,0x91,0x8D,0x89,0x87,0x82,0x75,0x6B, - 0x63,0x5D,0x5C,0x5B,0x58,0x5A,0x61,0x65,0x6A,0x6F,0x72,0x78,0x7A,0x7D,0x83,0x85, - 0x86,0x8B,0x8E,0x90,0x95,0xA0,0xA9,0xB1,0xB7,0xB5,0xB5,0xB2,0xA9,0xA2,0x9D,0x98, - 0x92,0x8C,0x89,0x84,0x7F,0x7D,0x7A,0x77,0x74,0x71,0x6E,0x6B,0x69,0x68,0x66,0x60, - 0x58,0x51,0x49,0x46,0x49,0x4B,0x4C,0x54,0x5B,0x61,0x6A,0x6F,0x73,0x76,0x7C,0x81, - 0x85,0x8A,0x8C,0x8F,0x91,0x94,0x96,0x98,0xA2,0xAB,0xB1,0xB6,0xB4,0xB4,0xB1,0xAF, - 0xAD,0xAB,0xA4,0x9C,0x9A,0x91,0x8B,0x8A,0x86,0x83,0x7F,0x7C,0x78,0x72,0x68,0x60, - 0x5A,0x58,0x52,0x4F,0x51,0x4C,0x4F,0x54,0x57,0x61,0x64,0x69,0x6E,0x76,0x7F,0x84, - 0x8A,0x8B,0x92,0x94,0x94,0x9A,0x99,0x9F,0x9F,0xA1,0x9E,0x93,0x9D,0xA3,0xAB,0xB0, - 0xAA,0xA2,0x97,0x94,0x8D,0x85,0x7E,0x77,0x7C,0x77,0x77,0x7B,0x71,0x70,0x73,0x73, - 0x70,0x70,0x6E,0x6C,0x69,0x66,0x65,0x61,0x61,0x60,0x5A,0x5A,0x58,0x5B,0x5C,0x5B, - 0x63,0x63,0x65,0x6A,0x6D,0x73,0x75,0x78,0x7B,0x7D,0x82,0x88,0x8D,0x92,0x96,0x9D, - 0xA5,0xAD,0xB4,0xB8,0xBB,0xBD,0xC0,0xC3,0xC1,0xBF,0xBB,0xB8,0xB4,0xAB,0xA5,0x9C, - 0x96,0x92,0x89,0x83,0x7D,0x78,0x74,0x6C,0x65,0x5F,0x60,0x5F,0x57,0x51,0x4F,0x52, - 0x4F,0x4B,0x4A,0x4B,0x4A,0x48,0x4B,0x52,0x53,0x57,0x5B,0x62,0x6B,0x6B,0x6D,0x73, - 0x76,0x78,0x7A,0x7E,0x86,0x8C,0x8A,0x8A,0x92,0x99,0x9E,0xA2,0xA2,0xAC,0xB8,0xB8, - 0xB7,0xB5,0xB4,0xBB,0xBD,0xB8,0xB8,0xB8,0xB9,0xBB,0xB8,0xB1,0xB0,0xB0,0xA9,0xA1, - 0x97,0x92,0x8B,0x7E,0x76,0x6E,0x67,0x5F,0x59,0x60,0x61,0x59,0x55,0x4D,0x4B,0x49, - 0x38,0x35,0x3C,0x3A,0x3C,0x3E,0x3F,0x46,0x49,0x45,0x49,0x4B,0x4C,0x52,0x58,0x5F, - 0x67,0x6D,0x72,0x82,0x8C,0x8E,0x94,0x98,0x9B,0x9D,0x98,0x9B,0xA6,0xAA,0xA9,0xAD, - 0xB2,0xB8,0xB6,0xB1,0xB2,0xB1,0xAE,0xAD,0xAE,0xB2,0xAE,0xA8,0x9F,0xA7,0xB2,0xA4, - 0x9F,0x9F,0x96,0x90,0x7F,0x7A,0x85,0x7B,0x6F,0x75,0x77,0x76,0x70,0x62,0x66,0x63, - 0x51,0x52,0x58,0x5A,0x5B,0x56,0x58,0x5D,0x6A,0x6B,0x66,0x6E,0x6E,0x67,0x63,0x61, - 0x67,0x6A,0x69,0x70,0x7A,0x79,0x78,0x7A,0x7A,0x79,0x76,0x76,0x7B,0x7D,0x7F,0x81, - 0x84,0x80,0x86,0x99,0x92,0x91,0x9C,0x97,0x92,0x8C,0x8B,0x95,0x92,0x8C,0x96,0x9A, - 0x98,0x9B,0x99,0x99,0x97,0x91,0x98,0x99,0x94,0x95,0x90,0x8D,0x8A,0x96,0x9E,0x93, - 0x96,0x9B,0x8F,0x85,0x80,0x81,0x82,0x77,0x79,0x82,0x7B,0x75,0x74,0x6D,0x69,0x64, - 0x61,0x65,0x60,0x60,0x5F,0x5A,0x55,0x5A,0x6E,0x67,0x63,0x73,0x6D,0x65,0x62,0x63, - 0x6A,0x65,0x65,0x77,0x7A,0x75,0x7C,0x7E,0x7D,0x7B,0x7C,0x86,0x86,0x84,0x8B,0x86, - 0x83,0x81,0x92,0x9B,0x8A,0x93,0x9C,0x8E,0x89,0x8A,0x8C,0x8A,0x86,0x92,0x9E,0x99, - 0x99,0xA0,0x9D,0x97,0x94,0x96,0x97,0x91,0x93,0x93,0x8B,0x83,0x89,0x9B,0x8E,0x8A, - 0x9B,0x91,0x85,0x83,0x82,0x84,0x7A,0x7A,0x89,0x88,0x82,0x87,0x86,0x7F,0x78,0x76, - 0x7B,0x74,0x72,0x77,0x6D,0x66,0x63,0x72,0x76,0x63,0x6E,0x74,0x63,0x5E,0x60,0x60, - 0x5E,0x59,0x61,0x69,0x62,0x66,0x6C,0x68,0x66,0x66,0x6C,0x6E,0x6D,0x77,0x7A,0x76, - 0x76,0x83,0x99,0x8E,0x8E,0xA2,0x98,0x8E,0x91,0x93,0x91,0x8B,0x8F,0x9C,0x96,0x92, - 0x9B,0x99,0x92,0x8F,0x91,0x92,0x89,0x8A,0x8E,0x86,0x82,0x81,0x91,0x97,0x85,0x92, - 0x9A,0x88,0x86,0x8A,0x8A,0x87,0x82,0x8D,0x94,0x89,0x8F,0x97,0x8F,0x8B,0x8C,0x8D, - 0x88,0x82,0x88,0x84,0x7B,0x78,0x7C,0x8D,0x83,0x7A,0x8C,0x7F,0x6E,0x6F,0x6C,0x69, - 0x63,0x62,0x6F,0x6A,0x63,0x6F,0x6C,0x65,0x66,0x68,0x69,0x63,0x66,0x6E,0x63,0x5E, - 0x5E,0x68,0x75,0x66,0x70,0x7E,0x69,0x65,0x6A,0x68,0x67,0x63,0x6E,0x78,0x70,0x77, - 0x81,0x7A,0x79,0x7B,0x7D,0x7C,0x78,0x82,0x83,0x7A,0x7B,0x7C,0x8D,0x92,0x85,0x9A, - 0x9B,0x89,0x8C,0x8C,0x8B,0x89,0x87,0x96,0x98,0x93,0x9F,0xA1,0x99,0x99,0x99,0x9A, - 0x95,0x95,0x9D,0x96,0x90,0x90,0x92,0xA5,0x9D,0x97,0xAC,0x9F,0x92,0x94,0x90,0x8F, - 0x85,0x88,0x96,0x8E,0x8C,0x97,0x92,0x8B,0x8A,0x89,0x87,0x80,0x83,0x86,0x7C,0x7A, - 0x76,0x80,0x90,0x7D,0x84,0x8F,0x7B,0x77,0x76,0x74,0x71,0x65,0x72,0x78,0x6B,0x72, - 0x76,0x6E,0x69,0x66,0x67,0x61,0x5B,0x63,0x61,0x5A,0x5A,0x57,0x6B,0x6F,0x5E,0x73, - 0x75,0x63,0x64,0x64,0x67,0x5F,0x5C,0x70,0x6E,0x68,0x76,0x77,0x72,0x6F,0x70,0x75, - 0x6D,0x6F,0x78,0x73,0x71,0x6E,0x75,0x8C,0x7D,0x7C,0x92,0x85,0x7C,0x7B,0x7E,0x82, - 0x75,0x7D,0x8F,0x86,0x88,0x93,0x93,0x91,0x8C,0x92,0x94,0x8B,0x91,0x97,0x91,0x90, - 0x8B,0x9E,0xAB,0x95,0xA4,0xB0,0x9E,0x97,0x95,0x9B,0x98,0x8C,0x9C,0xA4,0x98,0x9E, - 0xA5,0xA5,0x9D,0x96,0x9F,0x99,0x8F,0x96,0x95,0x91,0x8B,0x88,0xA5,0x9E,0x8D,0xA5, - 0xA0,0x90,0x8B,0x89,0x92,0x82,0x7B,0x90,0x8D,0x84,0x88,0x8C,0x8E,0x81,0x7C,0x83, - 0x78,0x71,0x74,0x71,0x6E,0x62,0x68,0x81,0x6D,0x6A,0x7B,0x71,0x68,0x5D,0x63,0x6A, - 0x54,0x56,0x67,0x62,0x5F,0x61,0x69,0x6B,0x5E,0x60,0x64,0x5C,0x58,0x59,0x5D,0x5C, - 0x4E,0x5F,0x73,0x60,0x65,0x71,0x6D,0x68,0x5A,0x66,0x6B,0x58,0x5F,0x68,0x69,0x6D, - 0x6A,0x75,0x7E,0x74,0x77,0x7B,0x7A,0x76,0x74,0x7C,0x80,0x76,0x7F,0x94,0x8B,0x8C, - 0x95,0x93,0x99,0x89,0x8C,0x97,0x8A,0x8C,0x8F,0x90,0x98,0x93,0x97,0xA0,0x9D,0x9E, - 0x9C,0x9C,0x9D,0x98,0x9C,0x9E,0x9D,0x9D,0xA4,0xA4,0x9F,0xA4,0xA3,0xA4,0xA3,0x9D, - 0xA1,0x9F,0x9B,0x9D,0x9A,0x9B,0x9C,0x99,0x9C,0x9B,0x9A,0x9B,0x97,0x96,0x95,0x93, - 0x92,0x90,0x8E,0x8F,0x93,0x8D,0x8A,0x8D,0x8A,0x8A,0x85,0x82,0x85,0x80,0x7D,0x7D, - 0x7A,0x7B,0x79,0x77,0x79,0x76,0x75,0x74,0x72,0x73,0x6F,0x6E,0x6D,0x6C,0x6C,0x6B, - 0x74,0x6D,0x6A,0x70,0x6D,0x70,0x6A,0x67,0x6E,0x67,0x64,0x67,0x65,0x6A,0x65,0x62, - 0x69,0x64,0x62,0x63,0x64,0x64,0x5E,0x5E,0x5E,0x5C,0x58,0x60,0x6C,0x5F,0x63,0x6C, - 0x69,0x6B,0x62,0x68,0x6D,0x61,0x65,0x6B,0x6D,0x70,0x6C,0x76,0x7B,0x75,0x7B,0x7F, - 0x7F,0x7C,0x7B,0x7E,0x7D,0x77,0x78,0x90,0x8B,0x82,0x96,0x94,0x94,0x8B,0x8A,0x97, - 0x86,0x83,0x8E,0x8D,0x8F,0x8C,0x94,0x9F,0x94,0x99,0xA0,0x9A,0x96,0x92,0x95,0x92, - 0x8A,0x85,0x9D,0xA3,0x90,0xA4,0xA8,0xA0,0x98,0x91,0x9F,0x8F,0x82,0x92,0x8F,0x8D, - 0x8E,0x93,0x9F,0x94,0x94,0x9E,0x93,0x8D,0x8B,0x8C,0x86,0x7F,0x79,0x89,0x96,0x80, - 0x90,0x9A,0x8E,0x8A,0x81,0x8C,0x81,0x6F,0x81,0x7E,0x78,0x7E,0x81,0x8D,0x84,0x83, - 0x90,0x83,0x7D,0x7E,0x7C,0x78,0x73,0x6E,0x75,0x8B,0x76,0x7E,0x90,0x80,0x7E,0x74, - 0x7A,0x74,0x60,0x70,0x6F,0x65,0x6E,0x70,0x79,0x75,0x72,0x82,0x74,0x6E,0x73,0x6D, - 0x6C,0x6B,0x67,0x69,0x83,0x78,0x76,0x8D,0x81,0x80,0x7A,0x7C,0x7D,0x66,0x74,0x79, - 0x6B,0x76,0x7A,0x80,0x80,0x7B,0x89,0x7F,0x76,0x7C,0x74,0x72,0x72,0x71,0x6A,0x83, - 0x84,0x74,0x90,0x88,0x81,0x7F,0x7B,0x82,0x6B,0x6F,0x7E,0x6F,0x75,0x7E,0x81,0x84, - 0x7F,0x8B,0x87,0x7A,0x81,0x7B,0x78,0x79,0x7A,0x70,0x84,0x91,0x7A,0x90,0x94,0x85, - 0x86,0x81,0x86,0x75,0x71,0x83,0x77,0x76,0x84,0x85,0x87,0x84,0x8D,0x8B,0x7B,0x84, - 0x7F,0x79,0x7C,0x7E,0x74,0x7E,0x97,0x7F,0x8B,0x9C,0x8A,0x89,0x85,0x89,0x7E,0x72, - 0x85,0x80,0x78,0x88,0x8A,0x8B,0x8A,0x8E,0x92,0x81,0x86,0x85,0x7B,0x7E,0x80,0x79, - 0x75,0x94,0x89,0x80,0x9C,0x8F,0x85,0x85,0x84,0x80,0x70,0x7D,0x82,0x73,0x81,0x8A, - 0x85,0x85,0x88,0x8D,0x7D,0x7E,0x85,0x78,0x7A,0x7E,0x7C,0x70,0x87,0x93,0x78,0x91, - 0x96,0x82,0x83,0x83,0x82,0x73,0x75,0x84,0x76,0x78,0x8B,0x86,0x83,0x88,0x8C,0x81, - 0x79,0x84,0x7B,0x76,0x7C,0x7F,0x74,0x76,0x96,0x81,0x7F,0x9C,0x88,0x80,0x84,0x82, - 0x7B,0x70,0x7F,0x80,0x73,0x84,0x8B,0x82,0x86,0x8C,0x88,0x7B,0x80,0x81,0x75,0x7B, - 0x7E,0x7C,0x71,0x84,0x94,0x76,0x8C,0x98,0x7D,0x82,0x84,0x7D,0x73,0x73,0x82,0x77, - 0x75,0x8A,0x86,0x7E,0x88,0x89,0x7E,0x7B,0x80,0x79,0x74,0x7B,0x7C,0x77,0x72,0x8D, - 0x88,0x74,0x92,0x8B,0x76,0x80,0x7F,0x76,0x6F,0x77,0x7F,0x73,0x7C,0x8B,0x7F,0x80, - 0x89,0x82,0x7B,0x7C,0x80,0x76,0x77,0x7F,0x7D,0x79,0x7A,0x95,0x84,0x7B,0x9A,0x84, - 0x77,0x85,0x7C,0x76,0x73,0x7C,0x80,0x77,0x84,0x8A,0x81,0x85,0x86,0x81,0x7A,0x7B, - 0x7E,0x75,0x7B,0x7E,0x7F,0x7D,0x7B,0x96,0x82,0x7C,0x98,0x7F,0x77,0x81,0x7A,0x78, - 0x73,0x7C,0x84,0x79,0x81,0x8B,0x7F,0x7F,0x84,0x7D,0x78,0x7B,0x7E,0x77,0x7A,0x80, - 0x7E,0x81,0x79,0x88,0x90,0x77,0x88,0x8D,0x76,0x7C,0x7D,0x7A,0x79,0x7A,0x85,0x7F, - 0x7F,0x8B,0x82,0x80,0x84,0x80,0x7F,0x7E,0x81,0x7F,0x7D,0x82,0x80,0x81,0x88,0x7F, - 0x7F,0x91,0x83,0x7F,0x8B,0x7F,0x7B,0x7D,0x7D,0x7A,0x7A,0x82,0x81,0x80,0x84,0x83, - 0x7F,0x7F,0x81,0x7D,0x7E,0x82,0x82,0x80,0x81,0x85,0x80,0x81,0x87,0x7C,0x85,0x8B, - 0x7C,0x89,0x86,0x7C,0x81,0x7C,0x7C,0x7B,0x7C,0x80,0x7D,0x7F,0x81,0x7F,0x81,0x7F, - 0x7F,0x80,0x80,0x80,0x80,0x7F,0x7F,0x80,0x7E,0x83,0x81,0x77,0x84,0x87,0x80,0x89, - 0x88,0x81,0x7D,0x7E,0x7A,0x76,0x7E,0x7F,0x7D,0x82,0x83,0x81,0x80,0x84,0x85,0x81, - 0x85,0x84,0x80,0x81,0x82,0x81,0x80,0x83,0x81,0x7E,0x82,0x82,0x82,0x83,0x83,0x80, - 0x7C,0x7B,0x77,0x79,0x7D,0x7E,0x83,0x82,0x80,0x81,0x80,0x82,0x85,0x86,0x85,0x84, - 0x88,0x86,0x83,0x83,0x82,0x7F,0x7C,0x81,0x80,0x7E,0x80,0x7D,0x78,0x75,0x83,0x85, - 0x7D,0x8B,0x8A,0x7E,0x7B,0x7C,0x78,0x74,0x7C,0x81,0x7B,0x7D,0x81,0x7D,0x7E,0x85, - 0x85,0x84,0x86,0x85,0x82,0x7F,0x83,0x7F,0x7B,0x85,0x84,0x81,0x88,0x8C,0x87,0x7E, - 0x7E,0x79,0x70,0x74,0x7A,0x7B,0x7E,0x81,0x82,0x7E,0x7E,0x81,0x82,0x82,0x84,0x84, - 0x7F,0x7E,0x80,0x82,0x82,0x86,0x89,0x83,0x81,0x81,0x7B,0x7B,0x7D,0x7D,0x7D,0x7C, - 0x82,0x82,0x7D,0x7F,0x87,0x8A,0x85,0x89,0x8C,0x83,0x7E,0x7A,0x78,0x77,0x79,0x7F, - 0x7F,0x7F,0x82,0x81,0x80,0x80,0x81,0x82,0x81,0x78,0x78,0x80,0x77,0x7D,0x87,0x86, - 0x85,0x82,0x80,0x79,0x74,0x75,0x78,0x7B,0x7D,0x81,0x82,0x7F,0x7F,0x80,0x81,0x83, - 0x85,0x82,0x81,0x7F,0x80,0x80,0x7F,0x89,0x86,0x83,0x87,0x7E,0x7A,0x78,0x77,0x78, - 0x7B,0x7D,0x7D,0x7C,0x7E,0x80,0x83,0x96,0x85,0x6F,0x84,0x95,0x82,0x66,0x87,0x7D, - 0x64,0x80,0x85,0x82,0x7F,0x92,0x8A,0x77,0x89,0x85,0x7F,0x7D,0x90,0x92,0x7D,0x7B, - 0x7B,0x7F,0x7B,0x75,0x76,0x79,0x6D,0x71,0x7E,0x7C,0x85,0x93,0x8F,0x8B,0x8D,0x83, - 0x87,0x85,0x87,0x8D,0x8A,0x85,0x84,0x8D,0x79,0x76,0x8F,0x77,0x61,0x73,0x73,0x74, - 0x69,0x67,0x82,0x71,0x6D,0x7C,0x75,0x78,0x76,0x7D,0x7C,0x6B,0x71,0x82,0x80,0x73, - 0x6C,0x7B,0x84,0x7D,0x80,0x75,0x7D,0x92,0x8B,0x93,0x8E,0x8C,0x96,0x8A,0x8E,0x8D, - 0x82,0x8E,0xA0,0xA1,0x96,0x9D,0xA0,0x97,0x97,0x96,0x90,0x83,0x88,0x93,0x8A,0x9B, - 0xAE,0x92,0x85,0x8A,0x7D,0x6A,0x65,0x72,0x77,0x74,0x77,0x71,0x70,0x73,0x78,0x79, - 0x6F,0x6D,0x6B,0x6F,0x6B,0x73,0x74,0x71,0x7C,0x7D,0x7E,0x6F,0x72,0x8C,0x7F,0x70, - 0x75,0x6F,0x64,0x65,0x71,0x6C,0x63,0x6D,0x7B,0x77,0x69,0x6E,0x71,0x6D,0x6B,0x70, - 0x79,0x79,0x83,0x91,0x9C,0xA7,0x9C,0x8E,0xA2,0xAE,0x98,0x96,0xA1,0x8C,0x81,0x7F, - 0x79,0x7F,0x7F,0x85,0x88,0x8A,0x8D,0x84,0x80,0x7D,0x75,0x74,0x7F,0x82,0x80,0x82, - 0x81,0x81,0x7D,0x76,0x84,0x9A,0x8C,0x86,0x90,0x7C,0x71,0x76,0x70,0x6F,0x73,0x7B, - 0x89,0x89,0x84,0x83,0x82,0x78,0x75,0x76,0x80,0x89,0x86,0x88,0x8B,0x8B,0x7E,0x8D, - 0xA1,0x97,0x95,0x9A,0x90,0x85,0x85,0x88,0x8E,0x86,0x8A,0x96,0x94,0x88,0x82,0x7D, - 0x73,0x6F,0x6E,0x79,0x7B,0x6F,0x74,0x6B,0x61,0x61,0x5B,0x71,0x72,0x65,0x74,0x76, - 0x6B,0x67,0x6A,0x6A,0x6E,0x6A,0x76,0x81,0x74,0x73,0x78,0x76,0x6E,0x70,0x77,0x7F, - 0x7C,0x76,0x70,0x68,0x67,0x6B,0x7C,0x7F,0x78,0x85,0x81,0x6C,0x72,0x74,0x7B,0x8B, - 0x8D,0xA3,0xB1,0xAA,0xAA,0xAA,0x9D,0x94,0x9A,0x98,0x99,0x9C,0x94,0x91,0x8D,0x85, - 0x8C,0x9A,0x92,0x8A,0x97,0x8D,0x7B,0x77,0x7A,0x88,0x85,0x85,0x8D,0x91,0x89,0x84, - 0x88,0x7F,0x80,0x82,0x83,0x86,0x83,0x7F,0x7A,0x7F,0x7C,0x89,0x96,0x80,0x81,0x8C, - 0x7C,0x72,0x71,0x78,0x84,0x80,0x8C,0x9B,0x9C,0x99,0x94,0x90,0x90,0x8A,0x8B,0x98, - 0x97,0x95,0x8F,0x8F,0x8D,0x87,0x9A,0x9D,0x8B,0x91,0x94,0x81,0x6F,0x6E,0x73,0x70, - 0x6A,0x70,0x79,0x71,0x6E,0x6A,0x63,0x64,0x5C,0x63,0x69,0x6C,0x6E,0x5F,0x63,0x5D, - 0x61,0x78,0x74,0x70,0x7A,0x74,0x65,0x5D,0x5F,0x6E,0x72,0x6D,0x79,0x7F,0x70,0x6A, - 0x62,0x61,0x65,0x64,0x6F,0x77,0x75,0x6F,0x6C,0x6D,0x77,0x8E,0x9F,0x99,0xA6,0xAC, - 0x9C,0x94,0x8E,0x96,0x98,0x98,0xA2,0xA8,0xA0,0x99,0x8E,0x8B,0x89,0x84,0x88,0x91, - 0x90,0x84,0x7E,0x7B,0x7B,0x7F,0x9A,0x9C,0x8A,0x92,0x8F,0x7F,0x76,0x76,0x81,0x86, - 0x80,0x8A,0x8F,0x8A,0x84,0x7E,0x7E,0x7C,0x7B,0x7F,0x8B,0x8B,0x7B,0x73,0x78,0x79, - 0x88,0x9A,0x95,0x97,0x9E,0x8C,0x80,0x7F,0x8C,0x98,0x8C,0x94,0xA1,0x9A,0x93,0x8B, - 0x8D,0x8E,0x89,0x86,0x90,0x92,0x8A,0x7F,0x74,0x72,0x71,0x83,0x86,0x78,0x7A,0x77, - 0x62,0x56,0x59,0x65,0x65,0x5D,0x6B,0x74,0x6C,0x65,0x62,0x65,0x68,0x63,0x64,0x73, - 0x76,0x6F,0x66,0x5E,0x62,0x76,0x8C,0x81,0x77,0x84,0x7A,0x66,0x5C,0x5F,0x70,0x70, - 0x6A,0x79,0x7F,0x76,0x72,0x6F,0x72,0x7D,0x7E,0x8C,0x9A,0x9C,0x9E,0x94,0x91,0x95, - 0xA7,0xB5,0xAD,0xA9,0xAD,0x9B,0x8C,0x85,0x86,0x92,0x8D,0x88,0x93,0x93,0x87,0x82, - 0x7E,0x80,0x85,0x7E,0x86,0x8F,0x89,0x82,0x75,0x72,0x76,0x8A,0x94,0x88,0x8D,0x91, - 0x83,0x72,0x6D,0x77,0x80,0x7C,0x7E,0x89,0x87,0x85,0x82,0x76,0x81,0x86,0x82,0x8B, - 0x90,0x93,0x8A,0x83,0x88,0x85,0x9B,0xA7,0x99,0x9D,0x9D,0x90,0x86,0x7F,0x82,0x8E, - 0x83,0x83,0x94,0x8D,0x88,0x7A,0x6D,0x79,0x74,0x69,0x71,0x79,0x75,0x6A,0x61,0x60, - 0x63,0x70,0x7D,0x72,0x71,0x79,0x6C,0x5D,0x5A,0x5C,0x67,0x63,0x60,0x6F,0x72,0x71, - 0x6F,0x6A,0x6F,0x70,0x64,0x65,0x70,0x72,0x6C,0x60,0x60,0x62,0x6D,0x7C,0x72,0x73, - 0x7C,0x77,0x70,0x69,0x6F,0x83,0x82,0x81,0x92,0x9F,0xAB,0xA8,0x9E,0xA6,0xA3,0x98, - 0x96,0x9E,0xA0,0x9B,0x95,0x8C,0x85,0x8A,0x9C,0x95,0x89,0x93,0x8E,0x81,0x7A,0x73, - 0x80,0x7F,0x73,0x7A,0x83,0x86,0x84,0x81,0x7E,0x82,0x7B,0x73,0x78,0x7B,0x7F,0x7F, - 0x7B,0x7C,0x76,0x88,0x96,0x86,0x88,0x8C,0x85,0x85,0x7D,0x79,0x88,0x85,0x84,0x8B, - 0x8D,0x96,0x93,0x8F,0x96,0x92,0x8B,0x89,0x89,0x8A,0x8C,0x8D,0x89,0x8C,0x84,0x85, - 0x8E,0x80,0x83,0x82,0x78,0x7F,0x78,0x71,0x75,0x6E,0x6F,0x73,0x6D,0x6E,0x73,0x6D, - 0x6C,0x6C,0x67,0x6A,0x6A,0x69,0x6E,0x6F,0x6C,0x6C,0x6A,0x69,0x6D,0x6E,0x6F,0x70, - 0x6E,0x70,0x71,0x6D,0x6D,0x6E,0x6F,0x6F,0x6E,0x6B,0x6C,0x6D,0x6C,0x6E,0x71,0x75, - 0x7B,0x7E,0x85,0x8B,0x8E,0x95,0x9A,0x9E,0x9E,0xA2,0xAA,0xA9,0xA2,0xA4,0xA4,0xA0, - 0xA1,0x9A,0x97,0x9A,0x94,0x8D,0x89,0x85,0x86,0x82,0x7F,0x7F,0x7C,0x7F,0x7F,0x7A, - 0x7B,0x7E,0x7C,0x7C,0x7A,0x7B,0x7E,0x7B,0x7F,0x81,0x7B,0x7A,0x81,0x85,0x87,0x84, - 0x83,0x8B,0x87,0x83,0x86,0x85,0x89,0x8A,0x81,0x88,0x8D,0x8D,0x94,0x92,0x94,0x97, - 0x93,0x94,0x93,0x91,0x91,0x8E,0x91,0x99,0x94,0x90,0x8D,0x8C,0x8D,0x84,0x7E,0x83, - 0x80,0x7B,0x79,0x78,0x7C,0x7A,0x70,0x77,0x7C,0x74,0x76,0x72,0x74,0x77,0x6D,0x6E, - 0x74,0x71,0x6F,0x68,0x76,0x80,0x70,0x72,0x75,0x77,0x76,0x67,0x6B,0x76,0x69,0x65, - 0x6A,0x69,0x71,0x6A,0x66,0x73,0x73,0x6D,0x6B,0x6C,0x74,0x72,0x71,0x7D,0x80,0x80, - 0x79,0x8B,0xA7,0x9D,0x98,0xAA,0xB2,0xAA,0x97,0x98,0xA9,0x9B,0x8D,0x94,0x9C,0x9C, - 0x93,0x8A,0x98,0x96,0x82,0x7F,0x84,0x82,0x7B,0x79,0x7F,0x7D,0x77,0x6E,0x77,0x93, - 0x84,0x75,0x85,0x88,0x80,0x6F,0x6C,0x80,0x7A,0x6A,0x77,0x84,0x87,0x81,0x7D,0x8C, - 0x8E,0x7D,0x7D,0x88,0x8A,0x84,0x80,0x8F,0x96,0x89,0x81,0x8A,0xA6,0x9F,0x8B,0x9D, - 0xA2,0x9A,0x8A,0x80,0x92,0x91,0x77,0x7E,0x90,0x8D,0x83,0x7E,0x8B,0x8F,0x7B,0x74, - 0x82,0x7D,0x74,0x72,0x78,0x7F,0x73,0x6A,0x6A,0x80,0x84,0x6D,0x76,0x80,0x77,0x6D, - 0x62,0x6F,0x74,0x5F,0x5E,0x6F,0x74,0x6B,0x67,0x70,0x7A,0x6A,0x5E,0x6D,0x6D,0x5F, - 0x5F,0x67,0x6C,0x66,0x61,0x5F,0x68,0x82,0x72,0x6E,0x89,0x87,0x7F,0x7F,0x82,0x90, - 0x8E,0x85,0x97,0xA5,0xA2,0x9F,0x9F,0xAC,0xAB,0x95,0x9B,0xA4,0x91,0x8B,0x8F,0x8E, - 0x8A,0x7F,0x80,0x76,0x7E,0x92,0x7B,0x79,0x88,0x7C,0x74,0x6C,0x6B,0x73,0x66,0x61, - 0x71,0x76,0x6E,0x71,0x77,0x80,0x7E,0x73,0x7F,0x82,0x77,0x77,0x80,0x81,0x7E,0x7F, - 0x83,0x80,0x87,0xA0,0x8F,0x8C,0x9E,0x96,0x91,0x8B,0x88,0x8F,0x85,0x7B,0x88,0x8A, - 0x84,0x86,0x88,0x8C,0x8C,0x82,0x85,0x89,0x81,0x7C,0x7C,0x7C,0x7C,0x79,0x7B,0x79, - 0x6F,0x88,0x87,0x71,0x83,0x83,0x7C,0x78,0x6D,0x77,0x77,0x65,0x69,0x76,0x72,0x6D, - 0x6F,0x76,0x79,0x75,0x72,0x7B,0x7B,0x6E,0x70,0x72,0x6E,0x6C,0x6D,0x72,0x6C,0x69, - 0x81,0x7A,0x72,0x81,0x7E,0x80,0x7A,0x76,0x81,0x7B,0x71,0x79,0x80,0x80,0x81,0x84, - 0x8E,0x90,0x8A,0x8F,0x95,0x8D,0x87,0x88,0x8A,0x83,0x7F,0x84,0x86,0x7F,0x79,0x88, - 0x86,0x78,0x83,0x80,0x7C,0x7D,0x71,0x7A,0x7A,0x6C,0x71,0x74,0x73,0x74,0x73,0x78, - 0x79,0x77,0x79,0x7D,0x7D,0x7B,0x7C,0x7D,0x7D,0x7E,0x7F,0x80,0x82,0x82,0x83,0x87, - 0x86,0x7E,0x86,0x87,0x83,0x86,0x84,0x89,0x88,0x85,0x89,0x89,0x87,0x86,0x85,0x88, - 0x85,0x83,0x87,0x85,0x87,0x86,0x85,0x8A,0x87,0x86,0x89,0x87,0x85,0x87,0x84,0x83, - 0x85,0x82,0x80,0x81,0x83,0x80,0x80,0x81,0x80,0x80,0x7E,0x7E,0x7E,0x7C,0x7C,0x7C, - 0x7E,0x7E,0x7C,0x7F,0x7F,0x7E,0x7E,0x7B,0x7F,0x7E,0x7C,0x81,0x81,0x7E,0x81,0x80, - 0x82,0x83,0x82,0x83,0x86,0x84,0x83,0x84,0x84,0x85,0x84,0x86,0x86,0x87,0x86,0x86, - 0x84,0x84,0x84,0x82,0x82,0x81,0x82,0x82,0x82,0x80,0x80,0x80,0x7C,0x7E,0x7B,0x7A, - 0x7B,0x7B,0x7C,0x7B,0x7A,0x79,0x7A,0x7B,0x7A,0x78,0x7B,0x79,0x79,0x7A,0x7A,0x7B, - 0x7B,0x7D,0x7D,0x7E,0x7D,0x80,0x7F,0x7E,0x7F,0x80,0x81,0x81,0x82,0x80,0x82,0x82, - 0x84,0x83,0x83,0x85,0x84,0x84,0x85,0x84,0x84,0x85,0x84,0x84,0x85,0x84,0x84,0x86, - 0x87,0x87,0x85,0x85,0x87,0x85,0x84,0x84,0x84,0x85,0x84,0x82,0x84,0x84,0x83,0x85, - 0x85,0x83,0x82,0x84,0x82,0x81,0x82,0x80,0x82,0x82,0x81,0x81,0x80,0x81,0x82,0x82, - 0x81,0x80,0x81,0x81,0x7F,0x81,0x80,0x81,0x81,0x82,0x83,0x82,0x82,0x84,0x85,0x82, - 0x83,0x85,0x86,0x85,0x85,0x87,0x86,0x86,0x87,0x88,0x86,0x86,0x87,0x87,0x86,0x87, - 0x85,0x86,0x86,0x83,0x83,0x83,0x83,0x81,0x80,0x80,0x7E,0x7E,0x7F,0x7F,0x7E,0x7F, - 0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7E,0x7D,0x7D,0x80,0x7F,0x80,0x81,0x80, - 0x80,0x80,0x80,0x80,0x7F,0x80,0x81,0x80,0x81,0x84,0x82,0x83,0x84,0x82,0x82,0x83, - 0x81,0x81,0x82,0x81,0x81,0x81,0x80,0x82,0x81,0x81,0x83,0x82,0x82,0x82,0x81,0x83, - 0x82,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x81,0x80,0x7F,0x80,0x80,0x81, - 0x7F,0x7F,0x80,0x7F,0x7E,0x80,0x80,0x7E,0x80,0x7F,0x7D,0x7E,0x7E,0x7C,0x7D,0x7E, - 0x7E,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x7F, - 0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x7F,0x80,0x80,0x7F,0x80,0x7F,0x80,0x80,0x7F, - 0x7E,0x7F,0x7F,0x7C,0x7E,0x7E,0x7D,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7E,0x7D,0x7C, - 0x7B,0x7C,0x7C,0x7C,0x7C,0x7D,0x7D,0x7C,0x7C,0x7D,0x7C,0x7B,0x7C,0x7C,0x7E,0x7D, - 0x7E,0x7D,0x7D,0x7E,0x7D,0x80,0x7E,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7D,0x7E,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7F,0x7E,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x7E,0x80,0x7E,0x7F,0x7F,0x7E,0x7D,0x7F,0x80,0x7E,0x80,0x80,0x81,0x7F,0x7F,0x7F, - 0x7E,0x7F,0x7D,0x7F,0x7F,0x7E,0x7F,0x7F,0x7E,0x7E,0x7E,0x7F,0x7E,0x7F,0x7F,0x7D, - 0x7F,0x7E,0x7D,0x7F,0x7F,0x7F,0x81,0x80,0x80,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x7F, - 0x82,0x80,0x7E,0x81,0x80,0x81,0x81,0x80,0x81,0x81,0x81,0x81,0x7F,0x81,0x80,0x7F, - 0x81,0x7E,0x7F,0x7E,0x7D,0x80,0x7E,0x7E,0x7F,0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7D, - 0x7F,0x7E,0x7C,0x80,0x7D,0x7E,0x7F,0x7E,0x81,0x7E,0x81,0x7F,0x7E,0x82,0x80,0x7F, - 0x80,0x80,0x7F,0x81,0x81,0x82,0x7F,0x7F,0x80,0x80,0x80,0x80,0x81,0x83,0x81,0x7F, - 0x82,0x81,0x81,0x81,0x7D,0x81,0x80,0x81,0x82,0x80,0x83,0x82,0x80,0x82,0x80,0x81, - 0x80,0x7F,0x83,0x80,0x80,0x81,0x81,0x82,0x81,0x82,0x81,0x81,0x81,0x81,0x81,0x7D, - 0x80,0x81,0x80,0x81,0x7F,0x82,0x81,0x8C,0x84,0x81,0x85,0x67,0x78,0x80,0x6D,0x69, - 0x77,0x7E,0x85,0x8C,0x87,0x8C,0x86,0x91,0xA1,0x9D,0xA4,0xA3,0x93,0x8E,0x79,0x82, - 0x92,0x76,0x70,0x76,0x6F,0x58,0x5A,0x52,0x51,0x71,0x6A,0x65,0x55,0x5E,0x70,0x6B, - 0x73,0x77,0x81,0x83,0x94,0x95,0x93,0x9B,0xB0,0xAC,0x85,0xBE,0xAF,0x98,0xB6,0x9B, - 0xB0,0xB5,0xA0,0x94,0x8B,0x94,0x9A,0x7B,0x6E,0x79,0x66,0x75,0x6F,0x6B,0x7F,0x68, - 0x63,0x68,0x6F,0x7C,0x6C,0x50,0x4E,0x55,0x5A,0x60,0x64,0x5E,0x56,0x5A,0x6E,0x6F, - 0x78,0x88,0x89,0xA1,0xA9,0x9D,0x91,0x95,0x90,0x8D,0x9A,0xA3,0xB4,0xB1,0x9F,0xA8, - 0xA9,0xA4,0xAB,0x9E,0x9B,0x95,0x8B,0x80,0x77,0x7C,0x70,0x76,0x76,0x75,0x84,0x77, - 0x6E,0x65,0x55,0x5E,0x61,0x50,0x44,0x4F,0x4F,0x3B,0x3A,0x46,0x5D,0x5A,0x62,0x74, - 0x6F,0x7F,0x92,0x90,0x98,0x8A,0x81,0xA0,0x98,0x9A,0xA5,0x93,0xA1,0xB1,0xB6,0xC5, - 0xBA,0xB1,0xC4,0xBB,0xB4,0xC1,0xA7,0x9A,0xAB,0x9C,0x9A,0x99,0x85,0x7B,0x71,0x6B, - 0x70,0x75,0x69,0x63,0x57,0x55,0x5D,0x57,0x56,0x50,0x5A,0x5F,0x4A,0x4B,0x44,0x4E, - 0x5C,0x5B,0x67,0x69,0x71,0x85,0x83,0x8D,0x9A,0x8A,0x9A,0x9F,0x9E,0xB0,0xAE,0xB7, - 0xB5,0xB5,0xB6,0xAF,0xB4,0xA6,0x9E,0xAC,0xA4,0xA5,0xA3,0x99,0x9A,0x98,0x92,0x8F, - 0x83,0x76,0x68,0x63,0x59,0x5F,0x60,0x49,0x50,0x5B,0x5D,0x4F,0x2D,0x22,0x2C,0x39, - 0x43,0x44,0x3D,0x3F,0x47,0x47,0x44,0x4B,0x4F,0x5A,0x5F,0x5A,0x66,0x6F,0x82,0x82, - 0x85,0xAD,0xBE,0xBB,0xAC,0xA5,0xB7,0xBD,0xC1,0xCE,0xC7,0xC9,0xC6,0xAA,0x93,0x92, - 0xA1,0xA1,0xAD,0xB1,0xA0,0xA4,0xA4,0xA3,0xA4,0x9A,0x9E,0xA2,0xA0,0xA4,0x9C,0x91, - 0x82,0x75,0x7A,0x8B,0x86,0x70,0x62,0x60,0x5E,0x60,0x65,0x5F,0x56,0x52,0x63,0x58, - 0x4E,0x45,0x48,0x63,0x5C,0x67,0x6F,0x6B,0x6C,0x70,0x76,0x6C,0x65,0x78,0x88,0x8C, - 0x93,0x84,0x87,0x83,0x65,0x76,0x7D,0x7A,0x7D,0x83,0x97,0x91,0x85,0x8C,0x91,0x84, - 0x8A,0x90,0x8F,0x8B,0x84,0x8E,0xA3,0xA2,0x94,0xA4,0xA9,0x9A,0x8F,0x91,0x99,0x91, - 0x91,0x95,0x9C,0x98,0x8D,0x94,0x86,0x78,0x77,0x78,0x76,0x62,0x66,0x7B,0x78,0x71, - 0x78,0x79,0x73,0x6F,0x6C,0x75,0x6E,0x59,0x57,0x5B,0x5A,0x5B,0x66,0x5E,0x50,0x57, - 0x60,0x67,0x5B,0x51,0x6B,0x77,0x6E,0x71,0x79,0x7A,0x6C,0x74,0x82,0x86,0x91,0x8F, - 0x9C,0x9B,0x89,0x95,0x9E,0xA1,0xA6,0xA2,0xA0,0x94,0x8A,0x9D,0xA7,0xA7,0xAA,0xAD, - 0xAA,0xA7,0xA5,0xA4,0xAB,0x9D,0xA4,0xBF,0xB9,0xAD,0x9F,0xA2,0xAD,0xB2,0xAF,0x99, - 0x90,0x8D,0x9A,0xAA,0x92,0x8A,0x97,0x88,0x77,0x66,0x6A,0x6C,0x5A,0x52,0x51,0x54, - 0x49,0x3F,0x4C,0x5E,0x58,0x4B,0x51,0x48,0x44,0x4B,0x58,0x5F,0x52,0x59,0x58,0x4A, - 0x41,0x3E,0x4B,0x53,0x50,0x50,0x54,0x53,0x48,0x4E,0x62,0x68,0x6B,0x6E,0x78,0x8A, - 0x81,0x8F,0xA5,0x9E,0xA7,0xB2,0xAE,0xAB,0xA5,0xAE,0xB7,0xAE,0xA6,0xA0,0xA6,0x99, - 0x88,0x95,0x92,0x94,0xA3,0x91,0x8A,0x92,0x86,0x9D,0xBE,0xA2,0x90,0x98,0x8B,0x93, - 0xA3,0x95,0x97,0x96,0x8C,0x9D,0x99,0x8A,0x85,0x7A,0x88,0x8A,0x78,0x79,0x7D,0x77, - 0x7D,0x95,0x97,0x8E,0x8C,0x81,0x85,0x83,0x7E,0x8B,0x96,0x89,0x78,0x75,0x6D,0x68, - 0x83,0x9A,0x92,0x7F,0x69,0x70,0x78,0x6F,0x5F,0x59,0x62,0x5A,0x5B,0x5D,0x55,0x55, - 0x4E,0x51,0x63,0x5E,0x4C,0x4D,0x50,0x59,0x5C,0x61,0x6B,0x6E,0x68,0x69,0x71,0x6F, - 0x84,0x8E,0x7F,0x78,0x71,0x6C,0x6E,0x74,0x83,0x8F,0x7F,0x80,0x89,0x83,0x89,0x8F, - 0xA2,0xB9,0xB7,0xAE,0xAD,0xA9,0xAE,0xAB,0xB0,0xC5,0xB6,0x98,0x94,0xA1,0xAD,0xA5, - 0x9A,0xA1,0x9D,0x88,0x83,0x83,0x79,0x7D,0x83,0x88,0x87,0x77,0x6E,0x76,0x75,0x80, - 0x8B,0x81,0x83,0x88,0x80,0x76,0x6A,0x75,0x81,0x79,0x6A,0x5E,0x61,0x69,0x72,0x7C, - 0x80,0x7C,0x6F,0x72,0x76,0x80,0x80,0x6C,0x80,0x91,0x83,0x81,0x7F,0x80,0x85,0x85, - 0x92,0x99,0x80,0x6B,0x70,0x76,0x73,0x73,0x73,0x6C,0x69,0x65,0x68,0x61,0x65,0x80, - 0x7A,0x62,0x5B,0x59,0x59,0x6A,0x77,0x7B,0x81,0x76,0x6B,0x76,0x7F,0x7D,0x7E,0x81, - 0x8A,0x82,0x6A,0x67,0x6C,0x6B,0x74,0x89,0x8F,0x84,0x75,0x7D,0x8D,0x8F,0x94,0x9A, - 0xA6,0xA6,0x9E,0x9F,0xA1,0xAF,0xBB,0xBC,0xBE,0xB9,0xB1,0xB0,0xA4,0xA2,0xAE,0xA1, - 0x8F,0x8B,0x85,0x81,0x7F,0x83,0x91,0x94,0x87,0x7D,0x79,0x78,0x74,0x74,0x7D,0x81, - 0x6F,0x5B,0x63,0x6A,0x62,0x67,0x7A,0x82,0x74,0x69,0x60,0x65,0x6A,0x6E,0x7C,0x76, - 0x6C,0x66,0x67,0x76,0x7F,0x7F,0x86,0x87,0x87,0x89,0x80,0x76,0x81,0x90,0x86,0x7C, - 0x76,0x67,0x64,0x6C,0x79,0x7F,0x7C,0x6C,0x63,0x6D,0x6F,0x68,0x63,0x6D,0x6D,0x63, - 0x61,0x67,0x6A,0x6C,0x86,0x88,0x70,0x68,0x61,0x69,0x72,0x72,0x81,0x7D,0x70,0x73, - 0x77,0x7F,0x82,0x81,0x88,0x8B,0x82,0x77,0x78,0x74,0x7C,0x9E,0x9D,0x8C,0x8C,0x90, - 0x99,0x9C,0xA0,0xAB,0xB7,0xAF,0xAB,0xAA,0xA5,0xAD,0xAF,0xB3,0xB7,0xAE,0x9C,0x9A, - 0x9A,0x99,0xB1,0xAF,0xA1,0x9A,0x87,0x88,0x91,0x8C,0x94,0x9C,0x8F,0x7E,0x78,0x7B, - 0x7F,0x83,0x89,0x86,0x7E,0x77,0x79,0x6F,0x67,0x81,0x84,0x76,0x73,0x6D,0x6A,0x69, - 0x75,0x7E,0x80,0x86,0x76,0x6E,0x71,0x76,0x78,0x75,0x7D,0x74,0x62,0x69,0x68,0x69, - 0x7B,0x86,0x78,0x6E,0x69,0x5E,0x67,0x6F,0x75,0x79,0x6A,0x58,0x63,0x5E,0x44,0x56, - 0x69,0x6D,0x56,0x59,0x6C,0x45,0x43,0x64,0x72,0x68,0x63,0x62,0x4A,0x53,0x67,0x72, - 0x71,0x6F,0x73,0x66,0x5F,0x63,0x6D,0x79,0x7D,0x7D,0x7B,0x71,0x6B,0x74,0x84,0x97, - 0x94,0x92,0x93,0x90,0xA1,0xAC,0xB5,0xC1,0xC3,0xBC,0xAE,0xB5,0xBC,0xB4,0xBA,0xBE, - 0xBB,0xB1,0xA4,0xA1,0x9E,0xA5,0xB4,0xB3,0x9E,0x8A,0x8A,0x88,0x88,0x90,0x95,0x94, - 0x87,0x7F,0x7F,0x8A,0x98,0x8D,0x94,0xA2,0x96,0x89,0x8D,0x91,0x95,0xA4,0xA3,0x99, - 0x8F,0x8A,0x92,0x90,0x93,0xA0,0xA2,0x9A,0x91,0x87,0x84,0x89,0x8D,0x8E,0x8B,0x86, - 0x75,0x71,0x77,0x75,0x86,0x93,0x85,0x6D,0x67,0x66,0x64,0x63,0x65,0x72,0x6E,0x56, - 0x45,0x43,0x57,0x5D,0x59,0x5E,0x53,0x45,0x41,0x44,0x42,0x4B,0x63,0x62,0x4F,0x46, - 0x3E,0x41,0x4C,0x52,0x5D,0x5A,0x45,0x3B,0x44,0x56,0x5E,0x61,0x68,0x67,0x63,0x69, - 0x72,0x72,0x71,0x87,0x9C,0x97,0x88,0x81,0x8C,0x98,0x9D,0xA3,0xA8,0x9D,0x8D,0x91, - 0x95,0x99,0x99,0x95,0x9A,0x99,0x84,0x80,0x88,0x84,0x91,0xA3,0x9A,0x85,0x7C,0x7C, - 0x86,0x8B,0x8F,0x9D,0x9D,0x8B,0x87,0x8B,0x97,0x9E,0x9E,0xAA,0xA9,0x9B,0x8F,0x8E, - 0x92,0x9B,0xB4,0xBB,0xA6,0x9C,0x9A,0x9F,0xA9,0xA7,0xAD,0xB3,0xA2,0x92,0x8D,0x95, - 0x99,0x96,0x9C,0x99,0x90,0x85,0x83,0x89,0x87,0x98,0x9E,0x8A,0x81,0x78,0x75,0x7C, - 0x7A,0x7C,0x83,0x79,0x66,0x5E,0x64,0x6C,0x6C,0x6A,0x6A,0x61,0x55,0x54,0x56,0x51, - 0x5A,0x6F,0x6E,0x5F,0x58,0x57,0x5D,0x64,0x6A,0x72,0x71,0x68,0x5E,0x64,0x76,0x7D, - 0x81,0x89,0x8E,0x8B,0x85,0x8A,0x8A,0x94,0xAA,0xA8,0x9A,0x8A,0x7E,0x83,0x89,0x8D, - 0x95,0x8D,0x7B,0x71,0x70,0x77,0x7B,0x78,0x7A,0x78,0x6B,0x5E,0x62,0x61,0x68,0x7E, - 0x80,0x72,0x64,0x5A,0x62,0x70,0x79,0x82,0x85,0x7D,0x73,0x75,0x7D,0x84,0x85,0x8D, - 0x96,0x8C,0x7F,0x7D,0x80,0x8C,0xA2,0xA3,0x91,0x86,0x81,0x83,0x87,0x8A,0x93,0x96, - 0x8D,0x82,0x7E,0x81,0x82,0x81,0x8A,0x8E,0x7F,0x72,0x71,0x6B,0x74,0x8D,0x8A,0x7C, - 0x72,0x6B,0x6C,0x6D,0x70,0x7A,0x80,0x73,0x66,0x62,0x67,0x6F,0x71,0x75,0x73,0x66, - 0x5F,0x5C,0x5D,0x6F,0x81,0x7C,0x73,0x70,0x69,0x68,0x6E,0x7B,0x89,0x8D,0x84,0x7C, - 0x7C,0x85,0x93,0x9E,0xA9,0xA6,0x95,0x92,0x90,0x92,0xA7,0xB1,0xA8,0x9C,0x93,0x88, - 0x87,0x8C,0x96,0xA2,0x97,0x84,0x7C,0x77,0x7D,0x85,0x89,0x8F,0x80,0x71,0x6E,0x69, - 0x76,0x8D,0x8B,0x7E,0x7A,0x73,0x6E,0x6D,0x7A,0x8B,0x8C,0x84,0x79,0x77,0x78,0x7E, - 0x8C,0x95,0x95,0x88,0x7F,0x7E,0x81,0x96,0xA1,0x95,0x8E,0x8A,0x80,0x7D,0x83,0x92, - 0x9B,0x8F,0x85,0x7F,0x7B,0x80,0x84,0x89,0x8F,0x86,0x78,0x72,0x6D,0x7A,0x90,0x8C, - 0x81,0x7E,0x74,0x6B,0x6B,0x75,0x84,0x89,0x7D,0x70,0x6B,0x6C,0x72,0x77,0x7F,0x7F, - 0x73,0x6B,0x64,0x67,0x7F,0x8D,0x81,0x7C,0x7D,0x72,0x70,0x77,0x89,0x97,0x8C,0x83, - 0x83,0x7F,0x81,0x88,0x92,0x99,0x91,0x85,0x7D,0x75,0x84,0x9B,0x99,0x8D,0x89,0x7E, - 0x73,0x72,0x7C,0x8F,0x8F,0x81,0x7A,0x74,0x72,0x74,0x7B,0x87,0x87,0x7A,0x6E,0x66, - 0x69,0x82,0x90,0x83,0x7D,0x7B,0x70,0x6C,0x6E,0x7E,0x8C,0x84,0x7A,0x78,0x74,0x76, - 0x7D,0x84,0x8E,0x8A,0x7F,0x77,0x6F,0x7F,0x98,0x94,0x8B,0x88,0x7C,0x75,0x76,0x7D, - 0x8E,0x91,0x85,0x7C,0x79,0x77,0x79,0x7E,0x87,0x8A,0x7E,0x71,0x6A,0x6F,0x86,0x90, - 0x85,0x81,0x7B,0x74,0x73,0x71,0x80,0x8E,0x88,0x7D,0x78,0x75,0x76,0x7A,0x81,0x89, - 0x85,0x7A,0x71,0x6C,0x7C,0x93,0x90,0x86,0x84,0x7F,0x78,0x76,0x82,0x94,0x97,0x8A, - 0x83,0x82,0x80,0x84,0x8B,0x91,0x92,0x88,0x7E,0x74,0x7A,0x91,0x97,0x89,0x84,0x83, - 0x7C,0x77,0x78,0x88,0x92,0x89,0x80,0x7E,0x79,0x79,0x7D,0x84,0x8C,0x85,0x79,0x6F, - 0x6C,0x80,0x92,0x8A,0x80,0x7E,0x76,0x72,0x71,0x79,0x8B,0x8B,0x80,0x7A,0x77,0x79, - 0x7B,0x7E,0x89,0x8D,0x82,0x77,0x70,0x7B,0x92,0x93,0x88,0x86,0x83,0x7D,0x77,0x78, - 0x87,0x90,0x8B,0x81,0x7B,0x78,0x79,0x7E,0x86,0x8C,0x86,0x79,0x6E,0x6E,0x81,0x90, - 0x89,0x7F,0x7E,0x7A,0x76,0x71,0x7A,0x89,0x8A,0x81,0x78,0x77,0x78,0x7A,0x7D,0x84, - 0x87,0x7E,0x73,0x6D,0x7C,0x92,0x90,0x83,0x80,0x7F,0x7D,0x77,0x78,0x88,0x91,0x8D, - 0x80,0x7A,0x7D,0x81,0x81,0x87,0x8D,0x86,0x7B,0x6F,0x74,0x8B,0x93,0x87,0x80,0x7E, - 0x7C,0x78,0x73,0x7F,0x8B,0x89,0x7F,0x74,0x74,0x7B,0x7E,0x81,0x86,0x84,0x7D,0x72, - 0x6E,0x81,0x91,0x8F,0x84,0x7C,0x7C,0x7C,0x75,0x78,0x86,0x8B,0x84,0x77,0x72,0x76, - 0x7B,0x7E,0x81,0x82,0x7D,0x75,0x6E,0x7A,0x8F,0x91,0x88,0x7E,0x7C,0x81,0x7D,0x7B, - 0x88,0x8F,0x8D,0x84,0x7B,0x7B,0x81,0x86,0x8D,0x8F,0x88,0x7F,0x71,0x71,0x81,0x88, - 0x84,0x7D,0x7A,0x7C,0x78,0x72,0x78,0x80,0x85,0x81,0x77,0x76,0x7D,0x83,0x88,0x88, - 0x84,0x7F,0x75,0x72,0x83,0x8E,0x88,0x7A,0x73,0x76,0x78,0x77,0x7D,0x85,0x89,0x89, - 0x81,0x7B,0x7F,0x85,0x88,0x8B,0x87,0x84,0x7A,0x71,0x80,0x90,0x91,0x87,0x79,0x72, - 0x72,0x71,0x78,0x83,0x8B,0x89,0x7B,0x72,0x72,0x78,0x7E,0x81,0x7F,0x80,0x7E,0x75, - 0x7D,0x89,0x8F,0x90,0x8A,0x8A,0x8B,0x83,0x81,0x8A,0x92,0x95,0x8C,0x7F,0x7A,0x78, - 0x79,0x79,0x76,0x77,0x72,0x6B,0x73,0x82,0x8C,0x87,0x79,0x74,0x75,0x75,0x79,0x7C, - 0x84,0x89,0x7E,0x77,0x74,0x77,0x84,0x86,0x89,0x8C,0x82,0x74,0x75,0x84,0x92,0x94, - 0x87,0x7F,0x78,0x6D,0x74,0x82,0x8B,0x98,0x9A,0x8C,0x81,0x7C,0x7D,0x84,0x83,0x7F, - 0x7D,0x6F,0x6A,0x7C,0x88,0x94,0x90,0x71,0x70,0x75,0x69,0x61,0x65,0x7E,0x80,0x7F, - 0x79,0x86,0x95,0x95,0xAF,0xB6,0xB5,0xAD,0x99,0x99,0x9E,0x8F,0x8E,0x7B,0x5D,0x5A, - 0x58,0x56,0x50,0x5F,0x69,0x79,0x78,0x74,0x84,0x89,0x9B,0xAA,0x9B,0x78,0x7E,0x87, - 0x7C,0x7D,0x74,0x74,0x7F,0x89,0x8A,0x84,0x7B,0x88,0x96,0x94,0x83,0x62,0x57,0x6A, - 0x75,0x8E,0x8F,0x77,0x64,0x62,0x86,0x8A,0x77,0x73,0x77,0x7C,0x79,0x77,0x80,0x8E, - 0x9B,0x94,0x90,0x92,0x7B,0x78,0x6E,0x60,0x71,0x7A,0x6F,0x7C,0x93,0x80,0x79,0x6F, - 0x7C,0x91,0x96,0xB2,0xA5,0x94,0x8C,0x84,0x84,0x82,0x86,0x81,0x91,0x98,0xA5,0xAF, - 0x87,0x7A,0x87,0x90,0x90,0x83,0x81,0x72,0x62,0x59,0x47,0x4F,0x54,0x51,0x5F,0x74, - 0x72,0x5F,0x68,0x81,0x7B,0x6B,0x74,0x7D,0x7B,0x94,0xA7,0x9C,0x8A,0x8F,0xA3,0x9F, - 0x94,0x8E,0x87,0x7C,0x8B,0x96,0xA0,0xA3,0x8E,0x89,0x81,0x75,0x68,0x56,0x64,0x5E, - 0x55,0x70,0x7A,0x6C,0x5E,0x60,0x75,0x87,0x88,0x96,0x93,0x85,0x8E,0x88,0x8B,0x8F, - 0x77,0x7C,0x94,0x9C,0xA6,0x98,0x93,0x98,0x90,0x8E,0x7E,0x73,0x64,0x5D,0x67,0x6F, - 0x76,0x6B,0x77,0x8A,0x89,0x86,0x67,0x68,0x76,0x7D,0x89,0x73,0x6D,0x7C,0x7F,0x94, - 0xA8,0x9B,0x86,0x72,0x83,0x91,0x80,0x7D,0x75,0x73,0x81,0x94,0x80,0x65,0x74,0x78, - 0x80,0x8A,0x7C,0x72,0x75,0x74,0x6C,0x6E,0x67,0x63,0x64,0x6E,0x87,0x84,0x7F,0x94, - 0xA1,0x9A,0xA1,0xA1,0xA1,0x97,0x87,0x98,0xA1,0x96,0x82,0x7C,0x8A,0x99,0x9B,0x96, - 0xA1,0x8C,0x6E,0x73,0x7F,0x71,0x58,0x5B,0x65,0x6E,0x6A,0x5C,0x5F,0x6B,0x6B,0x73, - 0x7B,0x73,0x6E,0x7A,0x96,0x9E,0x9F,0x99,0x90,0x7D,0x71,0x8F,0x9F,0x7F,0x76,0x83, - 0x89,0x8A,0x70,0x76,0x80,0x7A,0x82,0x77,0x76,0x6E,0x65,0x6D,0x7C,0x8C,0x84,0x8C, - 0x85,0x70,0x89,0x97,0x86,0x7E,0x8E,0x90,0x8C,0x94,0x8B,0x80,0x8F,0x98,0x9F,0xA7, - 0x90,0x75,0x6C,0x73,0x68,0x68,0x89,0x8D,0x85,0x76,0x73,0x75,0x6C,0x77,0x7E,0x88, - 0x86,0x7C,0x85,0x7F,0x7A,0x80,0x78,0x6B,0x5B,0x5E,0x66,0x6B,0x80,0x88,0xA3,0xB3, - 0x99,0xA3,0xAF,0x93,0x8B,0x9E,0xA1,0x94,0x84,0x7A,0x7E,0x8D,0x8A,0x89,0x8F,0x83, - 0x7A,0x83,0x7F,0x6D,0x73,0x71,0x64,0x5A,0x5E,0x68,0x66,0x65,0x73,0x82,0x89,0x87, - 0x88,0x90,0x88,0x8D,0x96,0x94,0x9D,0x8F,0x7A,0x78,0x89,0x85,0x6E,0x71,0x6F,0x72, - 0x7C,0x74,0x6A,0x7A,0x86,0x7A,0x7B,0x77,0x78,0x79,0x75,0x8C,0x99,0x90,0x80,0x78, - 0x89,0x8D,0x84,0x90,0x94,0x83,0x7D,0x81,0x84,0x93,0x91,0x90,0x9B,0x89,0x7F,0x7E, - 0x6F,0x65,0x74,0x86,0x8B,0x82,0x78,0x73,0x72,0x79,0x7A,0x85,0x80,0x7C,0x81,0x88, - 0x86,0x70,0x75,0x7C,0x74,0x66,0x5D,0x5B,0x62,0x70,0x87,0x95,0x91,0x9C,0xAC,0xAF, - 0xAC,0xA1,0x99,0x8E,0x79,0x77,0x84,0x89,0x77,0x72,0x87,0x92,0x90,0x8B,0x92,0x7F, - 0x68,0x71,0x76,0x70,0x6D,0x68,0x5D,0x6C,0x80,0x76,0x7A,0x7B,0x78,0x91,0x97,0x8C, - 0x8F,0x94,0x8D,0x85,0x8F,0x85,0x79,0x72,0x73,0x8A,0x8F,0x7B,0x64,0x77,0x7A,0x64, - 0x67,0x6F,0x75,0x6F,0x74,0x77,0x7B,0x84,0x79,0x79,0x83,0x7E,0x87,0x97,0x8C,0x89, - 0x9B,0x98,0x92,0x7B,0x71,0x89,0x7F,0x79,0x8B,0x9A,0x93,0x7D,0x77,0x79,0x67,0x5B, - 0x6C,0x75,0x84,0x89,0x7D,0x76,0x76,0x84,0x8D,0x7F,0x7E,0x84,0x82,0x8D,0x89,0x81, - 0x89,0x79,0x61,0x5E,0x6D,0x69,0x58,0x5D,0x6C,0x85,0x8F,0x87,0x9A,0xA0,0x89,0x96, - 0x9B,0x95,0xA5,0x8F,0x7D,0x86,0x8F,0x7E,0x74,0x88,0x87,0x95,0x9C,0x87,0x85,0x8D, - 0x73,0x75,0x79,0x6A,0x76,0x68,0x67,0x75,0x7D,0x72,0x67,0x7E,0x81,0x77,0x78,0x80, - 0x85,0x85,0x7D,0x81,0x8E,0x77,0x68,0x65,0x6D,0x75,0x7B,0x88,0x77,0x6E,0x78,0x89, - 0x7D,0x67,0x72,0x73,0x7D,0x81,0x80,0x97,0x96,0x7B,0x82,0x9E,0x8A,0x82,0x88,0x85, - 0x89,0x81,0x7E,0x73,0x79,0x7E,0x7C,0x86,0x79,0x7B,0x87,0x84,0x84,0x87,0x88,0x78, - 0x6F,0x6E,0x7D,0x88,0x7B,0x7B,0x8F,0x92,0x88,0x93,0x98,0x8B,0x80,0x83,0x83,0x7D, - 0x79,0x60,0x5A,0x67,0x60,0x52,0x60,0x6B,0x6D,0x8A,0x9E,0xA4,0xAB,0xAF,0xA2,0x94, - 0x96,0x8C,0x81,0x7B,0x77,0x8A,0x97,0x80,0x87,0x94,0x83,0x7D,0x76,0x7E,0x88,0x77, - 0x66,0x78,0x7E,0x6E,0x61,0x68,0x74,0x6F,0x8B,0x92,0x7F,0x7A,0x82,0x8F,0x85,0x7A, - 0x76,0x73,0x75,0x70,0x7D,0x8D,0x7E,0x70,0x7F,0x8B,0x7D,0x6F,0x73,0x81,0x7E,0x79, - 0x8E,0x8A,0x89,0x87,0x7C,0x84,0x83,0x82,0x84,0x8E,0x8B,0x8F,0x95,0x7E,0x7F,0x70, - 0x6D,0x82,0x7A,0x7F,0x8E,0x90,0x8F,0x92,0x93,0x81,0x70,0x7B,0x81,0x7F,0x83,0x6F, - 0x7C,0x95,0x88,0x7C,0x7A,0x79,0x78,0x83,0x92,0x8F,0x93,0x95,0x7E,0x80,0x7C,0x72, - 0x6C,0x52,0x5C,0x6E,0x6C,0x67,0x73,0x73,0x77,0x8C,0x91,0xA6,0xAC,0xA3,0x95,0x92, - 0xA0,0x86,0x7D,0x84,0x7A,0x8E,0x99,0x94,0x91,0x8C,0x97,0x92,0x83,0x80,0x71,0x68, - 0x6D,0x69,0x78,0x79,0x6B,0x71,0x72,0x7A,0x73,0x73,0x7C,0x7C,0x7D,0x8B,0x90,0x83, - 0x83,0x77,0x71,0x73,0x77,0x81,0x8B,0x8F,0x94,0x99,0x82,0x79,0x76,0x6E,0x79,0x7F, - 0x77,0x80,0x85,0x83,0x8D,0x92,0x8C,0x74,0x74,0x80,0x7F,0x90,0x88,0x69,0x72,0x8E, - 0x87,0x78,0x7F,0x8E,0x94,0x7D,0x79,0x98,0xA8,0x83,0x6A,0x91,0x7B,0x6A,0x75,0x6E, - 0x7D,0x7E,0x8F,0x83,0x7C,0x88,0x83,0x83,0x7F,0x90,0x9A,0x8A,0x72,0x79,0x86,0x77, - 0x6D,0x5D,0x5A,0x64,0x6D,0x69,0x6E,0x85,0x92,0xA0,0x97,0x94,0x92,0x7C,0x80,0x93, - 0x95,0x93,0x93,0x8F,0x92,0x9B,0x91,0x87,0x8A,0x8F,0x85,0x88,0x90,0x7D,0x71,0x6A, - 0x60,0x68,0x7B,0x7D,0x74,0x7C,0x85,0x73,0x6B,0x77,0x6D,0x70,0x79,0x66,0x74,0x81, - 0x7B,0x86,0x95,0x9E,0x8C,0x79,0x80,0x83,0x80,0x88,0x77,0x69,0x83,0x86,0x78,0x73, - 0x73,0x7D,0x7E,0x89,0x96,0x8F,0x8C,0x78,0x66,0x70,0x7C,0x78,0x6C,0x77,0x75,0x7B, - 0x8B,0x8D,0x85,0x84,0x96,0x8C,0x8A,0x94,0x91,0x84,0x74,0x87,0x92,0x88,0x79,0x6F, - 0x6F,0x85,0x88,0x79,0x87,0x81,0x7E,0x7F,0x7A,0x81,0x7C,0x77,0x7C,0x76,0x6D,0x73, - 0x6F,0x60,0x65,0x6B,0x6C,0x72,0x87,0x90,0x95,0xAA,0x9F,0x8F,0x88,0x7A,0x77,0x7F, - 0x91,0x8D,0x92,0xA1,0xA3,0xA0,0x8E,0x8F,0x88,0x77,0x7C,0x7A,0x78,0x73,0x6F,0x73, - 0x85,0x86,0x72,0x69,0x68,0x6C,0x6E,0x7B,0x74,0x64,0x77,0x7E,0x75,0x6D,0x6E,0x78, - 0x79,0x7F,0x91,0x9A,0x95,0x7D,0x71,0x83,0x86,0x76,0x7A,0x7A,0x76,0x83,0x84,0x83, - 0x80,0x80,0x82,0x7C,0x7D,0x75,0x83,0x79,0x77,0x8F,0x81,0x76,0x6C,0x65,0x7F,0x95, - 0x8E,0x9D,0x97,0x91,0x95,0x7B,0x81,0x84,0x6A,0x77,0x84,0x7F,0x85,0x80,0x7C,0x7A, - 0x79,0x78,0x76,0x7A,0x7A,0x79,0x87,0x92,0x93,0x86,0x87,0x85,0x6A,0x79,0x7E,0x65, - 0x6A,0x77,0x83,0x80,0x7E,0x86,0x83,0x87,0x8A,0x92,0x90,0x83,0x84,0x86,0x8F,0x8F, - 0x85,0x82,0x86,0x86,0x95,0x97,0x82,0x84,0x91,0x8E,0x7F,0x6B,0x76,0x81,0x6F,0x7C, - 0x7C,0x81,0x7A,0x5F,0x70,0x7E,0x73,0x6E,0x6C,0x6F,0x78,0x80,0x84,0x86,0x7E,0x7D, - 0x81,0x82,0x83,0x86,0x8F,0x7C,0x83,0x8C,0x80,0x7A,0x66,0x63,0x75,0x88,0x8F,0x89, - 0x89,0x8E,0x81,0x82,0x84,0x6B,0x6F,0x86,0x7B,0x86,0x90,0x8A,0x83,0x7D,0x95,0x90, - 0x8D,0x8A,0x7F,0x87,0x94,0x91,0x7F,0x7E,0x79,0x6F,0x74,0x7C,0x78,0x78,0x80,0x91, - 0x92,0x79,0x82,0x7F,0x6D,0x7C,0x89,0x90,0x8D,0x8A,0x88,0x7E,0x7B,0x74,0x67,0x63, - 0x5D,0x5A,0x73,0x87,0x76,0x82,0xA6,0x99,0x83,0x8A,0x90,0x89,0x8D,0x8E,0xA1,0xAC, - 0x8A,0x85,0x8B,0x8C,0x8D,0x82,0x89,0x7F,0x80,0x8B,0x84,0x88,0x7A,0x6E,0x76,0x6F, - 0x62,0x76,0x77,0x68,0x72,0x74,0x76,0x6A,0x6A,0x6C,0x7B,0x85,0x7E,0xA4,0xA8,0x81, - 0x81,0x98,0x8F,0x76,0x81,0x8D,0x81,0x7D,0x77,0x80,0x81,0x75,0x72,0x7C,0x84,0x72, - 0x6E,0x80,0x94,0x88,0x82,0x90,0x7C,0x6C,0x71,0x87,0x87,0x78,0x94,0xA2,0x93,0x90, - 0x8D,0x7B,0x74,0x7C,0x82,0x89,0x84,0x86,0x7A,0x7F,0x8B,0x78,0x7F,0x82,0x71,0x62, - 0x7B,0x8C,0x79,0x88,0x94,0x87,0x8A,0x88,0x8A,0x8E,0x7A,0x71,0x84,0x7E,0x62,0x66, - 0x67,0x60,0x6D,0x76,0x86,0x97,0x8D,0x80,0x87,0x8E,0x7E,0x80,0x8D,0x86,0x8F,0x8D, - 0x8C,0x94,0x93,0x92,0x89,0x87,0x8F,0x88,0x83,0x83,0x80,0x84,0x8A,0x87,0x6C,0x63, - 0x71,0x62,0x68,0x75,0x6A,0x7B,0x7E,0x71,0x78,0x89,0x88,0x81,0x83,0x7B,0x85,0x84, - 0x7F,0x94,0x95,0x87,0x87,0x7E,0x69,0x6D,0x6D,0x68,0x76,0x82,0x8B,0x8D,0x85,0x70, - 0x74,0x7F,0x78,0x7A,0x7E,0x8C,0x80,0x6D,0x86,0x8D,0x87,0x8F,0x8B,0x84,0x79,0x7C, - 0x8D,0x8E,0x86,0x79,0x7D,0x8C,0x7A,0x76,0x82,0x7F,0x84,0x8B,0x80,0x7F,0x78,0x64, - 0x76,0x84,0x86,0x90,0x93,0x8A,0x80,0x84,0x88,0x7F,0x7F,0x74,0x6C,0x6D,0x5A,0x64, - 0x6F,0x71,0x7C,0x81,0x84,0x82,0x7B,0x7B,0x88,0x87,0x8C,0x96,0x8E,0x87,0x78,0x89, - 0x93,0x8A,0x92,0x9D,0xAB,0x92,0x85,0x92,0x8A,0x8B,0x80,0x6D,0x6C,0x6A,0x68,0x6E, - 0x79,0x7B,0x75,0x7A,0x71,0x65,0x72,0x77,0x78,0x82,0x82,0x88,0x8B,0x77,0x79,0x85, - 0x7F,0x85,0x86,0x88,0x82,0x6D,0x6C,0x70,0x7B,0x78,0x72,0x82,0x7D,0x7B,0x82,0x81, - 0x80,0x79,0x82,0x83,0x80,0x82,0x79,0x7E,0x8E,0x8D,0x85,0x8C,0x81,0x87,0x86,0x7A, - 0x91,0x86,0x82,0x81,0x75,0x78,0x79,0x7C,0x84,0x88,0x7E,0x82,0x82,0x7D,0x78,0x79, - 0x8B,0x89,0x7C,0x7B,0x7E,0x89,0x83,0x7B,0x8A,0x83,0x75,0x70,0x73,0x73,0x69,0x72, - 0x78,0x88,0x89,0x80,0x89,0x87,0x88,0x87,0x81,0x85,0x85,0x7D,0x85,0x87,0x7F,0x83, - 0x8E,0x8D,0x8A,0x94,0x97,0x98,0x92,0x92,0x88,0x7C,0x7E,0x75,0x6D,0x67,0x6B,0x75, - 0x7C,0x7B,0x75,0x77,0x7B,0x77,0x78,0x7B,0x79,0x79,0x77,0x7D,0x7B,0x79,0x7F,0x7F, - 0x83,0x85,0x7F,0x80,0x7D,0x77,0x77,0x77,0x78,0x79,0x7E,0x80,0x7F,0x88,0x8A,0x89, - 0x88,0x86,0x89,0x7F,0x7D,0x80,0x7E,0x81,0x7D,0x82,0x87,0x85,0x86,0x8C,0x8E,0x8F, - 0x8B,0x86,0x85,0x7F,0x7E,0x7D,0x7B,0x7E,0x80,0x7D,0x80,0x82,0x80,0x83,0x81,0x7E, - 0x80,0x84,0x82,0x7D,0x7E,0x80,0x80,0x7E,0x7D,0x78,0x74,0x75,0x77,0x77,0x78,0x7B, - 0x7E,0x84,0x88,0x89,0x89,0x88,0x89,0x8C,0x8D,0x8B,0x89,0x81,0x7E,0x7D,0x7C,0x80, - 0x83,0x85,0x87,0x8D,0x90,0x91,0x91,0x8C,0x88,0x83,0x7E,0x7B,0x79,0x7B,0x78,0x78, - 0x7B,0x7C,0x79,0x79,0x7B,0x7A,0x7C,0x7D,0x7D,0x7E,0x80,0x82,0x7F,0x7F,0x80,0x7E, - 0x81,0x82,0x7C,0x79,0x7C,0x7A,0x77,0x79,0x77,0x77,0x79,0x7E,0x81,0x81,0x85,0x85, - 0x83,0x86,0x84,0x82,0x82,0x82,0x84,0x83,0x88,0x83,0x8B,0x98,0x83,0x92,0x7C,0x6B, - 0x89,0x7C,0x6A,0x6D,0x7D,0x86,0x8A,0x8C,0x8E,0x8A,0x8B,0x9C,0xA1,0x9B,0x96,0x92, - 0x90,0x90,0x89,0x83,0x7F,0x72,0x6A,0x69,0x65,0x6D,0x67,0x55,0x62,0x64,0x5F,0x69, - 0x6B,0x6D,0x78,0x79,0x7B,0x79,0x6F,0x8A,0x88,0x73,0x88,0xA4,0xA2,0x96,0xB7,0xC1, - 0xAF,0xAA,0x9A,0x99,0xA7,0xA4,0x94,0x93,0x93,0x89,0x88,0x85,0x7A,0x76,0x72,0x6D, - 0x6B,0x74,0x7E,0x79,0x6C,0x68,0x68,0x5B,0x53,0x4C,0x47,0x4C,0x4C,0x50,0x5B,0x63, - 0x63,0x68,0x7A,0x88,0x8A,0x8A,0x90,0x94,0x8F,0x85,0x8F,0x9D,0x9D,0x98,0x98,0xA5, - 0xB0,0xBA,0xC1,0xC4,0xBD,0xAD,0xAA,0xAD,0xAA,0xA2,0x9A,0x9A,0x95,0x8B,0x8D,0x86, - 0x7E,0x7D,0x75,0x6C,0x64,0x64,0x62,0x59,0x54,0x53,0x52,0x4D,0x4F,0x51,0x54,0x58, - 0x56,0x56,0x57,0x5C,0x5B,0x58,0x67,0x6C,0x68,0x6D,0x70,0x70,0x75,0x79,0x74,0x7D, - 0x8B,0x87,0x8C,0x98,0x9F,0xAA,0xB7,0xB0,0x9E,0x9F,0x9D,0x94,0x8E,0x83,0x86,0x89, - 0x88,0x85,0x81,0x84,0x85,0x85,0x82,0x83,0x85,0x86,0x84,0x7B,0x73,0x6C,0x6B,0x6A, - 0x66,0x63,0x61,0x62,0x5D,0x59,0x5B,0x5D,0x61,0x6F,0x77,0x79,0x77,0x77,0x73,0x7B, - 0x8F,0x91,0x84,0x85,0x8C,0x8C,0x8D,0x8C,0x92,0xA1,0xA8,0xAC,0xB3,0xB8,0xB9,0xB9, - 0xB8,0xB5,0xBA,0xB8,0xB6,0xB9,0xB9,0xAF,0xA3,0x9D,0x93,0x92,0xA0,0x9D,0x90,0x8C, - 0x86,0x77,0x6A,0x62,0x62,0x69,0x62,0x59,0x60,0x63,0x5E,0x53,0x4A,0x4D,0x54,0x58, - 0x5C,0x62,0x6D,0x6C,0x67,0x6E,0x70,0x76,0x85,0x85,0x7F,0x82,0x7F,0x74,0x70,0x73, - 0x7C,0x86,0x85,0x87,0x90,0x8D,0x86,0x84,0x84,0x88,0x8D,0x90,0x90,0x94,0x95,0x86, - 0x81,0x81,0x81,0x84,0x89,0x84,0x78,0x7B,0x73,0x5F,0x59,0x57,0x62,0x67,0x60,0x62, - 0x64,0x5E,0x52,0x4E,0x4D,0x50,0x58,0x56,0x5D,0x61,0x5B,0x51,0x50,0x55,0x55,0x69, - 0x78,0x6E,0x6B,0x6E,0x66,0x68,0x6D,0x6F,0x80,0x8A,0x8B,0x93,0x99,0x9A,0x99,0xA1, - 0xAF,0xB9,0xBA,0xB9,0xC1,0xC3,0xC0,0xBC,0xBF,0xBE,0xBE,0xCF,0xCD,0xC2,0xBE,0xB7, - 0xAE,0xA5,0xA1,0xA5,0xA6,0x9E,0x93,0x8D,0x86,0x80,0x7B,0x79,0x7D,0x7E,0x7E,0x7E, - 0x77,0x6D,0x6C,0x71,0x70,0x70,0x7D,0x84,0x7A,0x71,0x70,0x6A,0x66,0x68,0x6E,0x78, - 0x79,0x71,0x74,0x75,0x6E,0x6E,0x76,0x7D,0x83,0x82,0x83,0x88,0x84,0x7E,0x85,0x8A, - 0x85,0x8C,0x9C,0x9A,0x8F,0x8F,0x93,0x90,0x8D,0x8F,0x9A,0xA0,0x99,0x92,0x92,0x8F, - 0x8A,0x8B,0x8E,0x95,0x96,0x8F,0x90,0x90,0x89,0x85,0x89,0x80,0x7A,0x8D,0x8E,0x7C, - 0x77,0x78,0x6F,0x64,0x64,0x6B,0x71,0x69,0x5A,0x5B,0x58,0x4F,0x4B,0x4F,0x53,0x55, - 0x53,0x52,0x53,0x4E,0x4C,0x53,0x57,0x51,0x58,0x6B,0x62,0x56,0x59,0x54,0x49,0x45, - 0x4A,0x55,0x5C,0x54,0x51,0x56,0x50,0x4C,0x52,0x5B,0x62,0x67,0x6B,0x72,0x74,0x76, - 0x7E,0x8D,0x94,0x96,0xAE,0xC1,0xB7,0xB3,0xBA,0xBA,0xB7,0xB9,0xC0,0xC9,0xCA,0xC2, - 0xC2,0xC3,0xB8,0xB4,0xB8,0xB9,0xB9,0xB6,0xB2,0xAF,0xA5,0x9D,0x9F,0xA3,0x9C,0x9C, - 0xB2,0xB3,0xA0,0xA1,0xA5,0x9B,0x98,0x9E,0xA7,0xAC,0xA3,0x9B,0x9D,0x97,0x8D,0x8B, - 0x8E,0x90,0x8D,0x86,0x82,0x7D,0x73,0x6E,0x71,0x71,0x64,0x6B,0x78,0x6A,0x5E,0x62, - 0x5F,0x54,0x54,0x5C,0x67,0x6B,0x61,0x63,0x6A,0x62,0x61,0x68,0x6C,0x70,0x70,0x6F, - 0x72,0x6C,0x68,0x6D,0x71,0x70,0x6B,0x76,0x83,0x74,0x6C,0x76,0x75,0x6B,0x6D,0x76, - 0x81,0x7F,0x74,0x7B,0x7E,0x74,0x74,0x7C,0x7F,0x81,0x7F,0x7C,0x80,0x7B,0x77,0x7D, - 0x80,0x7F,0x76,0x83,0x91,0x7E,0x75,0x83,0x7F,0x76,0x79,0x81,0x89,0x86,0x7C,0x81, - 0x83,0x77,0x76,0x7E,0x81,0x81,0x7D,0x7C,0x7C,0x74,0x72,0x78,0x79,0x79,0x74,0x80, - 0x94,0x84,0x79,0x89,0x8A,0x81,0x85,0x92,0x9C,0x9D,0x94,0x98,0x9F,0x94,0x8F,0x97, - 0x99,0x95,0x94,0x90,0x8C,0x81,0x7B,0x7D,0x79,0x76,0x6C,0x73,0x83,0x71,0x61,0x6E, - 0x6A,0x5B,0x5F,0x6A,0x71,0x70,0x66,0x6C,0x74,0x6A,0x69,0x75,0x7A,0x7B,0x7F,0x81, - 0x84,0x7F,0x7D,0x85,0x89,0x8B,0x88,0x8E,0xA4,0x9E,0x8D,0x99,0x9D,0x8F,0x8F,0x99, - 0xA2,0xA2,0x96,0x96,0x9E,0x93,0x8C,0x96,0x9B,0x98,0x96,0x98,0x9B,0x94,0x8D,0x90, - 0x92,0x91,0x8C,0x8D,0xA3,0xA0,0x87,0x90,0x96,0x83,0x7E,0x8A,0x94,0x94,0x8A,0x88, - 0x8E,0x82,0x7A,0x84,0x8A,0x85,0x82,0x81,0x7E,0x78,0x6E,0x70,0x6E,0x68,0x63,0x5E, - 0x6F,0x71,0x55,0x58,0x5E,0x4A,0x41,0x49,0x52,0x54,0x4A,0x48,0x51,0x49,0x3C,0x46, - 0x50,0x4E,0x4D,0x4E,0x50,0x4D,0x46,0x4B,0x4F,0x4E,0x4D,0x4D,0x61,0x68,0x54,0x56, - 0x64,0x59,0x54,0x61,0x6D,0x73,0x71,0x71,0x7F,0x7F,0x78,0x85,0x93,0x96,0x9B,0xA4, - 0xA7,0xA7,0xA2,0xA4,0xA9,0xA6,0xA4,0xA0,0xB0,0xBF,0xA9,0x9F,0xAE,0xA2,0x94,0x99, - 0xA2,0xA6,0xA0,0x98,0x9D,0x9D,0x90,0x91,0x9B,0x9D,0x9D,0x9E,0x9F,0x9E,0x99,0x99, - 0x9F,0x9F,0x9F,0x99,0xA4,0xB8,0xA9,0x9B,0xA9,0xA6,0x96,0x9B,0xA5,0xAB,0xA7,0x9D, - 0xA1,0xA4,0x94,0x8F,0x9A,0x99,0x96,0x94,0x95,0x95,0x8E,0x88,0x8A,0x8B,0x88,0x81, - 0x83,0x97,0x90,0x79,0x82,0x85,0x73,0x72,0x7C,0x81,0x7F,0x74,0x72,0x78,0x6C,0x63, - 0x6C,0x6E,0x6B,0x6B,0x69,0x69,0x62,0x5D,0x5E,0x5F,0x60,0x59,0x54,0x67,0x69,0x51, - 0x54,0x5C,0x4E,0x47,0x4D,0x55,0x59,0x50,0x4D,0x55,0x4F,0x45,0x4A,0x53,0x52,0x53, - 0x53,0x54,0x53,0x4D,0x4F,0x53,0x57,0x57,0x53,0x64,0x72,0x5E,0x5A,0x6A,0x62,0x5A, - 0x63,0x6D,0x74,0x71,0x6B,0x76,0x7B,0x73,0x79,0x86,0x8A,0x8E,0x92,0x97,0x9D,0x9A, - 0x9D,0xA7,0xAC,0xAE,0xAB,0xB8,0xD2,0xC8,0xB8,0xC7,0xC6,0xB5,0xB6,0xC0,0xC5,0xC0, - 0xB4,0xB6,0xBA,0xAD,0xA6,0xAE,0xB0,0xAC,0xAA,0xA7,0xA6,0xA0,0x9A,0x9C,0x9E,0x9C, - 0x94,0x99,0xB2,0xA9,0x95,0xA0,0xA2,0x93,0x92,0x9B,0xA3,0xA1,0x95,0x97,0x9E,0x92, - 0x8C,0x94,0x95,0x92,0x91,0x8E,0x8E,0x8A,0x83,0x83,0x84,0x81,0x79,0x79,0x91,0x8C, - 0x75,0x7B,0x7E,0x70,0x6E,0x75,0x7E,0x7F,0x72,0x70,0x78,0x6F,0x67,0x6F,0x70,0x6F, - 0x6E,0x68,0x67,0x66,0x61,0x60,0x61,0x61,0x5A,0x56,0x6B,0x6F,0x57,0x57,0x5E,0x53, - 0x4B,0x4D,0x56,0x5D,0x53,0x4D,0x56,0x55,0x4E,0x51,0x55,0x59,0x59,0x54,0x56,0x59, - 0x55,0x53,0x55,0x5B,0x58,0x52,0x6B,0x74,0x5E,0x5D,0x67,0x5F,0x5B,0x5E,0x67,0x72, - 0x69,0x61,0x6B,0x6E,0x68,0x6C,0x73,0x7A,0x7D,0x7B,0x7E,0x84,0x83,0x86,0x8C,0x93, - 0x91,0x8F,0xA9,0xBA,0xA8,0xAA,0xB8,0xB4,0xB2,0xB7,0xC2,0xCE,0xC7,0xBE,0xC4,0xC5, - 0xBD,0xBB,0xBB,0xBE,0xBE,0xB6,0xB1,0xB0,0xA8,0xA0,0x9D,0x9E,0x96,0x8D,0xA0,0xA3, - 0x8A,0x89,0x8D,0x84,0x81,0x81,0x88,0x93,0x8C,0x83,0x88,0x89,0x85,0x85,0x87,0x8B, - 0x8D,0x8A,0x8C,0x8E,0x8D,0x8D,0x89,0x8C,0x87,0x84,0x9B,0x9C,0x86,0x87,0x87,0x80, - 0x7E,0x7A,0x80,0x89,0x80,0x78,0x7B,0x7A,0x74,0x71,0x76,0x7C,0x7D,0x77,0x72,0x72, - 0x73,0x6F,0x6E,0x72,0x6C,0x72,0x88,0x7F,0x6E,0x72,0x6F,0x6A,0x68,0x69,0x73,0x78, - 0x6E,0x68,0x6C,0x6A,0x64,0x62,0x64,0x6A,0x68,0x61,0x5F,0x60,0x60,0x5A,0x58,0x57, - 0x52,0x63,0x74,0x63,0x5A,0x5C,0x55,0x54,0x53,0x57,0x64,0x63,0x59,0x57,0x5E,0x5F, - 0x59,0x58,0x60,0x68,0x68,0x64,0x64,0x68,0x67,0x63,0x66,0x66,0x69,0x80,0x84,0x74, - 0x77,0x79,0x78,0x7B,0x7C,0x87,0x95,0x94,0x8F,0x91,0x99,0x9D,0x9B,0x9D,0xA9,0xB0, - 0xAE,0xAB,0xAD,0xAF,0xA9,0xA4,0xA5,0xA0,0xA9,0xBB,0xAD,0x9C,0x9B,0x92,0x8F,0x8A, - 0x86,0x91,0x97,0x8C,0x83,0x82,0x83,0x80,0x79,0x7B,0x84,0x85,0x7F,0x7C,0x80,0x80, - 0x7C,0x7D,0x7D,0x7F,0x95,0x9D,0x8B,0x87,0x88,0x84,0x85,0x80,0x86,0x92,0x91,0x89, - 0x87,0x8B,0x8E,0x88,0x84,0x8B,0x92,0x91,0x8A,0x87,0x8B,0x88,0x84,0x81,0x87,0x8F, - 0x99,0x94,0x85,0x87,0x85,0x83,0x7E,0x7C,0x87,0x8E,0x88,0x7D,0x7B,0x81,0x7F,0x7A, - 0x7A,0x80,0x85,0x81,0x7B,0x79,0x79,0x74,0x6E,0x69,0x6E,0x85,0x87,0x74,0x6E,0x6E, - 0x6F,0x6A,0x60,0x64,0x70,0x71,0x68,0x5F,0x63,0x68,0x62,0x5E,0x61,0x67,0x69,0x65, - 0x60,0x62,0x64,0x60,0x5B,0x57,0x6A,0x7D,0x72,0x64,0x61,0x64,0x69,0x65,0x64,0x6E, - 0x7A,0x7B,0x75,0x72,0x78,0x7E,0x7C,0x7C,0x82,0x8C,0x91,0x8F,0x8F,0x93,0x98,0x9B, - 0x98,0x9F,0xB8,0xBD,0xB1,0xA9,0xA4,0xA8,0xA7,0xA2,0xA3,0xAB,0xAE,0xA8,0x9B,0x96, - 0x98,0x98,0x8F,0x89,0x8A,0x8C,0x8C,0x85,0x7E,0x7A,0x79,0x72,0x70,0x81,0x8D,0x87, - 0x7E,0x77,0x76,0x79,0x75,0x75,0x7C,0x84,0x87,0x83,0x7C,0x7D,0x80,0x81,0x81,0x80, - 0x82,0x86,0x86,0x84,0x81,0x80,0x7F,0x7B,0x87,0x9A,0x97,0x8B,0x84,0x81,0x84,0x84, - 0x81,0x82,0x87,0x8B,0x8E,0x8A,0x86,0x84,0x83,0x84,0x83,0x82,0x84,0x86,0x84,0x82, - 0x7E,0x7C,0x76,0x78,0x89,0x90,0x88,0x80,0x77,0x73,0x74,0x70,0x6E,0x72,0x73,0x78, - 0x7A,0x74,0x71,0x72,0x71,0x6E,0x6C,0x6D,0x72,0x72,0x6E,0x6C,0x6A,0x67,0x62,0x6A, - 0x79,0x78,0x70,0x6A,0x62,0x63,0x65,0x61,0x61,0x60,0x61,0x69,0x6B,0x6B,0x6E,0x6F, - 0x70,0x70,0x70,0x75,0x79,0x79,0x7B,0x7F,0x81,0x81,0x81,0x8B,0x98,0x99,0x97,0x98, - 0x94,0x95,0x9B,0x9A,0x9A,0x9A,0x97,0x9A,0x9B,0x9A,0x9C,0x9B,0x99,0x99,0x99,0x98, - 0x96,0x92,0x92,0x93,0x92,0x8F,0x8D,0x8D,0x90,0x90,0x8A,0x8A,0x8A,0x88,0x8C,0x8A, - 0x86,0x88,0x87,0x85,0x85,0x85,0x83,0x81,0x80,0x80,0x81,0x82,0x82,0x82,0x83,0x84, - 0x84,0x82,0x7F,0x7F,0x84,0x87,0x84,0x82,0x84,0x84,0x88,0x87,0x84,0x85,0x82,0x7F, - 0x80,0x7F,0x7D,0x7D,0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x83,0x83,0x7F,0x7D, - 0x7E,0x83,0x82,0x7E,0x81,0x80,0x7E,0x81,0x82,0x7F,0x7E,0x7B,0x79,0x7B,0x78,0x75, - 0x76,0x74,0x73,0x74,0x76,0x75,0x75,0x76,0x76,0x78,0x77,0x76,0x75,0x75,0x7A,0x7C, - 0x7A,0x7B,0x7A,0x7A,0x81,0x7E,0x7C,0x7C,0x77,0x77,0x78,0x75,0x76,0x74,0x70,0x72, - 0x74,0x74,0x77,0x77,0x77,0x78,0x7A,0x7A,0x7A,0x7A,0x7B,0x82,0x83,0x7F,0x81,0x81, - 0x82,0x88,0x89,0x87,0x88,0x84,0x84,0x86,0x83,0x84,0x84,0x82,0x83,0x84,0x86,0x86, - 0x86,0x86,0x86,0x88,0x89,0x88,0x86,0x83,0x85,0x8C,0x88,0x84,0x83,0x7F,0x83,0x86, - 0x80,0x81,0x7F,0x79,0x7A,0x79,0x77,0x78,0x75,0x74,0x76,0x77,0x79,0x7A,0x7A,0x7C, - 0x7E,0x82,0x83,0x81,0x81,0x7F,0x84,0x86,0x82,0x84,0x83,0x80,0x87,0x88,0x84,0x84, - 0x80,0x7F,0x81,0x81,0x80,0x7E,0x7C,0x7B,0x7C,0x7E,0x7F,0x7E,0x81,0x82,0x83,0x85, - 0x85,0x86,0x84,0x83,0x8A,0x8B,0x86,0x85,0x84,0x84,0x85,0x83,0x86,0x90,0x7C,0x62, - 0x77,0x87,0x86,0x6E,0x80,0x88,0x62,0x72,0x7F,0x7B,0x7C,0x88,0x8E,0x7B,0x7F,0x85, - 0x84,0x7A,0x7F,0x8C,0x7B,0x71,0x74,0x78,0x81,0x80,0x7F,0x88,0x79,0x6E,0x7B,0x77, - 0x71,0x72,0x79,0x76,0x78,0x7E,0x79,0x7F,0x84,0x87,0x87,0x82,0x87,0x86,0x86,0x89, - 0x80,0x82,0x83,0x7D,0x7C,0x81,0x83,0x80,0x80,0x7C,0x7F,0x81,0x77,0x78,0x79,0x77, - 0x75,0x75,0x7C,0x7E,0x88,0x8C,0x80,0x82,0x8A,0x8A,0x8B,0x8E,0x8E,0x85,0x86,0x8C, - 0x8D,0x8A,0x8B,0x88,0x81,0x87,0x7E,0x74,0x7D,0x77,0x68,0x6C,0x73,0x76,0x77,0x71, - 0x70,0x72,0x70,0x77,0x7B,0x7F,0x7D,0x76,0x7B,0x7C,0x7A,0x78,0x79,0x85,0x8B,0x89, - 0x89,0x80,0x80,0x86,0x88,0x88,0x80,0x7C,0x7B,0x7D,0x81,0x85,0x83,0x7C,0x79,0x72, - 0x78,0x7F,0x7F,0x81,0x7B,0x7D,0x7D,0x80,0x86,0x89,0x88,0x85,0x87,0x84,0x7D,0x83, - 0x87,0x83,0x83,0x85,0x84,0x84,0x8C,0x86,0x84,0x85,0x7E,0x82,0x82,0x7C,0x7D,0x80, - 0x7B,0x7C,0x7C,0x7D,0x87,0x89,0x7F,0x7E,0x7F,0x7E,0x7E,0x7D,0x89,0x82,0x7E,0x85, - 0x78,0x77,0x7C,0x7D,0x7E,0x82,0x81,0x7D,0x82,0x83,0x81,0x84,0x81,0x7A,0x78,0x78, - 0x7A,0x80,0x84,0x84,0x84,0x85,0x84,0x83,0x83,0x7C,0x89,0x8F,0x88,0x88,0x83,0x82, - 0x85,0x88,0x81,0x81,0x7D,0x74,0x7D,0x81,0x85,0x8A,0x81,0x80,0x82,0x83,0x89,0x86, - 0x81,0x85,0x88,0x86,0x86,0x83,0x83,0x7F,0x76,0x80,0x90,0x91,0x8F,0x8A,0x7D,0x7D, - 0x7F,0x77,0x77,0x75,0x6F,0x77,0x82,0x83,0x82,0x81,0x80,0x88,0x84,0x81,0x83,0x7D, - 0x7E,0x80,0x7F,0x7F,0x80,0x7F,0x7B,0x78,0x7F,0x8F,0x94,0x91,0x89,0x80,0x79,0x7E, - 0x7C,0x72,0x76,0x77,0x7E,0x87,0x86,0x83,0x7E,0x80,0x87,0x83,0x7A,0x7D,0x81,0x87, - 0x8B,0x87,0x84,0x81,0x7B,0x80,0x7C,0x82,0x96,0x94,0x92,0x8F,0x83,0x86,0x84,0x79, - 0x79,0x7A,0x78,0x86,0x8E,0x82,0x82,0x83,0x84,0x88,0x7E,0x7C,0x7E,0x81,0x80,0x83, - 0x85,0x86,0x82,0x7C,0x75,0x76,0x8B,0x95,0x8B,0x89,0x84,0x76,0x82,0x7C,0x6C,0x72, - 0x75,0x7C,0x85,0x80,0x79,0x82,0x8A,0x88,0x80,0x79,0x79,0x7C,0x82,0x82,0x80,0x84, - 0x84,0x7F,0x7A,0x77,0x7C,0x8E,0x95,0x8B,0x88,0x84,0x80,0x8B,0x81,0x72,0x78,0x76, - 0x79,0x80,0x7B,0x79,0x80,0x87,0x84,0x7F,0x7F,0x80,0x84,0x84,0x7C,0x7A,0x81,0x86, - 0x80,0x7B,0x76,0x80,0x92,0x88,0x82,0x88,0x82,0x87,0x8A,0x76,0x74,0x76,0x75,0x7C, - 0x77,0x71,0x79,0x80,0x87,0x7F,0x79,0x84,0x80,0x7C,0x76,0x75,0x7F,0x82,0x7C,0x76, - 0x73,0x75,0x88,0x91,0x82,0x84,0x84,0x7F,0x88,0x80,0x79,0x79,0x7B,0x7E,0x7C,0x77, - 0x7B,0x84,0x88,0x86,0x80,0x84,0x88,0x84,0x84,0x7C,0x7C,0x7E,0x7B,0x75,0x75,0x79, - 0x81,0x94,0x8C,0x84,0x88,0x81,0x87,0x87,0x71,0x74,0x7B,0x78,0x7F,0x79,0x79,0x86, - 0x85,0x85,0x82,0x80,0x87,0x84,0x84,0x82,0x81,0x82,0x7C,0x7E,0x7F,0x79,0x7B,0x8F, - 0x8B,0x7C,0x87,0x85,0x83,0x87,0x77,0x73,0x7B,0x75,0x7B,0x77,0x70,0x7D,0x82,0x7C, - 0x7F,0x81,0x81,0x85,0x80,0x7D,0x7D,0x7F,0x7F,0x7E,0x83,0x7C,0x73,0x85,0x8C,0x82, - 0x8B,0x8D,0x84,0x8A,0x82,0x78,0x7D,0x78,0x78,0x7E,0x72,0x76,0x81,0x7E,0x82,0x81, - 0x7F,0x83,0x81,0x7B,0x7F,0x7D,0x7A,0x7A,0x75,0x7A,0x72,0x75,0x8C,0x8A,0x86,0x89, - 0x7F,0x8A,0x88,0x74,0x7E,0x7B,0x73,0x7B,0x77,0x73,0x82,0x81,0x7E,0x87,0x7F,0x86, - 0x84,0x80,0x84,0x7F,0x7F,0x7D,0x73,0x7C,0x79,0x72,0x86,0x8A,0x84,0x87,0x83,0x81, - 0x8A,0x7F,0x7C,0x84,0x78,0x7C,0x78,0x75,0x7B,0x7D,0x80,0x83,0x81,0x84,0x8B,0x81, - 0x80,0x80,0x81,0x7F,0x7A,0x7A,0x7D,0x7B,0x7E,0x8A,0x82,0x86,0x88,0x82,0x8A,0x88, - 0x7D,0x7E,0x7C,0x75,0x78,0x73,0x73,0x7E,0x79,0x7F,0x83,0x7C,0x87,0x86,0x80,0x88, - 0x85,0x81,0x80,0x7C,0x7E,0x7B,0x7A,0x8A,0x86,0x80,0x8B,0x82,0x85,0x8C,0x7C,0x7F, - 0x86,0x7A,0x7D,0x7A,0x73,0x7D,0x78,0x7C,0x7D,0x78,0x82,0x83,0x80,0x86,0x86,0x84, - 0x87,0x80,0x81,0x80,0x79,0x84,0x84,0x7E,0x86,0x83,0x83,0x85,0x7D,0x82,0x86,0x7C, - 0x7E,0x80,0x74,0x7C,0x7C,0x72,0x7F,0x7C,0x7C,0x86,0x7E,0x81,0x85,0x7F,0x82,0x7C, - 0x7A,0x81,0x7C,0x80,0x87,0x81,0x85,0x85,0x7D,0x86,0x81,0x7A,0x85,0x80,0x7A,0x80, - 0x7C,0x7E,0x7F,0x78,0x7F,0x7F,0x7B,0x86,0x84,0x83,0x89,0x85,0x85,0x84,0x7F,0x7D, - 0x7B,0x80,0x86,0x7E,0x80,0x84,0x7F,0x89,0x84,0x81,0x87,0x7F,0x80,0x82,0x79,0x7D, - 0x83,0x7B,0x7C,0x82,0x81,0x81,0x83,0x87,0x86,0x85,0x86,0x84,0x7F,0x81,0x7F,0x80, - 0x89,0x7F,0x7F,0x86,0x85,0x85,0x81,0x81,0x82,0x7F,0x7F,0x7E,0x7A,0x7F,0x81,0x7A, - 0x7D,0x7E,0x7C,0x81,0x80,0x81,0x88,0x84,0x83,0x83,0x82,0x81,0x7E,0x84,0x87,0x7E, - 0x83,0x85,0x83,0x86,0x80,0x7F,0x84,0x83,0x80,0x80,0x7C,0x80,0x7F,0x7A,0x7E,0x7C, - 0x7F,0x80,0x82,0x86,0x85,0x83,0x84,0x81,0x7F,0x81,0x7D,0x84,0x84,0x7E,0x84,0x84, - 0x83,0x84,0x80,0x81,0x82,0x7F,0x80,0x7C,0x7B,0x80,0x7D,0x7C,0x7E,0x7D,0x7E,0x7F, - 0x7F,0x86,0x85,0x80,0x83,0x84,0x81,0x7F,0x7F,0x85,0x7F,0x7F,0x83,0x81,0x83,0x81, - 0x7F,0x7F,0x80,0x80,0x7C,0x7C,0x7F,0x7E,0x7B,0x7B,0x7C,0x80,0x7F,0x7D,0x83,0x85, - 0x83,0x82,0x83,0x83,0x82,0x80,0x85,0x84,0x7D,0x80,0x83,0x82,0x85,0x7F,0x83,0x84, - 0x7B,0x80,0x7D,0x7A,0x7C,0x7B,0x7C,0x7D,0x7F,0x7F,0x82,0x81,0x84,0x84,0x84,0x84, - 0x7F,0x81,0x82,0x82,0x82,0x81,0x83,0x81,0x82,0x83,0x83,0x88,0x8B,0x92,0x8B,0x8A, - 0x88,0x7C,0x7F,0x73,0x70,0x77,0x75,0x79,0x74,0x83,0x7D,0x6D,0x89,0x81,0x6A,0x7C, - 0x81,0x80,0x72,0x70,0x89,0x81,0x80,0x7F,0x74,0x83,0x83,0x81,0x81,0x76,0x7F,0x88, - 0x7F,0x78,0x78,0x82,0x89,0x83,0x83,0x87,0x87,0x90,0x91,0x86,0x80,0x8A,0x9C,0x92, - 0x8A,0x93,0x88,0x85,0x97,0x96,0x94,0x9C,0xA0,0x98,0x91,0x94,0x94,0x84,0x78,0x80, - 0x88,0x8D,0x8C,0x85,0x82,0x81,0x7E,0x77,0x6E,0x69,0x6F,0x79,0x74,0x6A,0x68,0x62, - 0x64,0x63,0x5D,0x5F,0x60,0x62,0x65,0x5F,0x5A,0x60,0x5E,0x63,0x64,0x5C,0x60,0x66, - 0x6D,0x73,0x6A,0x68,0x6F,0x77,0x78,0x75,0x7E,0x7B,0x76,0x77,0x78,0x7D,0x80,0x7D, - 0x82,0x88,0x87,0x8A,0x8D,0x99,0xAD,0xAA,0x9F,0xA0,0x9E,0x9D,0x9D,0x9C,0x9E,0x97, - 0x8C,0x8A,0x86,0x7E,0x7F,0x99,0x95,0x89,0x93,0x90,0x8F,0x82,0x75,0x84,0x85,0x79, - 0x82,0x89,0x8F,0x95,0x86,0x8E,0x96,0x8C,0x85,0x85,0x8D,0x8B,0x83,0x82,0x88,0x7E, - 0x7C,0x9D,0xA1,0x94,0x9C,0x95,0x90,0x85,0x71,0x81,0x89,0x83,0x8F,0x96,0x98,0x96, - 0x86,0x86,0x92,0x88,0x86,0x89,0x93,0x98,0x8A,0x86,0x83,0x7B,0x72,0x82,0x90,0x81, - 0x7E,0x7D,0x71,0x67,0x53,0x57,0x64,0x5B,0x5A,0x5D,0x5F,0x5D,0x4B,0x42,0x4E,0x48, - 0x44,0x4E,0x59,0x59,0x51,0x4C,0x45,0x4F,0x49,0x55,0x6F,0x67,0x66,0x67,0x61,0x5E, - 0x55,0x58,0x6F,0x71,0x6F,0x79,0x7D,0x7B,0x71,0x6E,0x77,0x79,0x78,0x82,0x8F,0x90, - 0x8B,0x8C,0x95,0xA0,0x9A,0xAA,0xC7,0xB3,0xAB,0xAE,0x9D,0x91,0x83,0x86,0x9A,0x96, - 0x91,0x9C,0x96,0x89,0x7A,0x7C,0x88,0x89,0x88,0x94,0x9C,0x94,0x89,0x87,0x8A,0x8E, - 0x8A,0x8E,0xAE,0xA7,0x95,0x9C,0x95,0x89,0x81,0x84,0x95,0x98,0x8F,0x9B,0x9F,0x93, - 0x8D,0x8A,0x92,0x96,0x90,0x98,0xA3,0x99,0x92,0x8F,0x93,0x91,0x86,0xA2,0xB2,0x9C, - 0x9E,0xA0,0x90,0x88,0x81,0x8C,0x9B,0x8C,0x89,0x95,0x88,0x78,0x75,0x74,0x77,0x72, - 0x70,0x7A,0x72,0x5F,0x5A,0x5A,0x55,0x59,0x51,0x5C,0x73,0x58,0x4E,0x59,0x4F,0x44, - 0x44,0x4D,0x5D,0x58,0x4F,0x5D,0x5A,0x4F,0x54,0x58,0x60,0x63,0x61,0x6F,0x6F,0x65, - 0x68,0x6B,0x6D,0x66,0x74,0x8D,0x7C,0x6F,0x7D,0x77,0x6E,0x71,0x7F,0x94,0x96,0x92, - 0xA3,0xAA,0x9B,0x9A,0x9F,0xA2,0x9F,0x9C,0xA3,0x9E,0x8E,0x8C,0x8F,0x88,0x8C,0x8C, - 0x8C,0xA3,0x98,0x81,0x93,0x8D,0x7F,0x84,0x8A,0x96,0x96,0x8C,0x94,0x98,0x87,0x89, - 0x8F,0x91,0x95,0x95,0x9B,0x99,0x8E,0x91,0x8F,0x8D,0x8E,0x8F,0xAB,0xA8,0x90,0xA0, - 0x9C,0x87,0x88,0x92,0x9D,0x9E,0x94,0x9E,0xA2,0x90,0x8E,0x97,0x95,0x92,0x93,0x95, - 0x96,0x89,0x82,0x89,0x84,0x7D,0x82,0x7D,0x88,0x8F,0x71,0x75,0x7A,0x61,0x5E,0x60, - 0x63,0x68,0x5E,0x5E,0x66,0x51,0x49,0x50,0x4C,0x4F,0x52,0x55,0x57,0x50,0x4D,0x4D, - 0x49,0x4C,0x4B,0x62,0x70,0x58,0x62,0x6C,0x59,0x52,0x5D,0x6A,0x6E,0x6B,0x73,0x7E, - 0x71,0x67,0x70,0x73,0x71,0x77,0x7F,0x86,0x80,0x80,0x8A,0x89,0x8E,0x99,0x93,0xA6, - 0xBB,0xA1,0xA0,0xAD,0x94,0x8A,0x91,0x93,0x98,0x94,0x93,0x9E,0x8C,0x80,0x8A,0x85, - 0x82,0x8A,0x8D,0x90,0x8C,0x86,0x89,0x82,0x86,0x85,0x86,0xA3,0x96,0x87,0x9F,0x95, - 0x80,0x85,0x8B,0x91,0x91,0x8D,0x9D,0x9E,0x8A,0x90,0x98,0x8D,0x90,0x96,0x9A,0x9E, - 0x99,0x96,0x97,0x8E,0x8F,0x94,0x89,0xA2,0xAA,0x8F,0x9B,0x9E,0x83,0x80,0x85,0x88, - 0x8C,0x84,0x89,0x8E,0x7A,0x74,0x7B,0x72,0x70,0x75,0x74,0x75,0x6D,0x67,0x66,0x5A, - 0x59,0x58,0x55,0x6E,0x65,0x54,0x69,0x60,0x4B,0x50,0x53,0x56,0x5A,0x56,0x64,0x67, - 0x56,0x5C,0x61,0x58,0x5B,0x66,0x6A,0x6D,0x70,0x71,0x6E,0x6B,0x6D,0x6E,0x66,0x79, - 0x8A,0x73,0x7B,0x88,0x77,0x74,0x7C,0x85,0x8C,0x8C,0x96,0xA5,0x99,0x92,0x9C,0x96, - 0x8F,0x95,0x98,0x98,0x94,0x93,0x94,0x89,0x86,0x89,0x7E,0x8B,0x9D,0x86,0x89,0x97, - 0x82,0x7A,0x81,0x84,0x87,0x88,0x89,0x95,0x8D,0x84,0x8C,0x89,0x85,0x89,0x90,0x93, - 0x8E,0x91,0x92,0x8C,0x8A,0x90,0x8B,0x88,0xA4,0xA2,0x8E,0xA2,0x9D,0x89,0x8D,0x92, - 0x94,0x93,0x91,0x99,0x9A,0x8A,0x8B,0x91,0x87,0x85,0x8C,0x8D,0x88,0x85,0x86,0x81, - 0x79,0x7B,0x79,0x6F,0x82,0x86,0x6F,0x79,0x7A,0x62,0x60,0x66,0x63,0x64,0x63,0x66, - 0x6B,0x5D,0x5A,0x63,0x5A,0x58,0x5F,0x61,0x61,0x61,0x60,0x5E,0x5C,0x5A,0x61,0x5A, - 0x60,0x7B,0x6C,0x67,0x7D,0x6D,0x62,0x6B,0x6C,0x6F,0x70,0x71,0x7B,0x7A,0x70,0x79, - 0x7C,0x77,0x7F,0x86,0x8A,0x8D,0x8E,0x92,0x93,0x8F,0x95,0x93,0x8C,0xA5,0xA5,0x8F, - 0x9D,0x9E,0x86,0x86,0x8A,0x87,0x8A,0x88,0x8C,0x8F,0x81,0x81,0x89,0x81,0x7F,0x87, - 0x89,0x8B,0x8B,0x8A,0x8A,0x86,0x84,0x8A,0x80,0x8A,0xA3,0x90,0x8C,0xA0,0x90,0x82, - 0x8B,0x8D,0x90,0x91,0x90,0x9B,0x96,0x89,0x93,0x96,0x8B,0x92,0x99,0x97,0x96,0x94, - 0x94,0x93,0x8A,0x8E,0x8C,0x84,0x9C,0x9B,0x84,0x92,0x94,0x7B,0x7B,0x80,0x7D,0x80, - 0x7A,0x7D,0x83,0x70,0x6C,0x76,0x6B,0x65,0x6C,0x6B,0x6B,0x6A,0x66,0x65,0x5F,0x5C, - 0x60,0x57,0x64,0x7A,0x60,0x66,0x81,0x5C,0x5B,0x55,0x46,0x65,0x5E,0x4C,0x5E,0x6A, - 0x62,0x72,0x79,0x73,0x74,0x79,0x8E,0x93,0x8B,0x8C,0x99,0x8D,0x7F,0x7A,0x6C,0x90, - 0x91,0x64,0x77,0x83,0x68,0x5E,0x64,0x64,0x6E,0x76,0x85,0x8A,0x6C,0x78,0x89,0x7E, - 0x84,0x92,0xA1,0xB0,0xA3,0x97,0xAB,0xA9,0xBC,0xAF,0x93,0xD5,0xBF,0xA4,0xBA,0xAC, - 0xAA,0x9E,0x95,0x92,0x8D,0x93,0x93,0x83,0x7F,0x6E,0x6D,0x82,0x74,0x85,0x90,0x7D, - 0x84,0x7A,0x78,0x84,0x60,0x52,0x60,0x6D,0x83,0x76,0x70,0x78,0x66,0x64,0x72,0x75, - 0x90,0x91,0x92,0xAC,0xA3,0x91,0x96,0x98,0x94,0xA1,0xB2,0xBE,0xBE,0xA5,0x9D,0xAA, - 0x9B,0x98,0x8D,0x8C,0xA0,0x8C,0x86,0x87,0x7C,0x6C,0x61,0x66,0x69,0x70,0x65,0x56, - 0x4C,0x2B,0x25,0x33,0x33,0x30,0x34,0x3E,0x34,0x35,0x40,0x53,0x56,0x4D,0x57,0x65, - 0x74,0x7E,0x7A,0x79,0x7B,0x6F,0x7D,0x8A,0x8D,0x99,0x97,0x9E,0xBA,0xC4,0xCB,0xD5, - 0xC7,0xC6,0xC6,0xB4,0xB9,0xA5,0x8A,0x99,0x8C,0x8A,0x8A,0x7F,0x8C,0x74,0x5C,0x6F, - 0x77,0x65,0x5D,0x53,0x5A,0x68,0x53,0x57,0x65,0x65,0x68,0x62,0x6A,0x69,0x6C,0x7D, - 0x81,0x7F,0x7C,0x87,0x98,0x95,0x97,0x9B,0x92,0x9F,0x9E,0x9D,0xAA,0xA3,0xA4,0xA2, - 0xAA,0xAF,0xAA,0xB4,0xB0,0xAB,0xB3,0xAB,0xB3,0xB7,0xA6,0xA5,0xA8,0xA3,0x9C,0x91, - 0x87,0x79,0x65,0x66,0x82,0x7B,0x63,0x73,0x75,0x6D,0x62,0x48,0x43,0x4D,0x52,0x60, - 0x61,0x50,0x4E,0x53,0x53,0x55,0x5C,0x5D,0x5E,0x5C,0x5A,0x5B,0x64,0x75,0x68,0x78, - 0x9D,0x98,0x8D,0x7B,0x6D,0x7F,0x84,0x88,0x9A,0x96,0x9D,0x9C,0x82,0x7B,0x7F,0x7E, - 0x8A,0xA1,0x96,0x89,0x91,0x90,0x98,0x95,0x8F,0x9A,0x95,0x9E,0xA1,0x86,0x77,0x6A, - 0x64,0x75,0x84,0x85,0x7C,0x69,0x63,0x69,0x72,0x6C,0x65,0x65,0x74,0x7A,0x62,0x5D, - 0x49,0x52,0x5C,0x54,0x5F,0x57,0x5E,0x6A,0x6C,0x65,0x5F,0x67,0x6C,0x6D,0x7C,0x7E, - 0x74,0x84,0x80,0x84,0x96,0x94,0xA1,0xA5,0xB3,0xBC,0xBA,0xB6,0xBD,0xC4,0xC3,0xCB, - 0xC2,0xC3,0xD3,0xD7,0xCA,0xCE,0xC6,0xB7,0xBA,0xB2,0xAE,0xAB,0xA2,0x9D,0x95,0x8E, - 0x8A,0x8D,0x85,0x85,0x86,0x78,0x6E,0x68,0x6C,0x61,0x57,0x51,0x4C,0x5F,0x65,0x55, - 0x4D,0x4E,0x48,0x46,0x46,0x3A,0x39,0x42,0x48,0x48,0x52,0x51,0x45,0x45,0x46,0x54, - 0x5F,0x52,0x4D,0x56,0x60,0x62,0x5F,0x63,0x63,0x72,0x82,0x75,0x7D,0x82,0x81,0x85, - 0x7A,0x7E,0x8A,0x93,0x9A,0x93,0x8F,0x91,0x91,0x98,0x94,0xA6,0xBB,0xAF,0xA8,0xB2, - 0xB7,0xAB,0xA0,0x8F,0x9D,0xC3,0xBB,0xB0,0xA3,0x98,0xA6,0xAA,0xA7,0x98,0x93,0x9F, - 0xA0,0x9A,0x91,0x92,0x98,0x8F,0x8E,0x85,0x81,0x78,0x61,0x63,0x5E,0x5D,0x61,0x5C, - 0x70,0x85,0x7C,0x69,0x64,0x5F,0x66,0x69,0x62,0x63,0x66,0x6F,0x68,0x62,0x62,0x61, - 0x6A,0x6D,0x73,0x7A,0x78,0x7D,0x7A,0x7A,0x86,0x84,0x7F,0x8C,0xA1,0xAB,0x9D,0x8E, - 0x82,0x83,0x92,0x92,0x95,0x9F,0x9B,0x9F,0x9A,0x90,0x94,0x8C,0x92,0x91,0x85,0x8D, - 0x84,0x84,0x91,0x82,0x7D,0x7E,0x77,0x91,0xA4,0x8A,0x77,0x74,0x6D,0x82,0x8D,0x74, - 0x72,0x78,0x7D,0x89,0x7B,0x72,0x6D,0x63,0x6E,0x6E,0x67,0x6E,0x6A,0x68,0x68,0x6A, - 0x68,0x67,0x70,0x7C,0x86,0x7E,0x73,0x74,0x7C,0x7E,0x78,0x73,0x73,0x7F,0x98,0x94, - 0x81,0x72,0x6C,0x7D,0x7C,0x76,0x65,0x56,0x5B,0x62,0x6D,0x68,0x61,0x67,0x71,0x7F, - 0x87,0x79,0x6D,0x6B,0x75,0x84,0x7E,0x7F,0x89,0x90,0x92,0x95,0x96,0x93,0x99,0x9F, - 0xA0,0x97,0x95,0x98,0x98,0x9D,0xA0,0x97,0x8E,0xA1,0xAE,0xB7,0xB7,0xA8,0xA7,0xA8, - 0xAB,0xAE,0xA2,0x9B,0xA3,0xA8,0xAB,0xA2,0x8E,0x87,0x92,0xA2,0xA8,0x9D,0x9A,0x93, - 0x8B,0x8E,0x8E,0x7A,0x70,0x7D,0x8B,0x90,0x83,0x6E,0x62,0x65,0x6C,0x69,0x62,0x68, - 0x70,0x70,0x6E,0x5C,0x50,0x51,0x4B,0x4D,0x48,0x47,0x4A,0x4C,0x51,0x4C,0x46,0x41, - 0x46,0x53,0x62,0x6C,0x58,0x48,0x49,0x4E,0x5F,0x67,0x67,0x6D,0x6E,0x77,0x81,0x78, - 0x70,0x70,0x70,0x75,0x7C,0x81,0x7A,0x7A,0x82,0x84,0x87,0x88,0x89,0x8E,0x90,0x8D, - 0x8D,0x86,0x87,0x8F,0x8A,0x8E,0x96,0x93,0x97,0x9D,0x99,0x98,0x93,0x94,0x95,0x89, - 0x85,0x8A,0x8B,0x94,0x9A,0x95,0x97,0x93,0x97,0xA8,0xB1,0xB7,0xB1,0xAB,0xA2,0xA1, - 0x9F,0x98,0xA4,0xAA,0xA3,0xA5,0xA4,0xA5,0xA6,0x9D,0x93,0x88,0x82,0x85,0x84,0x85, - 0x86,0x81,0x83,0x84,0x80,0x85,0x8D,0x8D,0x8B,0x81,0x76,0x76,0x76,0x6C,0x6B,0x72, - 0x6A,0x65,0x61,0x65,0x6F,0x6D,0x66,0x5B,0x5A,0x58,0x5D,0x5C,0x4E,0x53,0x56,0x56, - 0x5D,0x5A,0x5A,0x61,0x60,0x6B,0x6C,0x63,0x64,0x5F,0x5E,0x62,0x62,0x59,0x52,0x55, - 0x60,0x65,0x61,0x65,0x62,0x6A,0x76,0x74,0x6D,0x6D,0x75,0x78,0x82,0x84,0x8A,0x92, - 0x92,0x9B,0x91,0x88,0x8D,0x90,0x95,0x94,0x95,0x90,0x86,0x8C,0x96,0x9C,0x9C,0x93, - 0x8E,0x96,0x9D,0x98,0x92,0x94,0x93,0x9D,0xA1,0x97,0x95,0x9A,0xA2,0xA3,0x9E,0x96, - 0x96,0x9A,0x9C,0x9F,0x94,0x92,0x94,0x93,0x93,0x94,0x95,0x8D,0x8E,0x8F,0x98,0x99, - 0x93,0x98,0x92,0x93,0x9B,0x95,0x91,0x94,0x95,0x92,0x8D,0x8D,0x8A,0x8A,0x8D,0x89, - 0x87,0x85,0x84,0x7E,0x71,0x74,0x72,0x6D,0x6F,0x6E,0x6F,0x67,0x6D,0x70,0x66,0x70, - 0x6F,0x69,0x69,0x63,0x63,0x5D,0x61,0x5E,0x59,0x60,0x60,0x63,0x61,0x62,0x63,0x5F, - 0x62,0x5C,0x61,0x68,0x66,0x66,0x63,0x5F,0x68,0x6E,0x6C,0x6E,0x69,0x6B,0x72,0x76, - 0x77,0x6E,0x6B,0x76,0x78,0x77,0x77,0x71,0x72,0x79,0x7F,0x85,0x85,0x84,0x8A,0x8E, - 0x8F,0x8C,0x8D,0x8F,0x8C,0x92,0x96,0x93,0x91,0x8F,0x94,0x96,0x94,0x96,0x94,0x8E, - 0x97,0x9F,0x99,0x95,0x95,0x97,0x99,0xA1,0x9E,0x95,0x94,0x9A,0x9E,0x9C,0x99,0x97, - 0x96,0x95,0x9B,0x9B,0x95,0x95,0x91,0x93,0x99,0x96,0x95,0x97,0x94,0x99,0x98,0x98, - 0x97,0x97,0x9E,0x9D,0x9D,0x99,0x94,0x95,0x94,0x90,0x8C,0x88,0x84,0x86,0x87,0x84, - 0x84,0x80,0x80,0x85,0x81,0x81,0x7F,0x7B,0x7B,0x72,0x72,0x72,0x70,0x72,0x75,0x77, - 0x74,0x75,0x70,0x6D,0x73,0x6D,0x69,0x68,0x64,0x64,0x60,0x59,0x59,0x5F,0x64,0x60, - 0x5E,0x61,0x64,0x65,0x61,0x5F,0x5C,0x60,0x69,0x68,0x6E,0x6B,0x60,0x67,0x67,0x68, - 0x70,0x69,0x63,0x68,0x6A,0x6D,0x6B,0x65,0x66,0x69,0x70,0x75,0x6D,0x6A,0x6C,0x70, - 0x76,0x76,0x74,0x79,0x7E,0x83,0x83,0x7F,0x82,0x85,0x8D,0x95,0x91,0x91,0x92,0x8C, - 0x94,0x95,0x8D,0x8D,0x8B,0x88,0x8E,0x8E,0x86,0x86,0x88,0x8D,0x95,0x92,0x91,0x94, - 0x94,0x9A,0x9C,0x9B,0x99,0x94,0x9A,0x9E,0x9B,0x9A,0x93,0x90,0x92,0x97,0x9A,0x96, - 0x94,0x92,0x91,0x96,0x91,0x8B,0x8A,0x8A,0x92,0x8E,0x8A,0x88,0x87,0x90,0x8E,0x8C, - 0x91,0x90,0x94,0x8E,0x89,0x8E,0x8E,0x8B,0x8B,0x89,0x8A,0x89,0x80,0x7F,0x83,0x7E, - 0x7A,0x7A,0x77,0x76,0x74,0x6E,0x71,0x74,0x70,0x73,0x75,0x75,0x7B,0x7A,0x7A,0x7F, - 0x7D,0x7C,0x7E,0x7B,0x78,0x79,0x77,0x76,0x78,0x78,0x7A,0x78,0x74,0x7A,0x79,0x75, - 0x77,0x6F,0x70,0x75,0x75,0x76,0x71,0x6E,0x73,0x75,0x75,0x76,0x72,0x75,0x7C,0x7E, - 0x7B,0x79,0x74,0x76,0x7A,0x77,0x75,0x76,0x76,0x78,0x76,0x74,0x73,0x6F,0x6F,0x74, - 0x74,0x74,0x72,0x6F,0x74,0x79,0x79,0x77,0x75,0x74,0x7B,0x81,0x7E,0x7D,0x79,0x7A, - 0x80,0x78,0x7B,0x83,0x7A,0x7B,0x7F,0x76,0x81,0x81,0x74,0x81,0x82,0x80,0x89,0x75, - 0x74,0x85,0x7B,0x80,0x80,0x76,0x86,0x89,0x87,0x89,0x81,0x89,0x87,0x82,0x86,0x82, - 0x7D,0x80,0x93,0x8E,0x84,0x91,0x86,0x8A,0x8D,0x73,0x7D,0x80,0x7C,0x86,0x7B,0x7B, - 0x86,0x89,0x89,0x86,0x87,0x86,0x87,0x83,0x80,0x85,0x80,0x7F,0x83,0x83,0x84,0x75, - 0x7F,0x99,0x8C,0x8C,0x8C,0x83,0x90,0x84,0x75,0x7C,0x7C,0x7D,0x7D,0x7E,0x84,0x8D, - 0x8C,0x81,0x85,0x89,0x87,0x85,0x78,0x7C,0x88,0x84,0x82,0x81,0x7E,0x77,0x7C,0x93, - 0x8C,0x81,0x88,0x83,0x86,0x83,0x6F,0x74,0x7B,0x79,0x80,0x83,0x84,0x8E,0x90,0x86, - 0x88,0x88,0x84,0x81,0x7B,0x80,0x88,0x82,0x80,0x84,0x80,0x73,0x78,0x93,0x8F,0x87, - 0x8B,0x84,0x88,0x81,0x6C,0x74,0x7D,0x79,0x79,0x78,0x7D,0x8A,0x87,0x7A,0x7E,0x82, - 0x81,0x7E,0x78,0x7A,0x81,0x7E,0x7D,0x7C,0x7B,0x74,0x71,0x8D,0x93,0x83,0x87,0x83, - 0x85,0x86,0x71,0x71,0x7D,0x7C,0x79,0x78,0x7B,0x89,0x8A,0x7D,0x83,0x89,0x83,0x7B, - 0x75,0x7C,0x82,0x79,0x78,0x7F,0x7F,0x74,0x78,0x94,0x8D,0x82,0x8C,0x86,0x8C,0x80, - 0x6A,0x79,0x7F,0x75,0x75,0x76,0x7D,0x8C,0x85,0x7D,0x89,0x8B,0x83,0x7B,0x76,0x80, - 0x80,0x76,0x7B,0x80,0x7C,0x6E,0x7C,0x99,0x8B,0x85,0x89,0x84,0x8D,0x7B,0x6E,0x7F, - 0x7B,0x77,0x75,0x77,0x86,0x8A,0x7D,0x7D,0x8A,0x86,0x80,0x7A,0x77,0x81,0x7A,0x74, - 0x7D,0x7D,0x79,0x70,0x83,0x94,0x83,0x86,0x87,0x89,0x91,0x72,0x71,0x85,0x79,0x78, - 0x77,0x79,0x89,0x87,0x7B,0x82,0x89,0x84,0x7F,0x7C,0x82,0x86,0x77,0x77,0x82,0x80, - 0x7C,0x77,0x8B,0x92,0x80,0x8A,0x88,0x8A,0x8C,0x74,0x7E,0x88,0x7D,0x7D,0x79,0x7D, - 0x88,0x80,0x7B,0x84,0x88,0x87,0x85,0x7F,0x86,0x84,0x76,0x80,0x84,0x81,0x80,0x7C, - 0x91,0x8B,0x7D,0x89,0x85,0x8A,0x8A,0x79,0x83,0x87,0x7F,0x80,0x7C,0x7D,0x84,0x7B, - 0x7A,0x83,0x82,0x83,0x82,0x7E,0x82,0x7F,0x7D,0x82,0x7F,0x80,0x80,0x82,0x89,0x81, - 0x81,0x84,0x80,0x86,0x84,0x80,0x87,0x83,0x7E,0x80,0x7E,0x81,0x81,0x7D,0x7E,0x7F, - 0x80,0x80,0x7E,0x7F,0x7F,0x7E,0x80,0x81,0x82,0x82,0x81,0x80,0x82,0x81,0x80,0x81, - 0x81,0x84,0x83,0x80,0x82,0x80,0x7F,0x7F,0x7D,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E, - 0x7D,0x7C,0x7F,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x80,0x81,0x81,0x83,0x81, - 0x81,0x81,0x7F,0x81,0x82,0x80,0x81,0x81,0x80,0x81,0x7F,0x7E,0x7F,0x7F,0x7F,0x80, - 0x7E,0x7F,0x80,0x7F,0x7E,0x7E,0x7F,0x80,0x80,0x81,0x81,0x80,0x80,0x7F,0x7E,0x7F, - 0x7F,0x7E,0x7F,0x80,0x80,0x7E,0x7E,0x7E,0x7E,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7C,0x7D,0x7C,0x7F,0x81,0x82,0x82,0x82,0x81,0x84,0x84,0x84,0x82,0x80,0x82,0x82, - 0x83,0x82,0x81,0x81,0x81,0x81,0x80,0x7E,0x7E,0x7E,0x7E,0x7E,0x7D,0x7A,0x7A,0x7B, - 0x7C,0x7C,0x7B,0x7D,0x7F,0x7D,0x7F,0x7D,0x7E,0x7E,0x7D,0x80,0x7F,0x80,0x80,0x7F, - 0x7F,0x80,0x80,0x81,0x81,0x7F,0x80,0x80,0x7E,0x7D,0x7D,0x7E,0x7E,0x7E,0x7D,0x7E, - 0x7E,0x7E,0x7E,0x7F,0x7E,0x7D,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x80,0x81,0x81, - 0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x80,0x81,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7E, - 0x7D,0x7E,0x7F,0x7E,0x7F,0x80,0x7F,0x80,0x81,0x80,0x81,0x81,0x7F,0x80,0x80,0x80, - 0x80,0x80,0x7F,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F, - 0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x81,0x80,0x7F,0x7F,0x80,0x80,0x7F, - 0x7F,0x80,0x81,0x83,0x84,0x8C,0x8C,0x92,0x92,0x84,0x7E,0x7A,0x7D,0x7B,0x7A,0x75, - 0x7B,0x66,0x73,0x8F,0x73,0x79,0x7E,0x7C,0x6F,0x72,0x80,0x74,0x7E,0x7D,0x79,0x7B, - 0x7A,0x82,0x77,0x78,0x7B,0x75,0x72,0x77,0x81,0x79,0x85,0x80,0x74,0x82,0x81,0x7A, - 0x82,0x92,0x89,0x8A,0x8E,0x81,0x99,0xA5,0x9A,0xA6,0xA4,0x96,0x9D,0xA8,0x95,0x84, - 0x90,0x97,0x9B,0x98,0x87,0x85,0x80,0x7E,0x7C,0x73,0x78,0x81,0x7C,0x76,0x77,0x76, - 0x78,0x73,0x71,0x74,0x67,0x65,0x66,0x63,0x6D,0x7A,0x79,0x76,0x7A,0x73,0x6D,0x70, - 0x69,0x6C,0x70,0x66,0x66,0x65,0x65,0x72,0x6C,0x68,0x6E,0x64,0x6E,0x77,0x76,0x85, - 0x93,0xA8,0xB3,0xA3,0x9D,0x99,0x87,0x92,0x8D,0x8B,0x9E,0x86,0x89,0x98,0x8B,0x89, - 0x71,0x74,0x8A,0x6A,0x6D,0x80,0x78,0x82,0x7F,0x86,0x97,0x88,0x83,0x90,0x8B,0x83, - 0x7D,0x7B,0x7F,0x7A,0x71,0x7B,0x98,0x8C,0x89,0xA0,0x99,0x89,0x7C,0x7E,0x85,0x79, - 0x79,0x88,0x92,0x8C,0x84,0x95,0xA2,0x95,0x90,0x96,0x91,0x8B,0x8F,0x95,0x8F,0x8D, - 0x8D,0x91,0xA5,0x8E,0x87,0x95,0x87,0x7A,0x70,0x76,0x7D,0x70,0x6F,0x7C,0x7B,0x75, - 0x72,0x7D,0x79,0x62,0x67,0x6C,0x5E,0x5E,0x68,0x6D,0x67,0x63,0x62,0x69,0x76,0x63, - 0x63,0x72,0x5E,0x56,0x56,0x5E,0x66,0x54,0x62,0x6F,0x61,0x69,0x71,0x7B,0x80,0x78, - 0x8D,0x9C,0x9A,0x9E,0x9B,0x9A,0x90,0x8D,0x8F,0x88,0x95,0x91,0x89,0x92,0x84,0x77, - 0x7B,0x77,0x81,0x82,0x7B,0x91,0x89,0x83,0x91,0x8B,0x86,0x83,0x84,0x84,0x83,0x8D, - 0x8C,0x88,0x85,0x86,0x7B,0x87,0xA2,0x8B,0x92,0xA4,0x8F,0x88,0x80,0x82,0x8F,0x80, - 0x89,0xA0,0x99,0x9A,0xA6,0xA4,0x9E,0x92,0x93,0x94,0x90,0x98,0x98,0x97,0x91,0x8E, - 0x96,0x86,0x96,0xA4,0x85,0x8D,0x8C,0x79,0x7A,0x72,0x7A,0x83,0x78,0x80,0x85,0x77, - 0x77,0x73,0x66,0x68,0x61,0x62,0x68,0x66,0x6E,0x68,0x58,0x5A,0x58,0x4A,0x6A,0x6F, - 0x53,0x69,0x64,0x4E,0x50,0x4D,0x5B,0x57,0x52,0x67,0x67,0x64,0x73,0x7A,0x78,0x7C, - 0x87,0x95,0x99,0x9C,0xA3,0x98,0x8B,0x87,0x87,0x7F,0x85,0xA2,0x8A,0x85,0x99,0x81, - 0x76,0x77,0x78,0x82,0x7B,0x80,0x90,0x86,0x84,0x8A,0x81,0x80,0x80,0x7E,0x84,0x85, - 0x87,0x8F,0x86,0x82,0x89,0x7F,0x93,0xA2,0x8B,0x9A,0x9F,0x86,0x8C,0x88,0x8A,0x93, - 0x8B,0x9E,0xA8,0x9D,0xA3,0xA6,0x99,0x93,0x90,0x8F,0x92,0x95,0x9D,0x9E,0x92,0x90, - 0x95,0x84,0x8D,0x9D,0x88,0x8C,0x92,0x80,0x77,0x75,0x78,0x75,0x6D,0x78,0x82,0x6F, - 0x6E,0x78,0x64,0x63,0x63,0x62,0x60,0x59,0x63,0x63,0x59,0x58,0x58,0x4E,0x67,0x67, - 0x53,0x6F,0x64,0x4E,0x57,0x4E,0x4D,0x55,0x51,0x65,0x66,0x5F,0x72,0x76,0x75,0x81, - 0x8B,0x8E,0x94,0x9C,0xA0,0x95,0x8C,0x90,0x88,0x7B,0x98,0x9A,0x81,0x9E,0x94,0x79, - 0x81,0x7B,0x7B,0x78,0x78,0x88,0x86,0x80,0x8A,0x85,0x7D,0x7F,0x84,0x83,0x80,0x8A, - 0x8B,0x87,0x7F,0x89,0x83,0x81,0xA6,0x92,0x90,0xA7,0x90,0x89,0x90,0x8C,0x90,0x90, - 0x98,0xA7,0x9D,0xA0,0xAB,0x9C,0x96,0x9F,0x99,0x97,0x9A,0x9E,0x9E,0x98,0x93,0x95, - 0x87,0x8E,0xA5,0x86,0x92,0xA0,0x7F,0x80,0x81,0x76,0x74,0x70,0x78,0x7B,0x68,0x6F, - 0x73,0x60,0x61,0x65,0x5C,0x58,0x60,0x5F,0x5E,0x56,0x57,0x58,0x4C,0x69,0x69,0x53, - 0x71,0x6C,0x4F,0x59,0x58,0x4D,0x50,0x55,0x61,0x62,0x60,0x70,0x75,0x67,0x7A,0x84, - 0x80,0x8F,0x96,0x99,0x95,0x90,0x93,0x8A,0x85,0xA3,0x95,0x89,0xA2,0x90,0x7A,0x86, - 0x84,0x76,0x77,0x7E,0x88,0x81,0x80,0x90,0x85,0x7B,0x8A,0x84,0x7A,0x84,0x8A,0x8A, - 0x87,0x89,0x8E,0x80,0x8A,0xA5,0x8E,0x94,0xAD,0x90,0x89,0x98,0x90,0x8B,0x8F,0x9A, - 0x9F,0x98,0x9E,0xA9,0x98,0x96,0xA8,0x9D,0x95,0x9F,0xA1,0x9A,0x94,0x98,0x93,0x83, - 0x9F,0xA8,0x88,0x9E,0xA7,0x83,0x84,0x8B,0x77,0x75,0x79,0x7A,0x77,0x6F,0x74,0x75, - 0x62,0x66,0x6A,0x5B,0x5A,0x5F,0x62,0x5B,0x57,0x5E,0x58,0x50,0x6D,0x67,0x54,0x6C, - 0x62,0x4A,0x57,0x56,0x4C,0x4F,0x58,0x61,0x5F,0x5F,0x6D,0x6D,0x66,0x79,0x82,0x7C, - 0x89,0x93,0x97,0x98,0x92,0x98,0x8E,0x8D,0xA9,0x94,0x8F,0xA7,0x8F,0x7F,0x8B,0x81, - 0x76,0x79,0x7F,0x84,0x80,0x80,0x8C,0x83,0x77,0x87,0x86,0x7B,0x81,0x89,0x87,0x83, - 0x85,0x89,0x7E,0x8D,0xA7,0x8D,0x97,0xAA,0x8D,0x87,0x94,0x8D,0x8A,0x8F,0x99,0x9F, - 0x98,0x9C,0xA6,0x98,0x93,0xA0,0x9B,0x97,0x9B,0x9D,0x9D,0x97,0x93,0x97,0x88,0x94, - 0xAB,0x91,0x96,0xA5,0x88,0x80,0x8A,0x7D,0x76,0x79,0x7B,0x7E,0x74,0x6F,0x78,0x6B, - 0x63,0x6A,0x67,0x62,0x63,0x65,0x60,0x57,0x55,0x5B,0x4D,0x5B,0x6F,0x57,0x61,0x70, - 0x54,0x4D,0x58,0x50,0x4E,0x52,0x59,0x62,0x5C,0x60,0x6E,0x69,0x68,0x77,0x7D,0x82, - 0x88,0x93,0x99,0x93,0x91,0x96,0x88,0x95,0xAB,0x8D,0x96,0xA3,0x83,0x7B,0x84,0x7C, - 0x7B,0x7C,0x7E,0x8B,0x80,0x7B,0x88,0x80,0x77,0x7F,0x83,0x80,0x81,0x85,0x89,0x7E, - 0x7E,0x87,0x7B,0x90,0xA7,0x8C,0x99,0xAA,0x8C,0x89,0x95,0x91,0x94,0x91,0x96,0xA5, - 0x98,0x91,0xA1,0x9D,0x94,0x98,0x9F,0x9E,0x99,0x9C,0x9F,0x95,0x90,0x95,0x8A,0x9C, - 0xAF,0x94,0x9B,0xAA,0x8B,0x7E,0x84,0x7F,0x80,0x7B,0x79,0x83,0x77,0x69,0x73,0x70, - 0x64,0x62,0x68,0x6B,0x62,0x61,0x66,0x5E,0x56,0x56,0x51,0x62,0x75,0x5A,0x5F,0x6F, - 0x56,0x4A,0x4F,0x53,0x59,0x54,0x58,0x6A,0x64,0x5F,0x6A,0x72,0x74,0x74,0x82,0x90, - 0x92,0x93,0x96,0x96,0x95,0x92,0x8B,0xA0,0xB3,0x95,0x95,0x9D,0x8B,0x7D,0x76,0x7F, - 0x87,0x7C,0x77,0x85,0x82,0x78,0x79,0x7C,0x7F,0x7C,0x7B,0x80,0x82,0x7E,0x7D,0x7F, - 0x82,0x83,0x7A,0x90,0xA5,0x8F,0x8E,0x99,0x92,0x8A,0x87,0x92,0x9D,0x99,0x96,0x9C, - 0x9E,0x9B,0x94,0x93,0x9D,0x9B,0x97,0x98,0x9C,0x9C,0x95,0x94,0x94,0x93,0x8F,0xA2, - 0xAE,0x98,0x98,0x98,0x8B,0x84,0x7A,0x7E,0x86,0x80,0x78,0x76,0x78,0x77,0x6E,0x69, - 0x6B,0x70,0x6D,0x64,0x65,0x64,0x5F,0x5A,0x57,0x57,0x57,0x70,0x75,0x60,0x64,0x60, - 0x53,0x4F,0x4D,0x59,0x61,0x5F,0x5D,0x5D,0x65,0x67,0x65,0x69,0x74,0x83,0x81,0x83, - 0x8E,0x90,0x91,0x91,0x90,0x8C,0x97,0xB0,0xA4,0x92,0x92,0x8E,0x87,0x7D,0x78,0x80, - 0x8A,0x85,0x78,0x77,0x7D,0x7C,0x76,0x72,0x79,0x83,0x7C,0x76,0x78,0x7C,0x7B,0x78, - 0x77,0x76,0x8C,0xA1,0x97,0x8B,0x89,0x8C,0x8E,0x87,0x85,0x91,0x9F,0x9F,0x96,0x93, - 0x98,0x9D,0x97,0x90,0x98,0xA3,0x9E,0x9A,0x95,0x96,0x96,0x94,0x90,0x8F,0xA6,0xB1, - 0xA1,0x94,0x8B,0x8A,0x8D,0x81,0x7A,0x82,0x8A,0x85,0x79,0x74,0x74,0x76,0x6E,0x65, - 0x6A,0x6E,0x6D,0x68,0x5F,0x5D,0x5C,0x59,0x52,0x58,0x6F,0x75,0x6A,0x5D,0x53,0x57, - 0x58,0x53,0x52,0x59,0x66,0x67,0x62,0x5F,0x63,0x6B,0x6D,0x70,0x79,0x80,0x88,0x8C, - 0x8D,0x8E,0x8D,0x8F,0x8D,0x9D,0xAF,0xAA,0xA2,0x93,0x88,0x8A,0x85,0x80,0x7E,0x7F, - 0x85,0x84,0x7C,0x76,0x76,0x77,0x74,0x76,0x79,0x7A,0x7E,0x7A,0x78,0x76,0x74,0x73, - 0x75,0x8D,0x9D,0x98,0x90,0x83,0x7F,0x88,0x88,0x88,0x8B,0x90,0x97,0x9C,0x99,0x94, - 0x90,0x92,0x96,0x97,0x99,0x9B,0x9A,0x9A,0x9A,0x93,0x91,0x8C,0x91,0xA7,0xAF,0xA8, - 0x9C,0x8B,0x83,0x88,0x85,0x83,0x84,0x80,0x81,0x83,0x80,0x79,0x72,0x6E,0x6F,0x70, - 0x6F,0x6D,0x66,0x66,0x64,0x5E,0x5C,0x56,0x5A,0x6E,0x73,0x6B,0x65,0x57,0x50,0x56, - 0x54,0x56,0x59,0x56,0x5D,0x62,0x65,0x69,0x68,0x6A,0x6F,0x77,0x7D,0x81,0x87,0x8B, - 0x8E,0x91,0x94,0x93,0x92,0x9B,0x9E,0x95,0x97,0x92,0x88,0x8C,0x87,0x82,0x83,0x7B, - 0x79,0x7A,0x77,0x77,0x73,0x70,0x70,0x70,0x73,0x74,0x74,0x75,0x76,0x79,0x7B,0x79, - 0x7A,0x81,0x87,0x86,0x87,0x8B,0x88,0x8D,0x8F,0x8C,0x92,0x8F,0x8E,0x93,0x91,0x91, - 0x93,0x90,0x90,0x91,0x94,0x97,0x97,0x99,0x96,0x9A,0x9C,0x97,0x96,0x97,0x9C,0x9B, - 0x95,0x96,0x90,0x8E,0x90,0x88,0x89,0x85,0x7E,0x7F,0x7B,0x75,0x75,0x70,0x6E,0x6E, - 0x6D,0x6C,0x6A,0x68,0x66,0x66,0x68,0x65,0x63,0x60,0x63,0x69,0x63,0x63,0x63,0x5F, - 0x66,0x65,0x63,0x6A,0x66,0x64,0x6A,0x69,0x6D,0x70,0x70,0x77,0x7E,0x83,0x89,0x8C, - 0x8F,0x92,0x96,0x98,0x97,0x94,0x92,0x98,0x96,0x8F,0x91,0x8B,0x85,0x8A,0x83,0x7E, - 0x80,0x76,0x72,0x74,0x6E,0x70,0x70,0x6C,0x70,0x71,0x73,0x77,0x77,0x79,0x7D,0x7F, - 0x82,0x82,0x84,0x84,0x88,0x8C,0x8C,0x8F,0x8F,0x8D,0x94,0x95,0x93,0x95,0x90,0x90, - 0x94,0x8F,0x91,0x92,0x8E,0x92,0x95,0x93,0x97,0x95,0x95,0x99,0x98,0x98,0x9A,0x99, - 0x96,0x93,0x94,0x93,0x8D,0x8C,0x8B,0x87,0x89,0x84,0x80,0x80,0x7B,0x79,0x77,0x72, - 0x73,0x6F,0x6A,0x6C,0x67,0x66,0x6A,0x65,0x66,0x69,0x68,0x69,0x68,0x68,0x69,0x67, - 0x6A,0x6D,0x6B,0x6F,0x70,0x6D,0x73,0x75,0x76,0x7B,0x7C,0x7E,0x84,0x85,0x87,0x8A, - 0x89,0x8B,0x8B,0x8A,0x8A,0x88,0x8C,0x8D,0x87,0x89,0x8B,0x86,0x86,0x86,0x83,0x84, - 0x84,0x82,0x80,0x80,0x7D,0x7C,0x7D,0x7C,0x7C,0x7D,0x7B,0x7A,0x7B,0x79,0x79,0x7B, - 0x7B,0x7D,0x7F,0x80,0x80,0x82,0x85,0x86,0x89,0x89,0x8A,0x8D,0x8E,0x8D,0x8E,0x8E, - 0x8E,0x8F,0x8E,0x8F,0x8F,0x8F,0x8F,0x8D,0x8E,0x8E,0x8B,0x8C,0x8C,0x8B,0x8B,0x8B, - 0x88,0x86,0x86,0x84,0x85,0x87,0x84,0x85,0x86,0x84,0x83,0x82,0x81,0x82,0x81,0x80, - 0x7E,0x7D,0x7D,0x7B,0x7A,0x7A,0x79,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x74,0x74, - 0x75,0x76,0x78,0x78,0x79,0x79,0x7B,0x7B,0x7C,0x7F,0x80,0x81,0x83,0x84,0x84,0x85, - 0x84,0x85,0x85,0x85,0x84,0x84,0x84,0x82,0x80,0x80,0x7F,0x7D,0x7D,0x7C,0x7B,0x7B, - 0x7A,0x79,0x79,0x77,0x78,0x79,0x77,0x77,0x78,0x78,0x79,0x77,0x77,0x78,0x79,0x7B, - 0x7B,0x7C,0x7E,0x7E,0x7E,0x80,0x80,0x80,0x82,0x83,0x83,0x85,0x85,0x85,0x85,0x84, - 0x84,0x86,0x87,0x85,0x86,0x86,0x86,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x88,0x87, - 0x85,0x86,0x84,0x85,0x85,0x84,0x85,0x83,0x84,0x84,0x82,0x82,0x82,0x81,0x82,0x83, - 0x82,0x81,0x81,0x80,0x7E,0x7F,0x7E,0x7D,0x7E,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7D,0x7F,0x7F,0x7E,0x80,0x82,0x83,0x84,0x83,0x83, - 0x82,0x82,0x84,0x83,0x82,0x83,0x83,0x82,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x7F,0x7F, - 0x7D,0x7C,0x7C,0x7B,0x7B,0x7B,0x7A,0x7A,0x7A,0x7A,0x7A,0x7B,0x7A,0x78,0x7B,0x7C, - 0x7A,0x7C,0x7D,0x7C,0x7C,0x7D,0x7C,0x7C,0x7E,0x7E,0x7E,0x7F,0x80,0x7F,0x80,0x81, - 0x81,0x81,0x83,0x83,0x82,0x80,0x84,0x84,0x83,0x83,0x82,0x83,0x83,0x94,0x85,0x87, - 0x85,0x61,0x7D,0x7F,0x68,0x66,0x76,0x7E,0x85,0x8B,0x8A,0x8B,0x85,0x93,0xA1,0x9C, - 0x98,0x91,0x8D,0x8A,0x83,0x81,0x7C,0x70,0x66,0x5B,0x55,0x54,0x51,0x50,0x53,0x59, - 0x60,0x67,0x6B,0x71,0x75,0x77,0x7C,0x81,0x83,0x85,0x89,0x8C,0x8C,0x91,0x9E,0xA7, - 0xB0,0xB8,0xB8,0xB9,0xB6,0xAE,0xAA,0xA2,0x9A,0x96,0x8F,0x8A,0x86,0x81,0x7F,0x79, - 0x76,0x73,0x6F,0x6D,0x69,0x68,0x65,0x63,0x60,0x57,0x51,0x49,0x46,0x46,0x45,0x47, - 0x4D,0x54,0x5B,0x62,0x67,0x6C,0x72,0x75,0x7A,0x81,0x83,0x85,0x89,0x8D,0x8D,0x91, - 0x94,0x9B,0xA8,0xAE,0xB2,0xB7,0xB9,0xB7,0xB5,0xB3,0xAF,0xAC,0xA4,0x9F,0x9B,0x91, - 0x8E,0x89,0x86,0x83,0x7E,0x7D,0x78,0x6F,0x69,0x61,0x59,0x58,0x52,0x4E,0x51,0x50, - 0x52,0x55,0x5B,0x63,0x68,0x6D,0x70,0x76,0x7E,0x86,0x8A,0x8F,0x93,0x94,0x96,0x97, - 0x9D,0x9F,0x9C,0xA0,0xA3,0x9A,0x98,0xA1,0xA7,0xAA,0xA7,0xA0,0x98,0x92,0x8E,0x88, - 0x83,0x7A,0x7B,0x7A,0x77,0x7C,0x78,0x74,0x75,0x76,0x73,0x72,0x6F,0x6E,0x6B,0x65, - 0x65,0x62,0x5F,0x61,0x5F,0x5D,0x5B,0x5A,0x5F,0x5C,0x60,0x65,0x62,0x67,0x69,0x6E, - 0x75,0x76,0x79,0x7F,0x7F,0x85,0x8B,0x8D,0x93,0x9A,0x9E,0xA6,0xB0,0xB0,0xB5,0xBA, - 0xBB,0xC0,0xC0,0xBE,0xBC,0xBB,0xB6,0xB1,0xAC,0xA2,0x9D,0x96,0x8F,0x8B,0x84,0x7F, - 0x7B,0x74,0x70,0x6B,0x64,0x61,0x61,0x5E,0x58,0x54,0x52,0x4E,0x4C,0x4D,0x4A,0x4E, - 0x4E,0x49,0x4B,0x50,0x55,0x5A,0x61,0x65,0x6A,0x70,0x70,0x76,0x7C,0x7B,0x81,0x8A, - 0x91,0x94,0x96,0x9C,0xA3,0xAA,0xAC,0xB4,0xBC,0xBB,0xBE,0xC0,0xC0,0xC3,0xC2,0xBF, - 0xC1,0xBE,0xBD,0xBB,0xB5,0xB3,0xAE,0xA5,0xA0,0x9C,0x95,0x8B,0x83,0x7A,0x77,0x72, - 0x6A,0x67,0x5D,0x5F,0x64,0x57,0x56,0x54,0x4F,0x54,0x46,0x3C,0x44,0x44,0x42,0x43, - 0x45,0x4F,0x55,0x55,0x57,0x5C,0x60,0x60,0x5B,0x5D,0x68,0x68,0x67,0x6E,0x6F,0x82, - 0x92,0x8A,0x8F,0x96,0x95,0x9B,0x91,0x91,0x9F,0xA0,0xA2,0xA8,0xAA,0xB2,0xB5,0xAC, - 0xAD,0xB2,0xAD,0xAA,0xA4,0xA6,0xAE,0xA6,0xA3,0xA1,0x9E,0xAF,0xAD,0x9D,0xA4,0xA4, - 0x9A,0x92,0x83,0x88,0x8E,0x7C,0x7B,0x80,0x7D,0x80,0x75,0x67,0x6D,0x67,0x5A,0x5A, - 0x58,0x5A,0x58,0x52,0x54,0x54,0x58,0x62,0x5D,0x5B,0x62,0x60,0x5C,0x59,0x56,0x5E, - 0x5F,0x5A,0x62,0x67,0x6C,0x72,0x6A,0x70,0x7A,0x74,0x76,0x7E,0x81,0x87,0x88,0x8A, - 0x93,0x8F,0x9B,0xAC,0xA2,0xA8,0xAF,0xA9,0xAB,0x9F,0x9D,0xAF,0xA8,0xA2,0xAC,0xAC, - 0xB3,0xB0,0xA2,0xA7,0xA6,0x97,0x95,0x94,0x93,0x90,0x85,0x84,0x84,0x73,0x7D,0x8A, - 0x75,0x77,0x78,0x6E,0x6A,0x55,0x56,0x62,0x54,0x4F,0x59,0x59,0x5D,0x56,0x51,0x5F, - 0x5A,0x50,0x58,0x5E,0x60,0x61,0x61,0x68,0x69,0x60,0x77,0x86,0x77,0x80,0x85,0x85, - 0x85,0x72,0x7D,0x89,0x7C,0x80,0x8C,0x90,0x94,0x8C,0x8C,0x96,0x8C,0x85,0x8B,0x8C, - 0x8B,0x89,0x89,0x8D,0x89,0x80,0x96,0x9F,0x8F,0x98,0x9B,0x98,0x91,0x81,0x8E,0x94, - 0x84,0x89,0x95,0x96,0x93,0x8A,0x8B,0x8F,0x83,0x7C,0x82,0x82,0x81,0x81,0x82,0x84, - 0x7E,0x77,0x8B,0x93,0x80,0x89,0x8C,0x84,0x7B,0x6C,0x7B,0x7E,0x6C,0x73,0x7E,0x7F, - 0x7A,0x76,0x7A,0x7A,0x6B,0x69,0x6D,0x68,0x67,0x68,0x6B,0x69,0x64,0x62,0x77,0x76, - 0x64,0x71,0x74,0x69,0x5E,0x5A,0x6C,0x67,0x5B,0x6D,0x7A,0x77,0x78,0x7E,0x87,0x84, - 0x7B,0x83,0x87,0x84,0x84,0x8D,0x8F,0x8C,0x89,0x8B,0xA6,0x9A,0x8C,0xA2,0x9D,0x8F, - 0x84,0x88,0x93,0x84,0x82,0x95,0x9A,0x93,0x93,0x9B,0x9D,0x90,0x8E,0x95,0x8F,0x89, - 0x90,0x95,0x90,0x8F,0x89,0x98,0xA8,0x8C,0x93,0xA3,0x91,0x85,0x7E,0x86,0x81,0x6D, - 0x79,0x84,0x78,0x75,0x7C,0x7F,0x75,0x6C,0x71,0x6E,0x62,0x62,0x69,0x64,0x5E,0x5E, - 0x59,0x71,0x6F,0x5A,0x72,0x72,0x62,0x5F,0x60,0x6A,0x5B,0x54,0x6C,0x6B,0x63,0x6E, - 0x79,0x78,0x6F,0x70,0x79,0x6E,0x69,0x73,0x74,0x70,0x74,0x71,0x77,0x92,0x7F,0x7D, - 0x95,0x85,0x7D,0x7B,0x7F,0x82,0x70,0x78,0x88,0x7D,0x7D,0x8B,0x91,0x8D,0x89,0x91, - 0x91,0x85,0x8A,0x92,0x8D,0x8D,0x94,0x8B,0x9D,0xAD,0x94,0xA5,0xB1,0x9D,0x9B,0x98, - 0x9D,0x94,0x86,0x98,0x9C,0x90,0x97,0xA1,0xA0,0x95,0x96,0x9D,0x90,0x88,0x90,0x8E, - 0x88,0x8B,0x8B,0x84,0x9A,0x97,0x87,0x9D,0x99,0x89,0x86,0x85,0x85,0x76,0x73,0x82, - 0x7D,0x74,0x7E,0x84,0x7A,0x73,0x7A,0x77,0x6A,0x6B,0x6F,0x68,0x62,0x67,0x5F,0x62, - 0x76,0x63,0x69,0x78,0x66,0x63,0x63,0x62,0x5D,0x55,0x60,0x65,0x5F,0x63,0x6F,0x6F, - 0x65,0x6B,0x73,0x67,0x65,0x6E,0x6D,0x69,0x69,0x6F,0x68,0x78,0x81,0x73,0x87,0x86, - 0x78,0x7C,0x7A,0x78,0x72,0x71,0x7D,0x7C,0x78,0x82,0x89,0x83,0x81,0x88,0x87,0x7F, - 0x83,0x88,0x87,0x83,0x87,0x8A,0x84,0x9C,0x9B,0x90,0xA9,0xA0,0x94,0x99,0x96,0x94, - 0x8B,0x8F,0x9B,0x95,0x95,0xA3,0xA4,0x9B,0x9E,0xA4,0x9E,0x99,0x9F,0x9F,0x9C,0x99, - 0x9A,0x98,0x92,0xAC,0xA5,0x99,0xB3,0xA5,0x9A,0x9B,0x98,0x95,0x89,0x8E,0x97,0x8C, - 0x8B,0x96,0x94,0x89,0x8C,0x90,0x87,0x80,0x86,0x84,0x7D,0x7A,0x7B,0x77,0x6D,0x86, - 0x80,0x71,0x89,0x7D,0x6F,0x71,0x6E,0x6A,0x5F,0x63,0x6B,0x62,0x61,0x6C,0x6B,0x61, - 0x65,0x68,0x60,0x5A,0x60,0x61,0x59,0x5A,0x5C,0x58,0x51,0x69,0x69,0x58,0x73,0x6C, - 0x5C,0x62,0x65,0x60,0x57,0x5E,0x68,0x60,0x60,0x6E,0x6F,0x67,0x6E,0x73,0x6F,0x6B, - 0x72,0x76,0x6F,0x71,0x76,0x74,0x6C,0x85,0x8D,0x78,0x93,0x94,0x80,0x86,0x8B,0x86, - 0x7E,0x84,0x8E,0x89,0x85,0x95,0x97,0x8D,0x95,0x9B,0x94,0x90,0x99,0x9B,0x91,0x95, - 0x99,0x96,0x8E,0xA5,0xB0,0x9A,0xB2,0xB6,0xA0,0xA4,0xA9,0xA2,0x99,0x9D,0xA6,0x9F, - 0x98,0xA6,0xA6,0x9A,0xA1,0xA5,0x9C,0x98,0x9D,0x9C,0x91,0x93,0x94,0x8D,0x83,0x98, - 0xA1,0x87,0x9C,0xA0,0x86,0x88,0x8D,0x84,0x78,0x7C,0x84,0x7C,0x75,0x82,0x81,0x75, - 0x7C,0x7F,0x76,0x73,0x78,0x76,0x6D,0x70,0x70,0x6A,0x61,0x74,0x81,0x66,0x7A,0x85, - 0x6A,0x6B,0x74,0x6B,0x5F,0x63,0x6D,0x66,0x61,0x6E,0x6F,0x64,0x6A,0x70,0x64,0x62, - 0x67,0x65,0x5E,0x60,0x61,0x5C,0x52,0x61,0x71,0x57,0x6B,0x78,0x5D,0x60,0x6A,0x62, - 0x58,0x5E,0x67,0x62,0x5F,0x6D,0x6F,0x66,0x6F,0x75,0x6D,0x70,0x77,0x77,0x73,0x79, - 0x7A,0x77,0x71,0x81,0x91,0x79,0x8F,0x9C,0x81,0x89,0x92,0x88,0x80,0x87,0x8E,0x87, - 0x85,0x93,0x92,0x88,0x93,0x96,0x8D,0x90,0x94,0x93,0x8F,0x94,0x93,0x8F,0x88,0x95, - 0xA5,0x8D,0xA2,0xAD,0x90,0x98,0xA2,0x93,0x8D,0x96,0x97,0x91,0x8F,0x99,0x98,0x8D, - 0x98,0x9A,0x8F,0x93,0x96,0x90,0x8C,0x8F,0x8B,0x87,0x7F,0x8E,0x98,0x7F,0x97,0x9A, - 0x7C,0x89,0x8F,0x7B,0x79,0x83,0x7F,0x79,0x7C,0x84,0x7F,0x7A,0x87,0x84,0x7A,0x82, - 0x83,0x7B,0x7B,0x7E,0x78,0x75,0x71,0x82,0x86,0x72,0x8D,0x88,0x6E,0x7F,0x81,0x6C, - 0x6F,0x77,0x6F,0x6C,0x72,0x75,0x6D,0x6F,0x79,0x71,0x6C,0x75,0x72,0x6C,0x6F,0x6F, - 0x6B,0x69,0x68,0x7E,0x76,0x70,0x8F,0x7A,0x6D,0x85,0x78,0x69,0x76,0x77,0x70,0x73, - 0x7B,0x7B,0x74,0x7C,0x81,0x77,0x7C,0x81,0x7B,0x79,0x7C,0x78,0x76,0x72,0x76,0x8B, - 0x79,0x81,0x97,0x7A,0x7C,0x8E,0x79,0x73,0x82,0x79,0x74,0x7E,0x7F,0x7A,0x7C,0x83, - 0x80,0x7B,0x82,0x81,0x7B,0x7E,0x7E,0x79,0x7A,0x75,0x7F,0x8B,0x7A,0x8E,0x95,0x7A, - 0x86,0x8E,0x75,0x7B,0x86,0x76,0x79,0x84,0x7D,0x7C,0x83,0x84,0x81,0x83,0x87,0x82, - 0x81,0x83,0x7F,0x7E,0x7E,0x78,0x88,0x8B,0x80,0x98,0x93,0x80,0x92,0x8F,0x7A,0x88, - 0x89,0x79,0x84,0x89,0x7F,0x85,0x8A,0x87,0x87,0x8A,0x89,0x87,0x87,0x86,0x81,0x81, - 0x7E,0x7C,0x8A,0x86,0x83,0x95,0x8C,0x80,0x90,0x88,0x79,0x87,0x83,0x76,0x84,0x83, - 0x79,0x82,0x85,0x7F,0x85,0x86,0x84,0x86,0x85,0x83,0x80,0x7F,0x7E,0x7F,0x87,0x85, - 0x86,0x90,0x89,0x82,0x8D,0x85,0x7B,0x87,0x80,0x76,0x83,0x80,0x78,0x81,0x80,0x7B, - 0x81,0x81,0x7F,0x83,0x80,0x7E,0x7E,0x7C,0x7A,0x7B,0x80,0x81,0x83,0x8A,0x83,0x80, - 0x89,0x82,0x7B,0x86,0x80,0x78,0x84,0x80,0x7A,0x83,0x81,0x7F,0x85,0x83,0x84,0x86, - 0x83,0x85,0x84,0x7E,0x7F,0x80,0x83,0x84,0x84,0x8A,0x87,0x82,0x88,0x83,0x7D,0x84, - 0x7E,0x79,0x80,0x7B,0x79,0x80,0x7B,0x7B,0x81,0x7D,0x80,0x82,0x7E,0x7F,0x7E,0x7A, - 0x79,0x79,0x7D,0x7F,0x7E,0x84,0x81,0x7D,0x83,0x7D,0x79,0x80,0x79,0x76,0x7D,0x76, - 0x77,0x7E,0x78,0x7B,0x81,0x7D,0x81,0x83,0x81,0x83,0x80,0x7D,0x7E,0x7C,0x82,0x83, - 0x81,0x88,0x85,0x81,0x87,0x80,0x7D,0x83,0x7A,0x79,0x80,0x77,0x79,0x7F,0x78,0x7B, - 0x80,0x7C,0x80,0x82,0x7F,0x81,0x7F,0x7C,0x7E,0x7B,0x80,0x83,0x81,0x87,0x85,0x81, - 0x87,0x81,0x7E,0x84,0x7B,0x7A,0x80,0x78,0x79,0x7F,0x78,0x7C,0x80,0x7D,0x81,0x82, - 0x7F,0x82,0x7F,0x7C,0x7D,0x7B,0x7F,0x82,0x80,0x86,0x85,0x81,0x85,0x80,0x7D,0x82, - 0x7A,0x79,0x7F,0x77,0x79,0x7F,0x79,0x7C,0x81,0x7E,0x83,0x84,0x81,0x84,0x81,0x7D, - 0x80,0x7D,0x81,0x85,0x82,0x88,0x88,0x83,0x87,0x83,0x7F,0x84,0x7D,0x7B,0x80,0x79, - 0x79,0x7F,0x7A,0x7B,0x80,0x7E,0x81,0x83,0x81,0x84,0x82,0x7F,0x80,0x7E,0x82,0x87, - 0x83,0x88,0x89,0x85,0x88,0x85,0x82,0x86,0x80,0x7D,0x82,0x7A,0x7A,0x80,0x7A,0x7B, - 0x81,0x7E,0x80,0x82,0x7F,0x82,0x80,0x7C,0x7E,0x7B,0x7F,0x83,0x80,0x84,0x86,0x81, - 0x85,0x82,0x7E,0x83,0x7E,0x7A,0x7E,0x79,0x78,0x7E,0x79,0x7A,0x81,0x7E,0x80,0x83, - 0x81,0x83,0x82,0x7E,0x80,0x7E,0x80,0x84,0x80,0x84,0x87,0x82,0x85,0x84,0x7F,0x83, - 0x80,0x7B,0x7E,0x7A,0x78,0x7F,0x7B,0x7B,0x82,0x80,0x81,0x85,0x83,0x84,0x84,0x81, - 0x82,0x80,0x82,0x86,0x83,0x85,0x89,0x84,0x85,0x86,0x81,0x83,0x82,0x7C,0x7D,0x7B, - 0x77,0x7B,0x78,0x77,0x7D,0x7B,0x7B,0x81,0x7F,0x80,0x82,0x7E,0x7F,0x7F,0x80,0x84, - 0x82,0x83,0x88,0x84,0x84,0x87,0x82,0x83,0x85,0x7F,0x7E,0x7F,0x7A,0x7C,0x7C,0x79, - 0x7E,0x7E,0x7C,0x81,0x81,0x7F,0x81,0x7F,0x7E,0x7E,0x7E,0x82,0x80,0x80,0x83,0x81, - 0x80,0x84,0x80,0x7F,0x83,0x7E,0x7C,0x7F,0x7B,0x7B,0x7E,0x7C,0x7F,0x81,0x80,0x83, - 0x85,0x83,0x85,0x85,0x83,0x83,0x83,0x86,0x86,0x83,0x85,0x84,0x82,0x84,0x83,0x81, - 0x83,0x81,0x7D,0x7E,0x7C,0x79,0x7B,0x7B,0x79,0x7C,0x7C,0x7C,0x7F,0x7F,0x7F,0x80, - 0x7F,0x80,0x81,0x81,0x83,0x83,0x82,0x83,0x82,0x81,0x82,0x82,0x81,0x82,0x80,0x7D, - 0x7D,0x7A,0x79,0x7C,0x7A,0x79,0x7D,0x7C,0x7C,0x7F,0x7F,0x7E,0x82,0x80,0x81,0x85, - 0x8F,0x87,0x69,0x77,0x8D,0x8E,0x78,0x88,0x97,0x6F,0x79,0x87,0x7F,0x81,0x87,0x90, - 0x7C,0x7A,0x88,0x88,0x7A,0x79,0x8B,0x82,0x76,0x77,0x7D,0x82,0x86,0x85,0x8A,0x82, - 0x73,0x81,0x80,0x83,0x8B,0x8C,0x8E,0x7E,0x7D,0x76,0x72,0x7F,0x7E,0x84,0x78,0x74, - 0x80,0x6D,0x79,0x93,0x7A,0x76,0x88,0x7B,0x7D,0x75,0x78,0x89,0x7B,0x7B,0x81,0x7B, - 0x7A,0x7B,0x80,0x7E,0x76,0x7C,0x85,0x81,0x7A,0x76,0x7A,0x83,0x84,0x86,0x82,0x7F, - 0x7F,0x7F,0x7E,0x76,0x80,0x91,0x90,0x8F,0x95,0x88,0x87,0x99,0x9F,0x9E,0x9D,0x9E, - 0x9F,0xA0,0xA0,0x9A,0x89,0x83,0x8E,0x92,0x92,0x95,0x87,0x79,0x78,0x72,0x6E,0x66, - 0x64,0x73,0x79,0x78,0x73,0x69,0x6B,0x71,0x72,0x72,0x66,0x63,0x6B,0x69,0x6A,0x68, - 0x63,0x66,0x68,0x69,0x69,0x65,0x67,0x70,0x6F,0x67,0x63,0x6A,0x79,0x7B,0x6E,0x70, - 0x70,0x6C,0x72,0x73,0x74,0x77,0x74,0x75,0x78,0x80,0x88,0x8E,0x97,0xA7,0xB6,0xB4, - 0xA8,0xA3,0xA2,0x9E,0x9C,0x9C,0x96,0x8F,0x93,0x90,0x8B,0x8D,0x8D,0x8C,0x8A,0x8E, - 0x90,0x8B,0x8D,0x8F,0x90,0x8C,0x86,0x85,0x89,0x8A,0x87,0x84,0x81,0x81,0x84,0x8C, - 0x8A,0x85,0x83,0x7F,0x81,0x82,0x81,0x7C,0x7D,0x84,0x82,0x7D,0x7C,0x7B,0x79,0x7A, - 0x7F,0x80,0x87,0x91,0x8F,0x8A,0x86,0x82,0x8B,0x8F,0x8F,0x97,0x97,0x94,0x90,0x90, - 0x96,0x92,0x8E,0x8D,0x86,0x83,0x83,0x7E,0x74,0x73,0x6E,0x6A,0x6C,0x68,0x68,0x6D, - 0x6A,0x66,0x63,0x61,0x65,0x5C,0x5D,0x64,0x62,0x61,0x5D,0x5D,0x59,0x58,0x5E,0x5E, - 0x5F,0x63,0x67,0x65,0x64,0x6A,0x6D,0x6D,0x6B,0x69,0x6C,0x6A,0x69,0x6B,0x6E,0x71, - 0x6F,0x6D,0x70,0x73,0x74,0x75,0x7E,0x92,0x95,0x95,0xA5,0xB0,0xB2,0xAE,0xAB,0x9F, - 0x9D,0x9F,0x96,0x95,0x9A,0x9C,0x98,0x9C,0x9A,0x9A,0xA0,0x9D,0x96,0x8D,0x88,0x88, - 0x8A,0x86,0x81,0x88,0x9C,0x9C,0x8F,0x8D,0x8B,0x89,0x8C,0x7C,0x6B,0x74,0x7C,0x7B, - 0x81,0x82,0x84,0x93,0x90,0x88,0x87,0x7F,0x7D,0x7F,0x7D,0x78,0x7E,0x81,0x7F,0x8A, - 0x9A,0x9E,0x99,0x9B,0x99,0x94,0x94,0x8E,0x83,0x89,0x8B,0x8E,0x96,0x95,0x96,0x94, - 0x90,0x88,0x82,0x79,0x73,0x7A,0x76,0x75,0x73,0x6D,0x68,0x6F,0x82,0x7B,0x71,0x6F, - 0x64,0x60,0x5F,0x53,0x4F,0x56,0x59,0x59,0x5F,0x55,0x52,0x5C,0x55,0x59,0x5A,0x59, - 0x61,0x6B,0x6B,0x62,0x5F,0x5C,0x64,0x72,0x7B,0x75,0x70,0x6E,0x69,0x67,0x67,0x62, - 0x65,0x72,0x78,0x85,0x8A,0x8B,0x8E,0x93,0x99,0xA0,0xA3,0xA1,0xAC,0xAF,0xAC,0xA1, - 0x97,0x99,0x9F,0xAE,0xB8,0xAA,0x9D,0x97,0x89,0x87,0x85,0x7F,0x83,0x8E,0x8D,0x8F, - 0x91,0x88,0x86,0x7E,0x7F,0x87,0x87,0x89,0x90,0x8F,0x8B,0x84,0x7D,0x7E,0x83,0x98, - 0xA0,0x9A,0x92,0x82,0x7A,0x7E,0x7C,0x78,0x84,0x86,0x88,0x94,0x94,0x89,0x85,0x85, - 0x88,0x91,0x91,0x95,0x97,0x9A,0x98,0x8C,0x8C,0x8A,0x8C,0x9C,0xA8,0x9C,0x90,0x82, - 0x75,0x7A,0x77,0x7A,0x7F,0x7B,0x7A,0x7F,0x77,0x69,0x64,0x5D,0x5D,0x64,0x63,0x60, - 0x63,0x60,0x5B,0x56,0x51,0x4C,0x58,0x6A,0x69,0x60,0x56,0x4E,0x4C,0x56,0x5A,0x63, - 0x68,0x67,0x6E,0x6D,0x65,0x5F,0x61,0x60,0x6C,0x74,0x75,0x75,0x77,0x77,0x77,0x7B, - 0x76,0x7C,0x90,0xA0,0xA6,0xA4,0x9A,0x95,0x9E,0xA2,0xA8,0xAE,0xAA,0xA7,0xAA,0xA6, - 0x9D,0x97,0x94,0x94,0x9C,0x9C,0x95,0x90,0x88,0x83,0x82,0x84,0x7E,0x82,0x94,0x97, - 0x96,0x8B,0x7D,0x72,0x76,0x7D,0x86,0x8A,0x87,0x88,0x87,0x89,0x84,0x7E,0x7C,0x83, - 0x8A,0x8C,0x8C,0x84,0x80,0x81,0x83,0x85,0x82,0x8D,0x9A,0x9D,0x9B,0x8F,0x80,0x81, - 0x89,0x94,0x9D,0x9A,0x94,0x93,0x95,0x91,0x8B,0x82,0x85,0x8C,0x8E,0x8F,0x8B,0x82, - 0x7A,0x78,0x7C,0x75,0x74,0x82,0x88,0x84,0x7B,0x68,0x56,0x5C,0x64,0x6A,0x6D,0x63, - 0x60,0x5C,0x5C,0x5D,0x55,0x52,0x55,0x5F,0x63,0x67,0x64,0x5C,0x5A,0x5F,0x62,0x5D, - 0x65,0x75,0x7B,0x7A,0x75,0x61,0x56,0x5E,0x6B,0x76,0x79,0x76,0x79,0x7A,0x7F,0x80, - 0x7E,0x84,0x8D,0x9B,0xA3,0xA7,0xA4,0x9E,0x9D,0xA2,0xA2,0x9D,0xA7,0xB0,0xAF,0xAA, - 0x9C,0x86,0x7F,0x83,0x8D,0x95,0x92,0x8C,0x87,0x84,0x82,0x83,0x7C,0x7C,0x84,0x85, - 0x8B,0x8A,0x82,0x7D,0x7D,0x80,0x7D,0x82,0x91,0x98,0x96,0x91,0x81,0x71,0x71,0x7E, - 0x88,0x91,0x93,0x89,0x86,0x88,0x88,0x87,0x8A,0x89,0x8F,0x95,0x99,0x93,0x8D,0x8D, - 0x88,0x8D,0x8B,0x93,0xA0,0xA2,0x9F,0x94,0x81,0x75,0x7A,0x85,0x8D,0x8B,0x8A,0x7F, - 0x7B,0x76,0x6F,0x6F,0x6A,0x6A,0x6C,0x70,0x6E,0x67,0x5D,0x5B,0x59,0x55,0x58,0x63, - 0x6C,0x6D,0x66,0x57,0x4A,0x46,0x4E,0x5C,0x63,0x65,0x66,0x60,0x60,0x62,0x62,0x62, - 0x60,0x67,0x6B,0x71,0x71,0x6C,0x6C,0x6B,0x72,0x6F,0x79,0x8C,0x92,0x98,0x91,0x88, - 0x81,0x85,0x95,0xA2,0xA9,0xAB,0xA5,0xA4,0xA6,0xA0,0xA0,0x9C,0x9A,0x9A,0x9E,0x9D, - 0x96,0x90,0x86,0x80,0x7F,0x80,0x88,0x95,0x9A,0x95,0x87,0x77,0x6F,0x71,0x7D,0x86, - 0x86,0x82,0x7D,0x79,0x7F,0x7F,0x7F,0x7D,0x7E,0x84,0x85,0x8A,0x86,0x80,0x80,0x83, - 0x83,0x85,0x93,0x9B,0x9D,0x98,0x8A,0x7E,0x7C,0x83,0x91,0x98,0x9A,0x94,0x8D,0x90, - 0x92,0x90,0x8F,0x8D,0x8A,0x8B,0x8D,0x8A,0x88,0x82,0x7A,0x7C,0x79,0x79,0x88,0x8C, - 0x88,0x7F,0x6C,0x5E,0x5B,0x64,0x6B,0x6C,0x69,0x61,0x59,0x5A,0x5D,0x5B,0x57,0x57, - 0x59,0x5B,0x60,0x5F,0x5D,0x57,0x56,0x58,0x55,0x65,0x77,0x7D,0x79,0x6F,0x5E,0x55, - 0x5A,0x66,0x70,0x77,0x78,0x71,0x71,0x76,0x7B,0x7F,0x83,0x82,0x89,0x95,0x96,0x98, - 0x9A,0x97,0x9D,0xA0,0x9F,0xAB,0xB6,0xB9,0xB5,0xA4,0x91,0x88,0x8C,0x94,0x9D,0x9A, - 0x94,0x8B,0x85,0x86,0x86,0x84,0x82,0x7F,0x81,0x86,0x82,0x80,0x7C,0x77,0x79,0x75, - 0x78,0x89,0x91,0x91,0x8E,0x80,0x75,0x71,0x78,0x85,0x8C,0x8C,0x87,0x85,0x85,0x86, - 0x8A,0x8B,0x8C,0x8D,0x91,0x98,0x98,0x97,0x91,0x8B,0x8E,0x8C,0x95,0xA6,0xA8,0xA6, - 0x9E,0x8D,0x7D,0x7A,0x82,0x8C,0x91,0x8E,0x88,0x80,0x7C,0x7C,0x78,0x74,0x72,0x6D, - 0x71,0x73,0x6F,0x69,0x61,0x5C,0x56,0x59,0x63,0x70,0x73,0x6F,0x65,0x51,0x47,0x4B, - 0x54,0x5F,0x67,0x66,0x61,0x5C,0x60,0x65,0x66,0x66,0x65,0x67,0x6E,0x74,0x74,0x72, - 0x6F,0x6F,0x6E,0x76,0x88,0x96,0x9B,0x98,0x8D,0x7D,0x78,0x80,0x8E,0x9A,0xA3,0xA1, - 0x9B,0x99,0x9B,0x9E,0x9C,0x9B,0x9B,0x9B,0xA1,0xA4,0x9E,0x98,0x90,0x8C,0x89,0x8D, - 0x9B,0xA3,0xA1,0x99,0x88,0x76,0x71,0x77,0x80,0x8B,0x8D,0x85,0x7D,0x7A,0x7C,0x7E, - 0x7D,0x7E,0x7E,0x7E,0x84,0x82,0x81,0x7E,0x79,0x79,0x77,0x80,0x91,0x9D,0x9E,0x97, - 0x86,0x78,0x75,0x7B,0x8A,0x95,0x95,0x8F,0x88,0x88,0x89,0x89,0x8A,0x87,0x84,0x86, - 0x89,0x88,0x86,0x81,0x7B,0x7A,0x75,0x7D,0x8E,0x95,0x92,0x88,0x76,0x69,0x65,0x6E, - 0x7C,0x82,0x81,0x76,0x70,0x70,0x72,0x75,0x73,0x71,0x6F,0x70,0x76,0x77,0x75,0x6F, - 0x6A,0x69,0x67,0x70,0x83,0x8B,0x8B,0x82,0x71,0x64,0x64,0x6E,0x79,0x82,0x80,0x7A, - 0x77,0x79,0x7F,0x82,0x81,0x7E,0x7C,0x80,0x88,0x8C,0x8D,0x88,0x84,0x82,0x7E,0x86, - 0x98,0x9F,0xA1,0x99,0x89,0x7B,0x77,0x7D,0x86,0x8D,0x89,0x84,0x82,0x7D,0x80,0x81, - 0x7E,0x7C,0x79,0x7A,0x7F,0x80,0x7F,0x79,0x74,0x72,0x6D,0x76,0x88,0x92,0x92,0x8A, - 0x7A,0x6C,0x6B,0x71,0x7D,0x85,0x85,0x82,0x7F,0x7C,0x80,0x83,0x80,0x80,0x7F,0x80, - 0x87,0x8B,0x89,0x85,0x7E,0x7C,0x79,0x7F,0x92,0x9A,0x9B,0x95,0x84,0x75,0x72,0x76, - 0x82,0x88,0x8A,0x85,0x7E,0x80,0x82,0x82,0x80,0x7D,0x78,0x7A,0x7F,0x82,0x82,0x7D, - 0x78,0x74,0x71,0x75,0x85,0x8F,0x91,0x8B,0x7A,0x6D,0x69,0x6A,0x74,0x7D,0x7E,0x7C, - 0x75,0x75,0x7A,0x7C,0x7F,0x7A,0x74,0x79,0x7C,0x81,0x86,0x81,0x7C,0x78,0x75,0x77, - 0x86,0x94,0x99,0x98,0x8B,0x7D,0x75,0x75,0x7F,0x89,0x8C,0x8C,0x86,0x82,0x87,0x8A, - 0x8B,0x86,0x7E,0x7D,0x81,0x86,0x8A,0x86,0x7F,0x7A,0x74,0x74,0x7F,0x8C,0x94,0x94, - 0x88,0x79,0x6E,0x6D,0x73,0x7C,0x83,0x7E,0x7B,0x79,0x7C,0x82,0x82,0x7F,0x77,0x75, - 0x78,0x7D,0x83,0x82,0x80,0x78,0x74,0x72,0x79,0x89,0x95,0x97,0x8F,0x80,0x71,0x6E, - 0x73,0x7C,0x84,0x83,0x7F,0x7C,0x7C,0x84,0x88,0x85,0x7F,0x7A,0x79,0x7E,0x84,0x86, - 0x84,0x7F,0x79,0x75,0x76,0x84,0x92,0x95,0x93,0x88,0x78,0x70,0x72,0x78,0x82,0x83, - 0x7F,0x7B,0x78,0x7C,0x82,0x83,0x81,0x7B,0x76,0x77,0x7E,0x82,0x82,0x7F,0x79,0x74, - 0x70,0x7B,0x8A,0x90,0x94,0x8C,0x7E,0x73,0x70,0x76,0x7D,0x84,0x85,0x7E,0x7C,0x7B, - 0x81,0x88,0x88,0x86,0x7E,0x7E,0x7E,0x82,0x86,0x87,0x83,0x7E,0x78,0x76,0x85,0x90, - 0x93,0x96,0x88,0x7A,0x75,0x70,0x7B,0x7F,0x82,0x82,0x76,0x76,0x79,0x7E,0x86,0x85, - 0x7F,0x7A,0x75,0x78,0x7F,0x82,0x84,0x7E,0x79,0x74,0x78,0x88,0x90,0x93,0x91,0x83, - 0x78,0x73,0x76,0x7F,0x84,0x85,0x7F,0x7A,0x7C,0x7E,0x85,0x88,0x88,0x85,0x7C,0x7A, - 0x7C,0x7F,0x83,0x85,0x81,0x7D,0x78,0x7E,0x89,0x8C,0x92,0x8D,0x82,0x7B,0x75,0x79, - 0x7E,0x80,0x81,0x7D,0x7C,0x79,0x7B,0x83,0x84,0x87,0x84,0x7E,0x7D,0x7A,0x7B,0x7E, - 0x80,0x7F,0x79,0x77,0x80,0x85,0x8D,0x8F,0x86,0x81,0x78,0x73,0x77,0x7C,0x7F,0x7F, - 0x7D,0x7C,0x7A,0x7F,0x84,0x86,0x89,0x85,0x80,0x7F,0x7E,0x80,0x81,0x82,0x80,0x7C, - 0x7F,0x86,0x8A,0x93,0x8E,0x87,0x84,0x7A,0x79,0x7C,0x7F,0x82,0x80,0x7E,0x7C,0x7E, - 0x81,0x81,0x86,0x88,0x83,0x80,0x7C,0x7C,0x7D,0x7F,0x80,0x7B,0x79,0x7F,0x84,0x8B, - 0x8F,0x88,0x85,0x7E,0x76,0x76,0x7A,0x7D,0x7F,0x7D,0x7B,0x7C,0x7D,0x7F,0x82,0x86, - 0x85,0x84,0x82,0x7F,0x7F,0x7F,0x80,0x7F,0x7A,0x7C,0x84,0x87,0x8E,0x8F,0x88,0x87, - 0x7F,0x7B,0x7D,0x7C,0x7E,0x7F,0x7E,0x7D,0x7F,0x80,0x81,0x83,0x85,0x85,0x85,0x80, - 0x7F,0x7F,0x7E,0x7F,0x7B,0x7A,0x7F,0x84,0x87,0x8D,0x88,0x85,0x85,0x7D,0x7B,0x7C, - 0x7A,0x7D,0x7D,0x7B,0x7C,0x80,0x80,0x80,0x83,0x85,0x85,0x84,0x80,0x7E,0x7D,0x7E, - 0x7F,0x7C,0x7C,0x83,0x86,0x8A,0x8D,0x86,0x86,0x85,0x7D,0x7D,0x7D,0x7B,0x7F,0x7C, - 0x7B,0x7F,0x7E,0x80,0x82,0x83,0x85,0x85,0x84,0x82,0x7F,0x7D,0x7C,0x7D,0x7B,0x7C, - 0x83,0x83,0x88,0x88,0x81,0x85,0x80,0x7C,0x7E,0x7B,0x7B,0x7E,0x7D,0x7B,0x7D,0x7D, - 0x7D,0x7E,0x81,0x82,0x83,0x83,0x82,0x7E,0x7C,0x7F,0x7D,0x7A,0x7E,0x82,0x81,0x86, - 0x86,0x81,0x85,0x80,0x7C,0x7F,0x7B,0x7C,0x7F,0x7C,0x7D,0x7E,0x7D,0x7F,0x80,0x81, - 0x84,0x84,0x84,0x83,0x81,0x81,0x82,0x81,0x7F,0x82,0x81,0x83,0x8B,0x84,0x80,0x83, - 0x7D,0x7D,0x7D,0x7C,0x7F,0x7D,0x7B,0x7F,0x7D,0x7A,0x7C,0x7C,0x7E,0x7C,0x8E,0x8A, - 0x7C,0x87,0x68,0x71,0x82,0x6E,0x6A,0x74,0x82,0x8A,0x8A,0x8B,0x8E,0x85,0x8C,0x9D, - 0x9A,0xA1,0xA5,0x91,0x8C,0x76,0x77,0x91,0x76,0x65,0x72,0x71,0x5B,0x5B,0x57,0x52, - 0x6B,0x63,0x62,0x59,0x5D,0x73,0x70,0x6D,0x79,0x79,0x82,0xA5,0x8B,0x8D,0x98,0x9B, - 0xAC,0x81,0xB8,0xBC,0x95,0xB4,0x96,0x9E,0xB1,0xA4,0x95,0x8D,0x95,0x9C,0x7D,0x70, - 0x76,0x5F,0x78,0x78,0x6F,0x8B,0x79,0x6B,0x77,0x77,0x7D,0x6E,0x4C,0x4B,0x56,0x62, - 0x64,0x62,0x5D,0x54,0x5A,0x6F,0x6E,0x6D,0x7E,0x80,0x95,0xA6,0x9C,0x8F,0x9B,0x9D, - 0x92,0x97,0xA4,0xB2,0xAD,0x9A,0xA3,0xA9,0xA2,0xA4,0x96,0x92,0x8E,0x8C,0x82,0x76, - 0x7F,0x76,0x76,0x74,0x72,0x7B,0x73,0x67,0x50,0x43,0x52,0x5E,0x43,0x30,0x41,0x3D, - 0x32,0x38,0x4B,0x5D,0x54,0x59,0x68,0x69,0x75,0x96,0xA7,0xA0,0x92,0x8E,0x9F,0x9B, - 0x92,0x96,0x94,0x9F,0x9E,0xA2,0xB9,0xB2,0xA9,0xB6,0xAD,0xA5,0xA6,0x88,0x8E,0x96, - 0x83,0x94,0x92,0x81,0x7E,0x71,0x6B,0x7F,0x87,0x7F,0x7F,0x6F,0x7E,0x82,0x6E,0x70, - 0x71,0x7F,0x81,0x74,0x6D,0x63,0x6A,0x6C,0x65,0x63,0x5F,0x72,0x80,0x76,0x82,0x81, - 0x7B,0x89,0x78,0x83,0x93,0x91,0x99,0x95,0x9E,0xA3,0xAF,0xBB,0xAD,0xB7,0xC1,0xB6, - 0xBD,0xBA,0xB2,0xB2,0xAE,0xAD,0xA5,0x99,0x89,0x78,0x74,0x6E,0x78,0x69,0x5D,0x75, - 0x75,0x6C,0x5C,0x49,0x44,0x46,0x4B,0x51,0x45,0x39,0x36,0x37,0x31,0x2C,0x39,0x39, - 0x3A,0x3C,0x3A,0x3D,0x46,0x50,0x4E,0x67,0x86,0x90,0x89,0x73,0x78,0x88,0x8A,0x99, - 0x9B,0x9A,0xA6,0x95,0x87,0x8B,0x90,0x96,0xA6,0xBC,0xB8,0xBC,0xC6,0xD0,0xD7,0xD1, - 0xD6,0xD8,0xD6,0xD7,0xCB,0xBC,0xAE,0xA0,0xA5,0xB3,0xB3,0xA4,0x8A,0x77,0x73,0x75, - 0x78,0x6E,0x69,0x64,0x72,0x6D,0x5C,0x57,0x47,0x58,0x54,0x55,0x5E,0x4E,0x55,0x5D, - 0x5E,0x54,0x52,0x5E,0x64,0x6F,0x7E,0x6E,0x6B,0x7B,0x6B,0x72,0x7B,0x78,0x7F,0x83, - 0x8F,0x94,0x97,0x95,0x98,0x93,0x94,0x96,0x91,0x95,0x9B,0x9F,0x9C,0xA4,0x9E,0x98, - 0xA5,0xA4,0x9B,0x8D,0x82,0x80,0x81,0x7D,0x80,0x7E,0x71,0x7B,0x7B,0x79,0x77,0x6F, - 0x66,0x51,0x50,0x56,0x61,0x74,0x6F,0x6F,0x7A,0x81,0x84,0x86,0x7F,0x6E,0x63,0x5B, - 0x66,0x77,0x81,0x74,0x5D,0x60,0x6E,0x80,0x82,0x70,0x71,0x79,0x79,0x79,0x82,0x8D, - 0x81,0x7D,0x78,0x78,0x91,0x90,0x8E,0x82,0x73,0x7F,0x87,0x91,0x99,0x91,0x89,0x7D, - 0x7E,0x93,0xA2,0xB5,0xB3,0xA0,0xA3,0xB1,0xB0,0xAD,0xAD,0x9F,0xB3,0xC5,0xBF,0xC5, - 0xB1,0xA5,0xAA,0xAF,0xB3,0xA5,0x9F,0xA4,0xA2,0x9A,0x8D,0x8E,0x95,0x92,0x92,0x84, - 0x77,0x65,0x55,0x55,0x53,0x5C,0x60,0x61,0x6D,0x75,0x69,0x5D,0x59,0x4D,0x57,0x5D, - 0x59,0x58,0x53,0x4C,0x42,0x41,0x38,0x35,0x46,0x49,0x4F,0x4D,0x41,0x42,0x3B,0x44, - 0x58,0x5F,0x65,0x6D,0x7D,0x83,0x7F,0x7D,0x7B,0x8D,0xA0,0xA6,0xA8,0x9E,0x94,0x92, - 0x8F,0x95,0x89,0x89,0xA1,0x95,0x92,0x89,0x76,0x8A,0x92,0x91,0x9F,0x9B,0x9A,0xAB, - 0xA5,0x93,0x95,0x93,0x9C,0xB9,0xB9,0xA6,0x9F,0x97,0xA2,0xAD,0xAB,0xA8,0x8F,0x91, - 0xA4,0x9B,0x90,0x81,0x7A,0x85,0x91,0x9A,0x99,0x91,0x85,0x86,0x86,0x7F,0x7C,0x81, - 0x8B,0x87,0x7C,0x71,0x66,0x74,0x8F,0x8A,0x80,0x65,0x65,0x7E,0x79,0x6E,0x47,0x30, - 0x41,0x5A,0x68,0x62,0x5C,0x5A,0x5A,0x5D,0x5F,0x59,0x5C,0x68,0x79,0x75,0x67,0x6A, - 0x70,0x72,0x71,0x78,0x79,0x73,0x74,0x7A,0x70,0x5F,0x5A,0x58,0x60,0x6C,0x6E,0x63, - 0x6B,0x77,0x75,0x7B,0x80,0x91,0xA2,0xAB,0xAE,0xA9,0x9D,0x9A,0xA1,0xA6,0xA6,0xA0, - 0x93,0x8A,0x99,0xB2,0xAE,0x9F,0x92,0x84,0x8B,0x93,0x8E,0x86,0x88,0x8D,0x8C,0x7E, - 0x76,0x79,0x86,0x93,0x8A,0x7D,0x80,0x8A,0x8F,0x8F,0x86,0x78,0x7C,0x7D,0x70,0x72, - 0x70,0x6D,0x6E,0x6E,0x6F,0x75,0x71,0x75,0x81,0x79,0x7E,0x77,0x61,0x6F,0x7D,0x86, - 0x8D,0x82,0x82,0x86,0x87,0x8F,0x8B,0x7C,0x7B,0x79,0x72,0x7F,0x85,0x74,0x65,0x5F, - 0x68,0x77,0x77,0x7D,0x7F,0x76,0x6A,0x5B,0x59,0x6A,0x81,0x88,0x7C,0x75,0x74,0x70, - 0x79,0x80,0x7C,0x77,0x72,0x79,0x72,0x61,0x6C,0x6A,0x62,0x6E,0x6B,0x75,0x7C,0x78, - 0x8A,0x8D,0x8D,0x90,0x8A,0x93,0xA3,0xAC,0xA7,0xA0,0xA6,0xA4,0xA1,0xA5,0xA4,0xA5, - 0x9E,0x94,0x87,0x83,0x93,0x91,0x80,0x79,0x74,0x80,0x8B,0x8C,0x94,0x95,0x90,0x89, - 0x7B,0x7A,0x88,0x91,0x8F,0x80,0x7D,0x7E,0x74,0x75,0x7C,0x86,0x85,0x7A,0x72,0x6B, - 0x74,0x7F,0x7A,0x6D,0x65,0x67,0x73,0x77,0x7E,0x80,0x7A,0x7A,0x79,0x7D,0x84,0x86, - 0x83,0x80,0x7C,0x7C,0x78,0x6C,0x70,0x7B,0x80,0x77,0x72,0x6D,0x7A,0x91,0x87,0x73, - 0x61,0x65,0x72,0x72,0x7B,0x7E,0x7F,0x78,0x6F,0x69,0x68,0x70,0x6E,0x6D,0x6A,0x64, - 0x64,0x5B,0x5F,0x71,0x76,0x6F,0x69,0x66,0x6B,0x83,0x86,0x73,0x6F,0x6E,0x7A,0x8F, - 0x8B,0x90,0x97,0x98,0x9E,0x9B,0xA0,0xAA,0xB1,0xB2,0xB3,0xAE,0xA2,0xA2,0xA2,0xA8, - 0xAA,0xA2,0x9A,0x95,0x99,0xAF,0xB4,0x9C,0x94,0x90,0x91,0x99,0x97,0x9B,0xA0,0x9A, - 0x8C,0x7E,0x85,0x94,0x96,0x97,0x94,0x8D,0x88,0x85,0x88,0x8B,0x89,0x82,0x75,0x79, - 0x7B,0x86,0x90,0x80,0x80,0x74,0x74,0x88,0x81,0x83,0x86,0x81,0x75,0x66,0x69,0x6D, - 0x76,0x7A,0x77,0x72,0x69,0x69,0x64,0x6D,0x74,0x68,0x69,0x67,0x5E,0x6A,0x76,0x68, - 0x64,0x5D,0x60,0x6B,0x45,0x49,0x6F,0x77,0x5F,0x45,0x58,0x4E,0x4C,0x61,0x5B,0x52, - 0x52,0x5F,0x53,0x53,0x69,0x6C,0x5F,0x59,0x68,0x62,0x6B,0x72,0x6A,0x74,0x71,0x70, - 0x81,0x81,0x82,0x8F,0x8D,0x8C,0x88,0x90,0xAC,0xB0,0xB0,0xAC,0xAB,0xAB,0xAB,0xB5, - 0xAF,0xB1,0xB1,0xA9,0xAD,0xA1,0xA8,0xBE,0xAC,0x9D,0xA2,0x9E,0x9A,0x98,0x97,0xA1, - 0xA9,0x98,0x8A,0x8B,0x97,0xA1,0x9B,0xA1,0x9F,0xA2,0xA5,0x94,0x9A,0xA9,0xA8,0xA0, - 0x9B,0x9A,0x93,0xA1,0xAF,0xA4,0x99,0x90,0x90,0x8F,0x92,0x96,0x98,0x97,0x89,0x7F, - 0x73,0x7C,0x8A,0x7F,0x7D,0x7F,0x79,0x71,0x73,0x7C,0x7B,0x7A,0x6E,0x64,0x60,0x62, - 0x78,0x73,0x61,0x5D,0x54,0x5E,0x5C,0x50,0x5C,0x60,0x58,0x49,0x35,0x36,0x42,0x49, - 0x4C,0x4C,0x4A,0x36,0x25,0x31,0x3F,0x43,0x42,0x36,0x34,0x38,0x41,0x60,0x63,0x55, - 0x55,0x58,0x68,0x6F,0x72,0x80,0x87,0x85,0x7F,0x79,0x82,0x93,0x97,0x97,0x97,0x93, - 0x8B,0x8C,0x97,0xA1,0xA2,0x97,0x8A,0x8C,0x8D,0x8E,0xA6,0xA0,0x8E,0x8C,0x8B,0x90, - 0x8F,0x90,0x9F,0xAA,0xA1,0x91,0x8A,0x8E,0x9C,0xA6,0xA7,0xAA,0xA2,0x9D,0x9F,0xA0, - 0xAE,0xAD,0xA3,0x9F,0x9C,0xA5,0xA4,0xB4,0xBF,0xA8,0xA4,0xA0,0x9B,0xA5,0xA4,0xAC, - 0xB4,0xA3,0x92,0x87,0x89,0x96,0x98,0x98,0x92,0x90,0x89,0x7E,0x7E,0x86,0x8B,0x86, - 0x7D,0x77,0x77,0x6D,0x74,0x84,0x75,0x66,0x5E,0x57,0x60,0x63,0x61,0x68,0x62,0x54, - 0x49,0x44,0x4F,0x5C,0x5A,0x58,0x59,0x56,0x4F,0x4E,0x5B,0x65,0x64,0x62,0x5D,0x5F, - 0x6A,0x68,0x80,0x8D,0x80,0x7E,0x76,0x7B,0x86,0x83,0x8D,0x98,0x90,0x80,0x74,0x75, - 0x84,0x8B,0x86,0x84,0x82,0x7D,0x79,0x78,0x82,0x8B,0x84,0x80,0x7A,0x79,0x76,0x7F, - 0x97,0x91,0x81,0x79,0x70,0x78,0x80,0x82,0x8D,0x8D,0x80,0x7B,0x79,0x84,0x8E,0x8D, - 0x8A,0x8E,0x91,0x86,0x7E,0x82,0x91,0x94,0x8F,0x8A,0x81,0x86,0x83,0x8F,0xA6,0x99, - 0x8A,0x81,0x80,0x8B,0x8E,0x8E,0x94,0x8E,0x85,0x7A,0x73,0x7F,0x85,0x82,0x84,0x83, - 0x7A,0x6E,0x66,0x6F,0x7B,0x77,0x6E,0x64,0x5F,0x5F,0x5D,0x6F,0x7D,0x6E,0x5E,0x54, - 0x50,0x5A,0x5C,0x60,0x6F,0x6D,0x60,0x5B,0x5D,0x6D,0x7A,0x79,0x7D,0x81,0x80,0x7C, - 0x7A,0x89,0x99,0x9A,0x99,0x95,0x92,0x93,0x8F,0xA3,0xB3,0xA3,0x92,0x89,0x88,0x91, - 0x8F,0x8C,0x95,0x8F,0x88,0x80,0x77,0x84,0x8A,0x88,0x8F,0x8F,0x89,0x7D,0x76,0x84, - 0x91,0x8E,0x88,0x82,0x80,0x85,0x83,0x91,0x9F,0x92,0x88,0x81,0x85,0x8C,0x8B,0x91, - 0x9B,0xA0,0x97,0x8B,0x86,0x8E,0x9A,0x9B,0x98,0x99,0x92,0x89,0x86,0x8B,0x96,0x95, - 0x93,0x8F,0x84,0x84,0x7C,0x87,0xA1,0x95,0x83,0x7A,0x73,0x7A,0x7D,0x7D,0x85,0x84, - 0x78,0x6C,0x63,0x68,0x74,0x75,0x72,0x73,0x71,0x66,0x5B,0x5D,0x6E,0x75,0x70,0x69, - 0x5F,0x5E,0x5E,0x67,0x81,0x82,0x74,0x6A,0x66,0x70,0x74,0x79,0x87,0x8C,0x86,0x7B, - 0x75,0x79,0x83,0x8A,0x8D,0x8E,0x8A,0x82,0x7A,0x78,0x83,0x8C,0x8A,0x84,0x7E,0x7B, - 0x78,0x72,0x87,0x9B,0x8C,0x7D,0x75,0x72,0x7E,0x82,0x83,0x8D,0x8D,0x85,0x7B,0x72, - 0x7C,0x87,0x8A,0x8A,0x89,0x8A,0x81,0x77,0x7A,0x87,0x8D,0x88,0x82,0x7F,0x7E,0x7A, - 0x82,0x98,0x99,0x8C,0x82,0x78,0x7C,0x84,0x87,0x8F,0x95,0x92,0x87,0x78,0x77,0x83, - 0x89,0x8C,0x8E,0x8C,0x87,0x7D,0x78,0x81,0x8A,0x8C,0x88,0x7F,0x7A,0x79,0x73,0x85, - 0x97,0x8C,0x7E,0x70,0x6A,0x73,0x78,0x7A,0x81,0x83,0x7F,0x72,0x63,0x68,0x75,0x7C, - 0x7F,0x7E,0x7B,0x76,0x6E,0x6D,0x78,0x84,0x89,0x84,0x7A,0x7A,0x7D,0x7C,0x8F,0x9D, - 0x94,0x8C,0x7D,0x7A,0x84,0x84,0x8B,0x91,0x8D,0x88,0x7D,0x72,0x78,0x82,0x87,0x88, - 0x83,0x80,0x7B,0x72,0x73,0x7A,0x84,0x87,0x7D,0x74,0x71,0x70,0x72,0x89,0x94,0x86, - 0x7A,0x6D,0x6E,0x76,0x77,0x7E,0x83,0x85,0x82,0x74,0x6F,0x76,0x80,0x86,0x86,0x85, - 0x84,0x80,0x77,0x75,0x7E,0x89,0x8E,0x86,0x7C,0x7B,0x79,0x78,0x8B,0x96,0x8B,0x80, - 0x71,0x6F,0x79,0x7B,0x81,0x85,0x85,0x87,0x7C,0x71,0x74,0x7A,0x84,0x88,0x85,0x86, - 0x81,0x76,0x71,0x77,0x82,0x88,0x83,0x7D,0x7A,0x76,0x72,0x82,0x90,0x8C,0x81,0x70, - 0x6C,0x75,0x78,0x7D,0x83,0x86,0x87,0x7C,0x72,0x75,0x7D,0x84,0x8A,0x8B,0x8C,0x8C, - 0x86,0x81,0x80,0x88,0x95,0x93,0x8B,0x85,0x7D,0x77,0x81,0x97,0x96,0x8C,0x7D,0x76, - 0x7B,0x79,0x7A,0x7C,0x82,0x86,0x81,0x74,0x6D,0x6E,0x75,0x7F,0x82,0x82,0x81,0x80, - 0x7A,0x73,0x76,0x81,0x86,0x85,0x81,0x7A,0x73,0x75,0x8A,0x96,0x90,0x86,0x76,0x77, - 0x7F,0x7C,0x80,0x82,0x86,0x8C,0x82,0x78,0x75,0x77,0x82,0x8A,0x88,0x87,0x84,0x83, - 0x7F,0x77,0x7C,0x85,0x89,0x8A,0x82,0x79,0x71,0x77,0x8C,0x93,0x8C,0x7F,0x73,0x75, - 0x7A,0x7D,0x7F,0x7F,0x85,0x8E,0x87,0x79,0x74,0x76,0x82,0x88,0x86,0x86,0x84,0x82, - 0x7C,0x79,0x7C,0x85,0x8A,0x84,0x7F,0x78,0x6F,0x7A,0x92,0x94,0x8F,0x7F,0x70,0x7B, - 0x7D,0x83,0x82,0x80,0x8B,0x88,0x86,0x80,0x79,0x76,0x7C,0x87,0x89,0x8B,0x80,0x75, - 0x76,0x80,0x85,0x7A,0x7C,0x89,0x83,0x72,0x65,0x6E,0x8E,0x9A,0x8D,0x79,0x6B,0x76, - 0x77,0x74,0x8C,0x84,0x6D,0x7C,0x8E,0x81,0x79,0x7D,0x6C,0x78,0x85,0x80,0x82,0x7D, - 0x83,0x8A,0x83,0x75,0x7A,0x8D,0x89,0x7A,0x7B,0x79,0x85,0x8F,0x95,0x97,0x77,0x68, - 0x76,0x8A,0x95,0x89,0x71,0x73,0x89,0x83,0x7D,0x79,0x71,0x81,0x83,0x79,0x89,0x8F, - 0x79,0x81,0x8B,0x75,0x72,0x73,0x85,0x90,0x7E,0x70,0x75,0x84,0x84,0xA0,0x9D,0x79, - 0x72,0x65,0x66,0x7F,0x89,0x86,0x90,0x7F,0x7A,0x91,0x80,0x6E,0x77,0x80,0x80,0x83, - 0x80,0x78,0x85,0x8D,0x8B,0x94,0x80,0x6D,0x7F,0x85,0x74,0x73,0x83,0x83,0x8E,0x8E, - 0x7C,0x7B,0x72,0x73,0x8E,0x95,0x7F,0x72,0x73,0x83,0x8B,0x8B,0x85,0x71,0x6C,0x72, - 0x79,0x87,0x93,0x91,0x96,0x90,0x79,0x8C,0x89,0x70,0x7C,0x81,0x69,0x64,0x77,0x7A, - 0x8E,0x95,0x86,0x8A,0x7F,0x69,0x75,0x84,0x7A,0x80,0x86,0x79,0x77,0x79,0x76,0x7A, - 0x87,0x86,0x94,0x9C,0x81,0x7A,0x7F,0x87,0x8F,0x91,0x8F,0x7E,0x6A,0x5E,0x5C,0x6D, - 0x86,0x8D,0x96,0x99,0x7D,0x7A,0x8B,0x89,0x87,0x90,0x93,0x84,0x81,0x79,0x80,0x90, - 0x85,0x88,0x89,0x72,0x5A,0x68,0x74,0x6F,0x74,0x6E,0x6C,0x6E,0x76,0x88,0x9B,0x98, - 0x99,0xA0,0x91,0x8C,0x88,0x8F,0x8D,0x85,0x84,0x74,0x7C,0x76,0x68,0x76,0x76,0x7D, - 0x89,0x84,0x7A,0x6D,0x96,0x93,0x82,0x9E,0xA2,0xA2,0x7D,0x6F,0x7D,0x85,0x7B,0x5A, - 0x74,0x77,0x53,0x58,0x65,0x64,0x6B,0x65,0x6A,0x99,0xA2,0x86,0x8B,0x95,0x8B,0x98, - 0x9E,0x9B,0x98,0x96,0xA1,0x99,0x88,0x79,0x6D,0x70,0x61,0x67,0x7C,0x85,0x86,0x76, - 0x64,0x54,0x6E,0x8E,0x8F,0x8F,0x8F,0x86,0x7B,0x7B,0x75,0x7A,0x8D,0x8E,0x93,0xA7, - 0x93,0x7C,0x8C,0x91,0x98,0x96,0x8E,0x83,0x5F,0x5F,0x61,0x5C,0x66,0x6C,0x72,0x67, - 0x57,0x4F,0x55,0x6B,0x80,0x81,0x7C,0x78,0x7E,0x83,0x88,0xA3,0xAA,0xAF,0xC3,0xAE, - 0xA4,0xB6,0x93,0x82,0x8D,0x81,0x7D,0x7C,0x74,0x73,0x85,0x87,0x84,0x81,0x73,0x61, - 0x5D,0x6A,0x77,0x7F,0x7D,0x75,0x73,0x7B,0x6C,0x72,0x75,0x66,0x7C,0x85,0x77,0x7A, - 0x80,0x84,0x82,0x8F,0xA4,0x9C,0x8B,0x84,0x7C,0x8F,0x9F,0x95,0x8F,0x81,0x69,0x6E, - 0x7F,0x68,0x6E,0x8C,0x73,0x6B,0x79,0x70,0x82,0x78,0x72,0x86,0x76,0x66,0x6A,0x6C, - 0x6B,0x8F,0x9C,0x98,0x8F,0x86,0x8F,0x83,0x84,0x8E,0x8D,0x96,0x8A,0x78,0x8C,0x94, - 0x8D,0x8B,0x92,0x87,0x6A,0x63,0x66,0x6E,0x75,0x73,0x79,0x7C,0x63,0x63,0x77,0x6F, - 0x63,0x80,0x8C,0x7F,0x8A,0x84,0x88,0x98,0x98,0xA3,0xBA,0xB2,0xA5,0xA7,0xA2,0x97, - 0x7B,0x7C,0x77,0x6A,0x68,0x56,0x53,0x63,0x71,0x7B,0x82,0x81,0x76,0x67,0x64,0x71, - 0x83,0x7F,0x73,0x70,0x77,0x84,0x84,0x8E,0x99,0xA5,0xA1,0x86,0x89,0x8C,0x80,0x82, - 0x8C,0x7E,0x72,0x6E,0x66,0x6D,0x79,0x82,0x8E,0x95,0x73,0x71,0x87,0x73,0x7D,0x83, - 0x83,0x79,0x66,0x79,0x8E,0x89,0x7A,0x8F,0x95,0x8E,0x85,0x6E,0x80,0x85,0x7A,0x8D, - 0x87,0x77,0x79,0x79,0x8F,0x93,0x87,0x90,0x8B,0x75,0x73,0x82,0x7E,0x80,0x88,0x76, - 0x79,0x7C,0x5F,0x6C,0x77,0x63,0x7D,0x8C,0x74,0x76,0x7A,0x76,0x7E,0x86,0x94,0x8E, - 0x87,0x95,0x93,0x96,0x8B,0x90,0xA5,0xAA,0x9C,0x8C,0x8A,0x7B,0x80,0x7D,0x82,0x78, - 0x62,0x78,0x74,0x6C,0x72,0x78,0x7F,0x7B,0x75,0x80,0x77,0x58,0x6D,0x8F,0x80,0x7A, - 0x7D,0x71,0x7B,0x80,0x7E,0x9A,0xA3,0x86,0x89,0x94,0x82,0x86,0x8E,0x93,0x87,0x7C, - 0x7D,0x70,0x6F,0x66,0x6B,0x7C,0x70,0x63,0x74,0x6E,0x6F,0x7A,0x7B,0x88,0x7A,0x7E, - 0x8C,0x93,0x94,0x8C,0x99,0x9A,0x91,0x82,0x7F,0x6E,0x70,0x86,0x77,0x6C,0x82,0x85, - 0x7D,0x8B,0x84,0x8E,0x93,0x7B,0x68,0x78,0x85,0x79,0x8F,0x99,0x8A,0x88,0x80,0x7D, - 0x77,0x6B,0x68,0x6F,0x88,0x87,0x7A,0x86,0x83,0x87,0x92,0x8E,0x84,0x7B,0x7A,0x76, - 0x7C,0x88,0x92,0xA0,0x95,0x90,0xA3,0x90,0x78,0x87,0x8D,0x80,0x7A,0x76,0x6E,0x65, - 0x5E,0x68,0x87,0x78,0x6C,0x94,0x84,0x70,0x7F,0x86,0x89,0x8A,0x86,0x7D,0x78,0x74, - 0x74,0x7C,0x8F,0x80,0x7B,0x87,0x77,0x6D,0x78,0x8D,0x79,0x6B,0x80,0x7C,0x6B,0x70, - 0x7B,0x7E,0x89,0x89,0x97,0x90,0x71,0x74,0x7E,0x7F,0x76,0x79,0x81,0x7B,0x83,0x87, - 0x9D,0xA8,0x87,0x8F,0x9A,0x77,0x77,0x85,0x8A,0x7F,0x6E,0x73,0x7A,0x77,0x71,0x79, - 0x8B,0x82,0x7C,0x89,0x83,0x6E,0x69,0x83,0x84,0x73,0x84,0x90,0x83,0x81,0x7C,0x89, - 0x9A,0x88,0x8F,0x93,0x86,0x71,0x79,0x9A,0x83,0x7A,0x7C,0x6F,0x6D,0x66,0x71,0x94, - 0x8E,0x7B,0x9C,0x96,0x82,0x94,0x90,0x8E,0x8C,0x77,0x70,0x78,0x70,0x6B,0x6F,0x7C, - 0x7A,0x7C,0x81,0x76,0x72,0x8B,0xA4,0x90,0x7F,0x8B,0x8E,0x79,0x74,0x72,0x80,0x8F, - 0x85,0x89,0x7C,0x64,0x5A,0x68,0x70,0x69,0x74,0x6A,0x73,0x85,0x78,0x90,0x92,0x6E, - 0x81,0x99,0x7C,0x68,0x7B,0x97,0x8A,0x7B,0x81,0x80,0x7D,0x75,0x79,0x88,0x9B,0x99, - 0x97,0x99,0x82,0x84,0x93,0x8C,0x7C,0x7A,0x7E,0x7F,0x7C,0x7E,0x84,0x82,0x84,0x89, - 0x79,0x68,0x59,0x50,0x6E,0x76,0x7C,0x81,0x7C,0x8F,0x7F,0x7E,0x9B,0x8D,0x86,0x97, - 0x94,0x8F,0x8A,0x95,0x98,0x8D,0x89,0x7A,0x79,0x70,0x65,0x6A,0x66,0x74,0x7F,0x76, - 0x81,0x72,0x7C,0xA3,0x9C,0x95,0x95,0x9E,0x9E,0x82,0x79,0x80,0x82,0x80,0x81,0x7C, - 0x6C,0x64,0x5B,0x6F,0x89,0x7E,0x73,0x7D,0x7A,0x73,0x7C,0x77,0x76,0x85,0x8A,0x89, - 0x79,0x6D,0x87,0x86,0x89,0x97,0x8A,0x87,0x72,0x6C,0x73,0x7B,0x8B,0x81,0x7F,0x89, - 0x76,0x76,0x90,0x8B,0x78,0x7A,0x8F,0x87,0x76,0x7C,0x78,0x82,0x9A,0x8D,0x86,0x78, - 0x70,0x7F,0x81,0x82,0x75,0x74,0x7D,0x74,0x73,0x7B,0x7F,0x8D,0x98,0xA1,0xA6,0x85, - 0x7A,0x86,0x7F,0x80,0x7C,0x7E,0x75,0x76,0x79,0x76,0x80,0x73,0x6F,0x8C,0x94,0x6E, - 0x97,0xA6,0x6A,0x7F,0x84,0x87,0x88,0x75,0x86,0x6F,0x7D,0x91,0x79,0x7E,0x7A,0x6B, - 0x74,0x8C,0x91,0x8E,0x8B,0x8D,0x94,0x8C,0x73,0x74,0x8C,0x87,0x83,0x78,0x70,0x70, - 0x75,0x85,0x86,0x8A,0x83,0x78,0x7A,0x66,0x6B,0x95,0x8B,0x80,0x97,0x82,0x77,0x8A, - 0x7C,0x7D,0x7C,0x72,0x8E,0x8D,0x75,0x77,0x72,0x84,0x84,0x71,0x71,0x58,0x5E,0x72, - 0x80,0x83,0x67,0x6B,0x7B,0x74,0x6B,0x7E,0x94,0x96,0xA3,0xB8,0xA6,0x81,0x87,0x9A, - 0x98,0x87,0x82,0x80,0x7D,0x7E,0x5F,0x6C,0x95,0x80,0x7C,0x8C,0x6D,0x74,0x88,0x72, - 0x77,0x73,0x76,0x83,0x7D,0x79,0x78,0x93,0x8B,0x83,0x90,0x7D,0x6B,0x63,0x70,0x8E, - 0x93,0x80,0x8B,0x95,0x86,0x6C,0x76,0x8F,0x7F,0x82,0x84,0x76,0x76,0x79,0x8A,0xA0, - 0xA8,0x98,0x8D,0x8A,0x78,0x76,0x8F,0x96,0x82,0x88,0x86,0x70,0x71,0x7B,0x77,0x69, - 0x64,0x7E,0x8A,0x76,0x67,0x6D,0x88,0x80,0x7F,0x87,0x72,0x71,0x62,0x73,0x8D,0x78, - 0x7F,0x88,0x81,0x70,0x73,0x95,0x90,0x87,0x9C,0x9E,0x7C,0x6E,0x77,0x83,0x87,0x7F, - 0x7A,0x78,0x6A,0x55,0x61,0x83,0x80,0x7D,0xA1,0x9A,0x7F,0x92,0x8F,0x8D,0x7C,0x7C, - 0x95,0x85,0x7B,0x6F,0x80,0x85,0x82,0x9B,0x90,0x77,0x68,0x6E,0x87,0x7F,0x66,0x78, - 0x93,0x81,0x67,0x7D,0x9A,0x84,0x83,0x95,0x8E,0x7E,0x75,0x83,0x95,0x8C,0x83,0x88, - 0x7E,0x70,0x63,0x7D,0x84,0x6D,0x87,0x8A,0x72,0x71,0x79,0x7F,0x72,0x6B,0x89,0xA8, - 0xA0,0x7E,0x85,0xA4,0x8D,0x8B,0x9E,0x91,0x78,0x5D,0x7B,0x96,0x77,0x6F,0x82,0x7D, - 0x64,0x68,0x7C,0x7D,0x73,0x86,0x9A,0x80,0x62,0x6A,0x8A,0x8B,0x7C,0x82,0x8A,0x79, - 0x5A,0x66,0x8E,0x88,0x6D,0x84,0x94,0x78,0x7A,0x84,0x7B,0x71,0x71,0x8C,0x91,0x79, - 0x65,0x79,0x82,0x77,0x9A,0xA3,0x90,0x7D,0x72,0x92,0x96,0x76,0x7F,0x93,0x84,0x6C, - 0x6D,0x87,0x7E,0x6F,0x81,0x8A,0x88,0x74,0x6E,0x89,0x88,0x76,0x7A,0x78,0x65,0x61, - 0x77,0x8A,0x8C,0x90,0x9C,0x9A,0x7E,0x7F,0x8D,0x74,0x6C,0x75,0x90,0x9B,0x78,0x71, - 0x8A,0x85,0x7C,0x93,0x96,0x80,0x67,0x67,0x83,0x8B,0x74,0x80,0x97,0x7E,0x7C,0x90, - 0x90,0x87,0x90,0x9C,0x92,0x8D,0x72,0x74,0x82,0x70,0x7B,0x88,0x7D,0x61,0x61,0x76, - 0x78,0x6C,0x75,0x91,0x82,0x72,0x86,0x88,0x71,0x65,0x78,0x8A,0x84,0x70,0x7E,0x8A, - 0x78,0x91,0x9D,0x98,0x88,0x64,0x6D,0x85,0x7E,0x70,0x81,0x90,0x74,0x6B,0x81,0x75, - 0x67,0x74,0x84,0x93,0x8B,0x78,0x89,0x98,0x8F,0x9D,0x98,0x82,0x73,0x68,0x75,0x75, - 0x74,0x8C,0x97,0x8C,0x84,0x92,0x83,0x6E,0x72,0x72,0x81,0x76,0x65,0x7C,0x83,0x6F, - 0x80,0xA2,0x9B,0x84,0x77,0x7E,0x8A,0x8C,0x87,0x8A,0x89,0x79,0x7E,0x86,0x80,0x7F, - 0x8F,0x88,0x89,0x8A,0x71,0x74,0x70,0x72,0x87,0x88,0x7C,0x71,0x7E,0x89,0x7A,0x7E, - 0x99,0x9A,0x96,0x97,0x9A,0x8B,0x7A,0x7E,0x7C,0x70,0x68,0x6D,0x71,0x6F,0x6F,0x82, - 0x93,0x92,0x7E,0x6D,0x6F,0x6A,0x74,0x88,0x8D,0x83,0x73,0x7F,0x91,0x7C,0x7C,0x8E, - 0x90,0x8E,0x82,0x84,0x7A,0x75,0x81,0x88,0x82,0x71,0x70,0x70,0x69,0x72,0x74,0x75, - 0x8C,0x87,0x86,0x9B,0x89,0x7C,0x91,0x92,0x7D,0x6B,0x81,0x8F,0x6F,0x6C,0x7E,0x8F, - 0x96,0x8D,0x95,0x8E,0x74,0x76,0x87,0x7B,0x73,0x6B,0x6E,0x81,0x74,0x7D,0x91,0x85, - 0x99,0xA1,0x90,0x87,0x6F,0x75,0x8B,0x84,0x79,0x80,0x8A,0x7A,0x6C,0x7D,0x84,0x7B, - 0x85,0x8E,0x93,0x85,0x6C,0x78,0x74,0x61,0x71,0x7E,0x82,0x84,0x82,0x85,0x87,0x92, - 0x99,0x9E,0x93,0x82,0x88,0x8B,0x88,0x7A,0x75,0x88,0x81,0x6E,0x75,0x7D,0x71,0x70, - 0x84,0x7F,0x76,0x73,0x75,0x7F,0x76,0x75,0x7D,0x7C,0x7A,0x83,0x82,0x82,0x8A,0x8A, - 0x96,0x92,0x82,0x80,0x8B,0x87,0x6B,0x78,0x88,0x78,0x69,0x68,0x71,0x68,0x6C,0x84, - 0x92,0x8D,0x81,0x88,0x86,0x7E,0x7F,0x7E,0x82,0x84,0x7F,0x82,0x85,0x84,0x87,0x94, - 0x9A,0x8B,0x89,0x8E,0x8B,0x7C,0x79,0x88,0x7B,0x68,0x6C,0x77,0x6D,0x71,0x83,0x8D, - 0x94,0x8C,0x84,0x82,0x80,0x75,0x75,0x81,0x84,0x7D,0x75,0x7D,0x83,0x83,0x8B,0x94, - 0x8D,0x85,0x87,0x85,0x75,0x74,0x7C,0x79,0x75,0x77,0x80,0x79,0x7F,0x84,0x8D,0x97, - 0x8D,0x88,0x87,0x86,0x7B,0x7F,0x83,0x86,0x8D,0x7B,0x7B,0x83,0x7C,0x84,0x7F,0x78, - 0x83,0x76,0x71,0x79,0x70,0x7C,0x80,0x71,0x78,0x7F,0x77,0x75,0x82,0x8A,0x89,0x8A, - 0x82,0x84,0x88,0x7F,0x7D,0x7F,0x86,0x8C,0x7C,0x7B,0x7E,0x72,0x78,0x78,0x79,0x79, - 0x7A,0x85,0x76,0x79,0x84,0x7B,0x78,0x79,0x7D,0x7B,0x7A,0x80,0x91,0x8F,0x90,0x8F, - 0x85,0x8C,0x88,0x86,0x7C,0x81,0x81,0x73,0x79,0x71,0x72,0x7E,0x81,0x7E,0x80,0x8C, - 0x82,0x7B,0x80,0x88,0x84,0x7B,0x85,0x8A,0x88,0x79,0x7B,0x8F,0x88,0x81,0x81,0x89, - 0x87,0x7A,0x78,0x79,0x7D,0x7B,0x7A,0x84,0x84,0x7B,0x84,0x85,0x84,0x87,0x82,0x7E, - 0x82,0x77,0x7E,0x86,0x75,0x7D,0x84,0x80,0x79,0x80,0x8A,0x85,0x86,0x7B,0x7D,0x78, - 0x76,0x75,0x71,0x7F,0x7B,0x77,0x7E,0x81,0x7E,0x7B,0x81,0x80,0x7A,0x82,0x82,0x76, - 0x78,0x7E,0x78,0x79,0x7A,0x81,0x82,0x75,0x82,0x87,0x80,0x84,0x82,0x7B,0x7E,0x82, - 0x76,0x7A,0x8A,0x85,0x80,0x84,0x85,0x7F,0x7E,0x7F,0x83,0x81,0x82,0x81,0x7E,0x8B, - 0x89,0x83,0x86,0x7F,0x84,0x83,0x72,0x82,0x7F,0x72,0x86,0x7C,0x7E,0x82,0x83,0x9D, - 0x83,0x8A,0x81,0x65,0x86,0x7D,0x69,0x71,0x7E,0x84,0x8C,0x8E,0x91,0x8E,0x90,0x9B, - 0x9E,0x9E,0x8F,0x8D,0x87,0x7E,0x89,0x86,0x7E,0x78,0x73,0x6B,0x67,0x65,0x58,0x56, - 0x62,0x61,0x62,0x67,0x69,0x7B,0x7C,0x77,0x8A,0x7B,0x7B,0x88,0x70,0x78,0x92,0x96, - 0x7C,0x85,0xA3,0x99,0x9D,0xAC,0xA0,0xA5,0xAA,0x9B,0x9A,0x95,0x8C,0x8A,0x8B,0x89, - 0x87,0x81,0x7E,0x7F,0x7A,0x7C,0x7B,0x72,0x68,0x67,0x69,0x60,0x52,0x4F,0x49,0x42, - 0x47,0x52,0x59,0x5E,0x5F,0x6A,0x82,0x90,0x8F,0x8B,0x8B,0x88,0x87,0x94,0x9E,0xA1, - 0xA4,0xAD,0xBB,0xC3,0xC6,0xCD,0xD1,0xCC,0xC6,0xB9,0xAF,0xAD,0xA9,0xA8,0xA6,0x9A, - 0x81,0x75,0x76,0x76,0x74,0x6D,0x60,0x55,0x54,0x4D,0x3E,0x35,0x2E,0x30,0x34,0x36, - 0x3C,0x41,0x42,0x49,0x53,0x59,0x60,0x68,0x70,0x71,0x78,0x84,0x89,0x8A,0x8D,0x8D, - 0x8E,0x92,0x96,0x97,0x93,0x93,0x95,0x9B,0xA3,0xA1,0x9B,0x95,0x90,0x8D,0x85,0x7E, - 0x7C,0x78,0x74,0x76,0x75,0x75,0x75,0x78,0x83,0x90,0x91,0x92,0x9F,0xA7,0xA3,0x9A, - 0x92,0x8B,0x86,0x83,0x7C,0x79,0x78,0x74,0x75,0x77,0x72,0x72,0x78,0x7C,0x7C,0x79, - 0x7E,0x82,0x80,0x7A,0x77,0x77,0x75,0x88,0x9B,0x91,0x92,0x9D,0x9A,0x9A,0x9A,0x92, - 0x91,0x9B,0x9A,0x97,0x9F,0xA2,0xA2,0xA0,0x91,0x89,0x8A,0x81,0x79,0x7A,0x7B,0x7A, - 0x7A,0x79,0x74,0x6F,0x7A,0x89,0x82,0x78,0x79,0x7D,0x7C,0x7B,0x77,0x78,0x80,0x7E, - 0x78,0x7C,0x82,0x84,0x84,0x7E,0x7E,0x88,0x88,0x84,0x88,0x90,0x8F,0x82,0x7F,0x7F, - 0x87,0x95,0x93,0x88,0x88,0x89,0x82,0x7D,0x75,0x71,0x7A,0x7A,0x72,0x73,0x79,0x7A, - 0x74,0x6D,0x6F,0x72,0x70,0x6C,0x6E,0x75,0x73,0x67,0x5B,0x59,0x5B,0x66,0x6E,0x65, - 0x64,0x69,0x5F,0x57,0x50,0x48,0x52,0x57,0x55,0x5B,0x5F,0x5E,0x57,0x51,0x4D,0x52, - 0x59,0x5A,0x63,0x6C,0x6B,0x66,0x6A,0x6E,0x72,0x81,0x92,0x9A,0x9F,0xA6,0xA7,0xA8, - 0xB2,0xBD,0xCC,0xD8,0xD9,0xDB,0xDD,0xDA,0xD8,0xD0,0xC8,0xCB,0xCC,0xC6,0xC6,0xC8, - 0xC1,0xB4,0xA9,0xA8,0x9C,0x95,0xA3,0x9F,0x8F,0x85,0x78,0x6E,0x69,0x61,0x62,0x67, - 0x64,0x61,0x61,0x5E,0x59,0x56,0x55,0x58,0x5E,0x5C,0x5F,0x66,0x61,0x56,0x57,0x5F, - 0x60,0x60,0x6C,0x74,0x6C,0x69,0x6B,0x67,0x65,0x66,0x6D,0x7C,0x83,0x81,0x86,0x87, - 0x82,0x82,0x89,0x91,0x98,0x9E,0xA7,0xAC,0xA6,0xA1,0xA4,0xAB,0xA9,0xA1,0xAF,0xB7, - 0xA4,0x9B,0x9B,0x94,0x90,0x8D,0x90,0x98,0x95,0x87,0x83,0x81,0x73,0x6D,0x74,0x78, - 0x75,0x71,0x71,0x6E,0x67,0x62,0x65,0x66,0x66,0x63,0x65,0x74,0x6D,0x5C,0x63,0x69, - 0x5E,0x5B,0x5F,0x65,0x69,0x5D,0x55,0x5C,0x56,0x4B,0x4E,0x55,0x58,0x57,0x54,0x59, - 0x56,0x4C,0x4B,0x52,0x55,0x4E,0x58,0x6D,0x65,0x5A,0x62,0x64,0x61,0x67,0x75,0x82, - 0x86,0x80,0x86,0x95,0x92,0x93,0xA5,0xB3,0xB7,0xB7,0xBB,0xBF,0xBD,0xB5,0xBC,0xC2, - 0xBC,0xBC,0xB3,0xC1,0xCC,0xB1,0xA9,0xB3,0xA4,0x98,0x9F,0xA2,0xA5,0x9F,0x92,0x9A, - 0x9D,0x8F,0x93,0x9D,0x9E,0xA0,0xA2,0x9F,0x9A,0x91,0x90,0x92,0x92,0x8C,0x89,0x9C, - 0x96,0x7D,0x84,0x87,0x79,0x79,0x81,0x86,0x86,0x79,0x75,0x7D,0x74,0x6C,0x76,0x79, - 0x76,0x7A,0x79,0x79,0x75,0x6C,0x6E,0x6F,0x69,0x72,0x6D,0x70,0x83,0x6D,0x63,0x6F, - 0x62,0x58,0x64,0x69,0x6E,0x6D,0x62,0x67,0x6A,0x5E,0x67,0x74,0x71,0x76,0x76,0x73, - 0x74,0x6E,0x6F,0x75,0x75,0x70,0x6C,0x81,0x84,0x6B,0x70,0x79,0x6C,0x65,0x6C,0x76, - 0x7B,0x71,0x70,0x7C,0x73,0x67,0x72,0x78,0x79,0x7B,0x7C,0x7E,0x7A,0x73,0x7A,0x7F, - 0x7E,0x84,0x7E,0x8B,0x9F,0x83,0x78,0x8C,0x7F,0x6F,0x7B,0x84,0x89,0x84,0x7B,0x85, - 0x85,0x77,0x82,0x8E,0x8C,0x91,0x98,0x9A,0x9B,0x9A,0x9F,0xA3,0xA0,0xA0,0x9B,0xAE, - 0xBA,0x9F,0x9E,0xA7,0x91,0x83,0x8A,0x8F,0x8C,0x7F,0x79,0x81,0x71,0x5E,0x68,0x6C, - 0x63,0x64,0x67,0x67,0x5F,0x56,0x5E,0x63,0x61,0x66,0x5F,0x6E,0x84,0x6E,0x69,0x7D, - 0x72,0x69,0x75,0x7E,0x83,0x82,0x7D,0x88,0x87,0x7A,0x81,0x89,0x86,0x88,0x8F,0x91, - 0x91,0x8E,0x91,0x93,0x91,0x94,0x91,0x9E,0xB4,0xA1,0x9C,0xAE,0xA0,0x94,0x9F,0xA5, - 0xA7,0xA7,0xA1,0xA4,0x9F,0x8E,0x94,0x9A,0x93,0x93,0x94,0x92,0x90,0x87,0x86,0x8B, - 0x84,0x87,0x80,0x80,0x96,0x86,0x72,0x81,0x78,0x61,0x67,0x6C,0x6C,0x6B,0x62,0x68, - 0x69,0x55,0x55,0x5F,0x59,0x59,0x5E,0x5F,0x5F,0x57,0x54,0x5A,0x56,0x56,0x53,0x57, - 0x70,0x63,0x4F,0x61,0x5F,0x4C,0x52,0x5C,0x5F,0x5D,0x55,0x5B,0x60,0x50,0x53,0x5F, - 0x5D,0x5F,0x63,0x67,0x6B,0x68,0x6A,0x70,0x6F,0x75,0x79,0x7C,0x9A,0x9F,0x8E,0xA0, - 0xA7,0x96,0x99,0xA5,0xAB,0xB0,0xAA,0xAA,0xB1,0xA2,0x9B,0xA4,0xA0,0x9C,0x9E,0x9F, - 0x9B,0x92,0x8D,0x91,0x8D,0x8B,0x8D,0x84,0x97,0xA0,0x87,0x8F,0x9D,0x8D,0x88,0x94, - 0x9A,0x9D,0x99,0x98,0xA3,0x9A,0x91,0x9B,0x9C,0x99,0x9D,0xA1,0xA5,0xA0,0x9D,0x9F, - 0x9C,0x9B,0xA0,0x97,0xA3,0xB9,0xA2,0x9A,0xAC,0x9D,0x8F,0x97,0x9B,0xA0,0x9D,0x94, - 0x9B,0x97,0x88,0x8F,0x94,0x8E,0x8C,0x8C,0x8A,0x85,0x7E,0x7F,0x81,0x7B,0x7E,0x77, - 0x6F,0x87,0x80,0x68,0x79,0x75,0x5D,0x5E,0x63,0x63,0x61,0x59,0x5D,0x5E,0x4C,0x48, - 0x4D,0x48,0x45,0x48,0x48,0x46,0x44,0x41,0x41,0x40,0x43,0x43,0x3B,0x53,0x5B,0x3F, - 0x48,0x55,0x43,0x40,0x4C,0x52,0x54,0x4F,0x51,0x5C,0x57,0x52,0x5F,0x65,0x64,0x67, - 0x6B,0x70,0x6D,0x6E,0x73,0x75,0x76,0x7B,0x76,0x83,0xA0,0x90,0x89,0xA1,0x9A,0x90, - 0x9B,0xA6,0xB0,0xAF,0xAC,0xB9,0xBC,0xB0,0xB6,0xC1,0xBF,0xBF,0xC1,0xC0,0xBD,0xB7, - 0xB5,0xB8,0xB2,0xB2,0xA8,0xA5,0xBF,0xB1,0x98,0xA8,0xA5,0x90,0x92,0x9A,0x9B,0x97, - 0x91,0x96,0x99,0x8B,0x89,0x94,0x92,0x8E,0x92,0x97,0x98,0x94,0x93,0x95,0x92,0x93, - 0x91,0x8B,0xA3,0xAA,0x8F,0x96,0xA0,0x8C,0x86,0x8E,0x95,0x96,0x8C,0x8A,0x91,0x86, - 0x7D,0x85,0x85,0x80,0x7F,0x80,0x80,0x7D,0x78,0x7A,0x7C,0x7A,0x76,0x6D,0x7E,0x8B, - 0x72,0x70,0x7D,0x6B,0x61,0x68,0x6C,0x70,0x6A,0x66,0x6E,0x69,0x5A,0x5B,0x5F,0x5C, - 0x59,0x56,0x57,0x54,0x4B,0x47,0x48,0x47,0x47,0x3F,0x4A,0x62,0x50,0x41,0x53,0x4E, - 0x41,0x45,0x4E,0x58,0x54,0x4B,0x55,0x58,0x50,0x53,0x5C,0x5F,0x5D,0x5D,0x66,0x6A, - 0x66,0x65,0x6A,0x6E,0x70,0x67,0x73,0x94,0x86,0x75,0x89,0x8A,0x7E,0x81,0x8A,0x97, - 0x99,0x91,0x9A,0xA3,0x9C,0x9C,0xA4,0xAB,0xAF,0xB1,0xB8,0xBC,0xBA,0xB6,0xBA,0xBC, - 0xBD,0xB6,0xB4,0xCF,0xCB,0xAF,0xB5,0xB9,0xAA,0xA4,0xA3,0xA9,0xA8,0x98,0x96,0x9A, - 0x8E,0x84,0x84,0x88,0x89,0x83,0x83,0x89,0x86,0x80,0x80,0x81,0x84,0x7C,0x76,0x94, - 0x96,0x7A,0x81,0x88,0x7E,0x7A,0x7B,0x87,0x8E,0x83,0x80,0x8A,0x86,0x80,0x80,0x85, - 0x8C,0x87,0x84,0x8A,0x8B,0x84,0x81,0x87,0x8B,0x82,0x7E,0x9A,0x9E,0x83,0x84,0x88, - 0x7F,0x7B,0x79,0x84,0x8D,0x80,0x79,0x82,0x81,0x79,0x75,0x7A,0x7D,0x74,0x70,0x74, - 0x74,0x6C,0x67,0x67,0x6B,0x5F,0x5C,0x79,0x74,0x5B,0x5F,0x5F,0x58,0x54,0x51,0x5E, - 0x65,0x55,0x51,0x5B,0x59,0x50,0x50,0x58,0x5D,0x59,0x56,0x5C,0x5E,0x58,0x52,0x56, - 0x5D,0x53,0x5A,0x78,0x6E,0x5F,0x67,0x68,0x67,0x65,0x67,0x74,0x78,0x6D,0x6D,0x76, - 0x75,0x72,0x73,0x7C,0x84,0x83,0x85,0x8C,0x8E,0x8C,0x8A,0x93,0x98,0x92,0xA7,0xBC, - 0xAA,0xA4,0xAA,0xA5,0xA3,0xA1,0xA2,0xAF,0xB0,0xA2,0x9F,0xA2,0x9B,0x91,0x8D,0x91, - 0x92,0x8F,0x8A,0x87,0x86,0x81,0x7A,0x7F,0x7A,0x74,0x8E,0x90,0x79,0x7C,0x7B,0x75, - 0x76,0x73,0x7B,0x87,0x83,0x7E,0x82,0x87,0x84,0x7E,0x81,0x8A,0x8C,0x8B,0x8A,0x8D, - 0x8E,0x8C,0x89,0x8B,0x87,0x94,0xAB,0x9D,0x90,0x96,0x90,0x8D,0x8C,0x8B,0x96,0x9A, - 0x93,0x8E,0x8F,0x92,0x8F,0x8B,0x8F,0x95,0x96,0x92,0x8B,0x8C,0x8B,0x83,0x82,0x7E, - 0x81,0x9B,0x9A,0x84,0x87,0x85,0x7C,0x7A,0x74,0x79,0x82,0x7C,0x74,0x71,0x71,0x71, - 0x6C,0x66,0x67,0x6E,0x6D,0x66,0x65,0x66,0x61,0x5C,0x59,0x53,0x68,0x7B,0x68,0x5D, - 0x60,0x5B,0x5C,0x57,0x59,0x69,0x6F,0x6A,0x65,0x64,0x69,0x6B,0x65,0x65,0x6D,0x75, - 0x74,0x70,0x73,0x77,0x76,0x75,0x72,0x7B,0x97,0x96,0x84,0x86,0x88,0x8A,0x8C,0x89, - 0x91,0x9D,0xA1,0x9C,0x98,0x9E,0xA6,0xA4,0x9E,0x9E,0xA5,0xAA,0xA4,0x9E,0x9D,0x99, - 0x96,0x8E,0x88,0x9E,0xAA,0x97,0x8B,0x83,0x7E,0x80,0x77,0x70,0x77,0x7F,0x7C,0x73, - 0x6A,0x6D,0x74,0x72,0x6E,0x72,0x79,0x7B,0x79,0x76,0x76,0x78,0x78,0x72,0x7F,0x95, - 0x91,0x86,0x82,0x7E,0x84,0x88,0x83,0x86,0x8F,0x96,0x97,0x8F,0x8A,0x8E,0x90,0x8F, - 0x90,0x92,0x96,0x98,0x96,0x93,0x90,0x8E,0x89,0x8D,0xA2,0xA3,0x98,0x92,0x88,0x85, - 0x87,0x83,0x82,0x88,0x8B,0x8F,0x8B,0x81,0x7E,0x81,0x7F,0x7B,0x7A,0x7C,0x7C,0x77, - 0x73,0x6E,0x6B,0x66,0x64,0x76,0x7F,0x73,0x6B,0x63,0x5C,0x61,0x5E,0x56,0x5A,0x5E, - 0x61,0x67,0x61,0x5D,0x61,0x60,0x61,0x62,0x62,0x66,0x68,0x69,0x6A,0x69,0x67,0x64, - 0x72,0x86,0x82,0x7F,0x7D,0x74,0x7A,0x7F,0x79,0x7C,0x7E,0x7E,0x87,0x8A,0x86,0x88, - 0x89,0x88,0x8D,0x8F,0x8C,0x8E,0x8F,0x90,0x91,0x93,0x93,0x91,0x9B,0xA2,0x98,0x97, - 0x95,0x8E,0x96,0x95,0x8B,0x8D,0x89,0x84,0x88,0x85,0x83,0x85,0x80,0x7D,0x7F,0x7D, - 0x7B,0x7C,0x7E,0x7C,0x7B,0x7C,0x7A,0x7A,0x82,0x81,0x7D,0x83,0x82,0x80,0x86,0x82, - 0x7E,0x85,0x84,0x84,0x86,0x84,0x84,0x84,0x81,0x84,0x87,0x87,0x88,0x8A,0x8A,0x8A, - 0x89,0x8C,0x8B,0x8A,0x8F,0x8C,0x8A,0x8E,0x8B,0x8D,0x92,0x8D,0x89,0x8C,0x88,0x87, - 0x8A,0x88,0x85,0x84,0x81,0x83,0x86,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x80,0x7F, - 0x86,0x86,0x80,0x81,0x7F,0x7D,0x81,0x7C,0x7B,0x7C,0x77,0x77,0x79,0x73,0x70,0x6F, - 0x6E,0x6F,0x6F,0x6E,0x6F,0x6F,0x70,0x72,0x76,0x75,0x73,0x73,0x7B,0x7C,0x75,0x79, - 0x7A,0x78,0x7D,0x7C,0x7A,0x7C,0x78,0x78,0x7D,0x79,0x76,0x78,0x75,0x73,0x78,0x7A, - 0x7A,0x7A,0x7B,0x80,0x82,0x80,0x82,0x83,0x86,0x8B,0x88,0x87,0x8A,0x85,0x89,0x91, - 0x8B,0x88,0x87,0x83,0x84,0x83,0x80,0x82,0x7E,0x79,0x7D,0x7F,0x7C,0x7C,0x7D,0x7F, - 0x7F,0x7E,0x7E,0x7E,0x7A,0x7F,0x83,0x7D,0x7E,0x7D,0x7B,0x81,0x7F,0x78,0x7E,0x7C, - 0x77,0x7B,0x7A,0x78,0x78,0x75,0x77,0x7B,0x7B,0x7B,0x7E,0x7F,0x81,0x84,0x85,0x86, - 0x84,0x82,0x89,0x8D,0x86,0x88,0x89,0x85,0x8A,0x8C,0x89,0x8B,0x88,0x86,0x8B,0x87, - 0x83,0x83,0x80,0x7F,0x83,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x86,0x86,0x84,0x86, - 0x8B,0x85,0x80,0x85,0x87,0x94,0x7D,0x65,0x7F,0x8D,0x83,0x72,0x8C,0x81,0x64,0x74, - 0x76,0x78,0x78,0x87,0x89,0x73,0x7C,0x84,0x84,0x77,0x7C,0x84,0x77,0x78,0x76,0x77, - 0x7E,0x7C,0x7B,0x85,0x78,0x6F,0x78,0x70,0x70,0x73,0x74,0x6F,0x74,0x78,0x71,0x7B, - 0x82,0x81,0x80,0x7E,0x87,0x87,0x88,0x8A,0x82,0x81,0x83,0x85,0x85,0x87,0x88,0x7D, - 0x7E,0x83,0x7F,0x84,0x7F,0x78,0x77,0x78,0x72,0x6F,0x76,0x75,0x7F,0x84,0x76,0x75, - 0x7F,0x81,0x81,0x8D,0x8F,0x85,0x84,0x82,0x84,0x87,0x89,0x86,0x82,0x81,0x80,0x83, - 0x83,0x83,0x7A,0x71,0x75,0x76,0x70,0x71,0x72,0x70,0x70,0x72,0x76,0x77,0x74,0x76, - 0x77,0x77,0x78,0x7A,0x7A,0x7D,0x82,0x8D,0x8A,0x80,0x8A,0x83,0x7D,0x89,0x8A,0x84, - 0x84,0x85,0x82,0x89,0x87,0x81,0x82,0x74,0x77,0x80,0x81,0x80,0x80,0x82,0x81,0x83, - 0x80,0x7C,0x82,0x86,0x7E,0x87,0x8A,0x89,0x89,0x7F,0x7E,0x7F,0x86,0x85,0x86,0x84, - 0x79,0x7E,0x85,0x81,0x7F,0x7D,0x77,0x7C,0x7C,0x7E,0x7F,0x7C,0x7F,0x82,0x82,0x7A, - 0x80,0x85,0x85,0x83,0x84,0x87,0x81,0x82,0x80,0x7C,0x7C,0x7F,0x7C,0x7D,0x7B,0x74, - 0x7A,0x76,0x76,0x7B,0x78,0x7A,0x7E,0x7C,0x76,0x7C,0x82,0x7F,0x83,0x82,0x85,0x83, - 0x85,0x8B,0x8A,0x90,0x8A,0x82,0x85,0x83,0x85,0x85,0x85,0x81,0x81,0x78,0x76,0x82, - 0x80,0x83,0x87,0x7D,0x7B,0x83,0x83,0x82,0x7E,0x81,0x8A,0x89,0x85,0x85,0x85,0x7D, - 0x7A,0x86,0x92,0x93,0x8F,0x86,0x79,0x7D,0x82,0x72,0x71,0x73,0x6F,0x79,0x80,0x7F, - 0x86,0x81,0x7A,0x85,0x89,0x7F,0x7E,0x7D,0x7F,0x89,0x83,0x7F,0x82,0x7F,0x7B,0x79, - 0x84,0x95,0x97,0x96,0x8C,0x76,0x76,0x80,0x7F,0x7F,0x7D,0x79,0x81,0x8A,0x89,0x86, - 0x80,0x81,0x87,0x86,0x83,0x82,0x80,0x88,0x8E,0x87,0x85,0x81,0x7D,0x7A,0x78,0x85, - 0x98,0x9C,0x95,0x8D,0x7F,0x7E,0x80,0x7A,0x75,0x75,0x78,0x83,0x8A,0x85,0x87,0x86, - 0x87,0x86,0x7F,0x79,0x79,0x7C,0x7F,0x84,0x87,0x89,0x89,0x87,0x7E,0x76,0x7F,0x9A, - 0x99,0x94,0x8D,0x7D,0x80,0x81,0x7E,0x77,0x7A,0x7E,0x88,0x88,0x79,0x81,0x88,0x86, - 0x83,0x7F,0x79,0x81,0x83,0x7C,0x80,0x80,0x80,0x7C,0x79,0x79,0x73,0x80,0x9D,0x91, - 0x84,0x8F,0x7F,0x83,0x8E,0x7A,0x79,0x7F,0x77,0x7F,0x82,0x79,0x83,0x88,0x89,0x86, - 0x82,0x83,0x80,0x83,0x7E,0x7D,0x81,0x7E,0x7F,0x80,0x7D,0x7A,0x7D,0x94,0x95,0x80, - 0x88,0x81,0x7B,0x8B,0x7C,0x6F,0x79,0x73,0x7A,0x83,0x75,0x7C,0x85,0x87,0x89,0x81, - 0x81,0x87,0x82,0x7C,0x7B,0x7C,0x85,0x80,0x7C,0x80,0x73,0x75,0x93,0x8E,0x7C,0x8C, - 0x85,0x80,0x8C,0x7A,0x71,0x7D,0x7C,0x7D,0x7E,0x70,0x7C,0x87,0x8B,0x8C,0x82,0x85, - 0x8B,0x81,0x7A,0x7E,0x7D,0x85,0x83,0x7B,0x7E,0x79,0x7C,0x99,0x93,0x7E,0x8A,0x80, - 0x82,0x89,0x73,0x71,0x7F,0x74,0x74,0x7A,0x71,0x7D,0x84,0x82,0x81,0x7D,0x84,0x8A, - 0x80,0x7B,0x7F,0x80,0x81,0x79,0x7A,0x7E,0x71,0x80,0x98,0x85,0x80,0x8D,0x7E,0x87, - 0x87,0x6D,0x75,0x7B,0x6F,0x75,0x77,0x6D,0x7F,0x7F,0x7B,0x86,0x7F,0x84,0x88,0x81, - 0x7D,0x79,0x7B,0x82,0x7A,0x7C,0x81,0x76,0x83,0x91,0x82,0x83,0x8A,0x7E,0x88,0x83, - 0x6E,0x7D,0x7D,0x71,0x7C,0x73,0x70,0x83,0x76,0x7C,0x86,0x76,0x82,0x88,0x7E,0x7D, - 0x7D,0x7D,0x7B,0x76,0x78,0x79,0x73,0x82,0x8A,0x7A,0x83,0x8B,0x7E,0x8A,0x80,0x70, - 0x7F,0x75,0x74,0x79,0x6D,0x77,0x84,0x74,0x79,0x7E,0x79,0x86,0x82,0x80,0x80,0x7C, - 0x7B,0x7C,0x7B,0x7D,0x7D,0x77,0x8B,0x8A,0x7C,0x89,0x86,0x7C,0x8A,0x7A,0x73,0x84, - 0x73,0x76,0x7E,0x72,0x7C,0x7E,0x75,0x80,0x80,0x83,0x8E,0x82,0x7D,0x85,0x81,0x7D, - 0x7E,0x79,0x7E,0x7A,0x7A,0x8C,0x7F,0x7A,0x89,0x7D,0x81,0x8B,0x7A,0x7B,0x84,0x76, - 0x7A,0x75,0x6E,0x80,0x78,0x77,0x82,0x7A,0x84,0x89,0x7B,0x83,0x87,0x7E,0x7C,0x77, - 0x78,0x7D,0x75,0x7E,0x88,0x79,0x84,0x8C,0x81,0x8A,0x88,0x79,0x84,0x7F,0x76,0x80, - 0x73,0x77,0x81,0x7C,0x7C,0x7F,0x7E,0x85,0x84,0x7C,0x89,0x86,0x84,0x82,0x7B,0x81, - 0x7A,0x79,0x85,0x83,0x7B,0x88,0x88,0x81,0x86,0x80,0x81,0x86,0x7C,0x7C,0x7C,0x72, - 0x7D,0x7C,0x75,0x7D,0x7A,0x7D,0x86,0x81,0x83,0x89,0x86,0x83,0x7D,0x7E,0x7E,0x78, - 0x81,0x88,0x80,0x82,0x86,0x7E,0x86,0x83,0x7E,0x87,0x7F,0x7C,0x7F,0x79,0x79,0x80, - 0x79,0x79,0x7D,0x7B,0x85,0x83,0x82,0x87,0x84,0x86,0x85,0x7E,0x85,0x81,0x7F,0x8A, - 0x82,0x81,0x86,0x83,0x89,0x89,0x7F,0x85,0x88,0x7E,0x84,0x7D,0x7D,0x86,0x7B,0x7A, - 0x81,0x7F,0x84,0x86,0x81,0x87,0x83,0x85,0x89,0x80,0x81,0x82,0x7F,0x89,0x88,0x7E, - 0x89,0x85,0x85,0x89,0x81,0x83,0x88,0x82,0x85,0x82,0x7A,0x82,0x7B,0x78,0x7D,0x7B, - 0x7E,0x83,0x7E,0x84,0x89,0x85,0x8A,0x84,0x84,0x84,0x7E,0x85,0x86,0x81,0x86,0x8A, - 0x84,0x8A,0x83,0x7F,0x87,0x81,0x82,0x84,0x80,0x83,0x82,0x79,0x81,0x7E,0x7C,0x83, - 0x7F,0x81,0x86,0x84,0x84,0x84,0x83,0x87,0x81,0x85,0x8A,0x80,0x83,0x84,0x80,0x84, - 0x83,0x7F,0x85,0x85,0x83,0x83,0x7F,0x81,0x7F,0x7D,0x7D,0x7F,0x7E,0x81,0x82,0x83, - 0x86,0x83,0x83,0x81,0x82,0x80,0x81,0x86,0x86,0x81,0x85,0x86,0x7F,0x86,0x82,0x80, - 0x83,0x81,0x81,0x82,0x7C,0x7E,0x82,0x7B,0x7D,0x7F,0x7E,0x81,0x7F,0x7D,0x81,0x80, - 0x82,0x85,0x80,0x85,0x83,0x88,0x8B,0x83,0x84,0x83,0x83,0x84,0x7E,0x7D,0x85,0x80, - 0x7D,0x7E,0x7D,0x7E,0x7D,0x7B,0x7C,0x81,0x7F,0x82,0x80,0x7F,0x82,0x81,0x80,0x84, - 0x83,0x82,0x89,0x84,0x85,0x86,0x84,0x83,0x87,0x84,0x7D,0x82,0x82,0x7E,0x7C,0x7F, - 0x7D,0x7D,0x7D,0x7B,0x7B,0x7D,0x82,0x80,0x82,0x8F,0x90,0x86,0x8C,0x7E,0x77,0x78, - 0x76,0x84,0x7C,0x82,0x7E,0x7C,0x87,0x6B,0x78,0x99,0x79,0x74,0x81,0x75,0x73,0x63, - 0x76,0x86,0x7C,0x82,0x79,0x72,0x72,0x75,0x78,0x76,0x75,0x7F,0x81,0x7C,0x78,0x75, - 0x79,0x78,0x7B,0x82,0x86,0x7F,0x86,0x8D,0x7F,0x77,0x86,0x91,0x87,0x84,0x83,0x7C, - 0x82,0x92,0x95,0x97,0xA9,0xA6,0x9B,0x9B,0x9C,0x94,0x86,0x8A,0x97,0x93,0x99,0x98, - 0x89,0x84,0x7D,0x7B,0x7B,0x74,0x6F,0x74,0x75,0x72,0x6B,0x64,0x64,0x64,0x6B,0x73, - 0x6C,0x6B,0x70,0x6A,0x67,0x64,0x62,0x67,0x70,0x73,0x6E,0x6D,0x6E,0x77,0x7C,0x6D, - 0x63,0x6A,0x76,0x79,0x71,0x6B,0x75,0x76,0x67,0x67,0x69,0x6D,0x70,0x68,0x73,0x80, - 0x7D,0x7F,0x82,0x8D,0x94,0xA0,0xA9,0x97,0x99,0x9A,0x96,0x9B,0x87,0x7D,0x85,0x7F, - 0x7B,0x7D,0x7F,0x8A,0x86,0x7D,0x87,0x8A,0x87,0x80,0x79,0x87,0x89,0x7F,0x83,0x88, - 0x80,0x81,0x9F,0x9B,0x91,0x9B,0x91,0x94,0x82,0x66,0x78,0x7C,0x70,0x78,0x7C,0x8E, - 0x9D,0x86,0x84,0x8B,0x82,0x7F,0x79,0x85,0x8F,0x82,0x7F,0x87,0x80,0x8F,0xAB,0x97, - 0xA2,0xAD,0x97,0x95,0x81,0x7D,0x99,0x8C,0x86,0x91,0x8C,0x98,0x8A,0x70,0x81,0x7F, - 0x68,0x6C,0x70,0x7C,0x76,0x62,0x64,0x62,0x54,0x5C,0x78,0x73,0x72,0x6E,0x60,0x61, - 0x50,0x45,0x5B,0x5E,0x5D,0x68,0x69,0x72,0x6A,0x5B,0x63,0x67,0x63,0x66,0x6E,0x7C, - 0x76,0x66,0x63,0x64,0x5D,0x6A,0x84,0x77,0x72,0x77,0x6A,0x72,0x68,0x66,0x81,0x83, - 0x8B,0x9E,0xA5,0xA8,0x9F,0x90,0x97,0x99,0x90,0x95,0x9E,0x9D,0x8F,0x87,0x86,0x88, - 0x7D,0x87,0xA2,0x9B,0x93,0x92,0x87,0x88,0x80,0x7C,0x93,0x99,0x94,0x9A,0x96,0x8D, - 0x84,0x7C,0x82,0x8B,0x8E,0x8F,0x8F,0x8D,0x82,0x77,0x7C,0x86,0x7F,0x95,0xAF,0x9C, - 0x96,0x91,0x85,0x86,0x7A,0x83,0x9B,0x96,0x94,0x97,0x92,0x92,0x87,0x86,0x98,0x99, - 0x94,0x9C,0xA2,0x96,0x89,0x87,0x8A,0x8E,0x83,0x8F,0xA8,0x93,0x81,0x7D,0x75,0x74, - 0x67,0x6E,0x7E,0x7C,0x73,0x6F,0x68,0x61,0x5B,0x57,0x66,0x6B,0x64,0x66,0x63,0x5C, - 0x57,0x56,0x61,0x5B,0x60,0x82,0x77,0x63,0x67,0x5D,0x5C,0x5A,0x5E,0x74,0x78,0x69, - 0x68,0x68,0x5F,0x5D,0x5A,0x66,0x75,0x71,0x73,0x7C,0x75,0x6F,0x79,0x82,0x90,0x99, - 0x97,0xB6,0xB8,0x95,0x99,0x97,0x8E,0x92,0x8E,0xA0,0xAC,0x96,0x8A,0x8E,0x88,0x85, - 0x85,0x8C,0x9B,0x94,0x89,0x8D,0x8B,0x87,0x87,0x89,0x8F,0x84,0x95,0xA9,0x8C,0x89, - 0x8D,0x80,0x7F,0x7C,0x86,0x9B,0x8E,0x82,0x8E,0x89,0x85,0x87,0x89,0x97,0x97,0x88, - 0x8F,0x98,0x8C,0x88,0x90,0x8F,0x96,0x95,0x8C,0xA8,0xA6,0x85,0x91,0x97,0x8F,0x92, - 0x91,0x9C,0xA4,0x8D,0x88,0x90,0x88,0x88,0x85,0x88,0x8F,0x82,0x76,0x7B,0x73,0x6C, - 0x6F,0x6C,0x6E,0x63,0x72,0x82,0x61,0x5C,0x65,0x57,0x55,0x55,0x5D,0x70,0x65,0x59, - 0x67,0x63,0x59,0x5B,0x60,0x6C,0x6C,0x61,0x67,0x6C,0x62,0x5E,0x63,0x65,0x65,0x61, - 0x61,0x7D,0x77,0x5D,0x6C,0x6F,0x66,0x6A,0x71,0x84,0x8E,0x7E,0x89,0x99,0x90,0x90, - 0x95,0x9C,0xA1,0x99,0x94,0x9B,0x93,0x8E,0x90,0x8F,0x90,0x81,0x91,0xA7,0x8A,0x82, - 0x94,0x85,0x7E,0x81,0x88,0x9A,0x8E,0x81,0x8E,0x8C,0x7D,0x80,0x86,0x8F,0x8F,0x7F, - 0x86,0x8E,0x7F,0x7B,0x87,0x89,0x8A,0x87,0x87,0xA2,0x9A,0x7F,0x8D,0x91,0x83,0x85, - 0x89,0x98,0x9A,0x86,0x8C,0x96,0x89,0x86,0x8D,0x95,0x98,0x8E,0x8E,0x97,0x8C,0x88, - 0x8D,0x8E,0x8D,0x82,0x86,0xA1,0x90,0x7B,0x8A,0x81,0x73,0x6F,0x70,0x80,0x7B,0x68, - 0x72,0x76,0x64,0x5F,0x66,0x6D,0x6C,0x63,0x66,0x6F,0x62,0x5B,0x65,0x65,0x60,0x61, - 0x5D,0x72,0x79,0x5B,0x65,0x72,0x5F,0x5A,0x62,0x6C,0x6F,0x5F,0x62,0x71,0x63,0x5C, - 0x68,0x6F,0x71,0x6D,0x73,0x7B,0x76,0x74,0x80,0x84,0x88,0x86,0x86,0xA8,0xA8,0x8B, - 0x9B,0xA1,0x8A,0x89,0x8F,0x99,0x9B,0x8A,0x8E,0x99,0x87,0x7E,0x89,0x8C,0x8A,0x88, - 0x89,0x8E,0x83,0x7E,0x86,0x85,0x80,0x84,0x7C,0x87,0x9C,0x80,0x7D,0x92,0x81,0x77, - 0x81,0x88,0x90,0x88,0x83,0x93,0x8B,0x7D,0x88,0x8D,0x8A,0x8C,0x90,0x94,0x8F,0x87, - 0x8B,0x8C,0x8B,0x8C,0x83,0x98,0xA7,0x89,0x8E,0x9C,0x88,0x81,0x84,0x8F,0x94,0x85, - 0x84,0x92,0x86,0x78,0x7F,0x84,0x81,0x7C,0x7C,0x80,0x7A,0x70,0x73,0x75,0x6E,0x6E, - 0x67,0x69,0x83,0x72,0x5D,0x73,0x6A,0x58,0x5E,0x65,0x6A,0x67,0x60,0x6A,0x6B,0x5A, - 0x5E,0x66,0x66,0x67,0x66,0x6A,0x6A,0x62,0x62,0x66,0x64,0x66,0x5F,0x66,0x82,0x72, - 0x67,0x7D,0x76,0x69,0x72,0x7C,0x87,0x87,0x84,0x92,0x97,0x8A,0x8E,0x98,0x96,0x97, - 0x97,0x9B,0x9B,0x93,0x92,0x94,0x8F,0x8C,0x8C,0x83,0x98,0xA0,0x84,0x8C,0x92,0x7E, - 0x7C,0x82,0x88,0x8C,0x81,0x82,0x8C,0x7F,0x78,0x81,0x85,0x85,0x86,0x88,0x8D,0x89, - 0x85,0x89,0x88,0x86,0x87,0x82,0x96,0xA7,0x8A,0x8E,0x9F,0x8A,0x83,0x8B,0x8F,0x94, - 0x8D,0x8C,0x9B,0x91,0x82,0x89,0x92,0x90,0x8D,0x8F,0x92,0x90,0x8B,0x8A,0x88,0x85, - 0x88,0x80,0x7D,0x98,0x8B,0x75,0x89,0x82,0x6C,0x70,0x75,0x7C,0x74,0x6D,0x84,0x74, - 0x70,0x60,0x51,0x6D,0x60,0x50,0x56,0x63,0x64,0x6A,0x74,0x72,0x6D,0x6B,0x74,0x99, - 0x9A,0x77,0x8E,0x95,0x6E,0x65,0x59,0x63,0x70,0x46,0x41,0x5F,0x4E,0x34,0x3C,0x3E, - 0x3F,0x54,0x64,0x6A,0x5D,0x64,0x7B,0x7F,0x87,0x95,0x9B,0xB9,0xD6,0xB2,0xB7,0xDA, - 0xD8,0xCC,0xA9,0xCC,0xD7,0xAF,0xC1,0xB9,0xBA,0xB9,0xA4,0x9A,0x8E,0x8C,0x96,0x82, - 0x70,0x70,0x5B,0x6E,0x6C,0x62,0x7C,0x6E,0x7F,0x7C,0x54,0x77,0x7A,0x3D,0x3E,0x55, - 0x5D,0x60,0x59,0x5C,0x63,0x5A,0x62,0x73,0x7C,0x8D,0x89,0x9C,0xB2,0xA5,0x97,0x9F, - 0xA3,0xA1,0xAE,0xBA,0xD5,0xDB,0xB3,0xBD,0xD4,0xB7,0xB1,0xAE,0xB1,0xAB,0x9B,0x9A, - 0x95,0x90,0x7A,0x70,0x7A,0x79,0x7C,0x73,0x64,0x57,0x40,0x41,0x4A,0x44,0x35,0x31, - 0x4A,0x55,0x3C,0x3D,0x65,0x57,0x4C,0x62,0x5F,0x65,0x6D,0x6A,0x74,0x70,0x5A,0x69, - 0x78,0x78,0x7E,0x79,0x80,0x99,0x9A,0xA2,0xA9,0x98,0x9D,0x96,0x8A,0xB1,0x99,0x6C, - 0x93,0x8B,0x76,0x8A,0x84,0x82,0x7B,0x6F,0x83,0x9B,0x8B,0x7F,0x78,0x72,0x82,0x76, - 0x6A,0x6B,0x67,0x6B,0x61,0x52,0x45,0x46,0x5E,0x6E,0x70,0x66,0x69,0x7D,0x7A,0x70, - 0x7F,0x7A,0x75,0x81,0x86,0x9E,0x9B,0x93,0x9C,0xA1,0xA9,0xA7,0xAF,0xB7,0xAE,0xC2, - 0xCD,0xC4,0xD0,0xBF,0xBA,0xC8,0xBD,0xB3,0xAF,0xA3,0x8B,0x7B,0x74,0x72,0x80,0x6C, - 0x69,0x87,0x7F,0x73,0x63,0x4C,0x47,0x53,0x68,0x73,0x67,0x5A,0x66,0x6E,0x66,0x61, - 0x70,0x7B,0x75,0x69,0x6E,0x78,0x7B,0x82,0x77,0x87,0x9A,0x95,0x8A,0x70,0x6D,0x7E, - 0x81,0x87,0x89,0x86,0x95,0x93,0x78,0x6C,0x75,0x74,0x79,0x84,0x7E,0x7F,0x7A,0x79, - 0x8C,0x87,0x7B,0x7C,0x7A,0x81,0x78,0x67,0x61,0x50,0x45,0x5C,0x75,0x70,0x5B,0x4F, - 0x5B,0x64,0x6C,0x70,0x70,0x72,0x78,0x84,0x7F,0x86,0x6D,0x72,0x8F,0x82,0x87,0x7F, - 0x80,0x8F,0x8E,0x89,0x86,0x89,0x85,0x7F,0x93,0x96,0x7A,0x7F,0x7B,0x7A,0x83,0x75, - 0x7F,0x84,0x88,0x8E,0xA3,0xA0,0x90,0x9F,0x9F,0xA3,0x9A,0x9D,0xA7,0xB0,0xAF,0xAF, - 0xB5,0xA5,0x9F,0xA4,0xA6,0x9B,0x93,0x90,0x90,0x91,0x83,0x8A,0x8C,0x82,0x86,0x7E, - 0x7D,0x7A,0x7A,0x7B,0x6F,0x6E,0x6A,0x74,0x7D,0x73,0x71,0x73,0x73,0x71,0x6F,0x68, - 0x65,0x64,0x60,0x6A,0x7E,0x86,0x6F,0x5E,0x65,0x6C,0x6B,0x73,0x76,0x6E,0x72,0x77, - 0x69,0x61,0x61,0x5C,0x6B,0x65,0x62,0x78,0x74,0x73,0x69,0x62,0x71,0x71,0x70,0x7B, - 0x7C,0x79,0x6D,0x6D,0x79,0x77,0x8C,0xAB,0xA3,0x99,0xA5,0xA2,0x98,0x91,0x86,0xA3, - 0xB9,0xAE,0xB2,0xAE,0xA7,0xA8,0xA8,0xA8,0x9A,0x93,0x96,0x98,0x95,0x85,0x82,0x82, - 0x7D,0x76,0x72,0x80,0x6C,0x54,0x59,0x4E,0x4D,0x54,0x50,0x5D,0x6D,0x61,0x5B,0x66, - 0x5E,0x5E,0x67,0x67,0x69,0x67,0x6B,0x6B,0x6B,0x65,0x60,0x6C,0x6F,0x75,0x8D,0x8C, - 0x86,0x8A,0x8D,0x9A,0x97,0x94,0xA1,0xB2,0xBE,0xAF,0xAE,0xAF,0xA3,0xA9,0xB1,0xB8, - 0xC1,0xB8,0xB9,0xBD,0xB0,0xAA,0x9C,0xA2,0x9C,0x94,0xA9,0x93,0x8D,0xA2,0x8A,0x79, - 0x77,0x70,0x84,0x92,0x78,0x68,0x73,0x6D,0x70,0x7B,0x6B,0x68,0x6A,0x62,0x75,0x76, - 0x65,0x5E,0x54,0x58,0x5A,0x68,0x6D,0x5F,0x64,0x67,0x65,0x60,0x5D,0x65,0x67,0x6E, - 0x66,0x62,0x6E,0x70,0x65,0x5B,0x5E,0x65,0x61,0x73,0x89,0x7D,0x6E,0x60,0x72,0x7B, - 0x82,0x8E,0x6B,0x63,0x72,0x82,0x83,0x73,0x7E,0x86,0x86,0x8B,0x86,0x84,0x89,0x82, - 0x8A,0x8D,0x8B,0x97,0x93,0x8C,0x8E,0x97,0x92,0x8E,0x8D,0x90,0xA1,0x9B,0x8D,0x91, - 0x97,0x9A,0x94,0x82,0x91,0xA3,0x9A,0x97,0x97,0xA1,0xAD,0xA5,0xA2,0xA7,0xA6,0xA5, - 0xA5,0xA9,0xB1,0xA8,0x96,0x95,0x9B,0xB6,0xC6,0xAC,0x9E,0x9A,0x94,0x96,0x85,0x70, - 0x7D,0x83,0x7A,0x74,0x6C,0x6B,0x6D,0x6B,0x65,0x63,0x68,0x6F,0x6F,0x70,0x6C,0x56, - 0x58,0x56,0x4F,0x65,0x61,0x53,0x56,0x5F,0x63,0x5A,0x4C,0x4A,0x61,0x66,0x60,0x5F, - 0x4E,0x4E,0x5B,0x5B,0x62,0x6A,0x6B,0x6B,0x69,0x70,0x76,0x67,0x62,0x61,0x67,0x7D, - 0x79,0x6C,0x65,0x6B,0x76,0x76,0x71,0x77,0x8C,0x91,0x82,0x78,0x7E,0x86,0x92,0x99, - 0x95,0x98,0x9D,0x98,0x9C,0xA7,0xA3,0x9A,0x95,0x94,0xA5,0xAC,0x9A,0x8F,0x8B,0x92, - 0xA0,0x9A,0x91,0x8D,0x9C,0xAB,0xA0,0x98,0x94,0x97,0x9A,0x97,0x94,0x8E,0x94,0x9C, - 0x97,0x98,0x9B,0x9B,0x9B,0x8E,0x98,0x9F,0x8D,0x83,0x7E,0x79,0x80,0x7D,0x74,0x79, - 0x80,0x84,0x83,0x79,0x76,0x73,0x6E,0x6E,0x70,0x6C,0x66,0x6C,0x6B,0x64,0x62,0x62, - 0x69,0x68,0x75,0x75,0x68,0x68,0x63,0x65,0x61,0x60,0x5E,0x5D,0x69,0x6E,0x6C,0x6C, - 0x6C,0x75,0x7C,0x75,0x71,0x68,0x64,0x66,0x66,0x65,0x5A,0x59,0x5F,0x62,0x68,0x6F, - 0x6C,0x69,0x74,0x76,0x6D,0x6A,0x6E,0x6E,0x74,0x7D,0x7D,0x86,0x87,0x8C,0x90,0x83, - 0x87,0x87,0x89,0x8F,0x8E,0x97,0x8F,0x87,0x98,0x9F,0xA1,0xA7,0xA2,0x9F,0xAA,0xAF, - 0xA4,0xA2,0xA6,0xA4,0xAC,0xAC,0xA0,0x9C,0xA0,0xA6,0xA2,0x98,0x93,0x98,0x97,0x97, - 0x9A,0x8E,0x90,0x92,0x90,0x8F,0x8E,0x8F,0x8F,0x91,0x8D,0x94,0x91,0x8D,0x92,0x89, - 0x88,0x8E,0x87,0x85,0x87,0x83,0x7E,0x7B,0x7C,0x7F,0x7F,0x80,0x7E,0x7F,0x82,0x82, - 0x7E,0x74,0x73,0x6F,0x6E,0x75,0x72,0x70,0x69,0x70,0x73,0x66,0x72,0x71,0x67,0x66, - 0x62,0x61,0x55,0x56,0x56,0x50,0x59,0x5B,0x5C,0x5C,0x61,0x64,0x61,0x67,0x63,0x67, - 0x6F,0x6D,0x6F,0x6B,0x63,0x6A,0x71,0x6F,0x71,0x6A,0x69,0x70,0x72,0x76,0x72,0x6C, - 0x6F,0x72,0x71,0x70,0x6B,0x68,0x6E,0x77,0x7C,0x7F,0x83,0x85,0x8B,0x91,0x8F,0x8E, - 0x90,0x8D,0x92,0x98,0x93,0x8F,0x8F,0x90,0x93,0x91,0x91,0x92,0x8D,0x8F,0x9A,0x9A, - 0x91,0x91,0x98,0x97,0x9F,0xA5,0x9D,0x9D,0xA0,0xA5,0xAB,0xA6,0xA3,0xA6,0xA2,0xA3, - 0xA7,0xA1,0x9D,0x9A,0x92,0x94,0x96,0x93,0x95,0x94,0x96,0x95,0x92,0x94,0x8E,0x92, - 0x94,0x93,0x93,0x91,0x90,0x8F,0x91,0x8D,0x8A,0x89,0x8A,0x8E,0x8B,0x89,0x87,0x80, - 0x7C,0x7B,0x7D,0x7E,0x75,0x74,0x74,0x71,0x72,0x6B,0x69,0x6C,0x6F,0x6E,0x71,0x70, - 0x6A,0x70,0x6F,0x6D,0x6F,0x6F,0x6F,0x6D,0x6D,0x6A,0x66,0x72,0x71,0x63,0x65,0x68, - 0x64,0x62,0x63,0x5E,0x59,0x64,0x66,0x63,0x6C,0x64,0x5D,0x67,0x64,0x65,0x69,0x61, - 0x64,0x67,0x6C,0x72,0x72,0x72,0x71,0x78,0x7D,0x7D,0x78,0x76,0x77,0x7A,0x7D,0x79, - 0x77,0x78,0x79,0x84,0x82,0x7E,0x82,0x83,0x8D,0x90,0x8A,0x8E,0x8C,0x88,0x91,0x8D, - 0x8A,0x8F,0x8A,0x8E,0x95,0x92,0x8F,0x8D,0x91,0x99,0x9E,0x98,0x96,0x96,0x94,0x9A, - 0x97,0x9A,0x99,0x95,0x9B,0x98,0x99,0x95,0x8B,0x8E,0x92,0x97,0x98,0x8F,0x8F,0x90, - 0x8B,0x8F,0x8C,0x88,0x8C,0x88,0x8E,0x8C,0x84,0x85,0x85,0x8B,0x87,0x8C,0x8E,0x8B, - 0x8E,0x8A,0x8E,0x8B,0x88,0x8D,0x8C,0x88,0x89,0x86,0x80,0x81,0x80,0x7D,0x7C,0x7B, - 0x7C,0x7D,0x7C,0x75,0x77,0x78,0x75,0x77,0x74,0x78,0x7D,0x7A,0x76,0x79,0x78,0x73, - 0x79,0x78,0x75,0x73,0x73,0x73,0x72,0x74,0x75,0x75,0x74,0x78,0x7B,0x78,0x77,0x74, - 0x72,0x75,0x7A,0x7C,0x74,0x72,0x73,0x77,0x78,0x74,0x72,0x73,0x77,0x7A,0x78,0x76, - 0x76,0x74,0x76,0x77,0x74,0x73,0x77,0x76,0x77,0x78,0x74,0x74,0x6F,0x74,0x7A,0x7B, - 0x7C,0x78,0x7B,0x7E,0x82,0x82,0x7D,0x7B,0x7F,0x86,0x85,0x80,0x7D,0x7D,0x80,0x82, - 0x81,0x7E,0x7F,0x80,0x7F,0x7F,0x7E,0x7E,0x7D,0x7F,0x82,0x82,0x81,0x7C,0x7C,0x7F, - 0x80,0x7F,0x81,0x7D,0x7A,0x82,0x82,0x83,0x82,0x7E,0x81,0x81,0x7F,0x80,0x81,0x82, - 0x84,0x83,0x84,0x86,0x84,0x83,0x82,0x7F,0x80,0x81,0x82,0x86,0x84,0x84,0x85,0x86, - 0x87,0x86,0x85,0x83,0x84,0x83,0x84,0x84,0x80,0x80,0x82,0x84,0x84,0x82,0x7F,0x7F, - 0x83,0x83,0x82,0x81,0x82,0x83,0x81,0x83,0x82,0x83,0x83,0x84,0x88,0x86,0x86,0x86, - 0x85,0x87,0x88,0x86,0x86,0x84,0x83,0x84,0x85,0x83,0x7F,0x80,0x81,0x82,0x82,0x7E, - 0x7D,0x7E,0x7C,0x80,0x81,0x7F,0x7E,0x7D,0x82,0x87,0x84,0x83,0x82,0x81,0x85,0x85, - 0x81,0x81,0x81,0x82,0x84,0x82,0x7F,0x81,0x83,0x7F,0x7F,0x7E,0x80,0x7F,0x7F,0x7F, - 0x7F,0x7F,0x7D,0x7E,0x80,0x80,0x7F,0x7E,0x7E,0x7C,0x7D,0x7D,0x7B,0x7C,0x7D,0x7E, - 0x81,0x80,0x7C,0x7C,0x81,0x81,0x7F,0x81,0x7E,0x7D,0x81,0x80,0x7E,0x81,0x80,0x80, - 0x84,0x81,0x80,0x84,0x83,0x84,0x81,0x7E,0x81,0x81,0x7F,0x7E,0x7F,0x7E,0x7E,0x7E, - 0x7D,0x7F,0x7D,0x7A,0x7F,0x7E,0x80,0x7F,0x79,0x7D,0x7E,0x7F,0x82,0x7F,0x81,0x83, - 0x82,0x84,0x80,0x80,0x81,0x82,0x83,0x82,0x84,0x83,0x83,0x81,0x7E,0x7F,0x80,0x7E, - 0x7D,0x7D,0x7B,0x7A,0x79,0x7B,0x7B,0x7D,0x7F,0x7B,0x7D,0x7E,0x81,0x80,0x7E,0x7E, - 0x81,0x80,0x81,0x83,0x80,0x80,0x80,0x83,0x80,0x81,0x82,0x7F,0x81,0x81,0x80,0x81, - 0x80,0x7F,0x80,0x80,0x7F,0x80,0x7E,0x81,0x83,0x7F,0x7E,0x7E,0x81,0x80,0x7F,0x83, - 0x81,0x81,0x81,0x82,0x80,0x7D,0x7F,0x80,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x82, - 0x81,0x80,0x81,0x82,0x81,0x80,0x80,0x7F,0x81,0x80,0x81,0x80,0x80,0x80,0x7E,0x80, - 0x7E,0x7D,0x7F,0x7E,0x7E,0x7E,0x7C,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x83,0x84, - 0x80,0x82,0x82,0x81,0x84,0x84,0x84,0x83,0x82,0x82,0x87,0x85,0x81,0x82,0x81,0x83, - 0x80,0x81,0x80,0x7E,0x81,0x7E,0x80,0x7F,0x7F,0x81,0x7F,0x80,0x80,0x80,0x80,0x81, - 0x82,0x82,0x80,0x83,0x84,0x82,0x82,0x82,0x80,0x81,0x84,0x81,0x83,0x82,0x7F,0x84, - 0x81,0x82,0x84,0x80,0x81,0x84,0x83,0x81,0x83,0x81,0x7F,0x80,0x80,0x7F,0x80,0x7C, - 0x80,0x7E,0x7E,0x81,0x7B,0x7D,0x7F,0x7D,0x7F,0x7F,0x7E,0x80,0x80,0x80,0x81,0x7F, - 0x7E,0x82,0x83,0x81,0x81,0x80,0x81,0x82,0x80,0x82,0x81,0x80,0x82,0x81,0x7E,0x80, - 0x7E,0x7D,0x80,0x7F,0x7B,0x7D,0x7F,0x7D,0x7E,0x7F,0x7D,0x7F,0x80,0x80,0x81,0x80, - 0x81,0x81,0x82,0x82,0x81,0x82,0x82,0x81,0x83,0x83,0x82,0x82,0x84,0x81,0x80,0x84, - 0x82,0x83,0x83,0x81,0x7F,0x80,0x80,0x7F,0x81,0x81,0x7F,0x7F,0x7F,0x7E,0x80,0x7D, - 0x7E,0x7C,0x7E,0x7F,0x7F,0x81,0x7D,0x7E,0x82,0x82,0x81,0x82,0x81,0x81,0x83,0x83, - 0x82,0x81,0x82,0x80,0x81,0x83,0x80,0x7F,0x81,0x81,0x81,0x81,0x7F,0x80,0x7E,0x7F, - 0x7E,0x7D,0x7F,0x7C,0x7E,0x7E,0x7D,0x7D,0x7D,0x7F,0x7D,0x7D,0x7E,0x7E,0x7D,0x7E, - 0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x82,0x80,0x82,0x83,0x83,0x82,0x80,0x84, - 0x82,0x81,0x82,0x80,0x7F,0x81,0x7F,0x7E,0x80,0x7E,0x7C,0x7F,0x80,0x7C,0x7E,0x7E, - 0x7D,0x7F,0x7D,0x7D,0x7E,0x7F,0x7E,0x80,0x80,0x7C,0x7F,0x81,0x81,0x7E,0x7F,0x81, - 0x7F,0x80,0x80,0x7F,0x80,0x80,0x81,0x80,0x81,0x7E,0x7D,0x81,0x7E,0x81,0x80,0x7F, - 0x80,0x7C,0x7B,0x7F,0x7D,0x7C,0x7F,0x7D,0x7F,0x82,0x7C,0x7E,0x7C,0x80,0x83,0x7F, - 0x80,0x7F,0x80,0x7F,0x7D,0x81,0x81,0x81,0x80,0x82,0x81,0x88,0x8B,0x90,0x93,0x81, - 0x7A,0x76,0x77,0x78,0x77,0x78,0x7E,0x6F,0x70,0x8F,0x78,0x72,0x83,0x7B,0x6F,0x6E, - 0x81,0x77,0x73,0x7A,0x77,0x79,0x84,0x87,0x83,0x8B,0x8D,0x88,0x82,0x83,0x8F,0x89, - 0x87,0x86,0x79,0x7D,0x86,0x86,0x88,0x9B,0x9C,0x92,0x92,0x80,0x82,0x93,0x8D,0x96, - 0x97,0x88,0x8D,0x93,0x8B,0x80,0x84,0x89,0x8C,0x90,0x84,0x7B,0x77,0x76,0x6F,0x63, - 0x6D,0x6E,0x70,0x70,0x6A,0x6D,0x6C,0x6F,0x72,0x75,0x6B,0x66,0x6A,0x69,0x6B,0x73, - 0x74,0x6C,0x67,0x6A,0x6F,0x6C,0x67,0x69,0x70,0x72,0x66,0x65,0x6D,0x71,0x6F,0x6D, - 0x74,0x77,0x73,0x74,0x82,0x87,0x8B,0xA4,0xB7,0xB2,0x9C,0x97,0x99,0x92,0x8F,0x8E, - 0x8E,0x8D,0x89,0x89,0x90,0x8B,0x80,0x81,0x89,0x85,0x7D,0x85,0x83,0x82,0x86,0x81, - 0x85,0x85,0x83,0x86,0x8B,0x89,0x87,0x93,0x92,0x8E,0x96,0x92,0x91,0x97,0x95,0x95, - 0x99,0x91,0x8C,0x91,0x95,0x95,0x98,0xA0,0x9B,0x9C,0x9C,0x8D,0x8C,0x91,0x93,0x92, - 0x92,0x93,0x92,0x8D,0x8B,0x8B,0x89,0x87,0x83,0x7D,0x7C,0x74,0x6E,0x70,0x6E,0x6A, - 0x69,0x68,0x65,0x60,0x61,0x64,0x62,0x5D,0x64,0x63,0x60,0x64,0x5F,0x62,0x66,0x64, - 0x66,0x66,0x63,0x62,0x62,0x65,0x62,0x5E,0x65,0x67,0x66,0x66,0x68,0x66,0x6D,0x6A, - 0x61,0x6F,0x75,0x75,0x7C,0x83,0x8E,0x9C,0xA3,0xA2,0x98,0x95,0x91,0x86,0x8A,0x87, - 0x88,0x93,0x94,0x8C,0x8C,0x88,0x80,0x82,0x7F,0x7A,0x80,0x80,0x80,0x81,0x81,0x89, - 0x8B,0x87,0x8C,0x90,0x91,0x97,0x9A,0x9F,0x9F,0x96,0x95,0x9D,0xA6,0xA4,0x9E,0xA2, - 0xA4,0xA3,0x95,0x8F,0x97,0x95,0x91,0x90,0x8F,0x98,0x99,0x92,0x96,0x9B,0x9E,0x95, - 0x92,0x96,0x98,0x95,0x8C,0x84,0x8C,0x99,0x8E,0x89,0x84,0x83,0x84,0x6E,0x5B,0x62, - 0x65,0x54,0x58,0x5F,0x67,0x67,0x5F,0x66,0x6C,0x6F,0x69,0x67,0x68,0x68,0x62,0x5C, - 0x5C,0x6D,0x79,0x6C,0x6D,0x6F,0x71,0x74,0x62,0x56,0x60,0x60,0x57,0x55,0x62,0x6E, - 0x72,0x73,0x7B,0x89,0x8A,0x8C,0x95,0x9D,0x9A,0x98,0x95,0x8E,0x9E,0xAA,0x9D,0x99, - 0x9D,0x97,0x90,0x7E,0x76,0x7F,0x78,0x71,0x75,0x7C,0x87,0x88,0x80,0x87,0x96,0x8F, - 0x86,0x8C,0x89,0x8A,0x8C,0x8C,0x87,0x8E,0xA9,0xA4,0x99,0xA3,0xAB,0xA2,0x94,0x8C, - 0x8E,0x92,0x86,0x85,0x91,0x97,0x99,0x98,0x9C,0xA0,0x96,0x8A,0x8D,0x8B,0x86,0x8A, - 0x8A,0x86,0x81,0x9D,0xA7,0x8D,0x8F,0x94,0x8A,0x79,0x6A,0x6D,0x73,0x67,0x5C,0x66, - 0x72,0x6D,0x65,0x6A,0x70,0x68,0x58,0x5F,0x64,0x59,0x58,0x60,0x5C,0x4B,0x67,0x7A, - 0x63,0x69,0x72,0x6A,0x5D,0x4F,0x55,0x60,0x58,0x52,0x65,0x74,0x72,0x68,0x71,0x7C, - 0x6F,0x68,0x71,0x80,0x80,0x82,0x94,0x9B,0x8F,0xA2,0xB9,0xA0,0x9A,0xA5,0x98,0x87, - 0x75,0x77,0x81,0x7B,0x73,0x7D,0x89,0x88,0x7D,0x7D,0x8A,0x7F,0x71,0x7C,0x83,0x80, - 0x80,0x84,0x87,0x7F,0x91,0xAA,0x99,0x94,0xA4,0x9C,0x8F,0x83,0x89,0x95,0x8B,0x84, - 0x90,0x9E,0x98,0x8E,0x90,0x96,0x8B,0x81,0x8B,0x93,0x8E,0x8A,0x8A,0x89,0x83,0x90, - 0xA5,0x95,0x92,0x9C,0x92,0x86,0x76,0x7A,0x85,0x75,0x69,0x77,0x7F,0x7D,0x6D,0x6C, - 0x76,0x6A,0x5A,0x63,0x6B,0x64,0x61,0x5E,0x60,0x5B,0x66,0x76,0x69,0x67,0x6F,0x65, - 0x58,0x51,0x50,0x5D,0x5B,0x53,0x67,0x70,0x6A,0x63,0x62,0x6C,0x67,0x58,0x66,0x73, - 0x6E,0x70,0x79,0x82,0x81,0x93,0xA9,0xA0,0xA4,0xAB,0xA0,0x92,0x8A,0x89,0x8E,0x86, - 0x7F,0x88,0x8F,0x89,0x7F,0x7C,0x82,0x7D,0x6A,0x77,0x82,0x7A,0x78,0x79,0x7E,0x77, - 0x81,0x9B,0x90,0x89,0x9C,0x94,0x88,0x80,0x85,0x91,0x89,0x85,0x94,0xA0,0x9C,0x99, - 0x94,0x95,0x96,0x82,0x84,0x93,0x8C,0x88,0x8A,0x90,0x88,0x85,0xA7,0x9F,0x89,0x9E, - 0x98,0x85,0x7F,0x7C,0x88,0x84,0x7B,0x83,0x8A,0x87,0x7C,0x73,0x76,0x77,0x62,0x61, - 0x74,0x6D,0x6A,0x6B,0x69,0x65,0x5C,0x74,0x7F,0x65,0x6D,0x74,0x64,0x58,0x51,0x61, - 0x63,0x56,0x61,0x70,0x6E,0x69,0x67,0x68,0x6D,0x61,0x59,0x6B,0x6E,0x68,0x6E,0x74, - 0x73,0x6E,0x89,0xA3,0x91,0x99,0xAF,0xA5,0x96,0x8D,0x94,0x99,0x8C,0x89,0x9E,0x9F, - 0x8F,0x8C,0x90,0x8C,0x7B,0x73,0x7F,0x81,0x79,0x7C,0x7E,0x7D,0x75,0x81,0x9C,0x8A, - 0x83,0x97,0x93,0x7F,0x74,0x7F,0x8A,0x7F,0x7C,0x96,0x9E,0x92,0x92,0x98,0x9D,0x8F, - 0x82,0x8E,0x94,0x8E,0x8B,0x90,0x8E,0x86,0x8C,0xA9,0xA1,0x90,0xA5,0xA2,0x8F,0x7F, - 0x7F,0x8C,0x83,0x77,0x8A,0x99,0x8A,0x84,0x82,0x87,0x7A,0x66,0x6E,0x75,0x71,0x6F, - 0x72,0x6D,0x65,0x63,0x7C,0x82,0x69,0x74,0x79,0x68,0x5C,0x53,0x62,0x66,0x54,0x61, - 0x75,0x73,0x6D,0x68,0x6E,0x6A,0x5C,0x5C,0x69,0x6A,0x6C,0x71,0x6E,0x6E,0x6A,0x7E, - 0x99,0x8B,0x8E,0xA2,0x9B,0x93,0x89,0x93,0xA0,0x93,0x92,0xA4,0xA7,0x9D,0x97,0x95, - 0x93,0x84,0x7C,0x83,0x82,0x80,0x80,0x7E,0x78,0x72,0x7A,0x96,0x90,0x83,0x93,0x93, - 0x81,0x74,0x73,0x83,0x80,0x77,0x89,0x96,0x96,0x90,0x93,0x9A,0x8F,0x84,0x87,0x8F, - 0x8A,0x8B,0x8F,0x8C,0x85,0x82,0x9C,0xA9,0x94,0x99,0xA4,0x96,0x88,0x7D,0x88,0x8E, - 0x7E,0x82,0x94,0x96,0x8E,0x87,0x89,0x89,0x79,0x75,0x79,0x7A,0x78,0x78,0x79,0x72, - 0x67,0x6E,0x89,0x7F,0x6F,0x7B,0x7A,0x6A,0x5B,0x58,0x69,0x64,0x58,0x69,0x72,0x73, - 0x6B,0x69,0x72,0x68,0x5D,0x5E,0x67,0x6D,0x6C,0x6C,0x6C,0x69,0x64,0x7C,0x92,0x85, - 0x8B,0x94,0x8E,0x8B,0x7E,0x8A,0x9A,0x8D,0x8D,0x9F,0xA2,0x9F,0x97,0x93,0x98,0x8A, - 0x7E,0x7D,0x85,0x86,0x7F,0x7B,0x7C,0x75,0x71,0x8D,0x91,0x85,0x8E,0x8B,0x82,0x78, - 0x68,0x7A,0x80,0x72,0x80,0x8C,0x93,0x90,0x86,0x8D,0x8F,0x84,0x7E,0x83,0x8A,0x8D, - 0x89,0x85,0x88,0x82,0x87,0xA5,0x9B,0x94,0xA4,0x9A,0x93,0x7E,0x7A,0x8D,0x83,0x7A, - 0x88,0x8F,0x98,0x91,0x81,0x88,0x85,0x7A,0x72,0x73,0x79,0x7A,0x73,0x6B,0x6A,0x62, - 0x75,0x8A,0x74,0x79,0x80,0x71,0x6E,0x55,0x59,0x6A,0x5A,0x5E,0x68,0x6A,0x76,0x71, - 0x63,0x70,0x6D,0x65,0x5E,0x5F,0x6C,0x6B,0x66,0x65,0x69,0x67,0x83,0x8F,0x7E,0x8F, - 0x92,0x8E,0x8E,0x7A,0x86,0x96,0x88,0x8F,0x91,0x95,0xA4,0x97,0x8C,0x95,0x93,0x89, - 0x7E,0x7A,0x84,0x7C,0x75,0x71,0x71,0x70,0x87,0x90,0x7C,0x8A,0x84,0x85,0x84,0x66, - 0x72,0x7F,0x71,0x77,0x77,0x7D,0x95,0x89,0x85,0x91,0x90,0x8E,0x85,0x80,0x86,0x85, - 0x80,0x86,0x89,0x82,0x90,0xA0,0x91,0x95,0x92,0x8A,0x9A,0x8C,0x7E,0x89,0x87,0x84, - 0x86,0x7B,0x86,0x8C,0x7D,0x84,0x7F,0x7B,0x84,0x7C,0x74,0x7B,0x79,0x76,0x78,0x72, - 0x72,0x75,0x77,0x71,0x6E,0x6E,0x6E,0x6F,0x6B,0x6C,0x6D,0x6C,0x6E,0x70,0x69,0x6A, - 0x69,0x67,0x68,0x68,0x68,0x6A,0x6D,0x6E,0x71,0x71,0x77,0x79,0x7C,0x7F,0x81,0x89, - 0x8B,0x8B,0x8C,0x90,0x9A,0x9A,0x95,0x9A,0x95,0x97,0x98,0x90,0x8F,0x8E,0x8A,0x86, - 0x85,0x7C,0x80,0x7D,0x7A,0x7A,0x75,0x7C,0x78,0x77,0x79,0x79,0x79,0x7C,0x77,0x79, - 0x7F,0x79,0x81,0x88,0x84,0x85,0x86,0x87,0x8B,0x84,0x81,0x88,0x86,0x85,0x83,0x82, - 0x8C,0x8C,0x88,0x8C,0x8E,0x8B,0x8C,0x8C,0x88,0x88,0x84,0x91,0x8D,0x82,0x89,0x81, - 0x8A,0x8E,0x7F,0x82,0x85,0x81,0x82,0x79,0x75,0x7C,0x79,0x79,0x77,0x72,0x7C,0x7E, - 0x78,0x7D,0x7B,0x79,0x7B,0x74,0x79,0x78,0x76,0x86,0x7B,0x76,0x7A,0x73,0x83,0x81, - 0x72,0x79,0x7A,0x7B,0x7C,0x73,0x79,0x82,0x7C,0x7F,0x82,0x7B,0x87,0x8B,0x84,0x88, - 0x88,0x88,0x88,0x85,0x82,0x86,0x95,0x8F,0x84,0x8B,0x82,0x8B,0x91,0x7A,0x7E,0x7D, - 0x7B,0x82,0x72,0x73,0x80,0x79,0x7C,0x79,0x72,0x80,0x80,0x75,0x78,0x7A,0x79,0x79, - 0x78,0x72,0x76,0x92,0x89,0x7C,0x86,0x7E,0x90,0x90,0x71,0x7C,0x80,0x7D,0x87,0x75, - 0x7A,0x8E,0x89,0x8B,0x85,0x86,0x8F,0x91,0x85,0x7C,0x87,0x88,0x7F,0x79,0x76,0x94, - 0xA3,0x8A,0x92,0x8F,0x8D,0x9B,0x7A,0x70,0x7E,0x7B,0x82,0x7C,0x78,0x89,0x94,0x8F, - 0x81,0x80,0x82,0x86,0x7E,0x71,0x7C,0x81,0x78,0x75,0x76,0x92,0x9A,0x8A,0x8E,0x81, - 0x85,0x8E,0x72,0x6D,0x75,0x7A,0x84,0x80,0x7E,0x86,0x92,0x8F,0x84,0x84,0x7F,0x84, - 0x87,0x7F,0x82,0x80,0x7A,0x79,0x8D,0x9F,0x8F,0x93,0x8F,0x7D,0x8B,0x7D,0x6D,0x73, - 0x73,0x78,0x7D,0x7E,0x79,0x82,0x86,0x79,0x7D,0x75,0x6D,0x79,0x75,0x74,0x76,0x6F, - 0x6A,0x77,0x93,0x8C,0x87,0x8A,0x78,0x7F,0x7F,0x73,0x72,0x72,0x79,0x80,0x88,0x83, - 0x81,0x87,0x81,0x82,0x83,0x7A,0x7E,0x81,0x80,0x81,0x7B,0x76,0x77,0x8C,0x98,0x91, - 0x8E,0x7F,0x7A,0x82,0x80,0x7D,0x78,0x75,0x78,0x82,0x88,0x85,0x83,0x7D,0x7C,0x83, - 0x80,0x7B,0x7C,0x79,0x7B,0x7C,0x79,0x75,0x78,0x8A,0x8F,0x93,0x8F,0x7B,0x78,0x79, - 0x77,0x7E,0x7F,0x7A,0x79,0x80,0x83,0x88,0x8C,0x84,0x81,0x83,0x7F,0x83,0x86,0x7F, - 0x81,0x7E,0x7A,0x7C,0x87,0x90,0x91,0x93,0x89,0x7E,0x7C,0x7A,0x7A,0x7B,0x7B,0x77, - 0x78,0x7C,0x7D,0x83,0x84,0x80,0x7E,0x7B,0x79,0x7C,0x7A,0x79,0x79,0x76,0x74,0x73, - 0x7E,0x88,0x8C,0x8D,0x85,0x7D,0x79,0x76,0x76,0x7A,0x7C,0x78,0x7B,0x7D,0x7B,0x83, - 0x85,0x84,0x85,0x82,0x80,0x7F,0x7D,0x7F,0x80,0x7F,0x7D,0x7A,0x80,0x8B,0x90,0x92, - 0x8E,0x85,0x7F,0x7A,0x76,0x7C,0x80,0x7D,0x81,0x7D,0x7A,0x81,0x80,0x80,0x85,0x83, - 0x80,0x7F,0x7A,0x7A,0x7E,0x7C,0x7B,0x7B,0x7F,0x85,0x89,0x8C,0x89,0x82,0x7F,0x7A, - 0x75,0x7B,0x7B,0x7C,0x82,0x7E,0x7F,0x82,0x7E,0x80,0x84,0x83,0x83,0x82,0x7D,0x7E, - 0x7E,0x7C,0x7D,0x7E,0x83,0x89,0x8A,0x8C,0x86,0x82,0x80,0x79,0x77,0x7C,0x7A,0x7B, - 0x7F,0x79,0x7C,0x7E,0x79,0x7D,0x80,0x7E,0x80,0x7F,0x79,0x79,0x79,0x78,0x78,0x7A, - 0x81,0x84,0x85,0x89,0x84,0x7E,0x80,0x7A,0x78,0x7E,0x7A,0x7B,0x7E,0x7A,0x7D,0x7D, - 0x7C,0x81,0x82,0x81,0x82,0x80,0x7E,0x7F,0x7D,0x7E,0x7D,0x7F,0x87,0x87,0x89,0x8A, - 0x83,0x82,0x82,0x7D,0x7F,0x83,0x7E,0x81,0x7F,0x7B,0x7F,0x7C,0x7C,0x81,0x7F,0x81, - 0x83,0x7D,0x7D,0x7F,0x7D,0x7E,0x7C,0x7F,0x84,0x85,0x87,0x86,0x80,0x81,0x7F,0x7C, - 0x81,0x80,0x7F,0x83,0x7D,0x7C,0x80,0x7C,0x7E,0x82,0x7F,0x82,0x83,0x7D,0x80,0x81, - 0x7F,0x80,0x7F,0x84,0x86,0x87,0x8B,0x84,0x80,0x85,0x7F,0x7D,0x84,0x7F,0x80,0x84, - 0x7B,0x7C,0x7F,0x79,0x7C,0x7E,0x7D,0x81,0x7E,0x7C,0x7F,0x7E,0x7E,0x7C,0x7E,0x85, - 0x84,0x87,0x89,0x80,0x82,0x84,0x7D,0x81,0x82,0x7E,0x84,0x82,0x7D,0x80,0x7D,0x7B, - 0x7F,0x7C,0x81,0x7E,0x8A,0x8F,0x7B,0x8A,0x6D,0x67,0x86,0x78,0x6A,0x79,0x84,0x84, - 0x90,0x8C,0x8C,0x8E,0x8F,0xA0,0xA7,0x9A,0x95,0x96,0x8C,0x88,0x89,0x85,0x7D,0x6F, - 0x63,0x5D,0x56,0x55,0x55,0x53,0x5F,0x68,0x6F,0x74,0x75,0x7A,0x7D,0x7D,0x82,0x8A, - 0x86,0x8D,0x93,0x8B,0x91,0x9B,0xA0,0xAC,0xB9,0xB6,0xBB,0xBB,0xAF,0xAB,0xA3,0x9B, - 0x96,0x93,0x92,0x8F,0x8D,0x86,0x7D,0x7E,0x76,0x6F,0x74,0x6E,0x6B,0x6F,0x67,0x60, - 0x58,0x49,0x45,0x43,0x40,0x40,0x44,0x4A,0x4F,0x56,0x5D,0x64,0x6B,0x76,0x80,0x84, - 0x89,0x8C,0x8D,0x90,0x8F,0x95,0x98,0x9A,0xA6,0xAF,0xB3,0xB9,0xB9,0xB4,0xB7,0xB6, - 0xB5,0xAE,0xA7,0xA4,0x99,0x95,0x8F,0x85,0x8A,0x88,0x86,0x87,0x7F,0x73,0x6D,0x61, - 0x54,0x54,0x4F,0x4D,0x4B,0x46,0x49,0x4F,0x55,0x5A,0x5E,0x67,0x71,0x73,0x74,0x78, - 0x7D,0x81,0x7F,0x86,0x92,0x96,0x9F,0xA4,0xA1,0xA8,0xAA,0xA6,0xAF,0xB2,0xB0,0xB4, - 0xAD,0xA5,0xA2,0x9A,0x92,0x8D,0x86,0x83,0x81,0x7A,0x77,0x72,0x6E,0x6A,0x6D,0x75, - 0x7A,0x7C,0x73,0x6C,0x68,0x5D,0x52,0x4E,0x49,0x45,0x4B,0x3C,0x32,0x44,0x4E,0x59, - 0x66,0x69,0x6B,0x72,0x77,0x77,0x7B,0x79,0x7A,0x87,0x94,0x9F,0xA8,0xAC,0xA6,0xAC, - 0xB1,0xAD,0xB1,0xB4,0xBA,0xBC,0xBE,0xC0,0xBF,0xBF,0xBC,0xB6,0xAC,0xA3,0x9A,0x8D, - 0x81,0x77,0x6C,0x62,0x5B,0x63,0x66,0x63,0x63,0x52,0x49,0x4B,0x3D,0x3F,0x45,0x4C, - 0x57,0x56,0x57,0x5A,0x5F,0x62,0x66,0x6A,0x71,0x77,0x78,0x7F,0x88,0x8D,0x8E,0x94, - 0x9D,0xA3,0xA5,0xA6,0xA1,0x9C,0x98,0x91,0x94,0x94,0x98,0x9F,0x9B,0x9A,0x9E,0x9A, - 0x9C,0x9D,0x95,0x93,0x8F,0x8A,0x86,0x81,0x7B,0x7B,0x85,0x87,0x88,0x8A,0x84,0x76, - 0x6E,0x66,0x62,0x65,0x62,0x68,0x6D,0x65,0x65,0x63,0x5F,0x63,0x63,0x5F,0x60,0x61, - 0x62,0x61,0x60,0x63,0x68,0x70,0x76,0x79,0x7C,0x79,0x79,0x76,0x74,0x7D,0x83,0x85, - 0x87,0x82,0x85,0x88,0x86,0x8F,0x96,0x92,0x92,0x93,0x90,0x94,0x96,0x97,0x9F,0xA8, - 0xAB,0xB0,0xB1,0xA8,0x9D,0x98,0x96,0x98,0x9A,0x99,0x98,0x8F,0x88,0x89,0x8A,0x88, - 0x89,0x83,0x7B,0x76,0x72,0x71,0x6A,0x62,0x69,0x6F,0x72,0x74,0x6D,0x61,0x57,0x53, - 0x55,0x5B,0x60,0x5F,0x5B,0x56,0x55,0x58,0x5A,0x5E,0x60,0x60,0x63,0x67,0x6C,0x71, - 0x71,0x74,0x82,0x90,0x9C,0xA3,0x9F,0x95,0x91,0x94,0x9E,0xAE,0xB1,0xAD,0xA9,0xA3, - 0xA5,0xA8,0xA8,0xA4,0x9F,0x9C,0x9D,0x9E,0x9B,0x95,0x8A,0x8A,0x93,0x99,0x9C,0x96, - 0x88,0x7F,0x7D,0x7D,0x85,0x89,0x83,0x7F,0x7A,0x77,0x7C,0x7D,0x78,0x72,0x6F,0x72, - 0x79,0x79,0x74,0x6D,0x68,0x71,0x7D,0x81,0x7D,0x70,0x62,0x61,0x6A,0x6D,0x70,0x69, - 0x60,0x63,0x68,0x6D,0x6E,0x67,0x60,0x63,0x69,0x70,0x73,0x6A,0x62,0x5F,0x6B,0x80, - 0x86,0x84,0x7B,0x6E,0x6F,0x7D,0x85,0x8B,0x8A,0x83,0x88,0x91,0x94,0x94,0x8E,0x89, - 0x8E,0x95,0x99,0x9A,0x93,0x8C,0x87,0x91,0xA4,0xAC,0xA8,0x9C,0x8F,0x90,0x99,0x9C, - 0x9E,0x9E,0x97,0x9A,0xA1,0x9D,0x99,0x92,0x8D,0x94,0x9B,0x9A,0x99,0x93,0x8B,0x84, - 0x89,0x98,0x9E,0x9B,0x90,0x80,0x77,0x7C,0x7C,0x7A,0x79,0x72,0x71,0x75,0x71,0x6B, - 0x65,0x5F,0x60,0x65,0x65,0x63,0x5C,0x52,0x49,0x4C,0x5D,0x67,0x66,0x5F,0x54,0x50, - 0x59,0x5E,0x61,0x65,0x64,0x67,0x71,0x73,0x70,0x6E,0x70,0x78,0x80,0x82,0x83,0x81, - 0x7B,0x78,0x7F,0x92,0x9D,0x9E,0x98,0x8C,0x87,0x90,0x95,0x96,0x98,0x97,0x99,0x9F, - 0x9C,0x97,0x94,0x94,0x99,0xA0,0x9E,0x9B,0x99,0x93,0x8B,0x8F,0xA3,0xAD,0xAA,0x9F, - 0x92,0x8C,0x95,0x9A,0x98,0x99,0x98,0x98,0x9D,0x9A,0x90,0x8A,0x89,0x8C,0x8E,0x89, - 0x86,0x81,0x77,0x6E,0x70,0x81,0x88,0x83,0x78,0x6B,0x66,0x6D,0x6D,0x6A,0x6B,0x6C, - 0x6C,0x71,0x6D,0x65,0x63,0x65,0x68,0x6B,0x67,0x66,0x65,0x5D,0x55,0x5C,0x6E,0x73, - 0x6D,0x62,0x55,0x55,0x5D,0x5D,0x5C,0x5F,0x61,0x65,0x69,0x63,0x5E,0x62,0x68,0x6F, - 0x73,0x70,0x71,0x72,0x6D,0x6A,0x79,0x8D,0x92,0x8E,0x85,0x7C,0x7F,0x88,0x87,0x89, - 0x8D,0x8F,0x94,0x96,0x8E,0x8D,0x91,0x95,0x9B,0x9B,0x96,0x98,0x96,0x8F,0x90,0xA3, - 0xB2,0xB2,0xAB,0x9F,0x98,0x9F,0xA3,0x9E,0x9F,0xA2,0xA3,0xA6,0xA4,0x98,0x95,0x98, - 0x9B,0x9C,0x9A,0x98,0x97,0x92,0x85,0x85,0x9B,0xA4,0x9D,0x92,0x84,0x7F,0x85,0x82, - 0x79,0x7B,0x7D,0x7B,0x7B,0x74,0x69,0x69,0x6D,0x6F,0x6D,0x6A,0x6A,0x69,0x60,0x56, - 0x61,0x75,0x77,0x6F,0x66,0x5E,0x60,0x67,0x61,0x60,0x66,0x67,0x68,0x69,0x60,0x5B, - 0x61,0x65,0x66,0x66,0x65,0x65,0x62,0x58,0x56,0x6C,0x7B,0x77,0x6F,0x66,0x61,0x6A, - 0x6C,0x66,0x6B,0x72,0x76,0x78,0x75,0x6C,0x6F,0x78,0x7B,0x7C,0x7B,0x7D,0x7F,0x7A, - 0x72,0x7F,0x98,0x9E,0x98,0x91,0x89,0x8B,0x94,0x8F,0x8F,0x99,0x9F,0xA2,0xA2,0x9B, - 0x98,0x9F,0xA3,0xA3,0xA1,0xA1,0xA2,0xA0,0x94,0x92,0xA6,0xB4,0xAF,0xA5,0x9B,0x96, - 0x9C,0x9B,0x94,0x97,0x9D,0x9E,0x9B,0x95,0x8E,0x91,0x96,0x96,0x93,0x92,0x91,0x8E, - 0x87,0x7C,0x87,0x9C,0x9D,0x93,0x89,0x80,0x82,0x87,0x80,0x7D,0x84,0x89,0x86,0x81, - 0x77,0x72,0x78,0x7A,0x77,0x74,0x73,0x70,0x6A,0x5D,0x5B,0x70,0x7C,0x74,0x68,0x60, - 0x5C,0x62,0x61,0x59,0x5E,0x67,0x69,0x65,0x60,0x59,0x5D,0x63,0x64,0x62,0x63,0x65, - 0x63,0x5B,0x52,0x63,0x78,0x77,0x6C,0x66,0x62,0x67,0x6C,0x63,0x64,0x6F,0x76,0x75, - 0x72,0x6C,0x70,0x79,0x7B,0x79,0x7A,0x7D,0x7D,0x79,0x6E,0x77,0x90,0x98,0x90,0x89, - 0x85,0x85,0x8D,0x87,0x83,0x8B,0x95,0x97,0x93,0x8C,0x89,0x94,0x98,0x97,0x95,0x99, - 0x9A,0x97,0x8D,0x88,0x9E,0xB0,0xAB,0xA1,0x9B,0x98,0x9E,0x9E,0x93,0x98,0xA4,0xA9, - 0xA5,0x9D,0x95,0x9B,0xA1,0x9E,0x9B,0x9C,0x9E,0x9A,0x92,0x86,0x92,0xA8,0xA8,0x9C, - 0x94,0x8F,0x91,0x94,0x86,0x85,0x90,0x96,0x94,0x8C,0x82,0x81,0x88,0x86,0x82,0x7F, - 0x82,0x80,0x79,0x6B,0x6D,0x84,0x8C,0x82,0x78,0x71,0x6F,0x74,0x6C,0x64,0x6C,0x73, - 0x73,0x6D,0x65,0x5F,0x66,0x67,0x63,0x62,0x65,0x66,0x60,0x57,0x53,0x68,0x76,0x70, - 0x65,0x5E,0x5D,0x64,0x64,0x59,0x5C,0x66,0x6D,0x69,0x63,0x5C,0x62,0x6A,0x67,0x67, - 0x6A,0x6D,0x6A,0x63,0x5B,0x6C,0x81,0x7F,0x76,0x6E,0x6D,0x75,0x7A,0x70,0x71,0x7C, - 0x82,0x81,0x7C,0x76,0x79,0x83,0x83,0x81,0x82,0x87,0x86,0x80,0x77,0x84,0x9C,0x9C, - 0x93,0x8C,0x89,0x8E,0x94,0x8C,0x8B,0x96,0x9C,0x9C,0x97,0x91,0x92,0x9C,0x9A,0x96, - 0x96,0x9B,0x99,0x92,0x86,0x91,0xA9,0xA8,0x9C,0x94,0x90,0x93,0x97,0x8E,0x8A,0x94, - 0x98,0x97,0x92,0x8B,0x89,0x93,0x92,0x8D,0x8B,0x8E,0x8E,0x86,0x7B,0x82,0x9A,0x9B, - 0x92,0x88,0x82,0x83,0x89,0x82,0x7C,0x84,0x8A,0x8B,0x85,0x7C,0x79,0x82,0x84,0x7F, - 0x7D,0x7E,0x7C,0x73,0x69,0x73,0x8A,0x89,0x7F,0x77,0x72,0x73,0x78,0x6F,0x6B,0x76, - 0x7C,0x7D,0x77,0x6F,0x6D,0x76,0x78,0x73,0x73,0x76,0x74,0x6A,0x64,0x75,0x88,0x85, - 0x7C,0x73,0x70,0x75,0x76,0x6D,0x70,0x7A,0x7E,0x7D,0x77,0x71,0x75,0x7D,0x7A,0x75, - 0x77,0x79,0x73,0x67,0x69,0x81,0x8A,0x82,0x79,0x72,0x72,0x78,0x73,0x6B,0x74,0x7D, - 0x7F,0x7B,0x73,0x72,0x79,0x7F,0x7B,0x7B,0x7F,0x7E,0x76,0x6D,0x7B,0x90,0x8E,0x86, - 0x7F,0x7C,0x80,0x82,0x78,0x78,0x86,0x8C,0x8A,0x82,0x7D,0x7E,0x84,0x83,0x7F,0x82, - 0x83,0x7D,0x73,0x76,0x8F,0x97,0x8B,0x84,0x80,0x80,0x83,0x7E,0x76,0x81,0x8C,0x8B, - 0x89,0x82,0x7E,0x84,0x87,0x80,0x81,0x86,0x83,0x79,0x70,0x84,0x98,0x91,0x89,0x85, - 0x82,0x84,0x82,0x78,0x79,0x85,0x89,0x87,0x83,0x7F,0x81,0x87,0x83,0x7E,0x84,0x87, - 0x7F,0x72,0x79,0x92,0x95,0x8A,0x85,0x82,0x84,0x86,0x7F,0x7A,0x85,0x8D,0x89,0x84, - 0x7F,0x80,0x88,0x88,0x81,0x82,0x88,0x85,0x77,0x71,0x88,0x97,0x8C,0x83,0x7F,0x80, - 0x83,0x7E,0x75,0x79,0x86,0x89,0x82,0x7E,0x7C,0x80,0x85,0x7F,0x7A,0x81,0x85,0x7B, - 0x70,0x7B,0x93,0x93,0x86,0x83,0x82,0x84,0x84,0x7B,0x77,0x80,0x89,0x87,0x82,0x81, - 0x81,0x85,0x84,0x7D,0x7E,0x84,0x7E,0x6F,0x6E,0x86,0x92,0x87,0x80,0x7F,0x80,0x81, - 0x7C,0x73,0x75,0x82,0x85,0x7C,0x7B,0x7E,0x80,0x82,0x7D,0x7B,0x81,0x84,0x77,0x6C, - 0x7B,0x91,0x8C,0x81,0x81,0x83,0x85,0x83,0x7B,0x77,0x81,0x8A,0x84,0x7E,0x81,0x84, - 0x86,0x84,0x7D,0x7F,0x85,0x81,0x72,0x74,0x8D,0x93,0x84,0x81,0x83,0x83,0x81,0x7C, - 0x76,0x78,0x85,0x87,0x7D,0x7C,0x81,0x83,0x81,0x7C,0x7A,0x7E,0x7F,0x74,0x6A,0x7B, - 0x91,0x88,0x7B,0x7F,0x84,0x81,0x7A,0x76,0x75,0x7A,0x84,0x7E,0x78,0x7E,0x85,0x85, - 0x7F,0x7D,0x7F,0x80,0x7B,0x71,0x72,0x89,0x92,0x83,0x7C,0x83,0x8A,0x83,0x77,0x78, - 0x7C,0x81,0x83,0x7D,0x7C,0x82,0x88,0x85,0x7D,0x7D,0x84,0x81,0x77,0x71,0x7C,0x8F, - 0x8C,0x7E,0x7D,0x85,0x8B,0x80,0x74,0x79,0x80,0x82,0x7C,0x78,0x7F,0x84,0x85,0x82, - 0x7D,0x80,0x83,0x7E,0x75,0x72,0x81,0x8F,0x85,0x7A,0x7E,0x89,0x89,0x7B,0x75,0x7E, - 0x83,0x80,0x79,0x79,0x80,0x81,0x81,0x7E,0x7F,0x83,0x82,0x7D,0x77,0x79,0x87,0x88, - 0x7D,0x7C,0x83,0x8B,0x85,0x7B,0x7D,0x82,0x83,0x7F,0x7A,0x7E,0x82,0x7F,0x7F,0x7E, - 0x81,0x82,0x7F,0x7C,0x7A,0x7F,0x86,0x81,0x7D,0x80,0x85,0x88,0x82,0x7D,0x82,0x84, - 0x83,0x7E,0x7C,0x80,0x81,0x7F,0x7F,0x7F,0x83,0x83,0x7E,0x7B,0x7C,0x83,0x83,0x7E, - 0x80,0x83,0x86,0x86,0x81,0x82,0x85,0x83,0x83,0x80,0x7F,0x81,0x80,0x81,0x81,0x81, - 0x84,0x82,0x7E,0x7C,0x7E,0x83,0x80,0x7E,0x7F,0x81,0x86,0x84,0x7F,0x82,0x83,0x83, - 0x81,0x7C,0x7E,0x7F,0x7E,0x7F,0x7E,0x81,0x82,0x7F,0x7D,0x7C,0x7F,0x83,0x7F,0x7F, - 0x80,0x81,0x86,0x83,0x80,0x83,0x83,0x83,0x80,0x7D,0x80,0x80,0x7F,0x7F,0x7F,0x83, - 0x83,0x7F,0x7F,0x7E,0x82,0x84,0x80,0x81,0x82,0x83,0x85,0x82,0x83,0x85,0x83,0x83, - 0x80,0x7E,0x80,0x7F,0x7F,0x7E,0x7E,0x81,0x80,0x7E,0x7C,0x7C,0x81,0x81,0x7E,0x80, - 0x80,0x82,0x83,0x7F,0x81,0x83,0x81,0x81,0x7D,0x7D,0x80,0x7E,0x7E,0x7F,0x80,0x83, - 0x80,0x7E,0x7D,0x7D,0x82,0x81,0x80,0x84,0x83,0x85,0x85,0x81,0x84,0x85,0x82,0x82, - 0x7D,0x7E,0x80,0x7E,0x7D,0x7D,0x7E,0x7F,0x7D,0x7C,0x7B,0x7B,0x7F,0x7D,0x7D,0x80, - 0x80,0x82,0x82,0x7E,0x82,0x84,0x81,0x81,0x7D,0x7F,0x80,0x7D,0x7E,0x7E,0x80,0x81, - 0x7E,0x7F,0x7E,0x7C,0x81,0x80,0x7F,0x83,0x82,0x84,0x84,0x7F,0x82,0x84,0x82,0x81, - 0x7D,0x7E,0x80,0x7D,0x7C,0x7C,0x7D,0x7F,0x7D,0x7C,0x7B,0x7A,0x7F,0x7F,0x7C,0x7F, - 0x81,0x83,0x84,0x81,0x80,0x83,0x83,0x8D,0x86,0x64,0x72,0x88,0x87,0x73,0x7E,0x90, - 0x6C,0x73,0x7F,0x78,0x7A,0x86,0x90,0x7C,0x7C,0x88,0x8B,0x7C,0x7A,0x8E,0x81,0x75, - 0x76,0x7B,0x81,0x7D,0x80,0x84,0x78,0x74,0x7E,0x7C,0x7F,0x85,0x88,0x8B,0x87,0x83, - 0x81,0x7C,0x85,0x87,0x81,0x87,0x7F,0x87,0x7D,0x6C,0x88,0x85,0x6B,0x7C,0x7A,0x78, - 0x6F,0x62,0x7F,0x76,0x6B,0x7B,0x73,0x77,0x80,0x7C,0x77,0x6D,0x73,0x81,0x8C,0x89, - 0x79,0x7B,0x8F,0x8E,0x88,0x89,0x82,0x86,0x91,0x92,0x8C,0x91,0xA4,0x99,0x90,0x9B, - 0x8D,0x8C,0x9E,0xA8,0xA2,0x9B,0x9D,0x97,0x92,0x94,0x92,0x81,0x7E,0x8C,0x8F,0x90, - 0x92,0x84,0x77,0x79,0x73,0x6F,0x69,0x6C,0x7A,0x78,0x73,0x6C,0x65,0x68,0x6A,0x6E, - 0x6D,0x62,0x63,0x61,0x59,0x5D,0x58,0x58,0x5E,0x62,0x6B,0x6D,0x62,0x61,0x6B,0x67, - 0x5F,0x61,0x69,0x77,0x78,0x6D,0x6F,0x70,0x74,0x7F,0x78,0x77,0x7A,0x79,0x80,0x7F, - 0x81,0x88,0x8F,0x9A,0xA9,0xB1,0xAF,0xA6,0x9F,0x9F,0x9F,0x98,0x91,0x94,0x91,0x8F, - 0x8C,0x89,0x92,0x93,0x8C,0x87,0x84,0x82,0x7F,0x7D,0x7C,0x7C,0x7D,0x82,0x85,0x89, - 0x8A,0x85,0x89,0x8D,0x88,0x86,0x8A,0x8E,0x8D,0x8D,0x8C,0x91,0x95,0x90,0x8D,0x8D, - 0x8E,0x91,0x8B,0x8C,0x91,0x91,0x91,0x8C,0x8E,0x95,0x91,0x8C,0x94,0x98,0x8F,0x95, - 0x98,0x93,0x9C,0x98,0x90,0x98,0x9A,0x98,0x93,0x90,0x90,0x88,0x87,0x81,0x78,0x7E, - 0x77,0x6E,0x6F,0x6A,0x6C,0x69,0x6E,0x71,0x5B,0x5D,0x5D,0x5B,0x64,0x53,0x52,0x57, - 0x50,0x53,0x45,0x4A,0x5C,0x59,0x5B,0x5A,0x62,0x6C,0x5F,0x5C,0x5F,0x5D,0x59,0x51, - 0x6C,0x7B,0x69,0x72,0x74,0x72,0x76,0x61,0x65,0x73,0x75,0x7F,0x79,0x7F,0x90,0x90, - 0x8F,0x99,0xA2,0xA9,0xA7,0xA2,0xA6,0x9D,0x8E,0x8E,0xA0,0xAD,0xA0,0x94,0x96,0x9A, - 0x90,0x7C,0x7E,0x88,0x8C,0x8D,0x86,0x89,0x8C,0x88,0x81,0x7C,0x86,0x8C,0x85,0x85, - 0x86,0x7D,0x7D,0x76,0x87,0xA2,0x97,0x90,0x96,0x92,0x92,0x8A,0x84,0x96,0x9C,0x97, - 0x92,0x95,0x9F,0x97,0x8B,0x8E,0x95,0x9B,0x9E,0x9A,0x9C,0x9C,0x91,0x88,0x8C,0xA6, - 0xA8,0x9A,0x9B,0x97,0x95,0x91,0x83,0x89,0x90,0x8E,0x88,0x7F,0x82,0x7F,0x75,0x72, - 0x73,0x74,0x71,0x69,0x66,0x62,0x5C,0x55,0x4A,0x5B,0x6F,0x63,0x56,0x54,0x55,0x56, - 0x4C,0x46,0x54,0x60,0x63,0x5A,0x56,0x5C,0x5D,0x5C,0x5C,0x63,0x6B,0x69,0x62,0x62, - 0x64,0x68,0x68,0x64,0x79,0x91,0x83,0x75,0x74,0x7D,0x87,0x82,0x85,0x97,0xA7,0xA8, - 0x9C,0x98,0xA3,0xA3,0x9A,0x94,0x98,0xA0,0x98,0x8F,0x8A,0x88,0x87,0x80,0x78,0x8B, - 0x9E,0x8D,0x80,0x7C,0x81,0x86,0x7F,0x7F,0x89,0x8F,0x87,0x7D,0x7B,0x89,0x8D,0x86, - 0x86,0x8C,0x90,0x89,0x87,0x8B,0x90,0x8F,0x89,0x87,0x9C,0xAF,0x9F,0x8F,0x8A,0x8F, - 0x96,0x8F,0x8B,0x9B,0xA5,0x9B,0x8A,0x86,0x92,0x9B,0x98,0x94,0x98,0x9A,0x92,0x87, - 0x88,0x8E,0x8D,0x85,0x7C,0x8A,0x9E,0x96,0x82,0x79,0x7B,0x7F,0x78,0x6F,0x71,0x75, - 0x73,0x5D,0x53,0x5E,0x63,0x5F,0x59,0x5E,0x5E,0x55,0x50,0x51,0x55,0x58,0x54,0x47, - 0x50,0x6F,0x70,0x5E,0x57,0x57,0x5D,0x65,0x60,0x5D,0x69,0x71,0x62,0x55,0x5F,0x6B, - 0x6F,0x72,0x73,0x7A,0x79,0x73,0x6F,0x77,0x83,0x85,0x88,0x89,0xA3,0xB9,0xAA,0x9B, - 0x96,0x9A,0xA1,0x9D,0x96,0x9A,0x9F,0x97,0x87,0x82,0x8D,0x8E,0x87,0x83,0x83,0x86, - 0x81,0x78,0x7A,0x83,0x81,0x7C,0x76,0x7D,0x96,0x96,0x83,0x7A,0x7A,0x87,0x8A,0x85, - 0x8D,0x95,0x96,0x8E,0x87,0x8E,0x99,0x98,0x94,0x94,0x98,0x97,0x8E,0x8D,0x90,0x95, - 0x93,0x8D,0x8A,0x9B,0xAE,0xA1,0x95,0x8F,0x8E,0x99,0x96,0x8D,0x94,0x9B,0x95,0x87, - 0x84,0x89,0x8C,0x8D,0x86,0x83,0x87,0x80,0x75,0x72,0x78,0x77,0x6E,0x66,0x60,0x71, - 0x80,0x6E,0x5C,0x56,0x59,0x5F,0x56,0x55,0x5D,0x62,0x60,0x51,0x4D,0x55,0x5C,0x59, - 0x57,0x5F,0x64,0x61,0x5A,0x58,0x60,0x65,0x61,0x5D,0x5B,0x73,0x83,0x78,0x6A,0x67, - 0x6F,0x76,0x75,0x76,0x83,0x8E,0x8E,0x88,0x8C,0x9B,0xA4,0xA2,0x9F,0xA3,0xA3,0x9F, - 0x96,0x93,0x97,0x98,0x93,0x89,0x89,0x98,0xA2,0x92,0x82,0x7A,0x7E,0x83,0x79,0x76, - 0x84,0x89,0x7F,0x77,0x75,0x7B,0x84,0x85,0x82,0x87,0x8F,0x86,0x7E,0x84,0x8F,0x90, - 0x90,0x8A,0x87,0x9F,0xAF,0x9E,0x8E,0x8D,0x90,0x97,0x91,0x8F,0x9C,0xA1,0x9B,0x8F, - 0x8D,0x94,0x99,0x99,0x93,0x9A,0xA0,0x95,0x8A,0x89,0x94,0x95,0x90,0x89,0x81,0x94, - 0xA6,0x93,0x85,0x81,0x80,0x83,0x7C,0x75,0x7B,0x82,0x75,0x65,0x61,0x69,0x6E,0x68, - 0x61,0x64,0x67,0x62,0x56,0x54,0x5B,0x60,0x59,0x51,0x4C,0x5A,0x75,0x6B,0x5B,0x57, - 0x5B,0x64,0x60,0x5B,0x68,0x70,0x6B,0x60,0x5B,0x6A,0x75,0x6F,0x6D,0x74,0x7A,0x7B, - 0x75,0x78,0x83,0x8D,0x8C,0x89,0x8C,0x97,0xB2,0xB1,0x9F,0x98,0x99,0x9F,0x99,0x8F, - 0x98,0xA0,0x9B,0x8F,0x7F,0x88,0x91,0x88,0x82,0x80,0x83,0x82,0x79,0x73,0x77,0x82, - 0x80,0x79,0x74,0x74,0x8F,0x9C,0x8A,0x82,0x82,0x86,0x8A,0x84,0x8A,0x95,0x98,0x92, - 0x88,0x89,0x92,0x96,0x8F,0x8D,0x97,0x9C,0x91,0x8A,0x90,0x99,0x9C,0x95,0x8E,0x89, - 0x98,0xB0,0xA8,0x94,0x91,0x8F,0x94,0x91,0x89,0x92,0x9C,0x95,0x89,0x86,0x88,0x8A, - 0x85,0x81,0x83,0x84,0x7E,0x71,0x6F,0x72,0x6F,0x6C,0x66,0x5C,0x58,0x6A,0x7D,0x69, - 0x59,0x57,0x57,0x59,0x4F,0x50,0x5E,0x63,0x5B,0x52,0x4F,0x57,0x5F,0x5D,0x5E,0x66, - 0x69,0x65,0x5E,0x61,0x6A,0x6E,0x6C,0x66,0x64,0x6A,0x86,0x8D,0x7A,0x7A,0x7B,0x7F, - 0x84,0x80,0x87,0x9C,0xA2,0x98,0x90,0x94,0xA0,0x9E,0x97,0x9A,0x9E,0x9C,0x93,0x8A, - 0x8C,0x91,0x8D,0x86,0x82,0x78,0x7E,0x99,0x91,0x7A,0x71,0x71,0x79,0x76,0x6C,0x78, - 0x8A,0x85,0x7D,0x76,0x7C,0x87,0x7F,0x7E,0x89,0x8D,0x8D,0x88,0x82,0x85,0x8E,0x8F, - 0x89,0x8D,0x85,0x91,0xAD,0xA1,0x93,0x91,0x8F,0x95,0x92,0x83,0x92,0xA0,0x9C,0x96, - 0x8B,0x91,0x99,0x8E,0x8B,0x95,0x99,0x97,0x8E,0x89,0x8C,0x8B,0x88,0x84,0x86,0x79, - 0x7F,0x98,0x8D,0x79,0x73,0x6D,0x72,0x68,0x59,0x66,0x6D,0x6A,0x62,0x5A,0x58,0x5C, - 0x57,0x52,0x5A,0x5F,0x62,0x5E,0x5A,0x5D,0x60,0x60,0x5E,0x62,0x59,0x61,0x7E,0x76, - 0x68,0x6C,0x61,0x6D,0x6D,0x5E,0x6A,0x76,0x77,0x7A,0x7A,0x7A,0x84,0x86,0x88,0x8A, - 0x8D,0x95,0x99,0x97,0x97,0xA0,0x9D,0x99,0x9A,0x94,0x91,0xA5,0xA0,0x8F,0x97,0x89, - 0x87,0x86,0x7A,0x7B,0x7B,0x74,0x75,0x79,0x71,0x75,0x76,0x77,0x79,0x78,0x7A,0x7F, - 0x7E,0x7B,0x7E,0x80,0x80,0x80,0x81,0x80,0x8C,0x92,0x8D,0x91,0x91,0x90,0x94,0x96, - 0x90,0x93,0x93,0x90,0x94,0x96,0x90,0x93,0x97,0x96,0x9C,0x98,0x94,0x95,0x93,0x91, - 0x91,0x91,0x91,0x8F,0x88,0x87,0x90,0x8D,0x86,0x88,0x85,0x84,0x88,0x80,0x7A,0x79, - 0x75,0x73,0x71,0x6C,0x6C,0x6B,0x6A,0x70,0x6D,0x6B,0x6C,0x69,0x65,0x68,0x68,0x6A, - 0x6A,0x6B,0x64,0x65,0x76,0x72,0x6C,0x70,0x6E,0x6F,0x74,0x70,0x6C,0x6F,0x6E,0x74, - 0x77,0x72,0x73,0x76,0x7A,0x7E,0x7D,0x7C,0x7C,0x82,0x82,0x84,0x88,0x89,0x8C,0x87, - 0x7F,0x84,0x9B,0x90,0x86,0x91,0x82,0x8D,0x8F,0x82,0x84,0x7E,0x83,0x87,0x7F,0x7C, - 0x7D,0x7D,0x81,0x80,0x76,0x78,0x7D,0x7A,0x78,0x7A,0x7D,0x80,0x7C,0x7A,0x72,0x78, - 0x98,0x93,0x81,0x86,0x7B,0x87,0x8C,0x73,0x7A,0x84,0x8D,0x8F,0x81,0x80,0x8A,0x8D, - 0x89,0x86,0x86,0x8F,0x90,0x8F,0x89,0x8E,0x94,0x8D,0x89,0x88,0x84,0x81,0x9E,0xA7, - 0x97,0x95,0x8A,0x87,0x8F,0x7B,0x79,0x89,0x90,0x93,0x85,0x7B,0x85,0x8B,0x81,0x7D, - 0x7D,0x84,0x87,0x81,0x7D,0x7D,0x7B,0x7B,0x7D,0x79,0x7B,0x70,0x7D,0x9C,0x8A,0x7E, - 0x77,0x6D,0x78,0x74,0x69,0x73,0x7F,0x84,0x7F,0x73,0x70,0x7A,0x7B,0x74,0x75,0x7D, - 0x84,0x87,0x7D,0x7A,0x7E,0x7E,0x83,0x81,0x81,0x79,0x7B,0x9C,0x9F,0x8A,0x82,0x7A, - 0x7F,0x83,0x74,0x75,0x83,0x8D,0x8A,0x7D,0x74,0x77,0x7E,0x79,0x73,0x76,0x7D,0x81, - 0x7B,0x72,0x76,0x77,0x7A,0x79,0x7A,0x75,0x68,0x81,0x92,0x86,0x78,0x71,0x6F,0x7C, - 0x79,0x6D,0x76,0x83,0x87,0x83,0x75,0x70,0x7F,0x81,0x7E,0x7D,0x82,0x86,0x8A,0x83, - 0x7C,0x7E,0x80,0x86,0x85,0x83,0x77,0x7D,0x9B,0xA1,0x8E,0x80,0x78,0x78,0x85,0x80, - 0x78,0x7F,0x8A,0x8D,0x8A,0x7B,0x75,0x82,0x82,0x81,0x80,0x7F,0x84,0x87,0x82,0x7E, - 0x7F,0x7F,0x80,0x81,0x7C,0x72,0x7C,0x94,0x99,0x87,0x7A,0x71,0x74,0x80,0x7C,0x7A, - 0x7D,0x82,0x87,0x84,0x78,0x74,0x7A,0x81,0x83,0x80,0x7F,0x81,0x84,0x81,0x7F,0x7E, - 0x81,0x84,0x82,0x7E,0x77,0x82,0x97,0x9B,0x92,0x84,0x74,0x77,0x82,0x84,0x84,0x7F, - 0x7F,0x88,0x8B,0x84,0x7F,0x7C,0x7C,0x82,0x84,0x7F,0x7B,0x7D,0x80,0x7E,0x7C,0x7C, - 0x7D,0x7F,0x79,0x71,0x7E,0x8D,0x8A,0x87,0x7D,0x71,0x73,0x79,0x7B,0x7E,0x7B,0x79, - 0x7F,0x81,0x80,0x80,0x7E,0x7D,0x7F,0x81,0x81,0x7F,0x7E,0x80,0x7F,0x82,0x85,0x83, - 0x82,0x82,0x7E,0x87,0x8E,0x86,0x84,0x85,0x7D,0x7F,0x84,0x80,0x82,0x81,0x7B,0x7D, - 0x81,0x7F,0x7E,0x7F,0x7E,0x80,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x81,0x7C,0x7F, - 0x80,0x7C,0x81,0x81,0x7E,0x80,0x80,0x7E,0x82,0x83,0x80,0x83,0x7F,0x7B,0x7D,0x7C, - 0x7A,0x7C,0x7A,0x79,0x7C,0x7D,0x7E,0x7D,0x7E,0x7C,0x7F,0x83,0x80,0x81,0x82,0x82, - 0x84,0x87,0x82,0x81,0x84,0x7F,0x82,0x85,0x82,0x81,0x81,0x7E,0x7D,0x7E,0x7E,0x7E, - 0x7D,0x7C,0x7C,0x7D,0x7E,0x7E,0x7D,0x7F,0x7F,0x7E,0x80,0x7E,0x7E,0x7E,0x7F,0x82, - 0x81,0x7F,0x7F,0x7E,0x7C,0x80,0x80,0x7D,0x7F,0x7D,0x7B,0x7D,0x7C,0x7A,0x7A,0x79, - 0x7A,0x7C,0x7D,0x7E,0x7F,0x7F,0x81,0x83,0x84,0x83,0x83,0x84,0x81,0x83,0x87,0x83, - 0x80,0x84,0x80,0x82,0x86,0x82,0x81,0x81,0x7E,0x7D,0x80,0x7D,0x7D,0x7D,0x7A,0x7D, - 0x7F,0x7E,0x80,0x80,0x80,0x82,0x84,0x83,0x81,0x82,0x82,0x80,0x85,0x87,0x81,0x82, - 0x83,0x7E,0x82,0x85,0x80,0x81,0x7F,0x7C,0x7E,0x7E,0x7B,0x7B,0x7B,0x7A,0x7D,0x7E, - 0x7E,0x7F,0x80,0x81,0x82,0x83,0x84,0x82,0x81,0x82,0x83,0x88,0x86,0x82,0x85,0x83, - 0x81,0x86,0x85,0x84,0x85,0x7F,0x7F,0x81,0x7F,0x7D,0x7E,0x7B,0x7C,0x7F,0x7F,0x80, - 0x80,0x81,0x81,0x84,0x83,0x82,0x82,0x82,0x80,0x83,0x86,0x82,0x83,0x82,0x7E,0x81, - 0x84,0x7E,0x7F,0x7F,0x7A,0x7D,0x7D,0x7A,0x7A,0x79,0x77,0x7A,0x7C,0x7E,0x7F,0x7F, - 0x81,0x83,0x83,0x84,0x84,0x83,0x82,0x84,0x88,0x85,0x82,0x85,0x82,0x81,0x86,0x84, - 0x81,0x82,0x7E,0x7D,0x80,0x7E,0x7D,0x7D,0x7A,0x7D,0x7F,0x7E,0x82,0x81,0x7F,0x82, - 0x85,0x85,0x84,0x84,0x83,0x82,0x87,0x89,0x83,0x84,0x85,0x80,0x85,0x86,0x80,0x83, - 0x81,0x7C,0x7F,0x7F,0x7C,0x7D,0x7A,0x7A,0x7E,0x7A,0x8D,0x84,0x80,0x88,0x66,0x79, - 0x86,0x6D,0x67,0x75,0x82,0x8B,0x8E,0x8D,0x8F,0x89,0x93,0xA8,0xA1,0x9D,0xAB,0x9B, - 0x8D,0x83,0x71,0x85,0x81,0x5C,0x62,0x70,0x63,0x5B,0x59,0x52,0x5B,0x63,0x63,0x5A, - 0x53,0x65,0x6C,0x6E,0x7C,0x72,0x88,0xAB,0x8D,0x93,0xA9,0x9C,0xAF,0x92,0x99,0xC7, - 0xA1,0xA5,0xA5,0x90,0xAB,0xA5,0x8E,0x8B,0x8A,0x93,0x8A,0x71,0x7E,0x70,0x6D,0x7A, - 0x68,0x87,0x8E,0x6A,0x7B,0x89,0x77,0x81,0x6B,0x44,0x5A,0x62,0x5F,0x6C,0x63,0x56, - 0x5A,0x64,0x69,0x5E,0x7B,0x81,0x84,0x9F,0x9A,0x8A,0x86,0x8C,0x85,0x88,0x92,0xA9, - 0xB3,0x9D,0x96,0xA0,0x99,0xA3,0x9B,0x8E,0x95,0x83,0x85,0x7E,0x74,0x7B,0x70,0x69, - 0x67,0x74,0x7C,0x66,0x52,0x4D,0x4E,0x58,0x4C,0x3B,0x40,0x52,0x49,0x43,0x51,0x5C, - 0x69,0x66,0x75,0x83,0x82,0x95,0xAB,0x9C,0x90,0x87,0x8B,0x98,0x8F,0x90,0x93,0x91, - 0xA2,0xB1,0xBB,0xC3,0xB3,0xAE,0xBC,0xAD,0xA5,0xA4,0x8B,0x95,0x99,0x8C,0x9C,0x96, - 0x88,0x80,0x74,0x76,0x81,0x7A,0x78,0x73,0x5F,0x67,0x68,0x5C,0x5B,0x5D,0x6A,0x65, - 0x5F,0x63,0x5E,0x69,0x70,0x79,0x77,0x71,0x8E,0x94,0x86,0x96,0x91,0x87,0x9B,0x94, - 0xA1,0xA7,0x96,0x98,0x96,0x96,0x98,0x9D,0x98,0x8B,0x96,0x9D,0x94,0x99,0x96,0x90, - 0x96,0x8D,0x8C,0x8A,0x7C,0x6E,0x62,0x5A,0x4E,0x60,0x58,0x4D,0x6B,0x6B,0x65,0x56, - 0x3F,0x3A,0x42,0x4A,0x4F,0x4B,0x42,0x45,0x4B,0x4B,0x4D,0x54,0x55,0x54,0x53,0x5B, - 0x69,0x6F,0x7D,0x80,0x93,0xB1,0xBD,0xB4,0x99,0x93,0x9F,0x9E,0x99,0x9F,0xA2,0xA8, - 0x9C,0x85,0x84,0x86,0x81,0x8F,0x9D,0x8F,0x8B,0x97,0xA2,0xA9,0xA7,0xAE,0xBC,0xB7, - 0xB5,0xB8,0xAB,0xA2,0x95,0x92,0xA7,0xB2,0xA9,0x9A,0x8A,0x8D,0x90,0x91,0x8B,0x80, - 0x7E,0x85,0x86,0x6E,0x66,0x56,0x5D,0x6F,0x6B,0x6E,0x67,0x64,0x6D,0x72,0x64,0x5D, - 0x5E,0x64,0x6A,0x74,0x72,0x55,0x5C,0x5D,0x58,0x64,0x5C,0x61,0x66,0x69,0x74,0x75, - 0x70,0x78,0x7F,0x7D,0x8A,0x87,0x88,0x92,0x9D,0x9E,0xA1,0xA7,0x9B,0x9D,0xA4,0xA3, - 0x9A,0x94,0x95,0x94,0x93,0x8B,0x91,0x8A,0x82,0x8B,0x83,0x7C,0x77,0x7B,0x75,0x6A, - 0x6C,0x6B,0x71,0x76,0x7D,0x8A,0x8F,0x85,0x73,0x70,0x6D,0x6A,0x67,0x62,0x6A,0x74, - 0x7A,0x6A,0x55,0x53,0x5A,0x65,0x61,0x5C,0x68,0x6E,0x72,0x70,0x72,0x7A,0x6E,0x7D, - 0x8D,0x93,0x9B,0x8D,0x89,0x8B,0x92,0x9A,0x9A,0x9E,0xA5,0xA2,0x9E,0x96,0x95,0x9F, - 0xA7,0xB7,0xB1,0xA4,0xAB,0xB5,0xAF,0xA5,0xA1,0x99,0xAD,0xC4,0xC4,0xC3,0xAC,0xA2, - 0xB1,0xBC,0xBB,0xAB,0xA5,0xAC,0xAA,0x9F,0x91,0x8E,0x8C,0x89,0x88,0x78,0x6E,0x60, - 0x52,0x4D,0x41,0x46,0x46,0x3F,0x53,0x62,0x53,0x44,0x3C,0x33,0x42,0x46,0x40,0x3D, - 0x3D,0x41,0x37,0x32,0x2E,0x32,0x3E,0x40,0x45,0x44,0x47,0x55,0x51,0x55,0x65,0x62, - 0x6A,0x80,0x94,0x9D,0x93,0x8D,0x92,0xA1,0xB1,0xB1,0xB1,0xB5,0xB1,0xAC,0xA4,0xA0, - 0xA7,0xA3,0xA5,0x98,0x8E,0x97,0x91,0x9A,0xA6,0x9A,0x93,0x9A,0xA9,0xBA,0xBA,0x9C, - 0x8E,0x9E,0xA4,0xB4,0xBB,0xA4,0xA0,0x9D,0x9C,0xAC,0xA8,0xA6,0xA1,0x8F,0x90,0x8B, - 0x7F,0x85,0x85,0x85,0x89,0x7F,0x83,0x98,0x91,0x7E,0x75,0x70,0x78,0x7D,0x7F,0x76, - 0x6E,0x6F,0x60,0x5B,0x77,0x80,0x78,0x67,0x55,0x67,0x67,0x5F,0x54,0x3C,0x43,0x46, - 0x52,0x68,0x66,0x62,0x51,0x47,0x5E,0x63,0x5B,0x5C,0x5B,0x69,0x62,0x57,0x62,0x6B, - 0x73,0x75,0x73,0x71,0x70,0x6D,0x6C,0x63,0x5C,0x61,0x5C,0x6B,0x84,0x7C,0x68,0x6E, - 0x77,0x86,0x95,0x99,0xA9,0xB7,0xB9,0xB2,0xAE,0xB1,0xB7,0xBF,0xB9,0xB0,0xA8,0x99, - 0x97,0xA0,0xA4,0xA2,0x97,0x99,0xA7,0xA1,0x99,0x86,0x77,0x8C,0x92,0x8F,0x8E,0x81, - 0x7F,0x7F,0x7A,0x80,0x81,0x8A,0x93,0x8A,0x8B,0x87,0x77,0x7D,0x79,0x75,0x71,0x65, - 0x7F,0x88,0x7E,0x76,0x6C,0x75,0x81,0x87,0x84,0x86,0x87,0x6E,0x63,0x73,0x80,0x89, - 0x83,0x74,0x75,0x78,0x7B,0x78,0x65,0x60,0x60,0x5B,0x6A,0x6D,0x5A,0x49,0x46,0x58, - 0x64,0x5F,0x65,0x6C,0x67,0x5A,0x4D,0x56,0x62,0x74,0x7C,0x6B,0x69,0x71,0x6F,0x79, - 0x7F,0x79,0x71,0x6E,0x88,0x90,0x71,0x5E,0x5C,0x67,0x7A,0x7F,0x7E,0x81,0x7D,0x81, - 0x88,0x93,0xA0,0xA1,0xA4,0xA5,0xB0,0xB1,0xA6,0xB3,0xB8,0xB1,0xAC,0xAE,0xC1,0xC0, - 0xA5,0x90,0x85,0x89,0x8D,0x86,0x8A,0x90,0x8A,0x81,0x80,0x8D,0x98,0x9A,0x91,0x89, - 0x85,0x84,0x86,0x88,0x7D,0x76,0x7D,0x7F,0x8E,0x8F,0x7F,0x7F,0x7F,0x86,0x7F,0x77, - 0x7A,0x7C,0x7E,0x6C,0x6A,0x79,0x7D,0x83,0x84,0x79,0x7C,0x7E,0x81,0x87,0x80,0x76, - 0x65,0x72,0x86,0x7C,0x68,0x56,0x59,0x69,0x6B,0x63,0x68,0x64,0x58,0x59,0x5E,0x61, - 0x5C,0x5E,0x5A,0x5F,0x6A,0x67,0x6B,0x6A,0x70,0x71,0x60,0x6B,0x77,0x70,0x67,0x60, - 0x6D,0x73,0x6E,0x77,0x83,0x83,0x7A,0x6F,0x74,0x87,0x8A,0x81,0x7D,0x7F,0x87,0x93, - 0x94,0x92,0x95,0x95,0xA7,0xC1,0xBF,0xAB,0xA6,0xA9,0xB5,0xB3,0xA3,0xA9,0xAC,0xA3, - 0x96,0x96,0xA0,0xA2,0xA0,0x9A,0xA0,0xA1,0x9E,0x9E,0x97,0x96,0x9F,0x98,0x9D,0xB2, - 0xA7,0x95,0x8A,0x8B,0x9A,0x9E,0x9D,0x9C,0x9B,0x99,0x93,0x8F,0x92,0x94,0x8A,0x86, - 0x88,0x89,0x83,0x7C,0x88,0x82,0x74,0x80,0x92,0x92,0x7F,0x6E,0x6C,0x6F,0x73,0x69, - 0x69,0x73,0x6A,0x5F,0x58,0x64,0x6D,0x6A,0x65,0x58,0x5F,0x65,0x5A,0x59,0x55,0x52, - 0x55,0x5E,0x6D,0x68,0x51,0x47,0x51,0x60,0x63,0x5A,0x5B,0x62,0x46,0x3C,0x50,0x61, - 0x57,0x53,0x72,0x5A,0x52,0x67,0x65,0x6B,0x74,0x79,0x6F,0x7E,0x90,0x86,0x7D,0x73, - 0x8D,0x93,0x84,0x8B,0x95,0xA0,0x9C,0x97,0xAB,0xBE,0xA9,0x9F,0xA2,0xA5,0xA5,0xA8, - 0xAE,0x9D,0xA0,0xA3,0xAB,0xC6,0xBF,0xAB,0x9E,0x9F,0xB2,0xB2,0xAA,0xA9,0xA1,0x9A, - 0x97,0x96,0x9F,0xAA,0x9F,0x9F,0xA4,0xA0,0xA3,0x9E,0xA0,0xA3,0x98,0x99,0xAC,0xAD, - 0x9E,0x92,0x97,0xA3,0x97,0x94,0xA5,0xA2,0x98,0x8F,0x88,0x91,0x94,0x8C,0x87,0x7F, - 0x87,0x81,0x74,0x78,0x6F,0x6E,0x6F,0x7A,0x80,0x70,0x61,0x55,0x5A,0x62,0x5C,0x5A, - 0x5B,0x5A,0x50,0x46,0x4A,0x50,0x52,0x51,0x45,0x44,0x49,0x49,0x4C,0x47,0x3F,0x33, - 0x47,0x64,0x5B,0x51,0x42,0x3E,0x52,0x4E,0x4D,0x5A,0x55,0x4B,0x46,0x4D,0x5D,0x63, - 0x5E,0x62,0x6B,0x74,0x74,0x74,0x79,0x7F,0x81,0x85,0x99,0x97,0x85,0x81,0x88,0x91, - 0x8F,0x87,0x8D,0x99,0x98,0x8A,0x89,0x94,0x9B,0x9E,0x9B,0x96,0x97,0x96,0x93,0x96, - 0x96,0x8C,0x8C,0xA4,0xAD,0x9F,0x94,0x98,0xA7,0xA8,0xA5,0xAE,0xB3,0xAE,0xA0,0xA0, - 0xAA,0xB1,0xAF,0xA2,0x9D,0xA3,0xA7,0xA7,0xA2,0x9D,0x9E,0x99,0xA4,0xAF,0x9F,0x8D, - 0x87,0x8E,0x95,0x8F,0x89,0x8B,0x8C,0x81,0x7A,0x83,0x87,0x86,0x7C,0x77,0x78,0x75, - 0x70,0x6D,0x6C,0x6D,0x61,0x67,0x7D,0x77,0x61,0x53,0x5E,0x69,0x62,0x5E,0x62,0x5E, - 0x57,0x4F,0x54,0x61,0x63,0x62,0x5E,0x5C,0x62,0x60,0x5D,0x5F,0x63,0x5F,0x5F,0x74, - 0x78,0x6B,0x69,0x73,0x81,0x87,0x85,0x8E,0x92,0x8C,0x81,0x7F,0x8F,0x96,0x91,0x87, - 0x81,0x83,0x85,0x82,0x7F,0x7D,0x72,0x76,0x91,0x90,0x79,0x6E,0x71,0x7E,0x7E,0x78, - 0x7D,0x7C,0x75,0x6D,0x76,0x84,0x83,0x79,0x78,0x80,0x89,0x84,0x82,0x88,0x8C,0x8F, - 0x8E,0x9E,0x9E,0x8C,0x8C,0x91,0x95,0x96,0x91,0x96,0x97,0x90,0x81,0x80,0x90,0x8F, - 0x88,0x84,0x81,0x82,0x80,0x7E,0x7F,0x7C,0x6D,0x73,0x8A,0x85,0x6D,0x65,0x6C,0x73, - 0x72,0x6F,0x77,0x72,0x65,0x5D,0x64,0x73,0x70,0x67,0x65,0x69,0x6D,0x67,0x69,0x6D, - 0x6B,0x63,0x65,0x7A,0x7A,0x65,0x60,0x6A,0x73,0x75,0x75,0x7F,0x80,0x75,0x6F,0x77, - 0x86,0x8E,0x8D,0x8E,0x91,0x92,0x96,0x98,0x9C,0x97,0x8A,0xA2,0xB4,0xA3,0x8D,0x88, - 0x95,0x99,0x91,0x90,0x96,0x8F,0x81,0x7E,0x88,0x90,0x8E,0x85,0x85,0x8C,0x8A,0x84, - 0x80,0x83,0x87,0x83,0x92,0x9E,0x92,0x83,0x85,0x91,0x95,0x91,0x91,0x97,0x95,0x8E, - 0x88,0x8F,0x99,0x97,0x97,0x96,0x94,0x92,0x8C,0x8D,0x90,0x82,0x82,0x99,0x9B,0x86, - 0x78,0x7C,0x86,0x87,0x7E,0x81,0x87,0x7B,0x6E,0x6E,0x7C,0x82,0x7D,0x78,0x75,0x77, - 0x74,0x71,0x70,0x72,0x6E,0x6E,0x80,0x7D,0x6B,0x62,0x69,0x74,0x75,0x6E,0x70,0x77, - 0x72,0x66,0x66,0x74,0x76,0x75,0x77,0x76,0x76,0x79,0x79,0x7D,0x80,0x73,0x86,0xA1, - 0x94,0x80,0x7C,0x8A,0x93,0x89,0x88,0x95,0x90,0x81,0x79,0x83,0x90,0x8C,0x85,0x86, - 0x87,0x85,0x7E,0x7A,0x7B,0x7D,0x7B,0x84,0x91,0x87,0x78,0x73,0x7C,0x83,0x81,0x7F, - 0x86,0x85,0x7B,0x78,0x83,0x8C,0x8A,0x85,0x87,0x8A,0x85,0x83,0x83,0x85,0x7E,0x7C, - 0x97,0x9C,0x85,0x7B,0x81,0x89,0x89,0x83,0x8E,0x93,0x84,0x7B,0x7B,0x86,0x8D,0x86, - 0x80,0x83,0x86,0x80,0x78,0x79,0x7E,0x79,0x78,0x8D,0x90,0x7D,0x6E,0x71,0x7E,0x7F, - 0x79,0x7E,0x83,0x7A,0x6F,0x6F,0x7C,0x80,0x7B,0x7A,0x7C,0x79,0x76,0x77,0x77,0x77, - 0x6E,0x7C,0x8F,0x81,0x71,0x72,0x7B,0x7F,0x7A,0x7C,0x8B,0x86,0x77,0x71,0x7D,0x8B, - 0x8A,0x86,0x86,0x89,0x89,0x83,0x7F,0x86,0x8A,0x81,0x8B,0x9B,0x90,0x7B,0x75,0x7F, - 0x86,0x84,0x80,0x88,0x85,0x76,0x70,0x79,0x85,0x81,0x80,0x81,0x7C,0x79,0x76,0x77, - 0x7D,0x76,0x76,0x8F,0x8F,0x7B,0x75,0x79,0x7F,0x7E,0x78,0x83,0x8B,0x7C,0x71,0x71, - 0x80,0x87,0x81,0x81,0x83,0x81,0x7D,0x79,0x7C,0x81,0x7B,0x7C,0x90,0x91,0x7E,0x73, - 0x7B,0x82,0x82,0x7C,0x82,0x89,0x7D,0x71,0x73,0x7F,0x80,0x7E,0x80,0x80,0x7D,0x79, - 0x78,0x7C,0x77,0x70,0x85,0x91,0x7F,0x70,0x74,0x7C,0x80,0x7C,0x7E,0x8B,0x82,0x72, - 0x6F,0x7A,0x81,0x7B,0x7A,0x7F,0x80,0x7A,0x76,0x77,0x7B,0x74,0x76,0x91,0x92,0x7F, - 0x75,0x7E,0x89,0x8B,0x87,0x8D,0x94,0x89,0x7D,0x81,0x8C,0x8B,0x87,0x85,0x87,0x86, - 0x81,0x7D,0x7D,0x78,0x73,0x89,0x92,0x7E,0x6E,0x72,0x7B,0x7C,0x77,0x7B,0x87,0x7D, - 0x71,0x70,0x7C,0x82,0x7D,0x7E,0x81,0x84,0x7F,0x78,0x7A,0x81,0x79,0x7F,0x95,0x8F, - 0x7C,0x76,0x7D,0x82,0x81,0x80,0x8A,0x89,0x79,0x73,0x79,0x81,0x83,0x80,0x81,0x84, - 0x81,0x7E,0x7B,0x7D,0x76,0x7C,0x95,0x92,0x7D,0x75,0x7C,0x80,0x7E,0x7C,0x85,0x88, - 0x79,0x71,0x76,0x80,0x81,0x7E,0x83,0x89,0x83,0x7E,0x7D,0x80,0x7C,0x75,0x8D,0x98, - 0x85,0x76,0x79,0x7E,0x7F,0x7C,0x80,0x8B,0x81,0x74,0x72,0x79,0x80,0x7F,0x7D,0x81, - 0x80,0x7D,0x7E,0x80,0x7D,0x76,0x90,0x9D,0x89,0x7C,0x80,0x85,0x84,0x81,0x87,0x92, - 0x87,0x7A,0x79,0x80,0x83,0x7F,0x7F,0x82,0x80,0x7A,0x77,0x77,0x77,0x6F,0x7D,0x95, - 0x89,0x76,0x76,0x7B,0x7F,0x7B,0x7D,0x8B,0x86,0x78,0x75,0x7C,0x83,0x80,0x80,0x83, - 0x81,0x7C,0x79,0x79,0x7D,0x73,0x7E,0x97,0x8E,0x7D,0x7C,0x82,0x84,0x83,0x84,0x8F, - 0x8C,0x7D,0x78,0x7F,0x87,0x85,0x84,0x88,0x86,0x81,0x7F,0x7C,0x7D,0x76,0x7A,0x94, - 0x90,0x7B,0x76,0x7C,0x7D,0x7D,0x7C,0x89,0x8C,0x7D,0x75,0x7A,0x84,0x82,0x80,0x87, - 0x88,0x81,0x7F,0x7E,0x82,0x7B,0x78,0x90,0x92,0x7D,0x76,0x7B,0x7C,0x7B,0x7B,0x84, - 0x8C,0x82,0x77,0x7A,0x83,0x84,0x82,0x85,0x89,0x80,0x79,0x7A,0x7E,0x7E,0x7C,0x93, - 0x9D,0x89,0x7D,0x80,0x7C,0x78,0x79,0x83,0x92,0x89,0x7D,0x7F,0x85,0x84,0x82,0x85, - 0x88,0x81,0x7A,0x76,0x74,0x71,0x69,0x7C,0x92,0x85,0x78,0x80,0x83,0x82,0x80,0x82, - 0x8E,0x86,0x76,0x75,0x7C,0x7D,0x7C,0x83,0x8B,0x89,0x83,0x81,0x7F,0x7F,0x77,0x84, - 0x9D,0x93,0x7E,0x80,0x86,0x81,0x7A,0x7D,0x8D,0x87,0x76,0x75,0x78,0x7B,0x7B,0x7E, - 0x87,0x86,0x7E,0x7D,0x7B,0x7B,0x73,0x78,0x91,0x8F,0x7B,0x7A,0x7E,0x7C,0x7D,0x81, - 0x90,0x8D,0x7C,0x7D,0x87,0x84,0x7F,0x7F,0x82,0x83,0x81,0x80,0x7A,0x78,0x71,0x79, - 0x95,0x8F,0x75,0x75,0x82,0x7F,0x76,0x79,0x8B,0x8D,0x83,0x7F,0x82,0x83,0x7D,0x7E, - 0x84,0x81,0x7B,0x7D,0x7F,0x92,0x85,0x68,0x71,0x7B,0x7E,0x8C,0x91,0x84,0x7A,0x75, - 0x82,0x84,0x7A,0x81,0x8B,0x92,0x94,0x8F,0x92,0x96,0x8E,0x84,0x81,0x81,0x6F,0x6D, - 0x7F,0x72,0x5E,0x63,0x60,0x5D,0x64,0x6B,0x7D,0x88,0x86,0x83,0x84,0x83,0x87,0x8E, - 0x92,0x8D,0x83,0x7B,0x7C,0x83,0x76,0x81,0x99,0xA5,0x9A,0x8D,0x97,0x8A,0x73,0x71, - 0x7D,0x70,0x7B,0x95,0x8F,0x89,0x80,0x71,0x7C,0x88,0x6D,0x5A,0x57,0x5E,0x63,0x6B, - 0x7F,0x7C,0x75,0x77,0x72,0x7D,0x87,0x92,0xAD,0xA4,0x94,0xB3,0xAA,0x7B,0x81,0x7E, - 0x67,0x66,0x76,0x7F,0x8D,0x9E,0x9E,0x9F,0xA7,0x9C,0x88,0x7A,0x58,0x3D,0x53,0x79, - 0x79,0x7C,0x8E,0x7F,0x6C,0x75,0x71,0x73,0x8E,0x92,0x9A,0x9A,0x8F,0x82,0x7E,0x92, - 0x86,0x75,0x79,0x71,0x73,0x5E,0x4E,0x66,0x72,0x73,0x80,0x88,0x75,0x5E,0x64,0x75, - 0x7D,0x8B,0x88,0x81,0x83,0x7A,0x98,0xB5,0xA2,0x99,0x96,0xA9,0xA8,0x88,0x8E,0x9A, - 0x91,0x88,0x80,0x77,0x76,0x61,0x58,0x61,0x52,0x61,0x76,0x78,0x79,0x86,0xA1,0x98, - 0x7D,0x90,0x95,0x7A,0x75,0x79,0x73,0x71,0x63,0x68,0x82,0x88,0x94,0x94,0x91,0x8D, - 0x85,0x7E,0x81,0x82,0x70,0x81,0xA4,0x97,0x86,0x8C,0x85,0x74,0x67,0x70,0x7F,0x77, - 0x64,0x69,0x7B,0x78,0x6F,0x80,0x97,0x8E,0x72,0x66,0x60,0x58,0x5E,0x73,0x8D,0x8E, - 0x90,0xA1,0x9A,0x8F,0x9C,0x9E,0xAB,0xA6,0x8E,0x95,0x78,0x6B,0x6B,0x59,0x5D,0x65, - 0x73,0x76,0x61,0x5D,0x7C,0x94,0x7C,0x7C,0x89,0x83,0x7D,0x7A,0x97,0xA0,0x94,0x8D, - 0x8B,0x8C,0x84,0x81,0x93,0xAD,0x99,0x85,0x8F,0x8A,0x73,0x6D,0x7B,0x82,0x89,0x79, - 0x6E,0x6A,0x5C,0x58,0x70,0x7B,0x6C,0x76,0x80,0x82,0x8E,0x8A,0x7F,0x8C,0x84,0x6F, - 0x7D,0x75,0x70,0x8A,0x7E,0x75,0x89,0x8D,0x83,0x83,0x7C,0x82,0x9B,0x9D,0x81,0x87, - 0x89,0x6E,0x80,0x85,0x76,0x78,0x73,0x73,0x7B,0x6C,0x71,0x89,0x76,0x6E,0x75,0x77, - 0x73,0x67,0x89,0xAD,0x92,0x8A,0x9A,0x97,0x91,0x84,0x7E,0x84,0x92,0x98,0x83,0x8A, - 0x8B,0x82,0x98,0x88,0x7B,0x7D,0x6B,0x68,0x71,0x77,0x77,0x6E,0x64,0x6D,0x6D,0x65, - 0x69,0x78,0x7B,0x78,0x90,0x86,0x7B,0x8D,0x98,0xAB,0xA5,0x97,0xA3,0x90,0x7D,0x8D, - 0x91,0x9E,0x97,0x89,0x96,0x92,0x81,0x82,0x84,0x84,0x73,0x63,0x6E,0x64,0x55,0x67, - 0x8B,0x84,0x67,0x6A,0x6C,0x66,0x6C,0x77,0x81,0x87,0x7C,0x7A,0x7A,0x84,0x88,0x8B, - 0x8A,0x83,0x88,0x7E,0x8A,0x83,0x7C,0x9F,0x96,0x80,0x90,0x95,0x85,0x7A,0x73,0x75, - 0x75,0x6B,0x6E,0x78,0x81,0x75,0x6D,0x84,0x8B,0x85,0x7A,0x71,0x73,0x7A,0x95,0xA4, - 0x9D,0xA6,0xAA,0x91,0x84,0x7D,0x7F,0x80,0x72,0x7C,0x7C,0x78,0x69,0x66,0x81,0x76, - 0x6E,0x86,0x85,0x77,0x7B,0x8A,0x8C,0x80,0x88,0x8E,0x7C,0x62,0x63,0x77,0x6D,0x63, - 0x81,0x8A,0x88,0x8F,0x86,0x9A,0x9A,0x89,0x82,0x7B,0x7E,0x6E,0x7E,0x87,0x8F,0x97, - 0x93,0xA9,0xA2,0x97,0x9C,0x91,0x82,0x80,0x7A,0x73,0x6A,0x64,0x64,0x5D,0x63,0x5A, - 0x5F,0x66,0x59,0x75,0x80,0x76,0x80,0x86,0x89,0x8C,0x8F,0x99,0x9B,0x8B,0x87,0x95, - 0x93,0x83,0x85,0x88,0x7B,0x71,0x68,0x6A,0x68,0x5C,0x79,0x82,0x7F,0x88,0x84,0x87, - 0x82,0x77,0x84,0x85,0x7F,0x89,0x82,0x8D,0x81,0x78,0x83,0x83,0x88,0x88,0x92,0x88, - 0x81,0x95,0x90,0x7E,0x85,0x87,0x84,0x6C,0x5E,0x72,0x77,0x75,0x74,0x8C,0x85,0x71, - 0x76,0x76,0x85,0x79,0x7C,0x90,0x8A,0x8D,0x8C,0x82,0x81,0x81,0x76,0x73,0x78,0x73, - 0x7A,0x8D,0x8D,0x87,0xA0,0x92,0x81,0x88,0x7E,0x80,0x79,0x71,0x79,0x8F,0x95,0x8F, - 0x9F,0x98,0x8C,0x89,0x7D,0x87,0x87,0x6F,0x61,0x5E,0x61,0x5D,0x64,0x70,0x6E,0x75, - 0x76,0x7A,0x7C,0x72,0x87,0x8E,0x87,0x8E,0x94,0xA0,0x99,0x90,0x92,0x93,0x86,0x7A, - 0x80,0x79,0x71,0x6D,0x61,0x63,0x6C,0x67,0x68,0x73,0x7A,0x75,0x7B,0x85,0x95,0x9F, - 0x88,0x8E,0x93,0x8F,0x86,0x73,0x7D,0x7F,0x7E,0x7E,0x8E,0x96,0x8A,0x8A,0x85,0x89, - 0x7F,0x7C,0x86,0x81,0x75,0x71,0x74,0x72,0x7A,0x72,0x74,0x77,0x6C,0x85,0x86,0x88, - 0x8F,0x9E,0x95,0x78,0x83,0x7C,0x83,0x7E,0x74,0x7E,0x6B,0x63,0x6D,0x7B,0x83,0x7E, - 0x86,0x91,0x83,0x88,0x8E,0x7D,0x77,0x74,0x72,0x79,0x7F,0x80,0x91,0xA4,0xA3,0x9A, - 0xA7,0xB0,0x95,0x84,0x8C,0x88,0x78,0x69,0x6B,0x73,0x67,0x69,0x68,0x68,0x69,0x65, - 0x6F,0x77,0x74,0x71,0x72,0x7C,0x7A,0x7D,0x92,0x8D,0x86,0x8E,0x8A,0x8D,0x8F,0x86, - 0x80,0x74,0x6B,0x6A,0x7F,0x79,0x74,0x87,0x84,0x86,0x7E,0x89,0x87,0x7A,0x83,0x86, - 0x84,0x80,0x8D,0x8F,0x96,0x8F,0x86,0x90,0x83,0x63,0x67,0x8D,0x94,0x82,0x74,0x8D, - 0x79,0x53,0x69,0x79,0x81,0x7A,0x94,0x98,0x79,0x85,0x87,0x89,0x82,0x85,0x95,0x8F, - 0x80,0x7B,0x8E,0x8D,0x88,0x90,0x8D,0x6D,0x5D,0x5C,0x5C,0x64,0x5F,0x77,0x8A,0x80, - 0x83,0x81,0x8D,0x93,0x85,0x8D,0x94,0x92,0x8C,0x97,0xA6,0x94,0x91,0x98,0x8C,0x93, - 0x9C,0x8C,0x89,0x82,0x72,0x6F,0x71,0x61,0x67,0x70,0x68,0x6F,0x6F,0x6C,0x76,0x7B, - 0x71,0x79,0x77,0x6F,0x7E,0x7F,0x81,0x89,0x87,0x82,0x85,0x8A,0x86,0x88,0x8B,0x7C, - 0x7C,0x80,0x7E,0x82,0x87,0x82,0x73,0x78,0x88,0x8D,0x82,0x8A,0x91,0x81,0x80,0x71, - 0x72,0x8D,0x78,0x77,0x8A,0x79,0x7D,0x7E,0x85,0x92,0x8C,0x90,0x82,0x79,0x7C,0x7D, - 0x8C,0x84,0x7E,0x84,0x7B,0x7D,0x7E,0x83,0x8A,0x77,0x6E,0x7F,0x84,0x81,0x84,0x8D, - 0x97,0x8F,0x88,0x95,0x8C,0x7A,0x6D,0x72,0x66,0x50,0x6B,0x73,0x78,0x83,0x7B,0x87, - 0x8F,0x84,0x84,0x7C,0x7D,0x81,0x78,0x92,0x99,0x89,0xA4,0xA5,0x9B,0x9C,0x8E,0x9A, - 0x98,0x88,0x82,0x79,0x71,0x66,0x65,0x66,0x64,0x67,0x70,0x70,0x6D,0x6E,0x6D,0x73, - 0x72,0x72,0x7C,0x88,0x83,0x83,0x99,0x92,0x86,0x87,0x83,0x7F,0x7D,0x74,0x74,0x76, - 0x6E,0x78,0x7E,0x7F,0x85,0x88,0x94,0x94,0x8E,0x97,0x96,0x89,0x82,0x78,0x71,0x6D, - 0x72,0x7B,0x74,0x76,0x85,0x8A,0x7F,0x83,0x91,0x92,0x89,0x7D,0x78,0x77,0x7F,0x83, - 0x82,0x89,0x84,0x73,0x7D,0x88,0x77,0x7B,0x7F,0x7D,0x7F,0x74,0x75,0x7D,0x89,0x8E, - 0x98,0x99,0x86,0x84,0x80,0x7B,0x68,0x60,0x73,0x6F,0x71,0x75,0x7D,0x8D,0x86,0x8C, - 0x99,0x8E,0x7E,0x7F,0x7B,0x75,0x75,0x7B,0x9A,0x96,0x95,0x9F,0x99,0x99,0x90,0x94, - 0x92,0x88,0x77,0x72,0x76,0x64,0x60,0x6A,0x6B,0x61,0x68,0x6F,0x73,0x75,0x74,0x7B, - 0x7E,0x7F,0x83,0x91,0x90,0x84,0x85,0x8D,0x8F,0x7F,0x7C,0x89,0x80,0x6D,0x73,0x78, - 0x6D,0x6C,0x7A,0x84,0x7B,0x7C,0x8F,0x91,0x86,0x86,0x87,0x8F,0x87,0x79,0x8C,0x8D, - 0x74,0x6C,0x82,0x8A,0x78,0x78,0x8C,0x8A,0x7C,0x79,0x7E,0x80,0x77,0x7C,0x8A,0x78, - 0x6B,0x82,0x8C,0x84,0x84,0x8B,0x87,0x79,0x71,0x75,0x7B,0x7A,0x7F,0x8E,0x93,0x92, - 0x93,0x91,0x91,0x7E,0x68,0x70,0x6C,0x5F,0x6C,0x7E,0x7D,0x7B,0x89,0x95,0x88,0x7B, - 0x80,0x87,0x79,0x6E,0x85,0x92,0x81,0x81,0x90,0x95,0x8D,0x8C,0x9A,0xA3,0x9B,0x8D, - 0x84,0x86,0x76,0x61,0x76,0x7B,0x6D,0x67,0x80,0x85,0x65,0x75,0x7C,0x6A,0x6E,0x71, - 0x79,0x83,0x6F,0x7C,0x8D,0x78,0x7A,0x79,0x84,0x87,0x78,0x87,0x81,0x7A,0x77,0x70, - 0x86,0x7B,0x77,0x90,0x8C,0x86,0x8B,0x90,0x8D,0x86,0x7A,0x78,0x76,0x6E,0x7E,0x8C, - 0x85,0x7E,0x89,0x92,0x89,0x7E,0x88,0x8E,0x85,0x7B,0x80,0x8C,0x81,0x7B,0x80,0x89, - 0x80,0x71,0x83,0x7F,0x6F,0x69,0x6B,0x73,0x6D,0x6E,0x80,0x8F,0x95,0x92,0x9B,0x9D, - 0x8B,0x86,0x85,0x79,0x70,0x65,0x67,0x72,0x77,0x83,0x87,0x91,0x93,0x8F,0x92,0x82, - 0x79,0x76,0x70,0x74,0x7B,0x7C,0x8D,0x89,0x8D,0xA3,0x98,0x92,0x9B,0x9F,0x95,0x7C, - 0x7E,0x8B,0x6E,0x5D,0x65,0x70,0x6D,0x60,0x72,0x7B,0x7F,0x72,0x6D,0x87,0x7C,0x6C, - 0x75,0x85,0x83,0x76,0x82,0x8F,0x89,0x84,0x89,0x85,0x7D,0x76,0x7D,0x82,0x70,0x83, - 0x92,0x7D,0x82,0x87,0x83,0x92,0x84,0x7A,0x8C,0x7E,0x73,0x78,0x7A,0x7A,0x6D,0x72, - 0x83,0x80,0x7C,0x89,0x90,0x8C,0x88,0x86,0x8D,0x84,0x7C,0x8B,0x8B,0x82,0x83,0x8E, - 0x93,0x7F,0x74,0x73,0x6C,0x68,0x6B,0x78,0x81,0x86,0x86,0x90,0x96,0x8E,0x94,0x95, - 0x8B,0x7E,0x78,0x73,0x69,0x6A,0x74,0x78,0x77,0x7D,0x88,0x8A,0x7F,0x7F,0x88,0x80, - 0x78,0x73,0x76,0x7F,0x7C,0x85,0x8F,0x98,0xA4,0x97,0x9E,0xAA,0x9A,0x8E,0x85,0x80, - 0x74,0x70,0x6D,0x6C,0x71,0x71,0x6C,0x6A,0x6A,0x70,0x73,0x69,0x77,0x85,0x82,0x7D, - 0x81,0x8A,0x83,0x82,0x8C,0x8A,0x8C,0x8A,0x82,0x88,0x84,0x6F,0x6F,0x78,0x77,0x73, - 0x7A,0x88,0x83,0x85,0x8F,0x88,0x85,0x7C,0x74,0x7C,0x7B,0x7A,0x7D,0x84,0x7E,0x78, - 0x7E,0x7D,0x89,0x8D,0x89,0x90,0x92,0x88,0x80,0x85,0x86,0x83,0x84,0x85,0x84,0x81, - 0x78,0x6D,0x6B,0x70,0x6C,0x6A,0x79,0x7C,0x85,0x89,0x8A,0x9B,0xA0,0x99,0x91,0x91, - 0x82,0x6E,0x71,0x73,0x73,0x78,0x76,0x82,0x7E,0x7B,0x85,0x82,0x82,0x78,0x74,0x78, - 0x77,0x6F,0x78,0x86,0x84,0x8B,0x8F,0x9C,0x9D,0x96,0x99,0x9C,0x94,0x87,0x86,0x7F, - 0x77,0x77,0x78,0x75,0x77,0x77,0x76,0x7A,0x76,0x6A,0x6D,0x70,0x6B,0x6B,0x72,0x79, - 0x76,0x77,0x87,0x86,0x81,0x8D,0x90,0x87,0x7A,0x82,0x88,0x7C,0x71,0x76,0x7E,0x75, - 0x7D,0x88,0x8F,0x93,0x82,0x89,0x8B,0x7D,0x73,0x7A,0x8F,0x82,0x82,0x92,0x84,0x81, - 0x7F,0x84,0x89,0x7B,0x7E,0x82,0x83,0x83,0x7C,0x7F,0x8C,0x7F,0x7C,0x88,0x76,0x75, - 0x77,0x73,0x77,0x73,0x72,0x73,0x79,0x7D,0x7F,0x8A,0x94,0x90,0x90,0x93,0x83,0x80, - 0x82,0x71,0x6E,0x73,0x7B,0x81,0x7C,0x82,0x87,0x8D,0x87,0x80,0x8B,0x7F,0x72,0x7C, - 0x81,0x7E,0x85,0x82,0x80,0x87,0x86,0x84,0x88,0x8E,0x8B,0x87,0x86,0x81,0x7A,0x80, - 0x83,0x79,0x7B,0x8A,0x83,0x79,0x81,0x81,0x7B,0x76,0x74,0x76,0x76,0x73,0x79,0x80, - 0x80,0x83,0x84,0x86,0x88,0x80,0x7C,0x7E,0x70,0x72,0x7E,0x73,0x72,0x71,0x7B,0x8B, - 0x7B,0x7B,0x91,0x8A,0x7D,0x7E,0x89,0x8C,0x81,0x7D,0x84,0x84,0x7B,0x77,0x88,0x8D, - 0x87,0x8B,0x88,0x8C,0x82,0x76,0x83,0x85,0x82,0x83,0x82,0x81,0x81,0x81,0x7B,0x77, - 0x76,0x72,0x78,0x79,0x77,0x82,0x89,0x72,0x70,0x8A,0x83,0x6F,0x76,0x87,0x8D,0x91, - 0x8F,0x8C,0x88,0x80,0x89,0x97,0x93,0x91,0x91,0x91,0x8B,0x85,0x7E,0x77,0x70,0x64, - 0x65,0x69,0x67,0x61,0x68,0x79,0x7C,0x7B,0x75,0x77,0x77,0x6D,0x6E,0x76,0x7A,0x7E, - 0x82,0x8B,0x93,0x87,0x8D,0x9A,0x8E,0xA0,0xB4,0xAE,0x9D,0x9F,0xAC,0x90,0x8D,0x93, - 0x85,0x89,0x89,0x8B,0x86,0x7F,0x79,0x78,0x79,0x69,0x5E,0x62,0x5F,0x5D,0x6A,0x68, - 0x69,0x5A,0x49,0x50,0x51,0x4D,0x4C,0x59,0x5D,0x61,0x67,0x76,0x81,0x73,0x7A,0x8A, - 0x8E,0x92,0x94,0x94,0x99,0x95,0x8F,0xA2,0xAE,0xB5,0xBC,0xC2,0xC9,0xC7,0xC9,0xC5, - 0xC0,0xBA,0xA7,0x95,0x8D,0x92,0x93,0x90,0x98,0x93,0x88,0x80,0x74,0x70,0x69,0x60, - 0x57,0x57,0x5B,0x4A,0x43,0x4B,0x47,0x43,0x42,0x4A,0x52,0x4F,0x51,0x55,0x5F,0x64, - 0x69,0x78,0x80,0x7F,0x80,0x8D,0x8F,0x8E,0x90,0x8A,0x92,0x90,0x8E,0x96,0x86,0x7F, - 0x86,0x8C,0x8E,0x8A,0x84,0x76,0x75,0x79,0x75,0x70,0x69,0x69,0x6A,0x73,0x75,0x71, - 0x72,0x71,0x74,0x73,0x78,0x7B,0x83,0x8C,0x8C,0x89,0x7F,0x7D,0x87,0x89,0x8A,0x8B, - 0x8C,0x8C,0x86,0x83,0x86,0x85,0x82,0x82,0x8A,0x8E,0x86,0x89,0x8F,0x91,0x96,0x95, - 0xA0,0xA2,0x9F,0xAA,0xA9,0xAB,0xB3,0xB3,0xB6,0xBA,0xB5,0xAF,0xAF,0xAA,0xA2,0x9D, - 0x9D,0x9A,0x92,0x90,0x8A,0x82,0x7D,0x77,0x73,0x6E,0x65,0x61,0x64,0x5E,0x5A,0x5B, - 0x58,0x54,0x52,0x51,0x4F,0x49,0x46,0x4D,0x51,0x4F,0x55,0x5B,0x62,0x69,0x6C,0x79, - 0x7E,0x7E,0x84,0x89,0x8C,0x8C,0x8C,0x8D,0x91,0x94,0x95,0x9A,0x9D,0x9E,0xA2,0xA1, - 0x9C,0x9D,0x9C,0x9B,0x98,0x93,0x93,0x92,0x92,0x91,0x90,0x8E,0x8B,0x87,0x83,0x81, - 0x7C,0x75,0x74,0x70,0x64,0x61,0x5E,0x5A,0x57,0x50,0x4E,0x4B,0x46,0x46,0x47,0x44, - 0x40,0x40,0x41,0x3E,0x3E,0x42,0x42,0x43,0x46,0x48,0x4A,0x4F,0x56,0x59,0x5E,0x64, - 0x69,0x72,0x78,0x7E,0x85,0x8E,0x95,0x97,0xA1,0xB1,0xB5,0xB7,0xC0,0xCC,0xD1,0xCF, - 0xCF,0xD1,0xD6,0xD2,0xD0,0xD2,0xC7,0xC0,0xC2,0xC3,0xBE,0xB7,0xB3,0xB5,0xB6,0xB1, - 0xAA,0xA9,0xA4,0x9C,0x97,0x92,0x8A,0x86,0x8C,0x8B,0x82,0x7E,0x7F,0x7E,0x7A,0x6D, - 0x64,0x66,0x64,0x64,0x66,0x68,0x6F,0x79,0x7B,0x74,0x75,0x7A,0x75,0x6E,0x69,0x6D, - 0x71,0x6E,0x6C,0x6B,0x6B,0x74,0x79,0x71,0x70,0x73,0x70,0x6F,0x6E,0x6A,0x6F,0x75, - 0x76,0x7B,0x82,0x88,0x90,0x8A,0x85,0x92,0x93,0x8B,0x90,0x98,0x9A,0x98,0x95,0x97, - 0xA2,0xA9,0xA1,0x9D,0x9E,0x99,0x93,0x88,0x7D,0x83,0x8A,0x83,0x7E,0x80,0x81,0x7F, - 0x6D,0x5F,0x67,0x66,0x5D,0x5D,0x60,0x5E,0x53,0x49,0x4D,0x5C,0x59,0x48,0x46,0x4B, - 0x46,0x3E,0x36,0x39,0x46,0x48,0x44,0x4D,0x56,0x58,0x57,0x4E,0x53,0x61,0x5E,0x5D, - 0x66,0x6C,0x69,0x64,0x67,0x75,0x85,0x82,0x7E,0x8C,0x95,0x92,0x8F,0x94,0xA2,0xB1, - 0xB2,0xBA,0xC9,0xD0,0xD0,0xC7,0xC2,0xCB,0xCB,0xC1,0xC5,0xCA,0xC3,0xB8,0xAE,0xAC, - 0xBB,0xBB,0xA6,0xA5,0xAB,0x9D,0x8B,0x80,0x83,0x8D,0x83,0x7A,0x84,0x87,0x7F,0x74, - 0x6E,0x77,0x7C,0x74,0x77,0x82,0x81,0x78,0x76,0x76,0x82,0x91,0x85,0x80,0x8C,0x88, - 0x7C,0x75,0x76,0x82,0x86,0x7C,0x7F,0x87,0x84,0x7C,0x75,0x76,0x7C,0x74,0x71,0x7E, - 0x80,0x77,0x75,0x73,0x7A,0x8B,0x85,0x7C,0x86,0x85,0x75,0x6E,0x6B,0x71,0x79,0x71, - 0x72,0x7F,0x7D,0x77,0x74,0x72,0x79,0x79,0x75,0x7F,0x84,0x7C,0x74,0x70,0x6E,0x7B, - 0x83,0x76,0x7A,0x7F,0x70,0x66,0x63,0x64,0x6E,0x6D,0x6A,0x73,0x77,0x6D,0x69,0x67, - 0x67,0x6C,0x6D,0x71,0x7A,0x75,0x6B,0x6B,0x6B,0x75,0x86,0x7F,0x7A,0x85,0x7E,0x73, - 0x72,0x73,0x7C,0x7F,0x7A,0x81,0x89,0x81,0x79,0x78,0x78,0x7C,0x7D,0x81,0x8C,0x8B, - 0x81,0x80,0x80,0x82,0x94,0x9F,0x96,0x9D,0xA2,0x95,0x8B,0x87,0x8A,0x92,0x90,0x8E, - 0x97,0x94,0x86,0x7F,0x7C,0x7B,0x7B,0x7B,0x81,0x85,0x79,0x6E,0x6D,0x6B,0x76,0x88, - 0x82,0x81,0x8B,0x81,0x77,0x76,0x78,0x80,0x84,0x82,0x8A,0x91,0x86,0x80,0x82,0x80, - 0x83,0x88,0x8D,0x93,0x90,0x87,0x85,0x83,0x83,0x98,0x9E,0x93,0x9B,0x9B,0x8E,0x89, - 0x87,0x8D,0x96,0x95,0x99,0xA4,0xA0,0x96,0x96,0x95,0x94,0x99,0x9D,0xA4,0xA5,0x9B, - 0x94,0x91,0x8D,0x93,0xA3,0x9F,0x97,0x9B,0x93,0x83,0x7C,0x7B,0x7D,0x7D,0x7A,0x7B, - 0x7B,0x71,0x66,0x63,0x5F,0x5F,0x62,0x64,0x66,0x62,0x57,0x52,0x4E,0x4D,0x5E,0x63, - 0x58,0x5F,0x60,0x4F,0x45,0x43,0x47,0x4A,0x49,0x4C,0x55,0x50,0x45,0x48,0x49,0x47, - 0x4B,0x50,0x59,0x5D,0x59,0x56,0x56,0x54,0x5D,0x72,0x6F,0x6D,0x7B,0x77,0x6C,0x6B, - 0x72,0x7E,0x82,0x85,0x93,0x9B,0x92,0x8F,0x95,0x95,0x99,0xA2,0xAB,0xB3,0xB2,0xAC, - 0xA8,0xA3,0xA1,0xAD,0xBB,0xAF,0xAD,0xB5,0xA6,0x97,0x92,0x94,0x98,0x96,0x94,0x9D, - 0x9D,0x8F,0x8C,0x8E,0x8B,0x8B,0x8F,0x94,0x98,0x98,0x92,0x8E,0x8C,0x8D,0x9F,0xA9, - 0x9C,0xA3,0xAB,0x9C,0x91,0x93,0x99,0x9E,0x9B,0x9D,0xA9,0xA5,0x97,0x96,0x96,0x8E, - 0x8F,0x94,0x98,0x9A,0x97,0x90,0x8A,0x84,0x84,0x98,0x9E,0x90,0x97,0x9B,0x89,0x7F, - 0x7F,0x84,0x86,0x81,0x84,0x8E,0x85,0x77,0x78,0x74,0x6B,0x6B,0x70,0x72,0x71,0x6D, - 0x66,0x5C,0x56,0x56,0x64,0x66,0x59,0x60,0x62,0x4E,0x42,0x44,0x47,0x48,0x45,0x4C, - 0x54,0x4B,0x40,0x44,0x42,0x3B,0x40,0x47,0x4D,0x4C,0x49,0x47,0x43,0x3E,0x42,0x58, - 0x5E,0x53,0x5C,0x64,0x56,0x4F,0x55,0x5F,0x63,0x62,0x6B,0x78,0x71,0x6B,0x74,0x77, - 0x77,0x7D,0x87,0x91,0x95,0x95,0x98,0x98,0x98,0x97,0xAE,0xC1,0xB2,0xB8,0xC6,0xBB, - 0xB0,0xB5,0xBE,0xC4,0xC3,0xC4,0xD0,0xC9,0xB8,0xBD,0xBF,0xB6,0xB6,0xBB,0xBC,0xBA, - 0xB1,0xAC,0xA5,0x9E,0x97,0xA0,0xB4,0xA5,0x99,0xA5,0x9B,0x87,0x87,0x8D,0x92,0x91, - 0x90,0x99,0x9A,0x88,0x86,0x8C,0x84,0x84,0x8C,0x90,0x92,0x8D,0x8A,0x87,0x81,0x7B, - 0x7E,0x96,0x96,0x83,0x8E,0x8F,0x79,0x70,0x78,0x7E,0x7E,0x7B,0x82,0x8A,0x7B,0x71, - 0x7B,0x77,0x6F,0x75,0x7D,0x7E,0x7A,0x78,0x76,0x6F,0x6D,0x69,0x78,0x8A,0x77,0x75, - 0x80,0x70,0x5E,0x60,0x66,0x67,0x62,0x61,0x6B,0x63,0x50,0x52,0x55,0x49,0x47,0x50, - 0x52,0x52,0x4E,0x4C,0x49,0x44,0x40,0x44,0x5D,0x5E,0x4C,0x58,0x5B,0x46,0x41,0x4A, - 0x52,0x57,0x56,0x60,0x6D,0x5F,0x58,0x65,0x63,0x5F,0x69,0x73,0x78,0x79,0x78,0x79, - 0x77,0x77,0x75,0x82,0x9E,0x95,0x8E,0xA0,0x98,0x88,0x8B,0x96,0x9F,0xA2,0xA3,0xB2, - 0xB7,0xA8,0xAA,0xB5,0xB0,0xB1,0xBD,0xC2,0xC7,0xC5,0xBF,0xBD,0xB6,0xB2,0xAA,0xB6, - 0xC9,0xB6,0xAB,0xB5,0xA5,0x90,0x8F,0x93,0x96,0x93,0x8F,0x98,0x93,0x7F,0x7E,0x82, - 0x7A,0x79,0x80,0x83,0x84,0x7E,0x7B,0x79,0x74,0x73,0x6F,0x82,0x95,0x82,0x7F,0x8D, - 0x7E,0x6E,0x73,0x7C,0x84,0x83,0x81,0x8D,0x8A,0x77,0x7C,0x82,0x7B,0x7B,0x82,0x87, - 0x87,0x81,0x7F,0x7F,0x7C,0x7A,0x77,0x8D,0x9B,0x85,0x83,0x8E,0x7B,0x6D,0x73,0x7A, - 0x80,0x7D,0x7B,0x83,0x7C,0x6C,0x6F,0x74,0x6E,0x6D,0x73,0x78,0x77,0x6E,0x6B,0x6A, - 0x65,0x61,0x5C,0x70,0x7D,0x65,0x63,0x6D,0x5A,0x4E,0x54,0x5A,0x61,0x5C,0x57,0x62, - 0x5C,0x4D,0x51,0x57,0x52,0x54,0x59,0x5F,0x61,0x5C,0x5D,0x61,0x5F,0x5D,0x5B,0x73, - 0x82,0x6B,0x6B,0x7B,0x6D,0x63,0x6A,0x75,0x81,0x7C,0x7A,0x8D,0x8C,0x7D,0x83,0x8C, - 0x8C,0x8D,0x93,0x9C,0xA0,0x9B,0x9D,0xA0,0x9E,0x9E,0x9C,0xB4,0xC3,0xAB,0xAA,0xB5, - 0xA5,0x9A,0x9C,0xA3,0xAB,0xA0,0x98,0xA2,0x9B,0x86,0x86,0x8C,0x87,0x83,0x83,0x87, - 0x86,0x7A,0x77,0x79,0x78,0x72,0x6F,0x8B,0x93,0x7A,0x7D,0x85,0x77,0x71,0x73,0x7D, - 0x8A,0x81,0x7C,0x89,0x84,0x78,0x7B,0x82,0x84,0x83,0x84,0x8B,0x8D,0x86,0x86,0x89, - 0x88,0x83,0x83,0x9F,0xA7,0x8E,0x92,0x9A,0x8D,0x88,0x89,0x94,0x9F,0x96,0x90,0x99, - 0x94,0x87,0x87,0x8B,0x8D,0x8B,0x89,0x8C,0x8D,0x84,0x81,0x7F,0x7F,0x79,0x75,0x8C, - 0x91,0x78,0x79,0x7B,0x6D,0x68,0x67,0x6F,0x78,0x6D,0x66,0x6C,0x69,0x5E,0x5D,0x5F, - 0x61,0x61,0x5F,0x62,0x64,0x60,0x5C,0x5B,0x5F,0x5A,0x57,0x71,0x77,0x64,0x67,0x69, - 0x62,0x60,0x5E,0x6B,0x77,0x6F,0x6B,0x74,0x73,0x6F,0x70,0x74,0x7E,0x83,0x81,0x87, - 0x8D,0x8B,0x88,0x89,0x90,0x8E,0x91,0xAF,0xB0,0x9E,0xA3,0xA3,0x9C,0x9D,0x9B,0xA6, - 0xB2,0xA7,0xA1,0xA5,0x9F,0x98,0x95,0x95,0x98,0x96,0x92,0x90,0x8F,0x86,0x7E,0x7B, - 0x7C,0x73,0x78,0x90,0x86,0x74,0x77,0x72,0x6E,0x6B,0x6B,0x79,0x80,0x75,0x72,0x74, - 0x72,0x70,0x6E,0x72,0x7B,0x7E,0x7C,0x7E,0x7F,0x7D,0x7A,0x7A,0x7D,0x79,0x88,0xA0, - 0x93,0x88,0x8D,0x84,0x83,0x83,0x85,0x95,0x9C,0x92,0x8D,0x8E,0x8F,0x8D,0x8B,0x8D, - 0x97,0x9A,0x93,0x93,0x95,0x93,0x8D,0x8A,0x8A,0x86,0x96,0xA5,0x93,0x89,0x87,0x7E, - 0x7D,0x78,0x78,0x86,0x88,0x7B,0x71,0x71,0x72,0x6F,0x6A,0x6A,0x73,0x74,0x6D,0x68, - 0x68,0x67,0x61,0x5E,0x5E,0x5C,0x70,0x7E,0x6C,0x62,0x60,0x5C,0x5F,0x5B,0x5D,0x6D, - 0x72,0x68,0x60,0x5F,0x64,0x67,0x63,0x63,0x6D,0x73,0x70,0x6D,0x6F,0x74,0x73,0x74, - 0x73,0x74,0x8D,0x9C,0x8D,0x85,0x87,0x8A,0x8E,0x8A,0x8E,0x9E,0xA6,0xA1,0x9A,0x99, - 0xA0,0xA3,0xA0,0x9E,0xA2,0xA7,0xA5,0x9E,0x9B,0x9A,0x96,0x94,0x8C,0x8A,0xA0,0xA9, - 0x98,0x8C,0x84,0x83,0x86,0x7E,0x79,0x80,0x85,0x80,0x75,0x6E,0x71,0x76,0x73,0x6E, - 0x70,0x78,0x7B,0x77,0x72,0x72,0x73,0x75,0x70,0x72,0x89,0x93,0x89,0x7E,0x74,0x76, - 0x7F,0x7E,0x7D,0x85,0x8B,0x8D,0x87,0x7C,0x7B,0x82,0x83,0x82,0x83,0x87,0x8A,0x8A, - 0x85,0x81,0x81,0x83,0x7F,0x86,0x99,0x9D,0x97,0x8B,0x7F,0x7F,0x85,0x84,0x87,0x8B, - 0x8C,0x8E,0x8A,0x81,0x80,0x81,0x84,0x85,0x84,0x84,0x84,0x84,0x80,0x78,0x74,0x72, - 0x6F,0x7A,0x8A,0x88,0x7F,0x75,0x69,0x6C,0x70,0x6B,0x6E,0x72,0x74,0x78,0x76,0x6F, - 0x6E,0x6F,0x71,0x75,0x76,0x77,0x79,0x7A,0x7A,0x77,0x73,0x72,0x72,0x81,0x8F,0x8B, - 0x86,0x7F,0x78,0x7C,0x7F,0x7B,0x7B,0x7D,0x7E,0x82,0x83,0x80,0x81,0x7F,0x7F,0x84, - 0x84,0x83,0x83,0x84,0x85,0x85,0x86,0x85,0x82,0x8A,0x93,0x91,0x8F,0x8B,0x84,0x86, - 0x89,0x83,0x83,0x81,0x7E,0x81,0x81,0x7F,0x7F,0x7D,0x7C,0x7E,0x7E,0x7C,0x7A,0x79, - 0x78,0x78,0x79,0x78,0x76,0x75,0x79,0x7D,0x79,0x7A,0x7A,0x77,0x7D,0x7E,0x7A,0x7E, - 0x7D,0x7A,0x7E,0x7E,0x7D,0x7E,0x7D,0x7E,0x82,0x82,0x81,0x82,0x83,0x83,0x83,0x83, - 0x83,0x82,0x87,0x8C,0x88,0x88,0x89,0x85,0x8A,0x8D,0x88,0x89,0x87,0x84,0x87,0x86, - 0x82,0x83,0x82,0x82,0x85,0x86,0x85,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x84,0x8A, - 0x8C,0x85,0x86,0x86,0x83,0x89,0x89,0x84,0x85,0x81,0x7C,0x7E,0x7A,0x77,0x79,0x77, - 0x76,0x79,0x79,0x77,0x78,0x78,0x7A,0x7C,0x7D,0x7D,0x7B,0x7B,0x82,0x82,0x7C,0x7F, - 0x7F,0x7E,0x85,0x83,0x7F,0x7E,0x7A,0x79,0x86,0x83,0x60,0x67,0x7E,0x86,0x75,0x77, - 0x92,0x70,0x70,0x86,0x82,0x81,0x88,0x95,0x80,0x80,0x90,0x8D,0x86,0x80,0x8C,0x8B, - 0x7E,0x76,0x7F,0x83,0x7F,0x82,0x84,0x7C,0x6E,0x72,0x71,0x72,0x74,0x7A,0x7B,0x77, - 0x82,0x80,0x81,0x86,0x89,0x87,0x82,0x89,0x86,0x82,0x86,0x7D,0x7F,0x81,0x7A,0x79, - 0x7A,0x78,0x74,0x74,0x72,0x6F,0x74,0x72,0x6D,0x70,0x71,0x6E,0x70,0x75,0x7A,0x87, - 0x8D,0x81,0x7F,0x85,0x8F,0x92,0x8C,0x91,0x8E,0x88,0x90,0x90,0x88,0x8B,0x89,0x81, - 0x85,0x84,0x81,0x82,0x81,0x7C,0x74,0x77,0x80,0x7B,0x77,0x80,0x81,0x7D,0x7F,0x82, - 0x83,0x7F,0x80,0x87,0x85,0x80,0x80,0x7E,0x89,0x90,0x87,0x87,0x85,0x7B,0x7F,0x87, - 0x83,0x80,0x7E,0x7B,0x80,0x85,0x83,0x81,0x83,0x82,0x7F,0x7D,0x7F,0x7E,0x7E,0x7F, - 0x7F,0x84,0x7D,0x80,0x87,0x7F,0x81,0x85,0x81,0x7D,0x81,0x7D,0x78,0x7F,0x79,0x78, - 0x7A,0x79,0x7C,0x79,0x7E,0x81,0x7C,0x84,0x84,0x88,0x8B,0x89,0x8A,0x87,0x84,0x88, - 0x8F,0x81,0x7E,0x8B,0x84,0x81,0x86,0x7F,0x81,0x83,0x7D,0x7C,0x79,0x76,0x78,0x7C, - 0x7A,0x77,0x76,0x77,0x7C,0x78,0x7B,0x82,0x88,0x88,0x83,0x85,0x86,0x84,0x82,0x86, - 0x86,0x84,0x7F,0x7E,0x8A,0x87,0x7B,0x7D,0x78,0x78,0x76,0x71,0x71,0x6E,0x73,0x75, - 0x7A,0x77,0x79,0x7F,0x7B,0x7E,0x81,0x85,0x85,0x85,0x87,0x86,0x86,0x8F,0x91,0x8C, - 0x8F,0x87,0x84,0x88,0x82,0x7D,0x81,0x83,0x7C,0x7E,0x7F,0x79,0x7B,0x79,0x7B,0x80, - 0x7E,0x7D,0x7D,0x83,0x81,0x83,0x88,0x84,0x8A,0x88,0x82,0x85,0x8A,0x8C,0x8B,0x87, - 0x83,0x80,0x82,0x85,0x7C,0x7C,0x7C,0x76,0x79,0x7C,0x80,0x7C,0x7C,0x79,0x75,0x7A, - 0x7B,0x7A,0x7E,0x7F,0x83,0x85,0x82,0x88,0x86,0x87,0x86,0x81,0x86,0x81,0x7E,0x80, - 0x83,0x89,0x8A,0x7F,0x7C,0x7B,0x75,0x78,0x7B,0x79,0x7C,0x7F,0x78,0x7C,0x81,0x80, - 0x81,0x82,0x81,0x86,0x87,0x88,0x88,0x83,0x83,0x80,0x7E,0x86,0x91,0x8B,0x89,0x85, - 0x7C,0x82,0x81,0x82,0x7F,0x73,0x71,0x76,0x7A,0x7F,0x82,0x79,0x77,0x7B,0x7B,0x7D, - 0x7F,0x7E,0x80,0x88,0x83,0x7F,0x82,0x80,0x7E,0x78,0x78,0x84,0x8D,0x90,0x8B,0x7E, - 0x7A,0x80,0x7D,0x76,0x75,0x6B,0x6D,0x7F,0x83,0x85,0x85,0x7E,0x7E,0x86,0x82,0x7F, - 0x7D,0x7B,0x7D,0x81,0x84,0x81,0x84,0x82,0x7F,0x7A,0x77,0x8A,0x9D,0x98,0x8E,0x80, - 0x75,0x7F,0x7D,0x7A,0x7B,0x76,0x78,0x86,0x8D,0x87,0x88,0x85,0x82,0x85,0x84,0x82, - 0x84,0x80,0x81,0x88,0x85,0x81,0x7E,0x7F,0x7E,0x78,0x75,0x82,0x8F,0x90,0x8D,0x7D, - 0x72,0x7E,0x7A,0x73,0x79,0x72,0x76,0x88,0x89,0x81,0x80,0x7F,0x82,0x8A,0x84,0x7D, - 0x79,0x7C,0x81,0x81,0x82,0x82,0x84,0x7D,0x7B,0x75,0x71,0x8B,0x8F,0x88,0x85,0x74, - 0x77,0x7C,0x76,0x73,0x71,0x75,0x7B,0x86,0x85,0x80,0x83,0x82,0x88,0x87,0x81,0x7E, - 0x81,0x86,0x82,0x84,0x83,0x83,0x88,0x82,0x7E,0x7C,0x7C,0x93,0x8E,0x80,0x87,0x78, - 0x7C,0x87,0x79,0x75,0x77,0x76,0x7B,0x7D,0x7C,0x73,0x75,0x82,0x84,0x81,0x7B,0x78, - 0x7D,0x7F,0x7A,0x7F,0x83,0x83,0x86,0x80,0x7D,0x74,0x78,0x94,0x90,0x81,0x85,0x7E, - 0x83,0x86,0x74,0x73,0x74,0x76,0x7E,0x7D,0x7A,0x78,0x80,0x8A,0x83,0x7C,0x7F,0x7E, - 0x82,0x83,0x7D,0x81,0x86,0x81,0x82,0x81,0x7A,0x78,0x8C,0x9A,0x88,0x87,0x88,0x84, - 0x8C,0x81,0x77,0x79,0x76,0x7C,0x7F,0x7C,0x7F,0x7E,0x89,0x8E,0x7F,0x82,0x81,0x7B, - 0x80,0x76,0x7A,0x87,0x82,0x84,0x82,0x7D,0x7B,0x82,0x97,0x8C,0x82,0x86,0x7D,0x84, - 0x81,0x70,0x78,0x7A,0x77,0x80,0x7A,0x7A,0x7F,0x82,0x87,0x85,0x81,0x83,0x82,0x81, - 0x7C,0x78,0x80,0x7F,0x7F,0x7D,0x79,0x77,0x7E,0x91,0x89,0x80,0x87,0x7D,0x85,0x88, - 0x70,0x76,0x78,0x78,0x83,0x79,0x78,0x81,0x82,0x86,0x87,0x80,0x83,0x86,0x84,0x7F, - 0x7C,0x84,0x82,0x81,0x7E,0x79,0x78,0x81,0x93,0x8D,0x84,0x86,0x7F,0x84,0x81,0x6F, - 0x7A,0x7C,0x73,0x7E,0x74,0x71,0x82,0x7F,0x80,0x84,0x7F,0x86,0x84,0x81,0x80,0x7B, - 0x80,0x80,0x7E,0x7D,0x7D,0x79,0x86,0x8D,0x81,0x87,0x88,0x7E,0x88,0x86,0x78,0x7F, - 0x78,0x77,0x7F,0x78,0x7A,0x7E,0x7C,0x83,0x81,0x7C,0x87,0x85,0x7E,0x84,0x84,0x81, - 0x7F,0x7D,0x80,0x7A,0x74,0x87,0x8B,0x84,0x89,0x84,0x80,0x8D,0x84,0x7A,0x85,0x79, - 0x7B,0x7E,0x71,0x7B,0x7D,0x7A,0x85,0x80,0x7D,0x8C,0x84,0x81,0x86,0x7F,0x7E,0x7E, - 0x7C,0x7F,0x7A,0x7B,0x8B,0x87,0x84,0x87,0x7F,0x85,0x8D,0x82,0x7F,0x83,0x78,0x7F, - 0x7A,0x71,0x7C,0x7D,0x7C,0x82,0x7D,0x80,0x89,0x83,0x87,0x85,0x83,0x86,0x7E,0x7D, - 0x7E,0x75,0x79,0x88,0x7F,0x81,0x89,0x83,0x8B,0x89,0x7F,0x80,0x7E,0x7A,0x7F,0x76, - 0x75,0x7D,0x77,0x7E,0x80,0x7D,0x86,0x85,0x82,0x85,0x81,0x83,0x81,0x79,0x7C,0x7B, - 0x78,0x82,0x87,0x82,0x87,0x86,0x85,0x8A,0x7F,0x7E,0x83,0x7B,0x7F,0x79,0x70,0x7B, - 0x76,0x75,0x7C,0x7C,0x80,0x85,0x84,0x86,0x89,0x85,0x86,0x80,0x7F,0x7C,0x78,0x83, - 0x84,0x80,0x88,0x85,0x82,0x8F,0x86,0x81,0x89,0x80,0x7F,0x80,0x76,0x7C,0x7E,0x7B, - 0x7F,0x7D,0x82,0x87,0x86,0x87,0x89,0x85,0x85,0x82,0x7B,0x7B,0x76,0x7F,0x86,0x7E, - 0x85,0x85,0x82,0x8A,0x81,0x7F,0x85,0x7B,0x7B,0x80,0x76,0x7D,0x7F,0x7A,0x7F,0x7E, - 0x7F,0x83,0x81,0x87,0x88,0x86,0x88,0x82,0x7D,0x80,0x7A,0x7D,0x83,0x7F,0x82,0x82, - 0x82,0x86,0x82,0x80,0x85,0x7F,0x7D,0x7F,0x77,0x7A,0x7E,0x7B,0x7E,0x7E,0x80,0x85, - 0x81,0x84,0x89,0x83,0x86,0x85,0x81,0x82,0x7E,0x84,0x85,0x80,0x86,0x83,0x7D,0x85, - 0x81,0x7F,0x82,0x7B,0x7E,0x7E,0x78,0x7D,0x7B,0x7A,0x7B,0x78,0x84,0x87,0x8E,0x90, - 0x90,0x91,0x81,0x80,0x78,0x77,0x78,0x7B,0x83,0x70,0x7E,0x72,0x63,0x8D,0x85,0x72, - 0x8C,0x83,0x7A,0x6C,0x62,0x7B,0x73,0x73,0x79,0x71,0x7F,0x7D,0x78,0x80,0x7E,0x84, - 0x8C,0x84,0x7B,0x73,0x7C,0x88,0x7E,0x7E,0x80,0x77,0x81,0x88,0x82,0x83,0x84,0x93, - 0x91,0x84,0x8F,0x84,0x7C,0x90,0x94,0x92,0xA0,0xA2,0x99,0x9B,0xA3,0xA2,0x8E,0x87, - 0x90,0x90,0x96,0x9D,0x91,0x8C,0x8C,0x86,0x84,0x75,0x72,0x7C,0x7B,0x78,0x6F,0x69, - 0x6D,0x68,0x64,0x69,0x69,0x68,0x68,0x65,0x66,0x65,0x63,0x68,0x6A,0x6C,0x6A,0x68, - 0x6F,0x6F,0x6F,0x6A,0x62,0x68,0x6C,0x6B,0x69,0x62,0x67,0x69,0x66,0x6C,0x6C,0x70, - 0x76,0x75,0x77,0x7B,0x80,0x8A,0x97,0xA8,0xB2,0xAA,0x9F,0x9C,0x9B,0x9C,0x9A,0x99, - 0x98,0x94,0x8F,0x8C,0x8D,0x8F,0x8C,0x87,0x85,0x87,0x8C,0x8A,0x83,0x84,0x85,0x83, - 0x82,0x82,0x87,0x8C,0x89,0x86,0x85,0x83,0x84,0x8A,0x8C,0x87,0x8A,0x88,0x86,0x87, - 0x82,0x7F,0x84,0x7F,0x7A,0x7F,0x79,0x79,0x7C,0x7B,0x7D,0x82,0x86,0x8B,0x8C,0x8C, - 0x8E,0x90,0x90,0x91,0x92,0x8E,0x95,0x92,0x94,0x96,0x90,0x90,0x8F,0x8D,0x8A,0x8B, - 0x88,0x83,0x7C,0x71,0x73,0x70,0x65,0x67,0x69,0x69,0x6C,0x65,0x67,0x6B,0x63,0x5F, - 0x60,0x55,0x56,0x6A,0x62,0x5D,0x63,0x61,0x68,0x61,0x55,0x62,0x66,0x5F,0x5B,0x55, - 0x62,0x67,0x5B,0x5F,0x67,0x67,0x65,0x62,0x6B,0x6F,0x65,0x6A,0x69,0x6F,0x6D,0x81, - 0x9C,0x91,0x9D,0xA7,0xAB,0xAA,0x8F,0x98,0xA9,0x98,0x9C,0xA1,0xA4,0xAD,0x96,0x8E, - 0x98,0x8F,0x89,0x88,0x92,0x9A,0x92,0x8D,0x88,0x7B,0x83,0xA0,0x98,0x8E,0xA0,0x98, - 0x92,0x7E,0x75,0x8F,0x88,0x84,0x91,0x95,0x9E,0x8F,0x7D,0x8E,0x8B,0x7E,0x82,0x86, - 0x92,0x86,0x7F,0x84,0x80,0x86,0x7B,0x8F,0xAD,0x94,0x91,0x9C,0x92,0x92,0x84,0x8B, - 0xA4,0x94,0x91,0x9B,0x99,0x98,0x86,0x83,0x94,0x8B,0x8A,0x93,0x90,0x8C,0x7E,0x74, - 0x76,0x6A,0x6F,0x8C,0x7E,0x7A,0x80,0x6F,0x6A,0x58,0x5A,0x6E,0x62,0x5E,0x69,0x66, - 0x60,0x50,0x50,0x5C,0x57,0x5B,0x65,0x6C,0x68,0x5C,0x59,0x5A,0x5C,0x62,0x59,0x73, - 0x7C,0x5D,0x67,0x66,0x5C,0x5F,0x5B,0x70,0x7C,0x6C,0x77,0x7E,0x75,0x7C,0x7D,0x90, - 0x9C,0x9B,0xAA,0xAF,0xA5,0xA0,0x97,0x9A,0x9C,0x8E,0xAA,0xB0,0x96,0xA1,0x99,0x8E, - 0x88,0x7C,0x93,0x97,0x84,0x93,0x93,0x89,0x82,0x7C,0x8C,0x8B,0x87,0x90,0x93,0x8E, - 0x84,0x80,0x84,0x80,0x8A,0x84,0x89,0xA1,0x84,0x80,0x8B,0x7A,0x7B,0x78,0x80,0x93, - 0x85,0x84,0x94,0x8A,0x84,0x87,0x8C,0x93,0x8F,0x97,0x9E,0x92,0x8F,0x8C,0x88,0x8F, - 0x83,0x93,0xA9,0x90,0x93,0x97,0x87,0x81,0x78,0x86,0x91,0x7B,0x83,0x8B,0x77,0x71, - 0x6D,0x71,0x75,0x6D,0x73,0x7A,0x6F,0x68,0x62,0x5E,0x58,0x5D,0x5B,0x5F,0x79,0x62, - 0x5D,0x69,0x58,0x55,0x54,0x5A,0x6B,0x62,0x61,0x71,0x63,0x5A,0x5C,0x5C,0x5E,0x5D, - 0x65,0x70,0x69,0x66,0x66,0x64,0x67,0x62,0x82,0x92,0x7E,0x94,0x9F,0x8E,0x8E,0x8E, - 0x9E,0xA6,0x9A,0xAC,0xAE,0x9B,0x99,0x97,0x94,0x90,0x8C,0x9B,0x9D,0x92,0x91,0x8C, - 0x85,0x7E,0x84,0x81,0x92,0x9F,0x89,0x95,0x92,0x7E,0x7E,0x7C,0x85,0x8B,0x85,0x92, - 0x93,0x85,0x88,0x84,0x82,0x83,0x83,0x8B,0x8A,0x84,0x8B,0x81,0x7D,0x7B,0x84,0xA3, - 0x89,0x8D,0xA8,0x90,0x84,0x87,0x89,0x8C,0x86,0x8D,0x9F,0x90,0x8B,0x93,0x8A,0x87, - 0x86,0x8C,0x96,0x8D,0x8D,0x91,0x84,0x7D,0x7E,0x7A,0x77,0x8D,0x87,0x79,0x89,0x78, - 0x6A,0x6C,0x66,0x6C,0x68,0x64,0x74,0x6B,0x5E,0x67,0x61,0x5C,0x5C,0x60,0x67,0x62, - 0x66,0x6B,0x5D,0x5C,0x59,0x5F,0x77,0x5F,0x64,0x7A,0x63,0x5C,0x65,0x63,0x62,0x62, - 0x6B,0x78,0x6D,0x71,0x7E,0x74,0x75,0x80,0x85,0x8A,0x90,0x98,0x9B,0x95,0x95,0x9A, - 0x93,0x96,0xB0,0xA1,0x9A,0xAE,0x97,0x8D,0x8C,0x86,0x8C,0x84,0x85,0x97,0x8B,0x81, - 0x8D,0x84,0x7F,0x81,0x84,0x88,0x84,0x86,0x89,0x7C,0x7C,0x7C,0x7A,0x97,0x88,0x82, - 0x9C,0x86,0x79,0x83,0x7D,0x7D,0x7D,0x80,0x90,0x89,0x82,0x90,0x89,0x80,0x89,0x8B, - 0x8B,0x8F,0x93,0x94,0x8D,0x88,0x8D,0x87,0x86,0xA3,0x96,0x8D,0xA4,0x8F,0x83,0x88, - 0x84,0x85,0x80,0x83,0x91,0x85,0x7D,0x88,0x7E,0x73,0x78,0x78,0x75,0x73,0x71,0x74, - 0x6B,0x61,0x66,0x5D,0x70,0x75,0x60,0x76,0x73,0x59,0x62,0x63,0x5D,0x5F,0x5D,0x6D, - 0x6D,0x5F,0x69,0x6A,0x5D,0x60,0x65,0x63,0x65,0x6A,0x6E,0x6A,0x67,0x6A,0x68,0x67, - 0x84,0x85,0x76,0x92,0x8E,0x7D,0x88,0x8B,0x8C,0x8D,0x91,0xA0,0x9E,0x96,0xA0,0x9C, - 0x93,0x95,0x95,0x92,0x92,0x94,0x93,0x8E,0x86,0x8A,0x7F,0x85,0x9B,0x86,0x89,0x98, - 0x82,0x7E,0x82,0x7D,0x80,0x7D,0x84,0x8D,0x82,0x82,0x88,0x7E,0x7B,0x80,0x7E,0x80, - 0x84,0x87,0x86,0x81,0x80,0x83,0x7C,0x8B,0x9B,0x87,0x92,0x9D,0x88,0x87,0x8C,0x88, - 0x8A,0x89,0x91,0x97,0x8D,0x92,0x94,0x8A,0x8A,0x8D,0x8C,0x8C,0x8E,0x8E,0x8C,0x85, - 0x83,0x7F,0x79,0x91,0x8F,0x7D,0x90,0x89,0x75,0x79,0x71,0x6E,0x70,0x6D,0x75,0x72, - 0x69,0x6F,0x6D,0x62,0x67,0x69,0x65,0x6A,0x6A,0x68,0x66,0x63,0x64,0x5D,0x5D,0x73, - 0x6A,0x63,0x78,0x69,0x5D,0x68,0x64,0x65,0x66,0x6A,0x78,0x72,0x6F,0x79,0x76,0x78, - 0x7B,0x89,0x91,0x8B,0x9D,0x88,0x82,0x95,0x8A,0x7A,0x8D,0xAA,0x9C,0xAB,0xB6,0x9E, - 0x94,0x9D,0xA4,0xA4,0x9F,0xA0,0xB1,0xA1,0x90,0x92,0x73,0x72,0x80,0x65,0x61,0x70, - 0x6B,0x5B,0x54,0x4D,0x51,0x5E,0x74,0x7C,0x5D,0x76,0x86,0x6C,0x74,0x82,0x8D,0x9B, - 0x95,0x94,0xB2,0xAE,0xC0,0xC1,0x97,0xC4,0xB8,0xA8,0xBD,0xA6,0xB9,0xB9,0x9A,0x94, - 0x8E,0x8E,0xA8,0x8A,0x7D,0x91,0x79,0x75,0x70,0x78,0x88,0x74,0x71,0x76,0x6F,0x74, - 0x67,0x4E,0x50,0x55,0x58,0x58,0x53,0x4D,0x4C,0x50,0x51,0x52,0x5D,0x6A,0x85,0x83, - 0x81,0x8A,0x73,0x6F,0x74,0x7D,0x91,0x99,0x9C,0x9C,0x8E,0x91,0x94,0x92,0x87,0x80, - 0x83,0x7E,0x80,0x70,0x73,0x6F,0x5C,0x64,0x60,0x7F,0x8B,0x65,0x68,0x65,0x4F,0x59, - 0x61,0x57,0x61,0x6B,0x6F,0x7E,0x79,0x8F,0x9C,0x8F,0x9B,0xA0,0x98,0xA1,0xA5,0x9B, - 0x95,0x84,0x80,0x82,0x84,0x98,0x9D,0x98,0xB1,0xB2,0xA9,0xB5,0xA1,0xA0,0xA2,0x89, - 0x9C,0x96,0x71,0x88,0x85,0x76,0x8A,0x80,0x74,0x71,0x6B,0x75,0x85,0x7E,0x7A,0x6B, - 0x6C,0x8B,0x73,0x66,0x6D,0x67,0x69,0x60,0x5C,0x5B,0x58,0x67,0x6F,0x71,0x6A,0x6F, - 0x82,0x85,0x81,0x8C,0x86,0x87,0x92,0x8E,0x9E,0x9D,0xA3,0xA5,0xAB,0xBA,0xAE,0xB7, - 0xBB,0xAC,0xB8,0xB4,0xB2,0xB5,0xA2,0x9F,0x9E,0x97,0x97,0x8D,0x81,0x6F,0x61,0x59, - 0x60,0x68,0x4F,0x57,0x64,0x5C,0x4D,0x32,0x31,0x36,0x38,0x4B,0x4C,0x36,0x2C,0x35, - 0x40,0x3D,0x3E,0x4B,0x4D,0x47,0x46,0x52,0x5C,0x66,0x6B,0x73,0x91,0x9A,0x96,0x8C, - 0x84,0x97,0x9F,0xAF,0xCD,0xC0,0xCB,0xDC,0xC2,0xB1,0xB2,0xB6,0xBE,0xCB,0xC7,0xBE, - 0xC0,0xBF,0xC3,0xC5,0xC1,0xC2,0xB5,0xB0,0xB0,0x9C,0x8B,0x76,0x65,0x6F,0x7D,0x84, - 0x78,0x5A,0x5D,0x65,0x5D,0x57,0x53,0x58,0x5C,0x63,0x52,0x51,0x44,0x3D,0x4D,0x49, - 0x58,0x57,0x53,0x60,0x6D,0x68,0x5A,0x5B,0x64,0x65,0x79,0x8D,0x78,0x83,0x8C,0x7F, - 0x8D,0x88,0x90,0x9F,0xA3,0xA8,0xAA,0xA6,0xA8,0xA9,0xA9,0xB6,0xB1,0xB2,0xB1,0xB6, - 0xB4,0xAB,0xA9,0x9C,0x9B,0x98,0x9B,0x9C,0x8C,0x87,0x87,0x7C,0x73,0x78,0x78,0x7B, - 0x7B,0x69,0x67,0x63,0x63,0x5D,0x53,0x5D,0x64,0x66,0x66,0x5C,0x59,0x5B,0x57,0x59, - 0x5B,0x55,0x60,0x5F,0x59,0x67,0x71,0x71,0x62,0x5C,0x68,0x72,0x76,0x6C,0x68,0x73, - 0x78,0x76,0x77,0x82,0x82,0x76,0x7B,0x79,0x81,0x86,0x82,0x88,0x7B,0x8B,0xA2,0x95, - 0x97,0x9D,0x95,0x91,0x89,0x91,0x9B,0xA3,0xAA,0xA1,0x9F,0xAB,0xAB,0x9B,0x9A,0x97, - 0x94,0xA4,0xA3,0xA1,0x9E,0x8F,0x94,0x97,0x98,0xA3,0x98,0x8B,0x97,0x9B,0x91,0x8E, - 0x92,0x94,0x9D,0x91,0x82,0x80,0x73,0x73,0x68,0x64,0x76,0x77,0x74,0x7C,0x7E,0x74, - 0x74,0x6A,0x66,0x6F,0x6F,0x78,0x6F,0x6A,0x6C,0x64,0x60,0x55,0x55,0x63,0x6A,0x6A, - 0x64,0x6B,0x71,0x69,0x70,0x73,0x78,0x80,0x7F,0x87,0x83,0x7A,0x72,0x67,0x6C,0x72, - 0x84,0x8E,0x7B,0x79,0x7B,0x71,0x70,0x60,0x6A,0x7B,0x6C,0x6D,0x67,0x6C,0x83,0x79, - 0x6F,0x7B,0x81,0x8A,0x97,0x8B,0x86,0x94,0x8C,0x98,0xA5,0x9F,0xAE,0xAD,0xA2,0xB3, - 0xB4,0xAD,0xA3,0x91,0x9C,0xA5,0x98,0x91,0x8D,0x8F,0x91,0x8F,0x88,0x88,0x89,0x7D, - 0x77,0x74,0x6F,0x70,0x70,0x63,0x58,0x67,0x6F,0x60,0x6D,0x76,0x6E,0x65,0x54,0x66, - 0x71,0x72,0x64,0x4B,0x4E,0x5B,0x6F,0x71,0x6C,0x78,0x7A,0x7B,0x84,0x83,0x85,0x8C, - 0x8D,0x92,0x97,0xAA,0xB3,0xAB,0x9D,0x9B,0xAB,0xA7,0x9D,0xA2,0xA8,0xA3,0x96,0x90, - 0x91,0x98,0xA0,0x97,0x89,0x98,0x9A,0x92,0x8F,0x8A,0x93,0x97,0x8F,0x8A,0x92,0x91, - 0x8B,0x87,0x7D,0x7B,0x76,0x6B,0x6E,0x7A,0x85,0x7E,0x72,0x6B,0x63,0x69,0x6F,0x61, - 0x58,0x5C,0x5E,0x5E,0x54,0x4B,0x4D,0x56,0x55,0x5A,0x67,0x71,0x76,0x6E,0x6B,0x63, - 0x62,0x6F,0x6E,0x74,0x73,0x70,0x76,0x7A,0x85,0x89,0x85,0x7F,0x86,0x8C,0x88,0x8B, - 0x7A,0x6B,0x76,0x79,0x80,0x93,0x94,0x8E,0x86,0x7D,0x81,0x7D,0x73,0x74,0x76,0x74, - 0x74,0x73,0x6A,0x64,0x6E,0x78,0x7B,0x7C,0x81,0x82,0x78,0x6F,0x6E,0x71,0x7A,0x84, - 0x8E,0x9A,0x9D,0x95,0x90,0x95,0x94,0x96,0x94,0x96,0xA0,0x9B,0x91,0x90,0x88,0x8E, - 0xA1,0xA2,0xA5,0xA3,0xA4,0xAE,0xA9,0xA7,0xA3,0x9F,0x9B,0x9C,0xAB,0xAB,0xA9,0xA9, - 0x98,0x92,0x98,0x99,0x98,0x91,0x89,0x84,0x7D,0x79,0x72,0x6E,0x70,0x72,0x78,0x7C, - 0x79,0x74,0x73,0x70,0x6D,0x65,0x5A,0x61,0x71,0x70,0x65,0x64,0x56,0x4C,0x51,0x56, - 0x60,0x63,0x5F,0x58,0x5B,0x5C,0x5C,0x60,0x55,0x58,0x63,0x66,0x6D,0x6E,0x67,0x6A, - 0x6E,0x74,0x7A,0x7A,0x7F,0x7B,0x78,0x78,0x72,0x6F,0x69,0x68,0x72,0x7A,0x73,0x77, - 0x76,0x74,0x83,0x83,0x78,0x71,0x75,0x77,0x7B,0x7E,0x7D,0x83,0x82,0x89,0x84,0x77, - 0x7D,0x7A,0x7D,0x82,0x7E,0x83,0x81,0x7F,0x8C,0x94,0x94,0x92,0x8F,0x92,0x9E,0x9D, - 0x93,0x97,0x96,0x9C,0xAA,0xA2,0x9E,0xA1,0xA6,0xAD,0xA9,0xA1,0xA2,0xA8,0xA5,0xAA, - 0xA2,0x99,0xA4,0xA1,0x9F,0xA0,0x9D,0x97,0x97,0x95,0x97,0x9D,0x94,0x94,0x94,0x8C, - 0x93,0x92,0x8A,0x8D,0x8E,0x8A,0x86,0x81,0x81,0x85,0x84,0x81,0x7F,0x7D,0x81,0x82, - 0x72,0x6F,0x71,0x68,0x6B,0x6C,0x6B,0x67,0x63,0x6B,0x62,0x65,0x6D,0x65,0x65,0x5F, - 0x60,0x5F,0x58,0x5A,0x52,0x5C,0x63,0x5C,0x5F,0x60,0x64,0x67,0x69,0x65,0x65,0x6B, - 0x6B,0x6E,0x6B,0x65,0x66,0x6E,0x6D,0x6F,0x6E,0x69,0x6F,0x75,0x79,0x7A,0x73,0x70, - 0x75,0x75,0x79,0x77,0x6E,0x72,0x79,0x7D,0x83,0x83,0x83,0x87,0x89,0x86,0x85,0x88, - 0x85,0x85,0x8A,0x87,0x87,0x86,0x85,0x8C,0x8D,0x8E,0x93,0x8E,0x8F,0x98,0x99,0x9A, - 0x9B,0x9C,0x9E,0xA2,0xA8,0xA3,0xA0,0xA0,0xA5,0xAB,0xA7,0xA3,0xA2,0x9E,0x9E,0xA3, - 0x9E,0x99,0x97,0x94,0x99,0x9C,0x97,0x9A,0x99,0x9B,0x9C,0x96,0x9C,0x98,0x98,0x9F, - 0x9B,0x98,0x97,0x93,0x92,0x91,0x89,0x88,0x85,0x80,0x82,0x7E,0x7B,0x79,0x74,0x77, - 0x74,0x72,0x76,0x72,0x74,0x70,0x6C,0x73,0x6B,0x6B,0x76,0x73,0x75,0x7A,0x73,0x74, - 0x79,0x73,0x74,0x72,0x6C,0x70,0x6A,0x62,0x63,0x60,0x67,0x68,0x60,0x5F,0x62,0x65, - 0x63,0x60,0x5D,0x5C,0x66,0x69,0x64,0x6D,0x65,0x5D,0x69,0x67,0x67,0x72,0x66,0x5F, - 0x6B,0x69,0x6B,0x6D,0x64,0x66,0x6C,0x70,0x6F,0x68,0x68,0x6C,0x72,0x77,0x77,0x76, - 0x7A,0x80,0x84,0x7E,0x7C,0x82,0x85,0x8F,0x94,0x8E,0x8F,0x8F,0x8A,0x92,0x92,0x8C, - 0x8E,0x8C,0x8A,0x90,0x8C,0x86,0x8A,0x8C,0x94,0x9A,0x97,0x98,0x9A,0x99,0x9F,0xA1, - 0xA0,0x9B,0x9D,0xA7,0xA3,0xA1,0x9D,0x94,0x99,0x9C,0x9C,0x9E,0x99,0x95,0x95,0x94, - 0x91,0x8B,0x89,0x89,0x8E,0x8F,0x89,0x89,0x87,0x87,0x8C,0x89,0x8D,0x8E,0x8C,0x8C, - 0x88,0x8D,0x8B,0x87,0x8D,0x8D,0x8C,0x8F,0x86,0x82,0x85,0x7F,0x7D,0x7D,0x79,0x7A, - 0x7A,0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x7D,0x80,0x7E,0x80,0x7F,0x79,0x77,0x7C, - 0x7C,0x75,0x77,0x77,0x73,0x78,0x76,0x72,0x71,0x6E,0x74,0x74,0x6F,0x6C,0x6B,0x6E, - 0x73,0x77,0x73,0x6F,0x71,0x75,0x7A,0x7A,0x76,0x78,0x7A,0x7C,0x7C,0x79,0x7B,0x78, - 0x77,0x7D,0x79,0x78,0x7A,0x76,0x76,0x78,0x74,0x72,0x6E,0x6B,0x71,0x74,0x71,0x71, - 0x74,0x78,0x80,0x82,0x7D,0x7C,0x7C,0x82,0x87,0x83,0x7E,0x7C,0x81,0x84,0x82,0x7F, - 0x7F,0x7F,0x80,0x82,0x80,0x7F,0x7E,0x7E,0x80,0x7E,0x79,0x79,0x76,0x79,0x82,0x7D, - 0x7D,0x81,0x7D,0x80,0x85,0x86,0x88,0x85,0x83,0x80,0x82,0x85,0x80,0x85,0x85,0x85, - 0x8A,0x88,0x89,0x85,0x82,0x7F,0x7E,0x83,0x7D,0x81,0x85,0x7F,0x84,0x86,0x86,0x89, - 0x88,0x89,0x89,0x87,0x8A,0x8A,0x84,0x81,0x7B,0x81,0x91,0x89,0x82,0x85,0x81,0x89, - 0x8C,0x7D,0x7F,0x81,0x7E,0x85,0x7E,0x77,0x7D,0x7D,0x84,0x88,0x80,0x82,0x87,0x86, - 0x83,0x82,0x80,0x7F,0x81,0x80,0x7F,0x75,0x7E,0x92,0x89,0x88,0x86,0x7B,0x85,0x82, - 0x6F,0x76,0x77,0x76,0x81,0x77,0x75,0x86,0x87,0x87,0x83,0x7C,0x85,0x88,0x7D,0x7B, - 0x7E,0x81,0x85,0x81,0x7C,0x75,0x7A,0x91,0x92,0x88,0x88,0x83,0x85,0x89,0x76,0x70, - 0x79,0x7C,0x85,0x84,0x7B,0x82,0x8B,0x86,0x81,0x7C,0x7D,0x84,0x80,0x7C,0x88,0x8B, - 0x84,0x80,0x80,0x7E,0x74,0x83,0x95,0x8B,0x89,0x8A,0x82,0x87,0x7C,0x6B,0x78,0x7D, - 0x7B,0x81,0x7C,0x7D,0x88,0x82,0x78,0x77,0x76,0x79,0x7C,0x74,0x79,0x82,0x7C,0x79, - 0x76,0x72,0x6D,0x78,0x8F,0x8B,0x83,0x83,0x81,0x87,0x7D,0x6C,0x73,0x7D,0x7E,0x80, - 0x7C,0x7F,0x8C,0x8B,0x7E,0x7E,0x84,0x82,0x80,0x7B,0x7D,0x87,0x82,0x7C,0x7C,0x7B, - 0x75,0x70,0x86,0x8F,0x85,0x88,0x84,0x82,0x81,0x6F,0x6C,0x78,0x78,0x78,0x7B,0x79, - 0x85,0x8E,0x80,0x7C,0x80,0x7E,0x7B,0x79,0x79,0x82,0x82,0x7E,0x7F,0x7C,0x77,0x72, - 0x85,0x93,0x87,0x87,0x88,0x87,0x87,0x75,0x6B,0x78,0x7C,0x79,0x7C,0x7E,0x86,0x8E, - 0x82,0x7C,0x81,0x80,0x7D,0x79,0x78,0x85,0x86,0x7E,0x80,0x81,0x7E,0x76,0x80,0x97, - 0x8F,0x88,0x8B,0x87,0x8A,0x7E,0x6E,0x7A,0x81,0x7B,0x7C,0x7C,0x81,0x8C,0x84,0x7B, - 0x81,0x83,0x81,0x7B,0x77,0x80,0x85,0x7F,0x7F,0x83,0x83,0x78,0x7E,0x9A,0x92,0x88, - 0x8C,0x88,0x8F,0x86,0x71,0x7A,0x85,0x7E,0x7F,0x7E,0x80,0x8D,0x86,0x7D,0x84,0x88, - 0x85,0x7D,0x7A,0x82,0x85,0x7C,0x7C,0x81,0x80,0x78,0x75,0x8F,0x94,0x83,0x87,0x86, - 0x8B,0x89,0x74,0x76,0x81,0x7A,0x76,0x78,0x7B,0x88,0x86,0x79,0x80,0x89,0x88,0x82, - 0x7B,0x81,0x86,0x7A,0x7B,0x86,0x82,0x7D,0x74,0x83,0x94,0x81,0x82,0x87,0x87,0x8A, - 0x7A,0x74,0x81,0x7F,0x77,0x79,0x7B,0x81,0x85,0x7C,0x7F,0x87,0x85,0x84,0x80,0x84, - 0x89,0x7F,0x7E,0x83,0x84,0x85,0x7E,0x80,0x8E,0x87,0x81,0x87,0x84,0x85,0x82,0x7B, - 0x80,0x83,0x7D,0x7D,0x7E,0x7C,0x81,0x7E,0x79,0x7E,0x7F,0x7F,0x81,0x7D,0x81,0x83, - 0x7D,0x81,0x82,0x81,0x82,0x81,0x87,0x85,0x81,0x84,0x84,0x83,0x84,0x81,0x81,0x85, - 0x83,0x7F,0x80,0x7E,0x7F,0x81,0x7D,0x7E,0x7F,0x7C,0x7B,0x7E,0x7E,0x7E,0x7D,0x7D, - 0x80,0x80,0x7F,0x7D,0x7F,0x82,0x81,0x7E,0x80,0x81,0x7F,0x7F,0x7F,0x80,0x81,0x7F, - 0x80,0x80,0x7F,0x7F,0x7E,0x7C,0x7D,0x80,0x7F,0x7E,0x7F,0x81,0x82,0x81,0x80,0x81, - 0x82,0x81,0x80,0x82,0x82,0x81,0x80,0x82,0x82,0x81,0x82,0x80,0x80,0x82,0x81,0x80, - 0x7E,0x7C,0x7C,0x7D,0x7A,0x7B,0x7B,0x7B,0x7E,0x7D,0x7D,0x7D,0x7D,0x7F,0x7F,0x7E, - 0x80,0x7F,0x80,0x82,0x80,0x7E,0x80,0x80,0x81,0x82,0x81,0x81,0x81,0x7F,0x7E,0x7E, - 0x7D,0x7F,0x7E,0x7C,0x7D,0x7E,0x7B,0x7D,0x7D,0x7E,0x81,0x7F,0x80,0x80,0x80,0x83, - 0x82,0x81,0x84,0x84,0x82,0x85,0x83,0x82,0x83,0x80,0x81,0x83,0x80,0x81,0x81,0x7E, - 0x80,0x7F,0x7B,0x7C,0x7B,0x7C,0x7D,0x7A,0x7C,0x7F,0x7F,0x7E,0x7E,0x7D,0x81,0x83, - 0x80,0x81,0x80,0x80,0x81,0x80,0x80,0x81,0x81,0x83,0x8D,0x8C,0x8F,0x8F,0x7C,0x77, - 0x70,0x70,0x78,0x7F,0x75,0x76,0x64,0x61,0x8A,0x75,0x6F,0x7E,0x77,0x6E,0x6C,0x82, - 0x82,0x85,0x82,0x77,0x7B,0x80,0x85,0x83,0x89,0x93,0x94,0x90,0x8E,0x90,0x86,0x82, - 0x81,0x7B,0x84,0x8F,0x89,0x8C,0xA4,0x99,0x8D,0x93,0x7C,0x7D,0x96,0x8E,0x8F,0x8E, - 0x87,0x8F,0x90,0x88,0x7A,0x81,0x89,0x84,0x88,0x83,0x7F,0x7B,0x79,0x73,0x6C,0x72, - 0x74,0x75,0x74,0x6D,0x6D,0x6A,0x68,0x71,0x6B,0x65,0x67,0x62,0x64,0x6C,0x70,0x75, - 0x74,0x6B,0x6E,0x76,0x70,0x67,0x6B,0x72,0x7A,0x6C,0x61,0x6B,0x68,0x63,0x69,0x67, - 0x65,0x6E,0x6D,0x70,0x81,0x85,0x97,0xB7,0xAF,0x9B,0x96,0x8E,0x91,0x8B,0x8A,0x95, - 0x8B,0x85,0x8B,0x8F,0x8D,0x83,0x7B,0x90,0x92,0x7C,0x85,0x8B,0x87,0x86,0x84,0x8C, - 0x98,0x8F,0x89,0x8E,0x8F,0x98,0x98,0x92,0x9F,0x9C,0x94,0x93,0x8D,0xA0,0x9D,0x8A, - 0x98,0x97,0x92,0x95,0x86,0x97,0xA8,0x88,0x8A,0x95,0x86,0x89,0x84,0x8B,0x99,0x80, - 0x7E,0x97,0x92,0x8B,0x86,0x86,0x84,0x74,0x71,0x76,0x89,0x80,0x72,0x83,0x82,0x7A, - 0x6C,0x65,0x72,0x67,0x4E,0x57,0x61,0x5F,0x5E,0x59,0x6B,0x73,0x5D,0x64,0x6C,0x5F, - 0x5A,0x5A,0x61,0x67,0x5E,0x60,0x79,0x74,0x5A,0x66,0x6D,0x6A,0x61,0x57,0x6D,0x64, - 0x55,0x69,0x74,0x7B,0x7B,0x86,0xA3,0xA9,0x97,0x9C,0x9E,0x8D,0x89,0x89,0x8D,0x86, - 0x7A,0x87,0x9D,0x8E,0x83,0x91,0x8E,0x85,0x79,0x80,0x91,0x7B,0x7A,0x94,0x94,0x91, - 0x8E,0x97,0xA0,0x91,0x95,0xA5,0x9D,0x95,0x98,0xA0,0x98,0x8A,0x89,0x9D,0xA9,0x92, - 0x9B,0xA6,0x99,0x8D,0x88,0x98,0x8E,0x7B,0x91,0x9C,0x8D,0x8B,0x94,0x9A,0x8C,0x7E, - 0x8C,0x8D,0x81,0x83,0x8B,0x84,0x7D,0x79,0x7B,0x8F,0x7D,0x71,0x88,0x7F,0x70,0x69, - 0x6C,0x71,0x64,0x61,0x72,0x6D,0x64,0x6E,0x6F,0x6C,0x62,0x61,0x68,0x59,0x5D,0x66, - 0x67,0x65,0x68,0x62,0x68,0x77,0x61,0x6B,0x74,0x5B,0x5B,0x5C,0x5E,0x5C,0x54,0x64, - 0x73,0x6E,0x75,0x87,0x8C,0x8B,0x8D,0xA1,0x9E,0x8F,0x99,0x99,0x8F,0x8C,0x89,0x84, - 0x96,0x92,0x80,0x92,0x8A,0x75,0x7A,0x7B,0x7A,0x79,0x7C,0x8F,0x93,0x8A,0x94,0x96, - 0x91,0x8A,0x8C,0x9B,0x8F,0x96,0xA2,0x99,0x97,0x97,0x90,0x93,0xA9,0x9C,0x99,0xAA, - 0x96,0x8C,0x92,0x91,0x90,0x88,0x94,0xA0,0x94,0x95,0x9B,0x94,0x8E,0x8A,0x8A,0x8A, - 0x83,0x8C,0x90,0x85,0x82,0x80,0x76,0x87,0x90,0x7B,0x8B,0x8F,0x74,0x71,0x6F,0x67, - 0x68,0x61,0x6B,0x72,0x64,0x6E,0x6E,0x64,0x66,0x62,0x65,0x60,0x5A,0x63,0x63,0x5F, - 0x60,0x62,0x59,0x6D,0x70,0x5A,0x72,0x6A,0x53,0x5C,0x57,0x56,0x55,0x56,0x68,0x6A, - 0x66,0x75,0x7A,0x78,0x7F,0x89,0x90,0x93,0x9A,0xA2,0xA0,0x90,0x94,0x8C,0x83,0x9C, - 0x88,0x85,0x9A,0x82,0x79,0x7D,0x79,0x7F,0x78,0x7F,0x93,0x84,0x88,0x9D,0x8C,0x88, - 0x91,0x91,0x8F,0x93,0x9C,0x99,0x96,0x98,0x97,0x8D,0x9E,0xAC,0x93,0xA4,0xAB,0x94, - 0x98,0x92,0x8D,0x91,0x89,0x96,0xA0,0x8F,0x9C,0x9E,0x8E,0x91,0x8D,0x8B,0x87,0x86, - 0x8E,0x88,0x7D,0x85,0x7E,0x77,0x94,0x84,0x7B,0x97,0x7F,0x6F,0x7A,0x71,0x6C,0x66, - 0x68,0x78,0x68,0x65,0x79,0x67,0x5E,0x67,0x61,0x5F,0x5C,0x62,0x63,0x5C,0x5E,0x5F, - 0x53,0x65,0x72,0x57,0x6B,0x73,0x59,0x5A,0x5C,0x57,0x53,0x51,0x63,0x68,0x5E,0x6F, - 0x78,0x6E,0x78,0x7E,0x83,0x89,0x8E,0x9F,0x9B,0x91,0x99,0x8E,0x86,0xA5,0x90,0x84, - 0xA3,0x8B,0x78,0x85,0x7F,0x7B,0x78,0x79,0x87,0x80,0x7F,0x91,0x88,0x83,0x93,0x8B, - 0x8A,0x90,0x90,0x96,0x8E,0x8E,0x95,0x85,0x94,0xAA,0x90,0x9C,0xAF,0x95,0x96,0x9A, - 0x8E,0x91,0x8C,0x93,0x9B,0x8F,0x98,0x9B,0x8C,0x90,0x92,0x89,0x89,0x8C,0x8C,0x87, - 0x82,0x84,0x81,0x77,0x93,0x8E,0x79,0x97,0x89,0x70,0x7B,0x75,0x70,0x6C,0x66,0x71, - 0x72,0x6A,0x74,0x72,0x63,0x68,0x67,0x5E,0x5F,0x64,0x65,0x5E,0x5C,0x63,0x56,0x61, - 0x7E,0x61,0x64,0x7A,0x5B,0x55,0x5D,0x54,0x53,0x53,0x59,0x65,0x5D,0x64,0x71,0x69, - 0x6C,0x74,0x78,0x7B,0x82,0x8C,0x92,0x91,0x95,0x97,0x8A,0xA6,0xA8,0x8C,0xA4,0x9C, - 0x86,0x8B,0x82,0x7F,0x7F,0x79,0x8B,0x8B,0x7E,0x8E,0x90,0x86,0x8C,0x90,0x8E,0x8F, - 0x91,0x96,0x90,0x8A,0x93,0x86,0x8A,0xAF,0x9B,0x94,0xB5,0x9C,0x8F,0x99,0x8F,0x92, - 0x8C,0x8E,0xA2,0x94,0x90,0xA1,0x95,0x8F,0x92,0x90,0x90,0x8D,0x90,0x91,0x8A,0x86, - 0x88,0x7A,0x8C,0x9D,0x81,0x92,0x9B,0x7D,0x7F,0x7B,0x76,0x78,0x6A,0x77,0x7E,0x6E, - 0x75,0x78,0x6B,0x6B,0x69,0x68,0x67,0x64,0x66,0x65,0x61,0x5A,0x57,0x52,0x6D,0x6A, - 0x57,0x76,0x69,0x54,0x5B,0x52,0x53,0x50,0x4B,0x60,0x60,0x56,0x65,0x64,0x60,0x67, - 0x69,0x74,0x77,0x7D,0x8A,0x8D,0x92,0x92,0x8D,0x95,0xB0,0x9B,0x96,0xAD,0x9A,0x8A, - 0x87,0x86,0x86,0x7C,0x7E,0x93,0x89,0x83,0x8E,0x88,0x87,0x82,0x85,0x8F,0x8B,0x8B, - 0x93,0x90,0x8B,0x8B,0x80,0x92,0xAB,0x92,0x9B,0xB0,0x9C,0x91,0x8D,0x91,0x97,0x86, - 0x92,0xA3,0x96,0x96,0x93,0x92,0x94,0x8A,0x8E,0x94,0x91,0x91,0x8F,0x8E,0x86,0x80, - 0x7C,0x92,0xA1,0x84,0x92,0x9C,0x84,0x7D,0x74,0x80,0x85,0x6E,0x7B,0x84,0x79,0x74, - 0x6B,0x72,0x71,0x62,0x69,0x6F,0x6C,0x63,0x60,0x62,0x5B,0x51,0x4C,0x6A,0x75,0x59, - 0x67,0x6B,0x5B,0x52,0x46,0x5A,0x5C,0x4D,0x5B,0x63,0x60,0x5B,0x56,0x62,0x69,0x63, - 0x6D,0x79,0x80,0x7C,0x7F,0x86,0x87,0x85,0x8F,0xB2,0xAF,0x9D,0xA9,0xA1,0x94,0x84, - 0x7C,0x95,0x94,0x86,0x8D,0x91,0x90,0x84,0x7C,0x86,0x8A,0x88,0x88,0x8F,0x90,0x89, - 0x89,0x87,0x88,0x81,0x92,0xAD,0x9E,0x97,0x9E,0x95,0x91,0x84,0x89,0x9D,0x98,0x98, - 0x99,0x99,0x98,0x8A,0x86,0x90,0x94,0x92,0x90,0x96,0x91,0x8A,0x86,0x7E,0x80,0x82, - 0x98,0x9F,0x8E,0x92,0x8E,0x88,0x7B,0x6F,0x7E,0x89,0x80,0x7E,0x7D,0x7B,0x7A,0x6C, - 0x6C,0x71,0x72,0x71,0x6C,0x6D,0x69,0x62,0x5A,0x5B,0x56,0x5E,0x78,0x6D,0x66,0x67, - 0x5B,0x59,0x4D,0x4B,0x5D,0x60,0x5D,0x5A,0x5A,0x5F,0x5B,0x57,0x5C,0x67,0x6A,0x6A, - 0x70,0x74,0x7B,0x79,0x79,0x7F,0x83,0xA3,0xB1,0xA4,0xA2,0x96,0x97,0x92,0x83,0x8A, - 0x95,0x96,0x91,0x88,0x88,0x8E,0x86,0x80,0x82,0x8A,0x91,0x8A,0x84,0x87,0x8A,0x83, - 0x7F,0x7A,0x89,0xA5,0xA3,0x95,0x8F,0x8E,0x92,0x8B,0x83,0x8D,0x9A,0xA0,0x98,0x8B, - 0x91,0x95,0x91,0x89,0x88,0x96,0x99,0x90,0x8A,0x8A,0x89,0x86,0x7E,0x7C,0x97,0xA3, - 0x98,0x8E,0x81,0x85,0x89,0x7C,0x7A,0x80,0x8B,0x8D,0x81,0x78,0x79,0x7F,0x7C,0x73, - 0x71,0x79,0x7B,0x71,0x6B,0x6B,0x68,0x63,0x59,0x64,0x7C,0x7A,0x6E,0x5D,0x59,0x5D, - 0x5B,0x55,0x54,0x5D,0x64,0x64,0x5C,0x56,0x5A,0x64,0x62,0x5D,0x63,0x6A,0x6F,0x70, - 0x6E,0x70,0x75,0x72,0x7C,0x98,0xA5,0xA1,0x98,0x90,0x91,0x93,0x8D,0x8C,0x8E,0x94, - 0x96,0x90,0x8A,0x85,0x8A,0x8A,0x85,0x84,0x86,0x88,0x8B,0x86,0x80,0x7F,0x7B,0x7A, - 0x90,0xA1,0x9B,0x96,0x8B,0x89,0x8D,0x8A,0x87,0x89,0x8F,0x97,0x9B,0x95,0x90,0x90, - 0x91,0x92,0x91,0x8F,0x93,0x95,0x92,0x8F,0x88,0x85,0x7F,0x8E,0xA3,0xA3,0x9B,0x8E, - 0x86,0x89,0x88,0x85,0x83,0x83,0x89,0x8B,0x8B,0x88,0x81,0x7E,0x7E,0x7E,0x7C,0x7A, - 0x79,0x77,0x74,0x6D,0x6A,0x64,0x66,0x77,0x79,0x71,0x6A,0x60,0x60,0x62,0x5D,0x5D, - 0x5B,0x59,0x5B,0x5B,0x5C,0x5F,0x5E,0x5E,0x61,0x60,0x63,0x66,0x67,0x6B,0x70,0x73, - 0x76,0x77,0x7A,0x87,0x8E,0x8E,0x93,0x95,0x98,0x9F,0x9D,0x99,0x9C,0x93,0x95,0x96, - 0x8E,0x8F,0x8B,0x86,0x87,0x84,0x82,0x85,0x83,0x83,0x83,0x83,0x85,0x82,0x85,0x8B, - 0x89,0x89,0x8B,0x8A,0x91,0x8F,0x8E,0x92,0x8F,0x8E,0x91,0x90,0x8F,0x8E,0x8B,0x8B, - 0x8C,0x8D,0x8C,0x8F,0x8F,0x8E,0x8F,0x8D,0x8E,0x89,0x8F,0x94,0x8E,0x90,0x90,0x8D, - 0x92,0x91,0x8B,0x8D,0x88,0x87,0x89,0x86,0x84,0x81,0x7D,0x7C,0x7D,0x79,0x7A,0x7B, - 0x78,0x78,0x76,0x73,0x71,0x6C,0x6F,0x72,0x6B,0x6C,0x6B,0x66,0x6C,0x6A,0x65,0x66, - 0x62,0x5F,0x60,0x5C,0x5E,0x5C,0x5B,0x60,0x60,0x64,0x67,0x69,0x6C,0x71,0x75,0x77, - 0x7A,0x7C,0x82,0x8B,0x8C,0x8F,0x95,0x92,0x99,0x9C,0x96,0x9A,0x95,0x92,0x94,0x8C, - 0x8A,0x88,0x82,0x85,0x83,0x80,0x84,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x86, - 0x87,0x85,0x89,0x88,0x89,0x8E,0x8B,0x8B,0x8D,0x88,0x8B,0x8A,0x87,0x8A,0x85,0x86, - 0x8B,0x88,0x8B,0x8C,0x8B,0x8D,0x8D,0x8E,0x8B,0x8D,0x8D,0x8D,0x90,0x90,0x8E,0x8F, - 0x8F,0x8B,0x8E,0x8B,0x8C,0x8A,0x86,0x89,0x84,0x80,0x82,0x7F,0x7B,0x7D,0x7A,0x79, - 0x79,0x75,0x75,0x75,0x74,0x72,0x6F,0x6F,0x6D,0x6C,0x6E,0x6A,0x69,0x69,0x64,0x65, - 0x65,0x60,0x63,0x63,0x61,0x64,0x64,0x64,0x66,0x66,0x69,0x6C,0x6D,0x72,0x74,0x75, - 0x7C,0x7D,0x82,0x87,0x86,0x8B,0x8E,0x8D,0x8F,0x8F,0x8D,0x8D,0x8B,0x8B,0x8C,0x89, - 0x89,0x8A,0x88,0x87,0x87,0x85,0x84,0x85,0x82,0x83,0x83,0x82,0x83,0x85,0x84,0x84, - 0x86,0x86,0x87,0x89,0x89,0x89,0x89,0x88,0x89,0x8B,0x89,0x88,0x88,0x88,0x86,0x87, - 0x87,0x85,0x84,0x85,0x84,0x82,0x83,0x82,0x81,0x81,0x81,0x80,0x80,0x82,0x82,0x83, - 0x85,0x82,0x82,0x84,0x84,0x87,0x85,0x81,0x84,0x83,0x83,0x82,0x7F,0x7F,0x7F,0x7D, - 0x7E,0x7C,0x78,0x79,0x77,0x77,0x75,0x75,0x73,0x73,0x73,0x73,0x74,0x72,0x72,0x73, - 0x73,0x73,0x75,0x74,0x76,0x78,0x78,0x79,0x77,0x7A,0x7C,0x7C,0x7D,0x7E,0x7E,0x7F, - 0x7F,0x80,0x80,0x81,0x82,0x82,0x83,0x82,0x81,0x81,0x81,0x80,0x81,0x82,0x81,0x80, - 0x80,0x81,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7E,0x80,0x80, - 0x80,0x7F,0x80,0x7F,0x7E,0x7F,0x7F,0x7E,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x80,0x81, - 0x80,0x80,0x82,0x81,0x82,0x82,0x83,0x83,0x83,0x84,0x83,0x85,0x86,0x86,0x87,0x86, - 0x85,0x85,0x86,0x85,0x85,0x83,0x85,0x85,0x83,0x84,0x84,0x82,0x82,0x82,0x80,0x81, - 0x80,0x80,0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7E,0x7F,0x7F,0x7E,0x7F, - 0x7E,0x7E,0x80,0x80,0x7F,0x80,0x81,0x7F,0x7F,0x82,0x81,0x7F,0x80,0x80,0x81,0x80, - 0x81,0x81,0x83,0x84,0x82,0x84,0x84,0x82,0x82,0x84,0x84,0x83,0x82,0x83,0x82,0x84, - 0x84,0x82,0x83,0x83,0x83,0x80,0x80,0x80,0x7F,0x80,0x7F,0x7D,0x7F,0x7E,0x7F,0x80, - 0x7E,0x7D,0x7D,0x7D,0x7E,0x7D,0x7E,0x7E,0x7D,0x7E,0x7C,0x7D,0x7F,0x7F,0x81,0x81, - 0x7F,0x81,0x82,0x82,0x83,0x81,0x83,0x82,0x81,0x94,0x83,0x86,0x84,0x65,0x7F,0x81, - 0x6C,0x6A,0x78,0x80,0x87,0x8C,0x8F,0x8D,0x89,0x97,0xA0,0x9D,0x98,0x93,0x90,0x8B, - 0x89,0x86,0x81,0x78,0x6E,0x63,0x5E,0x5C,0x5A,0x56,0x54,0x5E,0x64,0x68,0x6E,0x70, - 0x76,0x7B,0x7E,0x82,0x85,0x87,0x8A,0x8A,0x8C,0x8F,0x9A,0xA2,0xAC,0xB6,0xB2,0xB3, - 0xB1,0xAB,0xA5,0xA0,0x9B,0x94,0x91,0x8C,0x87,0x82,0x7E,0x7B,0x76,0x77,0x76,0x72, - 0x71,0x72,0x6F,0x6C,0x68,0x5D,0x57,0x50,0x48,0x4C,0x49,0x4C,0x51,0x56,0x5D,0x5F, - 0x66,0x6D,0x70,0x76,0x7B,0x7D,0x85,0x85,0x86,0x8D,0x8E,0x8F,0x90,0x97,0xA0,0xA7, - 0xAC,0xAF,0xAF,0xB1,0xB2,0xAF,0xAC,0xA9,0xA1,0x9D,0x96,0x8F,0x8B,0x86,0x83,0x7F, - 0x7A,0x7A,0x76,0x71,0x6C,0x60,0x5B,0x53,0x4D,0x51,0x50,0x50,0x56,0x5A,0x61,0x6C, - 0x72,0x78,0x7D,0x80,0x85,0x88,0x8A,0x89,0x8A,0x8A,0x89,0x8B,0x83,0x87,0x90,0x9A, - 0xA6,0xA7,0xA6,0xA4,0xA4,0xA6,0x9F,0x97,0x92,0x90,0x8B,0x8A,0x8B,0x86,0x80,0x7F, - 0x7F,0x7B,0x79,0x78,0x78,0x7A,0x76,0x78,0x76,0x6D,0x6D,0x69,0x61,0x5C,0x56,0x52, - 0x4D,0x4D,0x4D,0x4E,0x54,0x57,0x5E,0x62,0x64,0x6E,0x70,0x72,0x77,0x7A,0x7F,0x85, - 0x87,0x8C,0x97,0x9C,0xA3,0xAB,0xAD,0xB1,0xB6,0xBB,0xBD,0xBE,0xBB,0xBE,0xBD,0xB4, - 0xB6,0xB4,0xAE,0xA8,0x9E,0x99,0x96,0x88,0x7F,0x7C,0x75,0x73,0x71,0x6B,0x68,0x63, - 0x5C,0x56,0x55,0x54,0x4F,0x4A,0x49,0x48,0x46,0x47,0x44,0x41,0x52,0x5F,0x57,0x57, - 0x5A,0x5F,0x67,0x60,0x62,0x6C,0x6E,0x77,0x7C,0x82,0x92,0x95,0x97,0x9F,0xA2,0xA5, - 0xA9,0xAE,0xB4,0xB8,0xB9,0xBC,0xBA,0xBC,0xCA,0xC8,0xC1,0xC5,0xC0,0xBC,0xB3,0xA8, - 0xAA,0xA5,0x9A,0x99,0x96,0x90,0x90,0x83,0x77,0x76,0x69,0x63,0x5F,0x55,0x59,0x56, - 0x53,0x50,0x48,0x55,0x58,0x4C,0x51,0x50,0x49,0x47,0x37,0x3D,0x4E,0x45,0x48,0x55, - 0x5D,0x69,0x65,0x64,0x6E,0x6B,0x67,0x68,0x6D,0x75,0x75,0x75,0x7B,0x7F,0x88,0x90, - 0x8F,0x95,0x9D,0x9E,0x9F,0x9B,0xA2,0xAD,0xA9,0xAB,0xB6,0xBA,0xBE,0xBB,0xB6,0xBF, - 0xBC,0xB3,0xB6,0xB5,0xB3,0xAB,0xA3,0xA6,0x9A,0x93,0xA2,0x98,0x8F,0x91,0x84,0x7F, - 0x71,0x63,0x68,0x62,0x56,0x5B,0x5D,0x61,0x62,0x52,0x56,0x58,0x4E,0x50,0x51,0x52, - 0x54,0x50,0x53,0x5A,0x55,0x65,0x70,0x62,0x6E,0x72,0x6F,0x70,0x62,0x6B,0x76,0x6B, - 0x72,0x7F,0x84,0x8D,0x88,0x88,0x96,0x8C,0x87,0x8E,0x8D,0x90,0x8E,0x8D,0x96,0x90, - 0x9B,0xB0,0xA4,0xA4,0xAB,0xA4,0xA2,0x98,0x97,0xA3,0x9A,0x92,0x9C,0x9B,0x9E,0x98, - 0x90,0x9A,0x91,0x85,0x88,0x87,0x84,0x7F,0x7C,0x7E,0x7D,0x75,0x7F,0x86,0x77,0x79, - 0x7A,0x77,0x74,0x60,0x6B,0x74,0x64,0x6A,0x75,0x78,0x78,0x71,0x75,0x7A,0x6D,0x6B, - 0x72,0x72,0x6F,0x6C,0x6C,0x70,0x65,0x67,0x80,0x71,0x69,0x76,0x70,0x6E,0x5F,0x60, - 0x75,0x66,0x5F,0x73,0x78,0x78,0x75,0x78,0x85,0x7B,0x76,0x7F,0x83,0x82,0x81,0x88, - 0x8B,0x8F,0x8D,0x97,0xAD,0x9D,0x9F,0xB1,0xA7,0xA1,0x98,0x9F,0xAA,0x97,0x97,0xA5, - 0xA2,0xA0,0x9E,0x9F,0xA0,0x93,0x8D,0x94,0x8E,0x88,0x8E,0x8C,0x89,0x83,0x7D,0x9A, - 0x8D,0x7A,0x91,0x89,0x7E,0x71,0x6C,0x80,0x6C,0x60,0x78,0x74,0x6D,0x6E,0x70,0x76, - 0x67,0x61,0x6A,0x61,0x5E,0x61,0x63,0x5F,0x5B,0x61,0x64,0x73,0x67,0x62,0x77,0x6C, - 0x64,0x65,0x67,0x6F,0x66,0x6B,0x80,0x7C,0x7A,0x8B,0x90,0x8D,0x89,0x8D,0x92,0x8D, - 0x8C,0x94,0x91,0x8F,0x91,0x85,0x9E,0xA4,0x87,0xA0,0xA5,0x91,0x8E,0x87,0x95,0x8A, - 0x79,0x95,0x95,0x87,0x94,0x98,0x9A,0x90,0x8D,0x99,0x8B,0x89,0x91,0x8D,0x8C,0x8B, - 0x8B,0x86,0x98,0x94,0x85,0x99,0x8F,0x81,0x82,0x7E,0x80,0x73,0x71,0x81,0x78,0x74, - 0x81,0x81,0x7B,0x76,0x78,0x76,0x6D,0x6F,0x71,0x6C,0x69,0x70,0x63,0x6F,0x87,0x67, - 0x76,0x85,0x6D,0x6E,0x67,0x6E,0x69,0x57,0x6F,0x71,0x60,0x6F,0x75,0x71,0x6C,0x6C, - 0x73,0x64,0x63,0x6B,0x65,0x62,0x66,0x6B,0x61,0x79,0x7D,0x68,0x83,0x7D,0x70,0x76, - 0x71,0x79,0x6E,0x6D,0x83,0x7B,0x7A,0x8D,0x90,0x8C,0x8D,0x94,0x92,0x8B,0x91,0x93, - 0x90,0x91,0x99,0x8D,0x94,0xB3,0x96,0x9D,0xB4,0x9D,0x9C,0x99,0x9B,0x98,0x84,0x96, - 0x9C,0x88,0x95,0xA1,0x9B,0x95,0x9A,0xA0,0x91,0x8F,0x97,0x8D,0x8A,0x8D,0x91,0x81, - 0x8E,0xA3,0x85,0x93,0xA2,0x8D,0x87,0x85,0x88,0x7D,0x70,0x81,0x7E,0x70,0x7D,0x82, - 0x77,0x71,0x79,0x77,0x66,0x6B,0x6D,0x65,0x62,0x66,0x64,0x58,0x73,0x6D,0x5B,0x77, - 0x6D,0x63,0x65,0x63,0x68,0x59,0x5E,0x6D,0x5D,0x5F,0x6F,0x6A,0x66,0x69,0x70,0x68, - 0x60,0x6D,0x66,0x61,0x66,0x68,0x62,0x64,0x81,0x6F,0x6E,0x87,0x76,0x74,0x74,0x77, - 0x76,0x6A,0x7A,0x80,0x72,0x80,0x8A,0x82,0x82,0x86,0x8D,0x81,0x83,0x91,0x86,0x87, - 0x8D,0x8D,0x84,0x8F,0xA6,0x8C,0x9C,0xAC,0x95,0x99,0x9A,0x9B,0x93,0x8D,0xA0,0x99, - 0x92,0xA4,0xA4,0x9C,0x9E,0xA4,0xA3,0x96,0x9D,0xA3,0x94,0x99,0x9A,0x95,0x8C,0x9D, - 0xAB,0x8D,0xA5,0xAC,0x94,0x98,0x98,0x96,0x88,0x86,0x96,0x8A,0x84,0x95,0x8F,0x86, - 0x88,0x8C,0x87,0x7A,0x84,0x84,0x76,0x7B,0x7A,0x72,0x69,0x82,0x82,0x6B,0x89,0x80, - 0x6D,0x74,0x71,0x6F,0x60,0x66,0x72,0x60,0x64,0x71,0x67,0x63,0x66,0x68,0x61,0x5A, - 0x64,0x5F,0x57,0x5D,0x5A,0x55,0x4F,0x6B,0x64,0x54,0x77,0x67,0x5A,0x64,0x62,0x5F, - 0x53,0x5F,0x68,0x5A,0x65,0x72,0x69,0x69,0x70,0x75,0x6E,0x6B,0x7A,0x72,0x6F,0x77, - 0x77,0x6F,0x6F,0x90,0x80,0x7A,0x9C,0x87,0x81,0x8A,0x89,0x85,0x7A,0x8A,0x8E,0x80, - 0x8F,0x97,0x8C,0x90,0x96,0x98,0x91,0x91,0xA0,0x96,0x95,0x9C,0x9B,0x93,0x95,0xB5, - 0x9E,0x9F,0xBD,0xA2,0xA0,0xA7,0xA4,0x9B,0x94,0xA4,0xA1,0x95,0xA3,0xA8,0x9D,0x9D, - 0xA4,0xA2,0x97,0x98,0xA1,0x95,0x92,0x97,0x94,0x87,0x8C,0xA9,0x8D,0x93,0xAB,0x8C, - 0x8E,0x92,0x8C,0x83,0x7D,0x8C,0x85,0x7C,0x8B,0x8A,0x7E,0x82,0x85,0x81,0x77,0x79, - 0x80,0x71,0x71,0x76,0x6F,0x63,0x6C,0x85,0x67,0x72,0x87,0x68,0x6C,0x70,0x6A,0x61, - 0x5E,0x6B,0x63,0x5D,0x6D,0x6B,0x61,0x68,0x6B,0x66,0x5F,0x64,0x69,0x5B,0x5E,0x61, - 0x5A,0x51,0x60,0x73,0x56,0x6B,0x78,0x5C,0x66,0x6A,0x63,0x5C,0x60,0x6B,0x63,0x62, - 0x73,0x71,0x6A,0x75,0x78,0x73,0x72,0x7A,0x7D,0x74,0x7A,0x7C,0x77,0x6F,0x85,0x92, - 0x76,0x94,0x9A,0x7F,0x8C,0x8D,0x84,0x7D,0x85,0x8C,0x83,0x86,0x94,0x8F,0x89,0x95, - 0x96,0x8F,0x8F,0x99,0x95,0x8D,0x95,0x93,0x8C,0x87,0xA2,0xA1,0x8D,0xB0,0xA9,0x93, - 0xA2,0x9F,0x93,0x8F,0x98,0x98,0x8E,0x95,0x9F,0x95,0x93,0x9B,0x97,0x91,0x93,0x97, - 0x8E,0x8C,0x8F,0x8A,0x81,0x80,0x99,0x8A,0x81,0xA4,0x8C,0x7E,0x91,0x86,0x78,0x7E, - 0x85,0x7E,0x7A,0x85,0x87,0x7D,0x83,0x8A,0x82,0x81,0x86,0x85,0x7D,0x7F,0x7F,0x7A, - 0x71,0x7A,0x8E,0x75,0x80,0x96,0x74,0x77,0x87,0x71,0x6A,0x75,0x71,0x6B,0x6E,0x75, - 0x72,0x6D,0x75,0x77,0x6E,0x72,0x75,0x70,0x6E,0x71,0x6F,0x6C,0x65,0x7A,0x80,0x6B, - 0x87,0x8A,0x6C,0x7F,0x85,0x6C,0x73,0x7C,0x72,0x74,0x7A,0x7C,0x79,0x79,0x80,0x7F, - 0x7A,0x7D,0x7E,0x78,0x78,0x78,0x76,0x71,0x6F,0x85,0x7C,0x74,0x91,0x81,0x71,0x88, - 0x7E,0x6B,0x7A,0x77,0x6F,0x77,0x79,0x79,0x7A,0x7E,0x81,0x80,0x7F,0x81,0x80,0x7D, - 0x7D,0x7C,0x7C,0x74,0x7C,0x8C,0x7B,0x86,0x95,0x7E,0x80,0x8F,0x78,0x77,0x85,0x76, - 0x76,0x81,0x7B,0x7B,0x82,0x81,0x84,0x86,0x83,0x85,0x85,0x82,0x7F,0x81,0x7E,0x79, - 0x88,0x8A,0x81,0x92,0x92,0x80,0x8D,0x8F,0x79,0x83,0x88,0x79,0x81,0x87,0x7F,0x83, - 0x87,0x84,0x87,0x89,0x85,0x87,0x87,0x81,0x81,0x82,0x7D,0x7D,0x87,0x85,0x83,0x8F, - 0x8B,0x80,0x8A,0x86,0x7A,0x84,0x82,0x79,0x81,0x82,0x7D,0x83,0x83,0x80,0x86,0x85, - 0x83,0x88,0x85,0x81,0x85,0x83,0x7D,0x81,0x87,0x86,0x85,0x8A,0x88,0x84,0x88,0x83, - 0x7F,0x85,0x7E,0x79,0x80,0x7C,0x79,0x7F,0x7C,0x7B,0x82,0x80,0x7D,0x82,0x81,0x7E, - 0x7F,0x7D,0x7B,0x7F,0x83,0x83,0x85,0x89,0x85,0x85,0x89,0x82,0x82,0x86,0x7E,0x7E, - 0x81,0x7B,0x7E,0x81,0x7C,0x80,0x84,0x81,0x82,0x84,0x80,0x80,0x7F,0x7C,0x7C,0x7E, - 0x83,0x82,0x83,0x87,0x82,0x82,0x85,0x7F,0x80,0x81,0x79,0x7B,0x7C,0x76,0x79,0x7C, - 0x77,0x7D,0x81,0x7D,0x81,0x81,0x7D,0x7E,0x7C,0x7A,0x7A,0x7C,0x81,0x80,0x82,0x86, - 0x81,0x82,0x84,0x7E,0x80,0x80,0x78,0x7B,0x7B,0x75,0x7B,0x7B,0x78,0x7F,0x80,0x7E, - 0x82,0x82,0x7F,0x80,0x7D,0x7C,0x7C,0x7E,0x84,0x81,0x83,0x88,0x81,0x83,0x85,0x7E, - 0x80,0x80,0x77,0x7B,0x7B,0x75,0x7B,0x7B,0x77,0x7F,0x80,0x7D,0x82,0x81,0x7F,0x80, - 0x7E,0x7D,0x7C,0x7F,0x85,0x82,0x84,0x8A,0x84,0x85,0x88,0x81,0x83,0x82,0x7A,0x7D, - 0x7D,0x77,0x7C,0x7C,0x78,0x7F,0x80,0x7D,0x83,0x81,0x7E,0x80,0x7D,0x7B,0x7B,0x7D, - 0x84,0x80,0x81,0x89,0x83,0x82,0x87,0x80,0x80,0x82,0x79,0x7B,0x7E,0x77,0x7C,0x7E, - 0x7A,0x81,0x84,0x80,0x86,0x86,0x82,0x85,0x82,0x7F,0x80,0x81,0x86,0x84,0x84,0x8C, - 0x87,0x84,0x8A,0x84,0x81,0x84,0x7D,0x7B,0x7F,0x78,0x79,0x7E,0x79,0x7E,0x82,0x7E, - 0x83,0x85,0x81,0x84,0x82,0x7F,0x80,0x80,0x85,0x85,0x85,0x8B,0x8A,0x85,0x8A,0x87, - 0x82,0x86,0x81,0x7C,0x81,0x7C,0x7A,0x80,0x7B,0x7C,0x82,0x7E,0x80,0x83,0x7E,0x80, - 0x80,0x7B,0x7C,0x7D,0x7F,0x82,0x81,0x85,0x86,0x82,0x86,0x86,0x7F,0x84,0x81,0x7A, - 0x80,0x7D,0x78,0x80,0x7D,0x7C,0x83,0x80,0x80,0x85,0x81,0x81,0x83,0x7F,0x7F,0x7F, - 0x7F,0x83,0x82,0x84,0x87,0x82,0x85,0x86,0x7E,0x82,0x82,0x7A,0x7E,0x7D,0x78,0x7E, - 0x7D,0x7A,0x81,0x81,0x80,0x84,0x83,0x82,0x84,0x81,0x80,0x82,0x81,0x85,0x84,0x84, - 0x88,0x85,0x85,0x87,0x81,0x82,0x83,0x7B,0x7B,0x7C,0x76,0x79,0x7B,0x77,0x7B,0x7E, - 0x7B,0x7F,0x80,0x7E,0x81,0x7F,0x7E,0x80,0x7F,0x83,0x84,0x82,0x87,0x85,0x84,0x87, - 0x82,0x81,0x84,0x7E,0x7C,0x7F,0x7A,0x7A,0x7C,0x79,0x7B,0x7F,0x7D,0x7E,0x81,0x7F, - 0x7F,0x7F,0x7D,0x7E,0x7E,0x80,0x81,0x7F,0x82,0x83,0x81,0x83,0x82,0x7F,0x81,0x7F, - 0x7B,0x7E,0x7C,0x79,0x7D,0x7D,0x7B,0x80,0x80,0x7F,0x84,0x84,0x82,0x84,0x83,0x83, - 0x83,0x83,0x85,0x83,0x83,0x85,0x82,0x81,0x83,0x81,0x80,0x80,0x7D,0x7C,0x7C,0x78, - 0x78,0x7B,0x78,0x79,0x7B,0x79,0x7C,0x7E,0x7D,0x7E,0x7F,0x7F,0x80,0x81,0x82,0x83, - 0x82,0x82,0x83,0x81,0x82,0x83,0x80,0x81,0x81,0x7E,0x7E,0x7D,0x7B,0x7B,0x7B,0x79, - 0x7C,0x7C,0x7C,0x7F,0x7F,0x7F,0x81,0x80,0x81,0x82,0x81,0x83,0x83,0x81,0x82,0x82, - 0x81,0x83,0x82,0x81,0x83,0x81,0x7F,0x7F,0x7F,0x7D,0x7C,0x7D,0x7C,0x7C,0x7D,0x7E, - 0x7E,0x80,0x7F,0x81,0x82,0x81,0x83,0x81,0x81,0x82,0x81,0x82,0x83,0x80,0x80,0x80, - 0x81,0x82,0x8C,0x88,0x66,0x6F,0x86,0x88,0x71,0x78,0x8E,0x6E,0x71,0x81,0x7E,0x7A, - 0x83,0x94,0x83,0x7C,0x87,0x8B,0x80,0x7A,0x8B,0x82,0x75,0x73,0x7B,0x83,0x7F,0x81, - 0x86,0x7F,0x70,0x7B,0x7D,0x7F,0x84,0x7E,0x82,0x79,0x75,0x71,0x6D,0x81,0x8A,0x93, - 0x8D,0x80,0x8B,0x71,0x71,0x93,0x7F,0x75,0x8C,0x80,0x81,0x7B,0x76,0x8A,0x80,0x79, - 0x80,0x7A,0x7C,0x7C,0x7C,0x76,0x6B,0x6F,0x7C,0x86,0x84,0x75,0x73,0x86,0x89,0x88, - 0x8C,0x89,0x8B,0x8F,0x90,0x87,0x86,0x97,0x98,0x8F,0x92,0x8A,0x82,0x92,0x9C,0x8E, - 0x8B,0x94,0x8F,0x8B,0x8C,0x86,0x7A,0x78,0x83,0x89,0x88,0x88,0x7F,0x71,0x6D,0x6C, - 0x61,0x5E,0x70,0x7B,0x75,0x77,0x71,0x69,0x73,0x71,0x66,0x6C,0x68,0x63,0x6C,0x6F, - 0x6D,0x73,0x75,0x77,0x7B,0x72,0x72,0x76,0x74,0x7A,0x81,0x77,0x69,0x72,0x8E,0x9B, - 0x92,0x8D,0x88,0x7C,0x7C,0x78,0x6A,0x6F,0x72,0x73,0x7F,0x84,0x89,0x8E,0x98,0xA2, - 0xB2,0xB1,0x9D,0x93,0x92,0x96,0x90,0x8B,0x85,0x8B,0x9D,0xA1,0x97,0x8E,0x85,0x7D, - 0x83,0x7E,0x7C,0x7C,0x76,0x7E,0x88,0x82,0x7C,0x80,0x84,0x86,0x89,0x85,0x7E,0x83, - 0x88,0x86,0x8C,0x88,0x77,0x79,0x88,0x91,0x8F,0x8D,0x84,0x82,0x8D,0x8B,0x85,0x83, - 0x80,0x80,0x86,0x86,0x86,0x88,0x83,0x8C,0x8D,0x85,0x85,0x82,0x86,0x8D,0x8B,0x87, - 0x80,0x7D,0x89,0x96,0x92,0x91,0x85,0x75,0x7A,0x76,0x71,0x6C,0x65,0x66,0x67,0x68, - 0x69,0x64,0x5B,0x5F,0x5F,0x5E,0x60,0x5E,0x5B,0x5C,0x5F,0x61,0x56,0x56,0x6C,0x75, - 0x77,0x7A,0x6F,0x66,0x6E,0x74,0x71,0x75,0x72,0x70,0x7C,0x80,0x7C,0x7C,0x72,0x69, - 0x70,0x76,0x78,0x7B,0x7A,0x78,0x7A,0x77,0x76,0x80,0x93,0xA8,0xAE,0xB3,0xA8,0x97, - 0x98,0x96,0x92,0x96,0x9D,0x9B,0x9E,0xA1,0x9B,0x97,0x89,0x7E,0x85,0x8C,0x88,0x88, - 0x8A,0x84,0x80,0x85,0x81,0x81,0x8F,0x9C,0x9E,0x9A,0x91,0x81,0x80,0x86,0x82,0x8B, - 0x8E,0x86,0x92,0x97,0x91,0x90,0x8B,0x86,0x8F,0x96,0x95,0x96,0x95,0x8D,0x86,0x88, - 0x80,0x84,0x99,0xA4,0xA4,0xA0,0x99,0x8B,0x86,0x86,0x87,0x8D,0x8E,0x88,0x8C,0x8C, - 0x87,0x8B,0x7F,0x76,0x7C,0x81,0x82,0x7F,0x74,0x64,0x5A,0x56,0x55,0x58,0x6B,0x75, - 0x76,0x74,0x65,0x53,0x4A,0x49,0x52,0x60,0x65,0x62,0x63,0x62,0x60,0x65,0x5D,0x5B, - 0x68,0x6F,0x76,0x76,0x75,0x6E,0x68,0x69,0x63,0x6C,0x79,0x85,0x85,0x83,0x7A,0x69, - 0x6B,0x6C,0x6F,0x79,0x7E,0x81,0x87,0x89,0x8B,0x92,0x92,0x93,0x9D,0xA4,0xA8,0xAB, - 0xA3,0x99,0x91,0x90,0x8F,0x91,0x98,0xA0,0xA2,0x97,0x8C,0x76,0x71,0x74,0x77,0x85, - 0x86,0x89,0x8B,0x89,0x88,0x87,0x80,0x81,0x86,0x8A,0x8E,0x96,0x96,0x8D,0x85,0x82, - 0x85,0x86,0x93,0xA3,0xA6,0xA1,0x99,0x86,0x7D,0x7F,0x84,0x90,0x95,0x98,0x94,0x8D, - 0x8F,0x90,0x8A,0x89,0x8E,0x8F,0x95,0x9A,0x95,0x8E,0x84,0x80,0x7E,0x7D,0x8D,0x9B, - 0x9A,0x92,0x85,0x73,0x66,0x64,0x66,0x6F,0x72,0x72,0x6A,0x62,0x61,0x60,0x5E,0x5B, - 0x5C,0x5D,0x60,0x64,0x63,0x60,0x57,0x51,0x51,0x59,0x68,0x76,0x81,0x7E,0x6E,0x60, - 0x5B,0x57,0x64,0x76,0x77,0x79,0x75,0x72,0x6F,0x6E,0x6E,0x6C,0x6D,0x6D,0x75,0x7A, - 0x7D,0x78,0x76,0x76,0x74,0x7B,0x90,0xA1,0xA6,0xAA,0xA0,0x94,0x8C,0x8F,0x9A,0xA0, - 0xA4,0xA2,0x9B,0x91,0x8F,0x8D,0x88,0x84,0x84,0x82,0x81,0x86,0x88,0x85,0x82,0x7D, - 0x78,0x80,0x91,0x9B,0xA1,0x9E,0x8B,0x7D,0x78,0x7D,0x87,0x91,0x9B,0x98,0x91,0x8C, - 0x8B,0x8E,0x90,0x90,0x8F,0x8F,0x90,0x95,0x95,0x94,0x8F,0x89,0x86,0x8B,0x9B,0xA8, - 0xAA,0x9F,0x91,0x82,0x7A,0x7E,0x86,0x91,0x95,0x90,0x89,0x82,0x82,0x86,0x83,0x80, - 0x79,0x74,0x74,0x71,0x72,0x6E,0x66,0x5C,0x58,0x60,0x6B,0x75,0x75,0x6B,0x5B,0x4E, - 0x4A,0x4E,0x57,0x64,0x6B,0x65,0x61,0x5F,0x62,0x66,0x67,0x67,0x67,0x68,0x6B,0x70, - 0x73,0x70,0x6C,0x68,0x69,0x6E,0x79,0x86,0x87,0x7D,0x71,0x64,0x62,0x6A,0x76,0x82, - 0x86,0x85,0x83,0x81,0x85,0x8B,0x90,0x99,0x9A,0x9A,0x9C,0xA0,0xA0,0x98,0x97,0x8D, - 0x87,0x91,0x9E,0xA1,0x9A,0x8F,0x82,0x74,0x70,0x7B,0x81,0x8C,0x90,0x87,0x84,0x7E, - 0x82,0x87,0x89,0x8A,0x83,0x88,0x8C,0x8B,0x8D,0x89,0x88,0x83,0x87,0x96,0x9E,0xA8, - 0xA4,0x98,0x8A,0x7C,0x7D,0x8A,0x94,0x9A,0x9D,0x94,0x8B,0x8C,0x90,0x91,0x93,0x95, - 0x90,0x8B,0x8E,0x8E,0x89,0x8B,0x89,0x80,0x86,0x8E,0x94,0x97,0x8B,0x7C,0x6D,0x63, - 0x67,0x70,0x78,0x78,0x73,0x6C,0x5E,0x5B,0x5D,0x62,0x67,0x62,0x61,0x5F,0x5F,0x5F, - 0x5D,0x60,0x5B,0x58,0x66,0x6D,0x74,0x7A,0x72,0x68,0x5C,0x59,0x62,0x6F,0x78,0x7B, - 0x77,0x6E,0x68,0x6A,0x72,0x76,0x7B,0x78,0x72,0x74,0x76,0x75,0x76,0x76,0x72,0x75, - 0x86,0x95,0x9F,0xA5,0x9B,0x8F,0x87,0x87,0x93,0xA1,0xA7,0xA5,0x9E,0x91,0x8A,0x89, - 0x8C,0x8F,0x8D,0x8A,0x84,0x82,0x83,0x80,0x82,0x81,0x7A,0x81,0x8B,0x94,0x98,0x97, - 0x8E,0x7C,0x75,0x74,0x83,0x91,0x97,0x99,0x90,0x89,0x85,0x89,0x92,0x96,0x96,0x94, - 0x90,0x8E,0x8E,0x8F,0x93,0x8C,0x88,0x91,0x9C,0xA2,0xA8,0xA4,0x91,0x83,0x7C,0x7E, - 0x8B,0x98,0x9D,0x96,0x8C,0x7F,0x7E,0x7F,0x83,0x85,0x80,0x7B,0x75,0x72,0x70,0x6E, - 0x69,0x62,0x60,0x69,0x72,0x77,0x7A,0x6E,0x5C,0x4E,0x48,0x53,0x64,0x6F,0x75,0x71, - 0x65,0x5E,0x62,0x64,0x67,0x6F,0x6C,0x68,0x69,0x6B,0x6B,0x6B,0x6B,0x66,0x6A,0x78, - 0x81,0x87,0x86,0x76,0x66,0x5E,0x5D,0x68,0x77,0x7F,0x83,0x7B,0x73,0x77,0x7E,0x87, - 0x8F,0x97,0x93,0x91,0x9A,0x98,0x97,0x9A,0x95,0x91,0x94,0x9F,0xA7,0xAA,0xA3,0x90, - 0x7F,0x75,0x74,0x82,0x8C,0x91,0x8F,0x85,0x7D,0x7D,0x81,0x87,0x8D,0x8B,0x88,0x84, - 0x85,0x85,0x85,0x85,0x80,0x80,0x8A,0x96,0xA0,0xA5,0x9B,0x8B,0x7E,0x78,0x82,0x8F, - 0x99,0x9E,0x98,0x8D,0x8A,0x8D,0x90,0x96,0x98,0x93,0x8D,0x8D,0x8E,0x8F,0x8F,0x8C, - 0x84,0x81,0x8C,0x92,0x9B,0x9C,0x8C,0x78,0x69,0x64,0x69,0x77,0x7D,0x7A,0x72,0x67, - 0x60,0x64,0x69,0x6A,0x69,0x65,0x62,0x63,0x68,0x68,0x66,0x63,0x5B,0x5A,0x6A,0x77, - 0x7F,0x81,0x73,0x62,0x58,0x5C,0x64,0x73,0x7B,0x78,0x72,0x6C,0x69,0x6E,0x73,0x74, - 0x74,0x6E,0x6F,0x74,0x74,0x78,0x78,0x76,0x6F,0x76,0x86,0x91,0x9A,0x9C,0x8E,0x7E, - 0x76,0x7A,0x8A,0x99,0x9D,0x98,0x91,0x89,0x8B,0x91,0x94,0x93,0x8D,0x87,0x88,0x8E, - 0x8C,0x8B,0x86,0x80,0x79,0x80,0x90,0x97,0x9C,0x97,0x86,0x75,0x71,0x75,0x83,0x8D, - 0x8C,0x86,0x80,0x7E,0x83,0x87,0x8A,0x88,0x83,0x84,0x88,0x8E,0x8C,0x8A,0x87,0x82, - 0x81,0x8A,0x97,0x9F,0xA1,0x96,0x87,0x79,0x76,0x7D,0x8A,0x90,0x8C,0x85,0x7E,0x7F, - 0x84,0x85,0x86,0x80,0x77,0x78,0x79,0x7C,0x7C,0x77,0x75,0x71,0x6D,0x77,0x82,0x88, - 0x89,0x7D,0x6E,0x64,0x66,0x6D,0x79,0x7E,0x78,0x74,0x70,0x71,0x78,0x7A,0x78,0x76, - 0x70,0x71,0x74,0x77,0x79,0x75,0x71,0x6E,0x68,0x77,0x84,0x88,0x8E,0x80,0x74,0x69, - 0x69,0x72,0x7C,0x82,0x7E,0x7D,0x7B,0x7C,0x83,0x86,0x84,0x81,0x7E,0x80,0x85,0x88, - 0x8A,0x88,0x81,0x7C,0x78,0x82,0x94,0x94,0x99,0x8D,0x7C,0x77,0x70,0x79,0x7F,0x84, - 0x81,0x7B,0x7B,0x7A,0x7E,0x82,0x7F,0x7A,0x78,0x78,0x7C,0x80,0x81,0x7E,0x7B,0x77, - 0x73,0x7E,0x8E,0x93,0x98,0x8E,0x7D,0x7A,0x76,0x7B,0x85,0x8A,0x89,0x84,0x83,0x84, - 0x8A,0x8F,0x8D,0x88,0x84,0x83,0x85,0x88,0x8B,0x89,0x84,0x83,0x7C,0x82,0x93,0x95, - 0x98,0x8F,0x84,0x7D,0x77,0x7F,0x86,0x82,0x83,0x82,0x7B,0x7B,0x82,0x87,0x85,0x85, - 0x81,0x7E,0x7D,0x7F,0x81,0x7E,0x7E,0x7B,0x73,0x78,0x87,0x8B,0x91,0x8C,0x7F,0x7A, - 0x70,0x73,0x7B,0x7C,0x7E,0x7A,0x76,0x78,0x7B,0x80,0x84,0x87,0x82,0x7D,0x7D,0x7D, - 0x80,0x7E,0x81,0x80,0x76,0x7C,0x88,0x90,0x98,0x95,0x87,0x81,0x79,0x79,0x7F,0x81, - 0x85,0x80,0x7B,0x7B,0x7E,0x82,0x85,0x86,0x83,0x7E,0x7C,0x7C,0x7C,0x7A,0x79,0x7A, - 0x72,0x78,0x82,0x86,0x8F,0x8C,0x80,0x7B,0x74,0x76,0x7A,0x7C,0x7E,0x7A,0x78,0x77, - 0x7A,0x80,0x83,0x84,0x83,0x81,0x80,0x81,0x81,0x7F,0x7F,0x7E,0x7A,0x7D,0x87,0x8B, - 0x92,0x91,0x88,0x83,0x7D,0x7C,0x82,0x81,0x81,0x7F,0x7D,0x7B,0x7A,0x81,0x81,0x84, - 0x86,0x82,0x82,0x83,0x80,0x7F,0x7F,0x7E,0x7C,0x7B,0x85,0x87,0x88,0x88,0x81,0x80, - 0x7C,0x7C,0x80,0x81,0x80,0x7D,0x79,0x78,0x78,0x79,0x79,0x7A,0x7C,0x7B,0x7B,0x7B, - 0x7B,0x7E,0x7E,0x7E,0x7D,0x7D,0x84,0x83,0x85,0x86,0x7F,0x80,0x81,0x80,0x85,0x86, - 0x86,0x85,0x81,0x80,0x7D,0x7E,0x7F,0x7F,0x81,0x80,0x7F,0x80,0x80,0x83,0x83,0x83, - 0x82,0x7F,0x86,0x85,0x85,0x87,0x7F,0x7E,0x7E,0x7D,0x83,0x81,0x80,0x7F,0x7A,0x79, - 0x77,0x77,0x76,0x7A,0x7A,0x79,0x7A,0x7B,0x7C,0x7F,0x80,0x80,0x81,0x7D,0x84,0x86, - 0x86,0x89,0x84,0x82,0x84,0x81,0x85,0x87,0x83,0x83,0x80,0x7E,0x7D,0x7C,0x7C,0x7E, - 0x7F,0x7F,0x7F,0x7E,0x7E,0x80,0x82,0x83,0x83,0x80,0x84,0x88,0x84,0x89,0x87,0x82, - 0x85,0x82,0x84,0x87,0x83,0x82,0x81,0x7C,0x7C,0x79,0x7A,0x7B,0x7B,0x7C,0x7B,0x7B, - 0x7C,0x7D,0x7F,0x81,0x80,0x7F,0x80,0x85,0x83,0x85,0x85,0x7F,0x82,0x82,0x80,0x85, - 0x82,0x80,0x80,0x7A,0x7C,0x7B,0x7A,0x7E,0x7C,0x7D,0x7D,0x7B,0x7E,0x7F,0x80,0x83, - 0x82,0x82,0x82,0x85,0x85,0x86,0x87,0x82,0x83,0x84,0x81,0x85,0x84,0x80,0x81,0x7C, - 0x7C,0x7C,0x79,0x7D,0x7B,0x7B,0x7B,0x78,0x7B,0x7D,0x7C,0x7E,0x7F,0x7E,0x7F,0x82, - 0x82,0x82,0x84,0x81,0x80,0x81,0x80,0x83,0x82,0x80,0x80,0x7C,0x7C,0x7D,0x7A,0x7D, - 0x7D,0x7A,0x7C,0x7B,0x7B,0x7E,0x7F,0x81,0x81,0x81,0x81,0x83,0x85,0x86,0x87,0x86, - 0x84,0x86,0x84,0x85,0x86,0x82,0x82,0x80,0x7E,0x80,0x7E,0x7E,0x7E,0x7B,0x7C,0x7C, - 0x7C,0x7E,0x7E,0x80,0x80,0x81,0x81,0x81,0x83,0x84,0x85,0x85,0x82,0x82,0x83,0x82, - 0x83,0x81,0x80,0x7F,0x7D,0x7E,0x7D,0x7C,0x7E,0x7C,0x7A,0x7C,0x7A,0x7C,0x7F,0x7E, - 0x7F,0x80,0x81,0x80,0x82,0x84,0x83,0x85,0x85,0x83,0x84,0x83,0x84,0x84,0x82,0x83, - 0x80,0x7F,0x81,0x7E,0x7D,0x7E,0x7B,0x7B,0x7C,0x7D,0x7E,0x7D,0x7E,0x7F,0x80,0x81, - 0x80,0x82,0x83,0x83,0x86,0x84,0x82,0x83,0x82,0x83,0x83,0x81,0x81,0x7F,0x7F,0x7F, - 0x7C,0x7C,0x7C,0x79,0x7B,0x7C,0x7B,0x7B,0x7C,0x7D,0x7D,0x7F,0x7F,0x7D,0x81,0x84, - 0x84,0x86,0x84,0x82,0x83,0x83,0x85,0x85,0x83,0x83,0x81,0x80,0x80,0x7E,0x7F,0x7D, - 0x7C,0x7F,0x7D,0x7E,0x80,0x7F,0x7E,0x80,0x81,0x80,0x80,0x83,0x83,0x84,0x85,0x82, - 0x81,0x82,0x82,0x85,0x85,0x83,0x82,0x80,0x7F,0x7F,0x7E,0x7E,0x7E,0x7C,0x7E,0x7D, - 0x7D,0x7F,0x7E,0x7C,0x7D,0x7F,0x80,0x82,0x81,0x82,0x82,0x82,0x84,0x82,0x84,0x84, - 0x84,0x86,0x83,0x81,0x80,0x80,0x80,0x80,0x7E,0x7E,0x7E,0x7E,0x7C,0x7D,0x7E,0x7C, - 0x8D,0x80,0x83,0x82,0x65,0x7F,0x7F,0x6B,0x6B,0x7B,0x83,0x89,0x8E,0x8E,0x8F,0x8A, - 0x97,0xA3,0x9E,0xA8,0xA3,0x91,0x88,0x76,0x82,0x8C,0x69,0x62,0x71,0x63,0x51,0x52, - 0x49,0x52,0x6D,0x6A,0x5D,0x50,0x63,0x73,0x6B,0x71,0x7B,0x99,0x8E,0x8A,0xA7,0x91, - 0x9C,0xA6,0x9B,0x9F,0xA7,0xAB,0x95,0xAA,0xAF,0x9C,0xA6,0xA3,0x85,0x88,0x8F,0x7E, - 0x7D,0x5B,0x6E,0x8E,0x77,0x76,0x6D,0x77,0x79,0x72,0x78,0x78,0x79,0x65,0x55,0x5D, - 0x51,0x59,0x6A,0x60,0x67,0x6F,0x65,0x64,0x7A,0x78,0x77,0x80,0x93,0x99,0x96,0xA5, - 0x9F,0xA4,0xA2,0x9B,0xA9,0xAC,0xA9,0x99,0x91,0xA2,0x9D,0x9D,0x9F,0x94,0x9A,0x95, - 0x92,0x91,0x7E,0x7C,0x74,0x76,0x73,0x6F,0x5F,0x45,0x47,0x4A,0x5A,0x5F,0x4C,0x37, - 0x40,0x45,0x34,0x38,0x3F,0x4B,0x58,0x61,0x6B,0x6C,0x7D,0x8E,0xA4,0xAE,0x99,0x8C, - 0x9A,0xA1,0x9A,0xA3,0xA0,0xA9,0xBF,0xCB,0xD1,0xC1,0xBA,0xAC,0xAE,0xA7,0x90,0x80, - 0x74,0x82,0x82,0x83,0x89,0x6F,0x69,0x6D,0x64,0x76,0x78,0x5B,0x57,0x5C,0x68,0x6D, - 0x5B,0x5C,0x65,0x6F,0x75,0x6E,0x69,0x68,0x7E,0x86,0x7C,0x7B,0x7C,0x93,0x9D,0x91, - 0x91,0x99,0x9A,0x9F,0x97,0x96,0xA7,0x9E,0x9D,0xA5,0x97,0xA4,0xA9,0x8D,0xA4,0xAF, - 0xA8,0xAE,0x98,0x94,0x93,0x89,0x8C,0x88,0x7E,0x79,0x69,0x57,0x5B,0x61,0x60,0x60, - 0x5B,0x66,0x6B,0x56,0x4A,0x38,0x3A,0x52,0x56,0x59,0x5B,0x59,0x62,0x57,0x47,0x57, - 0x55,0x50,0x4A,0x46,0x5A,0x61,0x75,0x79,0x7E,0xA2,0xB2,0xB5,0x9F,0x92,0xA3,0xA1, - 0xA4,0xA7,0xA6,0xB8,0xA3,0x91,0x99,0x9A,0xA1,0x96,0x97,0x98,0x88,0x97,0xA1,0xA2, - 0xA9,0xAC,0xB0,0xAD,0xA1,0x98,0x8D,0x74,0x66,0x63,0x71,0x85,0x72,0x63,0x5C,0x51, - 0x5B,0x64,0x62,0x67,0x69,0x6C,0x6F,0x63,0x5B,0x56,0x5F,0x71,0x74,0x83,0x8A,0x80, - 0x8B,0x91,0x83,0x79,0x83,0x8D,0x8E,0x9A,0x98,0x86,0x91,0x8E,0x7B,0x97,0xAB,0x9C, - 0xA4,0x9F,0x90,0x97,0x85,0x88,0x92,0x8E,0xA2,0x9E,0x97,0x9B,0x94,0x8C,0x8A,0x8D, - 0x85,0x8A,0x95,0x8E,0x83,0x79,0x7D,0x80,0x77,0x81,0x97,0x8C,0x83,0x73,0x5A,0x59, - 0x59,0x61,0x5D,0x55,0x65,0x66,0x60,0x5A,0x4D,0x59,0x66,0x64,0x68,0x6A,0x60,0x54, - 0x50,0x51,0x61,0x74,0x6B,0x62,0x6A,0x70,0x74,0x6B,0x5A,0x5C,0x6E,0x79,0x75,0x77, - 0x83,0x81,0x79,0x73,0x77,0x84,0x8E,0x96,0x95,0x95,0x97,0x99,0x99,0x9F,0xAC,0xAC, - 0xA1,0xA0,0xAD,0xBC,0xC3,0xC3,0xB6,0xBA,0xD2,0xD1,0xCA,0xC8,0xC1,0xCA,0xCD,0xC2, - 0xBC,0xBF,0xBA,0xB9,0xBF,0xB8,0xAB,0x96,0x97,0xA1,0x9F,0x9B,0x8D,0x86,0x85,0x81, - 0x77,0x5D,0x4C,0x40,0x43,0x3D,0x3D,0x47,0x43,0x4C,0x4E,0x41,0x40,0x49,0x4D,0x50, - 0x50,0x49,0x46,0x43,0x44,0x4F,0x4A,0x48,0x45,0x2D,0x4D,0x65,0x55,0x55,0x4A,0x51, - 0x5D,0x62,0x64,0x68,0x73,0x7E,0x84,0x79,0x7C,0x87,0x8B,0x9F,0xA6,0xA7,0xA9,0x9F, - 0x9F,0xA5,0xA8,0x9E,0x9C,0x9B,0x90,0xA4,0xA9,0x95,0x95,0x97,0x9A,0x9D,0x99,0x99, - 0xAC,0xB2,0xA3,0x8E,0x87,0x95,0xA5,0xAC,0x9B,0x8D,0x94,0x96,0x9C,0x9B,0x93,0x8E, - 0x85,0x80,0x80,0x83,0x90,0x92,0x82,0x7F,0x89,0x92,0x90,0x8C,0x8E,0x98,0x99,0x84, - 0x82,0x86,0x8B,0x8B,0x80,0x81,0x84,0x9B,0x94,0x84,0x87,0x7D,0x85,0x85,0x6B,0x5C, - 0x62,0x61,0x65,0x63,0x57,0x5B,0x5D,0x56,0x53,0x62,0x5F,0x4D,0x45,0x45,0x59,0x5B, - 0x58,0x61,0x62,0x5F,0x5E,0x62,0x63,0x6C,0x71,0x66,0x5A,0x53,0x60,0x7B,0x7B,0x71, - 0x66,0x65,0x7B,0x7A,0x77,0x8A,0x9A,0xA0,0xA2,0x98,0x9E,0xAF,0xA9,0xAB,0xAF,0xAD, - 0xA6,0x93,0x85,0x97,0xAB,0xA9,0x9B,0x8E,0x88,0x95,0xA7,0x97,0x7D,0x75,0x7F,0x88, - 0x81,0x7B,0x82,0x83,0x85,0x7D,0x6B,0x7B,0x92,0x98,0x99,0x94,0x85,0x7F,0x7A,0x79, - 0x82,0x7B,0x78,0x7B,0x79,0x85,0x92,0x8D,0x81,0x7C,0x80,0x89,0x86,0x78,0x7A,0x88, - 0x8F,0x88,0x78,0x7A,0x8B,0x8F,0x93,0x93,0x84,0x7E,0x74,0x6A,0x72,0x77,0x73,0x66, - 0x60,0x61,0x6F,0x7F,0x7B,0x71,0x65,0x5B,0x5C,0x5A,0x5C,0x75,0x81,0x71,0x62,0x5F, - 0x64,0x77,0x83,0x7A,0x74,0x75,0x75,0x6D,0x60,0x62,0x6E,0x6A,0x6C,0x71,0x6A,0x7E, - 0x8F,0x86,0x85,0x81,0x82,0x8F,0x8D,0x94,0xAB,0xA8,0x9E,0x9E,0x99,0xA0,0xAC,0xAC, - 0xA7,0xA7,0xA0,0x8C,0x7D,0x78,0x80,0x88,0x7C,0x76,0x77,0x71,0x8A,0x9A,0x89,0x83, - 0x7C,0x77,0x7E,0x78,0x7E,0x8F,0x87,0x7A,0x78,0x70,0x76,0x85,0x86,0x8F,0x91,0x85, - 0x7C,0x77,0x7B,0x8E,0x8B,0x7B,0x7C,0x76,0x77,0x99,0x9D,0x85,0x80,0x7C,0x87,0x8E, - 0x7F,0x82,0x8C,0x84,0x7C,0x71,0x63,0x6B,0x79,0x7D,0x7C,0x7B,0x76,0x68,0x6B,0x78, - 0x7A,0x71,0x67,0x67,0x64,0x6A,0x84,0x89,0x76,0x73,0x6D,0x69,0x6B,0x64,0x6D,0x7D, - 0x71,0x69,0x5D,0x53,0x69,0x7A,0x78,0x77,0x72,0x6C,0x6D,0x6B,0x6D,0x75,0x75,0x71, - 0x78,0x75,0x75,0x90,0x9A,0x91,0x8F,0x8F,0x93,0xA0,0xA5,0xAE,0xBA,0xAE,0x9F,0x9C, - 0x9C,0xA5,0xAC,0xA2,0x9F,0xA0,0x99,0x99,0x93,0x96,0x9C,0x95,0x91,0x93,0x8C,0x88, - 0xA3,0xA7,0x91,0x88,0x80,0x85,0x92,0x8E,0x8E,0x96,0x95,0x8D,0x7F,0x79,0x86,0x8D, - 0x88,0x8C,0x8E,0x86,0x7F,0x83,0x88,0x89,0x90,0x87,0x7E,0x7A,0x73,0x8C,0x8E,0x79, - 0x6D,0x65,0x72,0x76,0x6F,0x73,0x7D,0x78,0x71,0x64,0x47,0x5E,0x7E,0x78,0x63,0x63, - 0x6E,0x4E,0x4F,0x63,0x61,0x5B,0x5B,0x6A,0x5C,0x51,0x68,0x73,0x63,0x54,0x56,0x4E, - 0x48,0x46,0x54,0x68,0x68,0x5F,0x5B,0x55,0x55,0x6A,0x66,0x5B,0x63,0x66,0x66,0x65, - 0x6B,0x72,0x76,0x7B,0x84,0x87,0x83,0x96,0xAF,0xB3,0xAD,0x9F,0x9D,0xA9,0xAA,0xA8, - 0xBE,0xBF,0xA4,0xA0,0x9E,0xA7,0xB6,0xAA,0x9F,0xA0,0xA2,0x9D,0x93,0x95,0x9C,0xA2, - 0xA0,0x94,0x95,0x95,0x97,0xB0,0xBA,0xAC,0x9C,0x95,0x9F,0xAB,0xA9,0xAF,0xB4,0xAA, - 0xA2,0x9A,0x9C,0xA9,0xAD,0xA2,0x9B,0xA3,0x9F,0x94,0x91,0x96,0x9A,0x92,0x90,0x8E, - 0x89,0x81,0x83,0x96,0x8B,0x77,0x72,0x71,0x81,0x86,0x7E,0x7F,0x7B,0x70,0x65,0x60, - 0x6A,0x6F,0x64,0x5C,0x5B,0x5A,0x57,0x55,0x50,0x53,0x50,0x4A,0x47,0x42,0x3B,0x37, - 0x4D,0x59,0x48,0x40,0x36,0x38,0x44,0x40,0x3D,0x49,0x46,0x35,0x33,0x3A,0x48,0x50, - 0x4B,0x52,0x5B,0x5F,0x62,0x62,0x6C,0x7E,0x83,0x83,0x87,0x88,0x83,0x8A,0xA7,0xA8, - 0x91,0x88,0x89,0x98,0xA0,0x93,0x98,0xA1,0x93,0x8F,0x8B,0x8B,0x94,0x8E,0x90,0x99, - 0x97,0x8D,0x89,0x8D,0x9B,0xA0,0x9A,0x9E,0xA0,0x9F,0x96,0x9F,0xC0,0xBA,0xA3,0xA7, - 0xA8,0xB0,0xB0,0xA3,0xB0,0xBB,0xB2,0xAA,0xA3,0xA9,0xB4,0xAF,0xAA,0xA8,0xA2,0xA2, - 0x9E,0x9F,0xA4,0x9E,0x9C,0x98,0x95,0x96,0x8B,0x98,0xAD,0x9A,0x85,0x82,0x80,0x86, - 0x82,0x7C,0x83,0x7F,0x6E,0x65,0x60,0x67,0x69,0x60,0x5E,0x5D,0x5C,0x54,0x4D,0x55, - 0x5A,0x58,0x55,0x52,0x55,0x56,0x4E,0x5A,0x72,0x64,0x53,0x54,0x54,0x59,0x59,0x59, - 0x68,0x6E,0x68,0x63,0x65,0x75,0x81,0x80,0x82,0x87,0x89,0x86,0x83,0x89,0x8A,0x84, - 0x83,0x82,0x85,0x80,0x71,0x7C,0x94,0x8D,0x7C,0x76,0x75,0x7C,0x7B,0x77,0x80,0x80, - 0x7B,0x74,0x72,0x7C,0x80,0x7E,0x7D,0x82,0x89,0x86,0x82,0x85,0x8C,0x8D,0x8F,0x90, - 0x8C,0x8B,0x84,0x8D,0xA9,0xA6,0x8F,0x88,0x8B,0x94,0x91,0x89,0x92,0x9A,0x91,0x84, - 0x82,0x89,0x92,0x91,0x8E,0x8E,0x90,0x8C,0x7E,0x85,0x8F,0x8C,0x85,0x7E,0x7B,0x7F, - 0x7D,0x72,0x83,0x90,0x7B,0x6C,0x67,0x66,0x67,0x62,0x65,0x6D,0x69,0x5A,0x55,0x58, - 0x60,0x5D,0x59,0x5A,0x60,0x65,0x5A,0x5B,0x63,0x64,0x66,0x66,0x69,0x6B,0x6D,0x65, - 0x73,0x94,0x8D,0x79,0x7E,0x8A,0x91,0x90,0x8A,0x9A,0xA7,0x98,0x8E,0x91,0x96,0x98, - 0x93,0x91,0x93,0x92,0x8A,0x84,0x88,0x8A,0x86,0x82,0x82,0x89,0x89,0x7F,0x78,0x8F, - 0x9F,0x8A,0x7F,0x81,0x87,0x8B,0x86,0x8E,0x9A,0x95,0x89,0x85,0x8F,0x99,0x98,0x95, - 0x98,0x9F,0x9D,0x96,0x96,0x99,0x9A,0x9A,0x98,0x94,0x90,0x8E,0x86,0x8A,0xA8,0xA4, - 0x88,0x85,0x87,0x88,0x84,0x80,0x8C,0x93,0x86,0x78,0x7B,0x82,0x80,0x7E,0x7F,0x7E, - 0x80,0x78,0x6E,0x72,0x75,0x74,0x6E,0x6A,0x6F,0x70,0x6A,0x5B,0x62,0x81,0x78,0x5E, - 0x5D,0x60,0x63,0x60,0x5D,0x6C,0x74,0x66,0x60,0x65,0x6F,0x71,0x6E,0x74,0x7C,0x7E, - 0x79,0x77,0x7C,0x7F,0x82,0x83,0x83,0x88,0x86,0x81,0x78,0x83,0x9E,0x92,0x7C,0x80, - 0x82,0x7E,0x78,0x7B,0x8B,0x8F,0x7F,0x76,0x7A,0x82,0x83,0x7D,0x7D,0x85,0x85,0x80, - 0x7C,0x81,0x87,0x84,0x83,0x85,0x8A,0x86,0x82,0x7C,0x82,0x9F,0x98,0x7F,0x82,0x87, - 0x89,0x86,0x83,0x8F,0x97,0x8B,0x7F,0x82,0x8A,0x8A,0x85,0x87,0x8D,0x8C,0x84,0x82, - 0x85,0x86,0x83,0x83,0x83,0x86,0x88,0x83,0x7A,0x79,0x96,0x99,0x7F,0x7B,0x7F,0x7E, - 0x80,0x7D,0x82,0x8C,0x83,0x75,0x76,0x7D,0x7C,0x77,0x79,0x7F,0x7F,0x77,0x71,0x74, - 0x76,0x75,0x76,0x77,0x7B,0x7A,0x75,0x72,0x6F,0x84,0x93,0x7E,0x78,0x7F,0x7C,0x7C, - 0x7B,0x82,0x8E,0x8C,0x80,0x7E,0x86,0x87,0x82,0x83,0x88,0x8B,0x86,0x7F,0x80,0x85, - 0x83,0x81,0x82,0x85,0x83,0x7D,0x7B,0x76,0x7D,0x95,0x89,0x75,0x7C,0x7B,0x75,0x73, - 0x74,0x83,0x89,0x7A,0x72,0x79,0x7A,0x78,0x79,0x7F,0x84,0x84,0x7F,0x7D,0x84,0x83, - 0x7E,0x82,0x85,0x86,0x83,0x7E,0x7F,0x79,0x8A,0x9F,0x86,0x7C,0x88,0x81,0x7C,0x7A, - 0x7E,0x8A,0x87,0x78,0x7A,0x80,0x7B,0x7A,0x7E,0x83,0x85,0x82,0x7D,0x7E,0x81,0x7D, - 0x7E,0x83,0x83,0x83,0x7F,0x7E,0x7B,0x75,0x8E,0x96,0x7D,0x7D,0x82,0x77,0x76,0x78, - 0x7D,0x86,0x7D,0x75,0x7C,0x7F,0x7A,0x79,0x7C,0x81,0x83,0x7E,0x7B,0x7F,0x7E,0x7B, - 0x7F,0x85,0x86,0x83,0x80,0x83,0x7E,0x7A,0x95,0x96,0x7B,0x83,0x86,0x7A,0x7B,0x7C, - 0x84,0x8E,0x81,0x78,0x80,0x80,0x7B,0x7B,0x7E,0x84,0x82,0x7C,0x7C,0x7F,0x7D,0x7B, - 0x7C,0x7E,0x7E,0x7D,0x7C,0x7B,0x75,0x74,0x90,0x90,0x75,0x7E,0x84,0x7A,0x76,0x7C, - 0x86,0x8B,0x84,0x72,0x7D,0x87,0x7C,0x7F,0x87,0x8A,0x88,0x89,0x87,0x8A,0x86,0x7C, - 0x84,0x86,0x84,0x84,0x80,0x83,0x7D,0x73,0x8F,0x94,0x79,0x80,0x86,0x78,0x72,0x73, - 0x7F,0x89,0x81,0x7C,0x84,0x82,0x79,0x79,0x7F,0x84,0x80,0x7D,0x7F,0x84,0x80,0x79, - 0x7D,0x80,0x7F,0x80,0x7D,0x7E,0x7B,0x6F,0x89,0x96,0x77,0x7C,0x8B,0x79,0x76,0x7A, - 0x7E,0x8C,0x85,0x78,0x83,0x88,0x7A,0x78,0x84,0x89,0x83,0x82,0x85,0x86,0x82,0x7B, - 0x85,0x83,0x7C,0x7F,0x82,0x81,0x7C,0x73,0x7F,0x9B,0x81,0x73,0x8F,0x82,0x72,0x76, - 0x80,0x89,0x84,0x77,0x7D,0x88,0x74,0x6E,0x7C,0x78,0x73,0x77,0x79,0x7E,0x80,0x75, - 0x7F,0x8C,0x81,0x86,0x8E,0x88,0x8B,0x80,0x80,0x9C,0x88,0x6A,0x84,0x80,0x69,0x73, - 0x79,0x80,0x88,0x73,0x77,0x98,0x8B,0x72,0x80,0x91,0x84,0x77,0x71,0x7C,0x8F,0x7C, - 0x70,0x8A,0x95,0x83,0x74,0x79,0x89,0x7A,0x65,0x8C,0x9B,0x82,0x85,0x81,0x68,0x70, - 0x83,0x7A,0x7A,0x77,0x7B,0x7D,0x6F,0x77,0x8B,0x88,0x74,0x7D,0x94,0x9D,0x8D,0x74, - 0x77,0x90,0x8B,0x77,0x82,0x83,0x7D,0x82,0x6D,0x7A,0xA2,0x7B,0x64,0x96,0x91,0x6A, - 0x68,0x7B,0x93,0x83,0x68,0x84,0xA4,0x83,0x6B,0x8A,0x8C,0x6E,0x6B,0x87,0x8D,0x75, - 0x6E,0x7E,0x88,0x7F,0x83,0x87,0x77,0x72,0x6F,0x79,0x98,0x8D,0x77,0x8B,0x82,0x70, - 0x82,0x84,0x7E,0x79,0x76,0x81,0x78,0x6F,0x7D,0x90,0x8D,0x8F,0x8F,0x76,0x68,0x76, - 0x7C,0x87,0x9B,0x80,0x82,0x99,0x88,0x7C,0x97,0x84,0x62,0x8E,0x75,0x6A,0x91,0x74, - 0x69,0x76,0x72,0x6F,0x66,0x77,0x88,0x91,0xAC,0xA5,0xAA,0xAF,0x96,0x6C,0x6F,0x80, - 0x5E,0x5C,0x6F,0x73,0x6B,0x7E,0x93,0x99,0x9D,0x95,0x92,0x7F,0x5B,0x49,0x5A,0x81, - 0x91,0x80,0x76,0x77,0x81,0x7D,0x85,0x93,0x92,0x96,0x8F,0x84,0x93,0x98,0x8A,0x9F, - 0xA8,0x9C,0x8D,0x6D,0x68,0x70,0x7C,0x76,0x5A,0x5B,0x6F,0x69,0x6F,0x8C,0x7D,0x5C, - 0x77,0x87,0x73,0x7E,0x78,0x7A,0x99,0xA2,0x96,0x90,0x82,0x6E,0x8B,0xAE,0x9C,0x80, - 0x79,0x83,0x82,0x72,0x8B,0x95,0x71,0x6E,0x72,0x76,0x71,0x6A,0x7C,0x7E,0x89,0x93, - 0x77,0x6F,0x72,0x69,0x75,0x86,0x7D,0x70,0x6B,0x73,0x8B,0x9C,0xA3,0xA1,0x98,0x99, - 0x88,0x76,0x6E,0x80,0x92,0x89,0x95,0x95,0x7A,0x64,0x77,0x84,0x78,0x76,0x60,0x6C, - 0x88,0x70,0x6F,0x89,0x74,0x6E,0x7E,0x65,0x76,0x98,0x84,0x7F,0x8C,0x7D,0x7D,0x93, - 0x8E,0x9C,0xAF,0x9A,0x90,0x99,0x8A,0x7B,0x7C,0x7C,0x72,0x70,0x7C,0x73,0x67,0x69, - 0x7B,0x88,0x9F,0xA1,0x88,0x94,0x8E,0x67,0x6A,0x7C,0x7B,0x74,0x5F,0x68,0x78,0x66, - 0x6D,0x8F,0x82,0x76,0x8F,0x88,0x8E,0x92,0x7E,0x92,0x88,0x79,0x93,0x81,0x62,0x6F, - 0x95,0x9F,0x89,0x80,0x75,0x71,0x81,0x85,0xA2,0xA6,0x84,0x92,0x90,0x73,0x6A,0x6B, - 0x6B,0x68,0x71,0x72,0x76,0x6A,0x65,0x83,0x91,0x89,0x82,0x8D,0x88,0x86,0x90,0x94, - 0x89,0x7D,0x88,0x87,0x80,0x6E,0x6E,0x89,0x80,0x78,0x96,0x92,0x6F,0x72,0x7A,0x8D, - 0xA0,0x89,0x82,0x7D,0x71,0x75,0x8B,0x9D,0x84,0x91,0xAF,0x97,0x8E,0x82,0x7E,0x94, - 0x8B,0x81,0x81,0x66,0x54,0x64,0x6E,0x68,0x5E,0x65,0x67,0x69,0x71,0x71,0x87,0x87, - 0x85,0x93,0x85,0x7E,0x7D,0x7D,0x92,0x87,0x83,0x94,0x82,0x79,0x8A,0x99,0x99,0x8D, - 0x82,0x92,0x91,0x82,0x94,0x9D,0x87,0x6A,0x75,0x74,0x5A,0x6E,0x7A,0x7D,0x87,0x88, - 0x90,0x7A,0x63,0x74,0x87,0x80,0x71,0x7F,0x82,0x79,0x7D,0x7A,0x86,0x8F,0x8A,0x8C, - 0x94,0x85,0x78,0x96,0xA4,0x96,0x94,0x93,0x83,0x6E,0x6D,0x80,0x8D,0x8C,0x7F,0x74, - 0x6B,0x5D,0x69,0x81,0x77,0x6F,0x76,0x6E,0x75,0x76,0x86,0xA2,0x9D,0x99,0x9A,0x8B, - 0x61,0x59,0x78,0x84,0x74,0x75,0x86,0x7B,0x69,0x75,0x8F,0x88,0x7E,0x87,0x88,0x78, - 0x62,0x6B,0x7A,0x83,0x7B,0x84,0x90,0x77,0x74,0x73,0x7C,0x86,0x8F,0x98,0xA0,0x93, - 0x88,0x9B,0x91,0x7C,0x80,0x8E,0x82,0x7A,0x7C,0x88,0xA5,0xA4,0x92,0x94,0x83,0x6E, - 0x7E,0x7F,0x68,0x6F,0x6B,0x5E,0x6B,0x5D,0x67,0x7F,0x69,0x7A,0x82,0x6B,0x69,0x75, - 0x90,0x8F,0x8A,0x8E,0x88,0x7D,0x75,0x7C,0x87,0x96,0x8A,0x80,0x7E,0x74,0x89,0x90, - 0x88,0x7D,0x7F,0x92,0x86,0x75,0x79,0x75,0x7C,0x7D,0x76,0x7F,0x6D,0x56,0x67,0x88, - 0x8D,0x7A,0x80,0x81,0x7D,0x7D,0x76,0x84,0x99,0xA8,0xAF,0x9F,0x7F,0x67,0x6E,0x75, - 0x6F,0x7A,0x91,0x7F,0x75,0x86,0x80,0x86,0x7D,0x7F,0x8E,0x8A,0x79,0x74,0x77,0x62, - 0x64,0x75,0x77,0x6C,0x76,0x7C,0x80,0xA1,0x9C,0xA1,0x9A,0x73,0x87,0x94,0x8B,0x81, - 0x80,0x78,0x70,0x6F,0x6A,0x71,0x73,0x82,0x9A,0xA4,0x8D,0x7E,0x8B,0x97,0x9F,0x87, - 0x7E,0x7F,0x63,0x55,0x5A,0x73,0x7E,0x72,0x6A,0x69,0x6C,0x73,0x87,0x8E,0x82,0x89, - 0x98,0x8E,0x8C,0x85,0x7B,0x97,0x8C,0x7E,0x89,0x6E,0x60,0x77,0x8A,0x7C,0x75,0x75, - 0x70,0x7D,0x6F,0x6F,0x80,0x84,0x94,0x92,0x82,0x7C,0x78,0x76,0x87,0x97,0x96,0x85, - 0x77,0x69,0x6D,0x7B,0x88,0x99,0x90,0x94,0x9C,0x84,0x81,0x7D,0x62,0x6C,0x7E,0x7E, - 0x78,0x75,0x74,0x81,0x95,0xA6,0x9D,0x81,0x79,0x6F,0x75,0x76,0x71,0x74,0x74,0x82, - 0x6B,0x68,0x7D,0x75,0x84,0x9A,0x91,0x82,0x7C,0x7F,0x94,0xA3,0x93,0x88,0x7E,0x73, - 0x72,0x63,0x72,0x96,0x93,0x8B,0x95,0x99,0x9A,0x9A,0x7E,0x7D,0x9B,0x86,0x75,0x77, - 0x67,0x6F,0x78,0x82,0x80,0x6F,0x76,0x5D,0x65,0x7F,0x71,0x7F,0x7A,0x78,0x7E,0x72, - 0x83,0x85,0x85,0xA0,0x8B,0x6E,0x83,0x70,0x71,0x8C,0x87,0x8C,0x7F,0x76,0x78,0x79, - 0x86,0x97,0xA0,0x8C,0x82,0x7B,0x71,0x89,0x80,0x71,0x7F,0x84,0x88,0x83,0x72,0x76, - 0x88,0x94,0xA9,0x98,0x8A,0x86,0x6A,0x73,0x71,0x6D,0x74,0x6D,0x75,0x69,0x68,0x7C, - 0x7F,0x98,0xA8,0x92,0x81,0x79,0x80,0x92,0x9C,0x9E,0x94,0x78,0x70,0x67,0x57,0x73, - 0x8F,0x85,0x74,0x83,0x88,0x81,0x86,0x7A,0x83,0x9A,0x8B,0x85,0x86,0x73,0x70,0x7E, - 0x95,0x99,0x81,0x88,0x8D,0x94,0x98,0x8F,0x92,0x7F,0x86,0x7B,0x6D,0x76,0x6D,0x87, - 0x8C,0x78,0x7D,0x55,0x43,0x78,0x8E,0x7A,0x77,0x86,0x73,0x6F,0x7F,0x85,0x99,0xA4, - 0xA7,0x92,0x68,0x72,0x86,0x6E,0x60,0x74,0x77,0x72,0x6F,0x67,0x78,0x8E,0xA4,0xA9, - 0x88,0x7A,0x85,0x75,0x79,0x89,0x89,0x88,0x7F,0x82,0x75,0x79,0x78,0x7E,0xA1,0x9C, - 0x8A,0x87,0x79,0x81,0x9E,0x96,0x90,0x7E,0x5F,0x6D,0x70,0x62,0x87,0xA6,0x81,0x84, - 0x98,0x78,0x75,0x72,0x63,0x7C,0x88,0x76,0x7A,0x7C,0x65,0x5E,0x75,0x8E,0x89,0x77, - 0x79,0x82,0x82,0x8E,0x94,0x84,0x97,0x9E,0x83,0x74,0x70,0x7D,0x88,0x88,0x82,0x7E, - 0x75,0x71,0x8D,0xA3,0xA8,0x9D,0x81,0x7F,0x85,0x73,0x74,0x86,0x76,0x6C,0x76,0x6B, - 0x65,0x62,0x5E,0x5F,0x70,0x6C,0x64,0x76,0x7A,0x80,0x97,0xAA,0xA4,0x8D,0x8A,0x8B, - 0x7E,0x77,0x79,0x7C,0x7C,0x80,0x79,0x73,0x7A,0x7A,0x6F,0x87,0x96,0x76,0x71,0x6E, - 0x87,0xA4,0x8F,0x94,0x8A,0x6E,0x76,0x73,0x76,0x99,0x9F,0x82,0x89,0x99,0x82,0x6F, - 0x6F,0x75,0x79,0x7C,0x76,0x76,0x75,0x71,0x74,0x90,0x9F,0x8B,0x81,0x82,0x81,0x7A, - 0x87,0x86,0x83,0x94,0x87,0x78,0x62,0x62,0x78,0x7C,0x7E,0x79,0x76,0x62,0x59,0x76, - 0x8E,0x98,0x99,0x87,0x89,0x96,0x81,0x82,0x8F,0x83,0x81,0x87,0x86,0x81,0x85,0x83, - 0x7E,0x96,0x99,0x89,0x89,0x75,0x73,0x85,0x93,0x91,0x7F,0x79,0x77,0x6A,0x5D,0x6A, - 0x6A,0x6E,0x7A,0x77,0x79,0x73,0x72,0x7B,0x8B,0x90,0x8B,0x85,0x70,0x86,0x91,0x7B, - 0x85,0x72,0x6A,0x79,0x67,0x6E,0x92,0x8D,0x84,0xA0,0x9F,0x89,0x7C,0x74,0x7D,0x82, - 0x89,0x8A,0x8D,0x88,0x73,0x79,0x8D,0x99,0x8A,0x7F,0x79,0x7A,0x80,0x7E,0x87,0x7E, - 0x80,0x82,0x6B,0x5D,0x70,0x73,0x73,0x87,0x8F,0x8B,0x76,0x6C,0x7D,0x8D,0x94,0x99, - 0x88,0x8A,0x94,0x7C,0x80,0x82,0x74,0x7C,0x7A,0x71,0x6F,0x68,0x60,0x68,0x81,0x90, - 0xA0,0x8D,0x70,0x81,0x8A,0x8D,0x96,0x8F,0x83,0x82,0x79,0x73,0x83,0x84,0x8E,0xA3, - 0xA0,0x92,0x89,0x86,0x7E,0x8B,0x91,0x83,0x6C,0x5D,0x75,0x74,0x6E,0x73,0x69,0x70, - 0x74,0x65,0x71,0x93,0x7E,0x77,0x9D,0xA0,0x8B,0x7E,0x76,0x6E,0x69,0x6E,0x79,0x81, - 0x71,0x67,0x73,0x7A,0x81,0x95,0x8D,0x78,0x88,0x8A,0x8B,0x98,0x84,0x97,0xA1,0x79, - 0x71,0x7C,0x80,0x70,0x71,0x85,0x82,0x67,0x69,0x83,0x7D,0x8D,0x8F,0x83,0x8F,0x7B, - 0x72,0x8B,0x82,0x6F,0x91,0x9F,0x8A,0x93,0x80,0x6F,0x72,0x6A,0x7A,0x98,0x81,0x68, - 0x80,0x83,0x86,0x93,0x97,0x86,0x6F,0x62,0x64,0x74,0x69,0x70,0x91,0x97,0x94,0x90, - 0x95,0x96,0x84,0x8E,0x95,0x7B,0x69,0x6E,0x73,0x79,0x82,0x8A,0x8E,0x8D,0x8B,0x92, - 0xA7,0x90,0x81,0x9A,0x9B,0x8C,0x7A,0x6A,0x5E,0x52,0x58,0x73,0x85,0x71,0x63,0x6E, - 0x6A,0x70,0x88,0x93,0x89,0x7F,0x7F,0x91,0x95,0x74,0x7E,0x8C,0x70,0x69,0x76,0x81, - 0x6B,0x6C,0x93,0x97,0x81,0x74,0x8A,0x90,0x85,0x92,0x9A,0x9E,0x8D,0x77,0x7D,0x85, - 0x69,0x6F,0x97,0x8B,0x82,0x89,0x77,0x6B,0x69,0x7C,0x94,0x89,0x72,0x78,0x7C,0x71, - 0x85,0xA0,0x9E,0x7C,0x6F,0x82,0x86,0x80,0x70,0x7F,0x8A,0x7D,0x82,0x8B,0x8A,0x81, - 0x91,0x97,0x8B,0x77,0x60,0x67,0x6E,0x67,0x7E,0x8E,0x7A,0x80,0x83,0x88,0x8D,0x85, - 0x90,0x9D,0x91,0x7C,0x80,0x6F,0x54,0x5A,0x77,0x90,0x95,0x80,0x87,0x90,0x81,0x92, - 0xAA,0xA5,0x90,0x84,0x86,0x89,0x80,0x6E,0x75,0x6F,0x64,0x74,0x66,0x63,0x64,0x6D, - 0x8B,0x80,0x73,0x7B,0x85,0x80,0x86,0x97,0x90,0x7F,0x6D,0x70,0x6C,0x66,0x77,0x7E, - 0x8A,0x97,0x95,0x8D,0x7D,0x6C,0x75,0x83,0x87,0x92,0x8D,0x78,0x6B,0x71,0x90,0x9A, - 0x8A,0x78,0x72,0x84,0x88,0x7B,0x85,0x8E,0x78,0x80,0x88,0x7B,0x81,0x75,0x75,0x8D, - 0x8F,0x7F,0x75,0x7B,0x84,0x90,0x88,0x81,0x74,0x68,0x78,0x7A,0x80,0x8D,0x95,0x96, - 0x8C,0x7D,0x80,0x73,0x5C,0x65,0x77,0x85,0x87,0x7B,0x78,0x82,0x87,0x93,0xA0,0x99, - 0x85,0x6C,0x72,0x80,0x72,0x6C,0x78,0x84,0x8E,0x83,0x85,0x9B,0x90,0x8B,0x9F,0xA2, - 0x8A,0x7A,0x84,0x7F,0x7A,0x77,0x76,0x7B,0x69,0x5E,0x6F,0x74,0x68,0x76,0x8B,0x8C, - 0x7E,0x79,0x8A,0x8C,0x74,0x70,0x8B,0x89,0x6A,0x6B,0x7A,0x7E,0x87,0x93,0x92,0x7F, - 0x72,0x80,0x8A,0x7F,0x78,0x83,0x94,0x93,0x7C,0x7C,0x89,0x71,0x6C,0x88,0x8C,0x75, - 0x70,0x84,0x84,0x7F,0x7C,0x8C,0x97,0x7D,0x76,0x87,0x8D,0x87,0x86,0x8C,0x8A,0x7D, - 0x7A,0x84,0x80,0x6F,0x77,0x84,0x79,0x70,0x6F,0x77,0x84,0x92,0x9D,0xA2,0x89,0x73, - 0x7D,0x7A,0x65,0x60,0x71,0x82,0x7C,0x6F,0x7E,0x90,0x89,0x8F,0xA1,0x9B,0x78,0x6F, - 0x81,0x7A,0x72,0x76,0x85,0x88,0x77,0x75,0x88,0x93,0x8A,0x94,0xA1,0x95,0x8A,0x91, - 0x95,0x89,0x73,0x74,0x7D,0x70,0x62,0x60,0x69,0x6D,0x76,0x86,0x84,0x71,0x70,0x7F, - 0x84,0x7E,0x80,0x8B,0x8A,0x7C,0x73,0x75,0x76,0x77,0x88,0x98,0x89,0x75,0x7B,0x89, - 0x7F,0x72,0x7E,0x88,0x81,0x72,0x70,0x7F,0x81,0x79,0x8A,0x95,0x83,0x7E,0x8A,0x92, - 0x89,0x80,0x89,0x8E,0x7E,0x70,0x76,0x7F,0x7D,0x7E,0x94,0x93,0x77,0x73,0x80,0x7D, - 0x77,0x79,0x78,0x73,0x68,0x68,0x79,0x84,0x85,0x91,0xA2,0x9C,0x8C,0x87,0x82,0x75, - 0x73,0x80,0x7E,0x76,0x70,0x78,0x83,0x7E,0x7B,0x85,0x8B,0x81,0x7C,0x7A,0x79,0x89, - 0x8E,0x80,0x82,0x7D,0x75,0x7D,0x74,0x6A,0x82,0x99,0x95,0x91,0x8E,0x96,0xA3,0x9B, - 0x89,0x7C,0x83,0x78,0x6C,0x72,0x6D,0x7C,0x62,0x5D,0x73,0x70,0x7A,0x75,0x73,0x7B, - 0x8A,0x89,0x7F,0x6D,0x70,0x9C,0xA1,0x91,0x9B,0xA1,0x9E,0x9B,0x87,0x7B,0x7E,0x6E, - 0x59,0x5B,0x60,0x5F,0x66,0x5B,0x51,0x79,0x90,0x77,0x70,0x79,0x78,0x7F,0x76,0x6B, - 0x8B,0x8A,0x7C,0x8B,0x88,0x94,0xB5,0xBC,0x9E,0xA9,0xCA,0xB0,0x9B,0x97,0x88,0x8B, - 0x87,0x71,0x7F,0x8D,0x73,0x68,0x7E,0x83,0x74,0x6F,0x69,0x77,0x84,0x73,0x6D,0x72, - 0x72,0x59,0x41,0x42,0x42,0x4F,0x58,0x54,0x59,0x64,0x6B,0x6A,0x6B,0x78,0x8F,0x8D, - 0x80,0x92,0x9C,0x8F,0x86,0x90,0xAC,0xB6,0xAF,0xBB,0xD4,0xDC,0xDA,0xD5,0xD6,0xD9, - 0xCC,0xB6,0xB4,0xB5,0xA7,0x98,0x94,0x84,0x75,0x79,0x6D,0x62,0x65,0x57,0x41,0x38, - 0x2F,0x2F,0x3A,0x33,0x31,0x38,0x38,0x3C,0x40,0x42,0x4E,0x5C,0x60,0x69,0x75,0x7A, - 0x7D,0x81,0x86,0x89,0x91,0x93,0x91,0x9B,0x9F,0x9E,0xA6,0xAB,0xA8,0xA9,0xA5,0xAB, - 0xB6,0xB1,0x9F,0x90,0x8B,0x85,0x80,0x7A,0x7C,0x7C,0x6F,0x5F,0x5B,0x57,0x52,0x64, - 0x70,0x6E,0x6A,0x69,0x66,0x67,0x5C,0x53,0x59,0x5C,0x5E,0x5D,0x5E,0x5D,0x62,0x68, - 0x71,0x77,0x7A,0x88,0x8E,0x90,0x91,0x92,0x91,0x90,0xA0,0xAF,0xAA,0xA8,0xAF,0xAE, - 0xAF,0xB2,0xB4,0xBF,0xC3,0xBE,0xC0,0xC3,0xB9,0xAD,0xAB,0xAB,0xAD,0xAA,0xA3,0xA5, - 0x9B,0x85,0x7E,0x81,0x80,0x73,0x6F,0x7B,0x7B,0x66,0x5C,0x5A,0x4F,0x4D,0x54,0x59, - 0x5A,0x54,0x4D,0x53,0x54,0x49,0x4D,0x59,0x5D,0x62,0x69,0x71,0x71,0x70,0x78,0x80, - 0x82,0x86,0x8E,0x91,0x8B,0x8C,0x89,0x89,0x8F,0x8E,0x95,0xA1,0xA1,0x9D,0xA1,0xA0, - 0x9A,0x9A,0x9C,0xA0,0xA4,0xA7,0xA8,0xA6,0x9C,0x93,0x94,0x93,0x93,0x8A,0x86,0x8F, - 0x7E,0x6A,0x6B,0x69,0x5A,0x57,0x59,0x56,0x58,0x4C,0x46,0x4E,0x48,0x45,0x52,0x55, - 0x4F,0x56,0x52,0x4A,0x48,0x43,0x47,0x4F,0x52,0x56,0x68,0x6A,0x5D,0x65,0x67,0x60, - 0x64,0x6C,0x78,0x85,0x85,0x87,0x95,0x96,0x92,0xA8,0xB7,0xB9,0xC6,0xCE,0xCC,0xC9, - 0xBE,0xBF,0xC6,0xBE,0xC0,0xB9,0xB3,0xC2,0xB4,0xA1,0xA6,0x9F,0x8F,0x97,0x9C,0x96, - 0x95,0x8B,0x88,0x88,0x78,0x79,0x86,0x7E,0x7B,0x81,0x7C,0x78,0x74,0x70,0x75,0x70, - 0x73,0x78,0x76,0x81,0x74,0x65,0x72,0x72,0x6B,0x77,0x81,0x83,0x86,0x7F,0x80,0x87, - 0x7F,0x82,0x8E,0x8E,0x8E,0x94,0x94,0x8E,0x8D,0x8A,0x8A,0x8B,0x92,0x91,0x91,0xA4, - 0x97,0x87,0x95,0x8B,0x7A,0x84,0x8B,0x8C,0x8B,0x83,0x86,0x87,0x76,0x78,0x89,0x84, - 0x7E,0x85,0x84,0x7E,0x76,0x71,0x73,0x73,0x76,0x7D,0x7B,0x89,0x85,0x6A,0x6E,0x6F, - 0x60,0x62,0x68,0x67,0x6A,0x61,0x59,0x60,0x53,0x48,0x56,0x5A,0x56,0x5C,0x5C,0x5B, - 0x58,0x55,0x5A,0x5A,0x5B,0x5A,0x58,0x6F,0x6A,0x51,0x61,0x64,0x51,0x57,0x62,0x66, - 0x6C,0x68,0x6A,0x73,0x69,0x68,0x79,0x7C,0x7B,0x86,0x8D,0x8F,0x8C,0x8D,0x97,0x9A, - 0xA1,0xA8,0xAA,0xC0,0xC0,0xAB,0xB6,0xB6,0xA0,0xA3,0xB0,0xB0,0xB0,0xA9,0xA8,0xB0, - 0xA3,0x9B,0xA9,0xA4,0x9C,0xA2,0xA6,0xA5,0x9C,0x94,0x97,0x94,0x92,0x90,0x92,0xA4, - 0x9A,0x86,0x93,0x8E,0x79,0x7E,0x89,0x8D,0x90,0x8E,0x90,0x93,0x84,0x86,0x94,0x8A, - 0x82,0x85,0x83,0x81,0x78,0x6F,0x6D,0x67,0x67,0x67,0x6A,0x7C,0x70,0x60,0x73,0x6F, - 0x59,0x60,0x6A,0x6B,0x6F,0x70,0x73,0x73,0x66,0x68,0x76,0x72,0x73,0x7D,0x7F,0x80, - 0x7E,0x7C,0x7D,0x79,0x79,0x76,0x83,0x95,0x80,0x78,0x86,0x76,0x6A,0x76,0x79,0x7A, - 0x79,0x76,0x7E,0x7B,0x69,0x6D,0x75,0x6E,0x75,0x7A,0x77,0x78,0x71,0x73,0x74,0x71, - 0x73,0x71,0x83,0x91,0x7C,0x80,0x8F,0x7E,0x77,0x85,0x8B,0x8B,0x8A,0x89,0x90,0x88, - 0x7C,0x85,0x84,0x7A,0x81,0x87,0x83,0x80,0x7A,0x76,0x75,0x76,0x72,0x74,0x8C,0x86, - 0x74,0x85,0x86,0x72,0x76,0x82,0x87,0x8C,0x89,0x88,0x89,0x7D,0x7A,0x80,0x77,0x72, - 0x77,0x74,0x71,0x6E,0x67,0x64,0x65,0x64,0x60,0x72,0x7E,0x68,0x69,0x79,0x6C,0x64, - 0x70,0x75,0x79,0x7D,0x7E,0x85,0x81,0x76,0x7E,0x85,0x7E,0x85,0x8E,0x8D,0x91,0x95, - 0x95,0x92,0x92,0x8E,0x95,0xB0,0xA8,0x98,0xAA,0xA5,0x90,0x95,0x9C,0x9B,0x9D,0x9D, - 0xA2,0xA7,0x9A,0x96,0xA2,0x9D,0x9B,0xA7,0xA6,0xA3,0xA3,0x9F,0x9C,0x9C,0x98,0x92, - 0xA6,0xAE,0x96,0x99,0xA0,0x8A,0x7E,0x87,0x8A,0x87,0x85,0x83,0x86,0x79,0x6C,0x73, - 0x6F,0x62,0x66,0x6D,0x69,0x65,0x62,0x5C,0x56,0x55,0x4D,0x55,0x6B,0x59,0x4D,0x5F, - 0x53,0x3F,0x45,0x4E,0x52,0x51,0x51,0x59,0x59,0x4D,0x53,0x5D,0x55,0x57,0x60,0x5F, - 0x5F,0x5F,0x5C,0x5A,0x57,0x53,0x54,0x6F,0x73,0x5B,0x65,0x6D,0x58,0x55,0x60,0x65, - 0x68,0x69,0x71,0x7E,0x77,0x71,0x80,0x86,0x86,0x91,0x98,0x9B,0x9E,0x9D,0x9D,0x9C, - 0x9D,0x97,0xA9,0xC1,0xA9,0x9D,0xAF,0xA0,0x8D,0x95,0x9B,0x9D,0x9B,0x95,0x9B,0x9C, - 0x8D,0x8E,0x96,0x91,0x93,0x9C,0x9C,0x9D,0x9C,0x99,0x96,0x98,0x97,0x99,0xB4,0xB4, - 0xA0,0xB0,0xB3,0x9F,0x9D,0xA7,0xAE,0xAE,0xA8,0xAC,0xB2,0xA3,0x99,0xA2,0xA1,0x9B, - 0x9F,0xA2,0xA2,0x9D,0x94,0x91,0x90,0x90,0x89,0x98,0xAF,0x98,0x8C,0x9A,0x8B,0x78, - 0x7A,0x7F,0x80,0x7C,0x74,0x7A,0x7B,0x6A,0x69,0x70,0x6B,0x69,0x6C,0x6A,0x68,0x63, - 0x5E,0x5C,0x5B,0x53,0x50,0x69,0x6B,0x51,0x58,0x5D,0x48,0x41,0x47,0x4E,0x53,0x4D, - 0x4D,0x56,0x4D,0x3F,0x44,0x47,0x44,0x48,0x4C,0x50,0x52,0x4C,0x4D,0x51,0x53,0x50, - 0x5A,0x78,0x72,0x5F,0x6F,0x6F,0x61,0x64,0x6C,0x74,0x78,0x6F,0x71,0x7B,0x73,0x70, - 0x79,0x7B,0x7D,0x82,0x82,0x88,0x8C,0x87,0x8A,0x90,0x95,0x92,0xA6,0xC3,0xB6,0xB0, - 0xC0,0xB9,0xAE,0xB1,0xB5,0xC1,0xC2,0xB7,0xBC,0xC0,0xB4,0xAE,0xAD,0xAC,0xAE,0xAA, - 0xA6,0xAA,0xA3,0x9A,0x97,0x9A,0x9B,0x92,0xA6,0xB4,0x9A,0x97,0xA1,0x94,0x8F,0x91, - 0x95,0xA0,0x9D,0x94,0x9C,0xA1,0x99,0x96,0x99,0x9C,0x9F,0x9C,0x9C,0xA2,0x9D,0x94, - 0x90,0x93,0x8C,0x88,0xA2,0xA2,0x8B,0x8F,0x8C,0x7F,0x7C,0x76,0x7E,0x89,0x7E,0x75, - 0x7B,0x77,0x6D,0x6A,0x6C,0x71,0x70,0x68,0x69,0x6B,0x65,0x60,0x5F,0x68,0x5E,0x5D, - 0x7C,0x76,0x5E,0x62,0x61,0x58,0x54,0x4F,0x59,0x63,0x57,0x51,0x59,0x58,0x4F,0x4B, - 0x4B,0x4F,0x52,0x4E,0x4E,0x52,0x4F,0x4A,0x47,0x4F,0x48,0x4B,0x6C,0x66,0x54,0x5C, - 0x5D,0x59,0x5B,0x5C,0x6A,0x76,0x6C,0x68,0x70,0x73,0x73,0x72,0x73,0x7C,0x82,0x7E, - 0x7D,0x82,0x82,0x7F,0x7C,0x82,0x80,0x81,0x9D,0x9F,0x8F,0x95,0x95,0x94,0x97,0x94, - 0xA0,0xAF,0xAC,0xA6,0xAC,0xB1,0xB1,0xAC,0xA9,0xB2,0xB9,0xB5,0xAE,0xAE,0xAF,0xAB, - 0xA2,0xA5,0xA4,0x9D,0xB1,0xB5,0x9C,0x98,0x95,0x8E,0x91,0x8C,0x8C,0x99,0x96,0x89, - 0x87,0x88,0x87,0x85,0x7F,0x81,0x8D,0x8E,0x86,0x89,0x8E,0x8E,0x8A,0x88,0x8A,0x86, - 0x98,0xAA,0x97,0x8D,0x8E,0x8A,0x8A,0x81,0x7F,0x8F,0x93,0x87,0x7E,0x7F,0x82,0x80, - 0x7C,0x7C,0x85,0x87,0x7D,0x76,0x76,0x78,0x75,0x73,0x75,0x6C,0x78,0x92,0x83,0x70, - 0x72,0x72,0x72,0x6B,0x64,0x70,0x7A,0x74,0x6C,0x6B,0x6B,0x6D,0x69,0x62,0x64,0x6B, - 0x6B,0x66,0x60,0x61,0x63,0x5D,0x59,0x54,0x59,0x77,0x78,0x61,0x5C,0x5A,0x5B,0x61, - 0x5C,0x5B,0x65,0x6A,0x66,0x5F,0x5A,0x62,0x6C,0x69,0x62,0x67,0x72,0x71,0x69,0x64, - 0x6A,0x6D,0x68,0x65,0x5F,0x71,0x89,0x81,0x73,0x6D,0x6C,0x76,0x79,0x70,0x74,0x85, - 0x8E,0x8A,0x80,0x7E,0x88,0x90,0x8F,0x91,0x9C,0xA2,0xA3,0x9F,0x99,0x9A,0x9E,0xA0, - 0x9A,0x96,0xA8,0xB2,0xA6,0x96,0x88,0x8A,0x93,0x8E,0x85,0x86,0x89,0x8A,0x87,0x7D, - 0x74,0x75,0x7A,0x79,0x79,0x7A,0x80,0x85,0x81,0x7D,0x7C,0x80,0x81,0x7E,0x8E,0xA3, - 0xA1,0x99,0x8F,0x85,0x89,0x91,0x95,0x99,0x9A,0x9A,0x9D,0x9A,0x92,0x8E,0x8F,0x92, - 0x93,0x92,0x8F,0x8F,0x90,0x8D,0x8A,0x8A,0x8A,0x84,0x86,0x98,0x9D,0x97,0x93,0x85, - 0x7C,0x83,0x83,0x81,0x83,0x82,0x86,0x8B,0x87,0x7E,0x7A,0x78,0x78,0x7D,0x7D,0x7A, - 0x79,0x75,0x72,0x6F,0x6E,0x71,0x6E,0x74,0x7E,0x7A,0x74,0x70,0x67,0x68,0x6F,0x6B, - 0x67,0x65,0x62,0x64,0x66,0x68,0x6C,0x6A,0x69,0x6C,0x6E,0x6D,0x6C,0x6D,0x6F,0x6E, - 0x6E,0x6E,0x6E,0x70,0x76,0x7D,0x79,0x75,0x75,0x71,0x74,0x79,0x75,0x78,0x79,0x75, - 0x76,0x78,0x76,0x79,0x7F,0x81,0x84,0x86,0x86,0x89,0x8E,0x90,0x96,0x9B,0x99,0x98, - 0x99,0x9E,0xA1,0x9C,0x9D,0x9F,0x9B,0x9D,0x9C,0x94,0x93,0x90,0x8A,0x89,0x84,0x7E, - 0x7C,0x78,0x75,0x76,0x77,0x77,0x75,0x72,0x73,0x75,0x75,0x75,0x78,0x78,0x7B,0x7F, - 0x7B,0x7D,0x81,0x83,0x8D,0x90,0x89,0x8A,0x8B,0x89,0x8B,0x8E,0x8D,0x8D,0x8A,0x88, - 0x8A,0x8C,0x8B,0x8F,0x92,0x91,0x90,0x90,0x90,0x8F,0x8B,0x8D,0x95,0x8E,0x88,0x8D, - 0x88,0x88,0x8D,0x8B,0x8D,0x8C,0x84,0x86,0x87,0x82,0x82,0x81,0x7D,0x7C,0x7B,0x7C, - 0x7E,0x7E,0x80,0x82,0x85,0x82,0x7E,0x7E,0x7B,0x7F,0x82,0x7B,0x7B,0x77,0x6F,0x77, - 0x76,0x6D,0x70,0x71,0x6B,0x6C,0x69,0x66,0x67,0x63,0x62,0x66,0x67,0x67,0x68,0x69, - 0x69,0x6D,0x73,0x75,0x76,0x75,0x76,0x81,0x7F,0x78,0x7E,0x7C,0x7A,0x7F,0x7C,0x7C, - 0x7F,0x7A,0x7D,0x83,0x7D,0x7C,0x7E,0x7C,0x7D,0x7F,0x80,0x84,0x84,0x83,0x88,0x8D, - 0x8C,0x8D,0x90,0x8E,0x8E,0x95,0x91,0x90,0x92,0x8C,0x8F,0x95,0x8C,0x8A,0x8A,0x84, - 0x86,0x87,0x85,0x84,0x7F,0x7D,0x7F,0x7E,0x7D,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E,0x7D, - 0x7C,0x7C,0x83,0x87,0x80,0x80,0x82,0x7E,0x84,0x88,0x83,0x84,0x83,0x83,0x89,0x87, - 0x85,0x88,0x85,0x83,0x82,0x84,0x88,0x88,0x87,0x89,0x8A,0x89,0x86,0x86,0x86,0x83, - 0x8A,0x91,0x89,0x87,0x89,0x83,0x87,0x88,0x82,0x85,0x83,0x7E,0x80,0x7E,0x7C,0x7C, - 0x7D,0x7F,0x80,0x81,0x81,0x83,0x84,0x83,0x83,0x85,0x84,0x83,0x85,0x83,0x86,0x8A, - 0x84,0x83,0x84,0x7C,0x81,0x85,0x7D,0x7D,0x7E,0x78,0x78,0x76,0x74,0x75,0x72,0x71, - 0x75,0x76,0x76,0x76,0x77,0x78,0x78,0x7B,0x7D,0x7D,0x7C,0x77,0x78,0x7F,0x7A,0x79, - 0x81,0x7C,0x7A,0x84,0x80,0x7D,0x7E,0x78,0x78,0x7B,0x77,0x79,0x7B,0x77,0x78,0x7B, - 0x7D,0x7E,0x7F,0x80,0x84,0x86,0x83,0x84,0x85,0x81,0x7D,0x84,0x88,0x83,0x84,0x85, - 0x83,0x87,0x86,0x81,0x82,0x7E,0x78,0x7D,0x7C,0x79,0x79,0x75,0x74,0x75,0x77,0x7B, - 0x7C,0x79,0x79,0x7D,0x7D,0x7B,0x79,0x79,0x78,0x78,0x81,0x81,0x7C,0x7E,0x7A,0x7C, - 0x82,0x7C,0x7B,0x80,0x7A,0x78,0x7D,0x7A,0x7A,0x7A,0x78,0x7B,0x7E,0x7E,0x7E,0x7F, - 0x7E,0x7F,0x83,0x84,0x84,0x85,0x87,0x86,0x8B,0x8F,0x88,0x88,0x88,0x83,0x8A,0x8C, - 0x85,0x86,0x84,0x80,0x82,0x83,0x7E,0x82,0x81,0x84,0x85,0x63,0x6A,0x86,0x8B,0x78, - 0x7D,0x97,0x78,0x77,0x88,0x84,0x86,0x90,0x9D,0x88,0x83,0x8A,0x8A,0x8A,0x82,0x8B, - 0x85,0x76,0x74,0x7A,0x7E,0x7E,0x80,0x81,0x7B,0x6E,0x74,0x77,0x75,0x77,0x7C,0x7F, - 0x7A,0x83,0x80,0x7C,0x82,0x89,0x8F,0x87,0x88,0x8D,0x83,0x88,0x8E,0x84,0x88,0x86, - 0x78,0x80,0x86,0x79,0x79,0x7B,0x70,0x78,0x7D,0x78,0x7E,0x7B,0x77,0x77,0x7C,0x7F, - 0x83,0x90,0x7B,0x6A,0x86,0x9A,0x95,0x90,0x8B,0x80,0x86,0x87,0x83,0x84,0x72,0x70, - 0x7F,0x81,0x7F,0x7A,0x74,0x7A,0x82,0x7D,0x7A,0x7B,0x74,0x72,0x80,0x7F,0x74,0x78, - 0x79,0x70,0x6E,0x83,0x8C,0x85,0x87,0x7A,0x6F,0x7C,0x7E,0x77,0x7A,0x74,0x75,0x87, - 0x86,0x84,0x8A,0x7A,0x80,0x88,0x84,0x7D,0x7E,0x86,0x84,0x85,0x7F,0x7C,0x7D,0x7A, - 0x7B,0x7C,0x8A,0x90,0x8E,0x8F,0x7D,0x78,0x81,0x7B,0x77,0x76,0x7B,0x88,0x8A,0x84, - 0x83,0x83,0x80,0x83,0x7E,0x78,0x7B,0x80,0x87,0x8F,0x87,0x82,0x82,0x7D,0x78,0x72, - 0x86,0x98,0x97,0x92,0x84,0x75,0x7E,0x85,0x72,0x73,0x7F,0x7A,0x87,0x87,0x7E,0x7C, - 0x7B,0x7E,0x7A,0x79,0x77,0x7C,0x84,0x86,0x86,0x7D,0x7E,0x81,0x79,0x77,0x77,0x8C, - 0x99,0x90,0x8A,0x80,0x7A,0x86,0x84,0x7C,0x7F,0x7F,0x7F,0x87,0x84,0x7E,0x85,0x82, - 0x82,0x81,0x7C,0x81,0x85,0x87,0x88,0x86,0x82,0x81,0x84,0x7F,0x76,0x7E,0x93,0x92, - 0x84,0x8A,0x7E,0x7C,0x8C,0x78,0x6C,0x7A,0x74,0x7C,0x86,0x79,0x7D,0x81,0x79,0x82, - 0x80,0x79,0x7F,0x80,0x82,0x7E,0x7C,0x7D,0x80,0x7A,0x77,0x74,0x7D,0x9A,0x8F,0x83, - 0x88,0x7B,0x83,0x8B,0x71,0x6F,0x75,0x75,0x88,0x80,0x76,0x85,0x87,0x8A,0x8F,0x79, - 0x78,0x88,0x82,0x7A,0x7E,0x84,0x83,0x84,0x81,0x77,0x76,0x94,0x9E,0x84,0x8B,0x87, - 0x7A,0x93,0x83,0x70,0x84,0x81,0x84,0x8C,0x79,0x7A,0x8C,0x87,0x88,0x85,0x79,0x89, - 0x88,0x7A,0x80,0x7E,0x7E,0x80,0x79,0x78,0x74,0x82,0x99,0x8A,0x81,0x8C,0x81,0x87, - 0x8A,0x6B,0x6E,0x7E,0x79,0x88,0x7E,0x6F,0x8A,0x89,0x81,0x86,0x79,0x82,0x90,0x7E, - 0x7C,0x7D,0x7A,0x83,0x7B,0x76,0x78,0x77,0x93,0x96,0x7E,0x8B,0x86,0x7E,0x8F,0x71, - 0x69,0x82,0x77,0x80,0x84,0x6F,0x85,0x91,0x84,0x89,0x81,0x82,0x8F,0x7D,0x76,0x81, - 0x83,0x86,0x80,0x77,0x7B,0x7B,0x8F,0x9B,0x81,0x8A,0x8E,0x7E,0x8D,0x7D,0x6D,0x83, - 0x75,0x74,0x81,0x6A,0x77,0x8A,0x7C,0x82,0x7F,0x78,0x87,0x80,0x76,0x7C,0x80,0x80, - 0x7B,0x74,0x74,0x73,0x80,0x97,0x85,0x82,0x8E,0x80,0x8A,0x83,0x65,0x76,0x78,0x6C, - 0x7B,0x6D,0x73,0x8F,0x84,0x7F,0x83,0x78,0x8B,0x8C,0x77,0x80,0x80,0x81,0x81,0x74, - 0x7A,0x7B,0x7D,0x98,0x93,0x82,0x8C,0x85,0x8A,0x8C,0x70,0x7A,0x82,0x75,0x83,0x7A, - 0x73,0x8D,0x86,0x7E,0x84,0x7C,0x83,0x8E,0x7E,0x79,0x82,0x79,0x79,0x74,0x77,0x7A, - 0x77,0x90,0x8F,0x7F,0x87,0x83,0x83,0x8C,0x75,0x76,0x82,0x72,0x79,0x75,0x6D,0x80, - 0x84,0x7F,0x82,0x81,0x84,0x89,0x80,0x78,0x7E,0x7F,0x7C,0x7C,0x7A,0x7A,0x77,0x89, - 0x8E,0x82,0x85,0x82,0x84,0x89,0x7C,0x75,0x80,0x77,0x78,0x7E,0x70,0x7A,0x86,0x80, - 0x85,0x85,0x7F,0x89,0x84,0x7B,0x82,0x85,0x80,0x7E,0x7D,0x79,0x76,0x7D,0x89,0x80, - 0x82,0x89,0x82,0x8B,0x85,0x76,0x7E,0x7D,0x77,0x7C,0x73,0x73,0x7E,0x7B,0x7E,0x81, - 0x7D,0x84,0x83,0x7A,0x83,0x7F,0x7B,0x7C,0x79,0x7A,0x73,0x7B,0x88,0x81,0x82,0x88, - 0x83,0x8A,0x85,0x75,0x7F,0x82,0x7B,0x7D,0x76,0x73,0x80,0x7C,0x78,0x80,0x83,0x85, - 0x89,0x82,0x7D,0x87,0x80,0x7C,0x7C,0x7A,0x7B,0x7D,0x8D,0x83,0x7F,0x89,0x87,0x8A, - 0x86,0x7F,0x83,0x83,0x7C,0x7C,0x75,0x79,0x7F,0x7B,0x7D,0x82,0x80,0x84,0x8C,0x84, - 0x83,0x85,0x80,0x80,0x80,0x7C,0x7C,0x81,0x88,0x84,0x7D,0x83,0x84,0x86,0x87,0x80, - 0x7E,0x7F,0x7B,0x7C,0x7C,0x77,0x80,0x80,0x7C,0x7E,0x7B,0x7F,0x87,0x84,0x80,0x86, - 0x84,0x82,0x7D,0x7D,0x7B,0x7E,0x87,0x81,0x80,0x84,0x83,0x88,0x86,0x7E,0x82,0x7F, - 0x7E,0x82,0x7A,0x7B,0x7E,0x80,0x7E,0x7E,0x7E,0x80,0x87,0x84,0x80,0x86,0x83,0x7D, - 0x80,0x7B,0x7A,0x84,0x85,0x7F,0x83,0x84,0x7F,0x86,0x81,0x7C,0x83,0x83,0x81,0x80, - 0x79,0x7B,0x7F,0x7B,0x7C,0x7F,0x81,0x82,0x82,0x81,0x84,0x85,0x81,0x80,0x7E,0x79, - 0x7A,0x86,0x83,0x7D,0x84,0x83,0x83,0x84,0x7F,0x81,0x87,0x82,0x7E,0x7D,0x79,0x7C, - 0x7F,0x7D,0x7F,0x7E,0x7F,0x86,0x82,0x80,0x86,0x84,0x82,0x82,0x7E,0x80,0x87,0x86, - 0x84,0x83,0x87,0x83,0x87,0x86,0x7B,0x82,0x83,0x7E,0x7C,0x77,0x7E,0x80,0x79,0x7A, - 0x7D,0x7C,0x84,0x84,0x80,0x83,0x83,0x7E,0x7F,0x7E,0x7C,0x81,0x87,0x86,0x81,0x84, - 0x84,0x88,0x86,0x7E,0x83,0x83,0x7E,0x7E,0x7F,0x7E,0x81,0x81,0x81,0x7E,0x7C,0x80, - 0x82,0x81,0x80,0x83,0x81,0x7F,0x7E,0x7E,0x7F,0x87,0x88,0x81,0x87,0x82,0x83,0x89, - 0x7F,0x7F,0x84,0x84,0x82,0x7B,0x77,0x80,0x85,0x7B,0x7B,0x7F,0x7F,0x84,0x7F,0x7D, - 0x83,0x80,0x80,0x7C,0x78,0x7C,0x8C,0x88,0x7C,0x86,0x84,0x87,0x8B,0x7A,0x79,0x84, - 0x80,0x7C,0x79,0x75,0x81,0x82,0x79,0x7A,0x7E,0x85,0x8C,0x7D,0x77,0x85,0x80,0x77, - 0x7A,0x74,0x7A,0x9B,0x8B,0x78,0x8A,0x87,0x8C,0x87,0x6E,0x7B,0x86,0x78,0x7B,0x76, - 0x78,0x8D,0x82,0x76,0x81,0x85,0x86,0x82,0x76,0x81,0x8D,0x7A,0x75,0x79,0x72,0x8D, - 0xA0,0x82,0x89,0x8F,0x84,0x88,0x71,0x6B,0x86,0x81,0x77,0x81,0x7E,0x8B,0x8E,0x72, - 0x77,0x86,0x81,0x7A,0x75,0x7F,0x8E,0x7F,0x72,0x79,0x73,0x8B,0x9C,0x7F,0x8B,0x9E, - 0x8F,0x89,0x7B,0x6D,0x88,0x7D,0x6A,0x80,0x79,0x88,0x7F,0x64,0x75,0x6B,0x72,0x82, - 0x69,0x7A,0x8A,0x6C,0x65,0x66,0x6B,0x88,0x95,0x87,0x86,0x8A,0x7D,0x79,0x70,0x6F, - 0x88,0x86,0x82,0x8E,0x87,0x86,0x86,0x76,0x7F,0x8C,0x7C,0x7D,0x8F,0x94,0x8B,0x7B, - 0x88,0x97,0x89,0xA0,0xB8,0x94,0x9B,0xAC,0x91,0x8D,0x8F,0x8C,0x98,0x99,0x92,0x90, - 0x7E,0x7C,0x7E,0x6E,0x81,0x91,0x7C,0x78,0x7C,0x78,0x70,0x54,0x53,0x68,0x61,0x73, - 0x88,0x71,0x6A,0x67,0x53,0x52,0x4D,0x50,0x6A,0x6E,0x64,0x69,0x68,0x66,0x65,0x5C, - 0x6A,0x76,0x71,0x76,0x82,0x7B,0x71,0x6D,0x75,0x78,0x69,0x82,0x95,0x7E,0x7D,0x78, - 0x6A,0x6A,0x65,0x71,0x8B,0x8A,0x88,0x94,0x98,0xA1,0xA6,0x9B,0xA2,0xA8,0x9A,0x99, - 0xA0,0x96,0x8D,0x86,0x86,0x86,0x83,0xA1,0xA8,0x8A,0x89,0x85,0x7C,0x7A,0x75,0x84, - 0x98,0x8E,0x86,0x90,0x8B,0x83,0x7F,0x7F,0x8D,0x91,0x8A,0x92,0x97,0x8B,0x83,0x83, - 0x86,0x80,0x85,0xA2,0x9A,0x8B,0x94,0x8D,0x82,0x7A,0x7D,0x93,0x9C,0x91,0x97,0xA0, - 0x9A,0x92,0x89,0x90,0x9C,0x97,0x94,0x9B,0x93,0x83,0x7E,0x81,0x7D,0x71,0x85,0x9A, - 0x86,0x7E,0x80,0x75,0x6A,0x5D,0x62,0x75,0x6F,0x61,0x66,0x68,0x5B,0x51,0x4E,0x56, - 0x58,0x4F,0x53,0x5F,0x59,0x4F,0x51,0x56,0x50,0x4E,0x6E,0x77,0x63,0x6A,0x70,0x63, - 0x5C,0x5D,0x70,0x7F,0x72,0x71,0x7B,0x73,0x63,0x5F,0x66,0x6B,0x6B,0x67,0x70,0x77, - 0x71,0x6F,0x7B,0x83,0x7B,0x90,0xB5,0xAE,0xA5,0xAF,0xA7,0x99,0x8F,0x92,0xA7,0xA3, - 0x93,0x9B,0x9E,0x8F,0x86,0x85,0x88,0x86,0x81,0x88,0x92,0x8D,0x83,0x83,0x88,0x82, - 0x79,0x99,0xA8,0x8E,0x94,0x9A,0x8C,0x82,0x80,0x8F,0x9D,0x8F,0x90,0xA1,0x95,0x86, - 0x88,0x8C,0x93,0x92,0x8F,0x9C,0x9C,0x90,0x8C,0x8F,0x95,0x8B,0x8E,0xB2,0xAC,0x94, - 0xA3,0xA2,0x92,0x8B,0x8B,0x98,0x99,0x87,0x8A,0x94,0x83,0x7B,0x7F,0x81,0x82,0x79, - 0x7A,0x81,0x77,0x6B,0x68,0x68,0x62,0x53,0x66,0x7C,0x60,0x57,0x66,0x54,0x46,0x49, - 0x54,0x64,0x5D,0x55,0x67,0x65,0x54,0x57,0x60,0x65,0x65,0x64,0x71,0x76,0x68,0x69, - 0x70,0x70,0x69,0x64,0x7F,0x83,0x64,0x6B,0x78,0x64,0x5D,0x66,0x75,0x80,0x75,0x7C, - 0x94,0x8D,0x83,0x93,0x9D,0xA0,0xA4,0xA6,0xB2,0xAD,0x9D,0x9F,0x9E,0x97,0x8D,0x92, - 0xB0,0xA4,0x8B,0x9A,0x97,0x7D,0x7A,0x82,0x8D,0x8E,0x80,0x8D,0x9A,0x83,0x7C,0x8B, - 0x8C,0x88,0x89,0x8F,0x97,0x8E,0x87,0x8B,0x8A,0x85,0x7E,0x8A,0xAB,0x99,0x87,0xA3, - 0x9D,0x83,0x84,0x8D,0x93,0x92,0x89,0x99,0xA3,0x8C,0x89,0x98,0x92,0x8E,0x93,0x98, - 0x9C,0x92,0x89,0x8D,0x85,0x80,0x7A,0x80,0x9F,0x8C,0x73,0x8C,0x82,0x63,0x69,0x72, - 0x71,0x6D,0x63,0x6B,0x73,0x5C,0x54,0x60,0x58,0x52,0x57,0x5D,0x62,0x5A,0x57,0x5E, - 0x55,0x55,0x55,0x56,0x7A,0x72,0x58,0x73,0x74,0x54,0x56,0x64,0x68,0x6B,0x65,0x6D, - 0x79,0x64,0x5B,0x6A,0x67,0x62,0x6A,0x6F,0x76,0x74,0x70,0x79,0x7A,0x7B,0x7C,0x81, - 0xA8,0xA9,0x92,0xAD,0xB4,0x97,0x97,0xA1,0xA1,0xA4,0x9A,0x9E,0xAD,0x99,0x89,0x98, - 0x93,0x86,0x8A,0x8E,0x8F,0x8A,0x82,0x86,0x82,0x7A,0x7F,0x7C,0x92,0xA0,0x86,0x8E, - 0x9E,0x83,0x76,0x86,0x8B,0x8D,0x89,0x88,0x97,0x90,0x7E,0x8A,0x91,0x88,0x89,0x90, - 0x90,0x90,0x90,0x92,0x8F,0x8B,0x8D,0x84,0x97,0xB0,0x94,0x91,0xA7,0x93,0x7E,0x88, - 0x8A,0x89,0x86,0x82,0x8D,0x8A,0x76,0x78,0x7E,0x74,0x72,0x75,0x78,0x77,0x71,0x6F, - 0x6C,0x65,0x64,0x5C,0x61,0x7D,0x6D,0x59,0x71,0x6A,0x4E,0x56,0x63,0x62,0x62,0x5F, - 0x66,0x71,0x63,0x5C,0x67,0x65,0x61,0x65,0x6D,0x72,0x6E,0x6D,0x70,0x6B,0x67,0x65, - 0x63,0x7C,0x83,0x69,0x76,0x84,0x6B,0x64,0x76,0x7B,0x7E,0x80,0x88,0x99,0x94,0x8A, - 0x97,0xA2,0x9D,0x9C,0xA3,0xA7,0xA1,0x9D,0x9D,0x9A,0x94,0x94,0x8B,0x95,0xAB,0x94, - 0x8D,0xA1,0x8E,0x78,0x80,0x86,0x85,0x83,0x82,0x8D,0x8D,0x7F,0x7F,0x88,0x85,0x83, - 0x89,0x8E,0x8D,0x88,0x85,0x87,0x83,0x82,0x81,0x86,0xA2,0x9D,0x89,0x98,0x9A,0x84, - 0x80,0x8A,0x90,0x90,0x8A,0x8E,0x98,0x8E,0x84,0x8D,0x8F,0x87,0x85,0x8A,0x8D,0x8A, - 0x84,0x85,0x82,0x7B,0x77,0x71,0x85,0x92,0x78,0x78,0x87,0x73,0x63,0x67,0x6F,0x71, - 0x6A,0x68,0x72,0x6D,0x5D,0x60,0x68,0x66,0x65,0x68,0x6C,0x6C,0x66,0x66,0x68,0x65, - 0x63,0x5F,0x6E,0x84,0x70,0x67,0x7B,0x72,0x60,0x64,0x6C,0x70,0x6C,0x69,0x74,0x77, - 0x6C,0x6B,0x72,0x72,0x71,0x74,0x7C,0x83,0x82,0x81,0x87,0x8B,0x8C,0x88,0x95,0xB4, - 0xAB,0x98,0xA9,0xA7,0x93,0x91,0x97,0x9E,0x9E,0x92,0x93,0x9B,0x8E,0x85,0x8B,0x8C, - 0x89,0x83,0x83,0x89,0x86,0x7E,0x7E,0x83,0x82,0x7A,0x7C,0x97,0x92,0x7D,0x8D,0x91, - 0x7E,0x79,0x80,0x88,0x8B,0x82,0x85,0x92,0x8D,0x83,0x83,0x8B,0x8C,0x88,0x89,0x90, - 0x92,0x8A,0x88,0x89,0x8A,0x85,0x84,0x9E,0xA2,0x87,0x8C,0x94,0x81,0x7A,0x7D,0x83, - 0x89,0x80,0x7A,0x82,0x80,0x73,0x72,0x77,0x77,0x74,0x72,0x72,0x74,0x71,0x69,0x65, - 0x69,0x66,0x60,0x76,0x81,0x68,0x6E,0x76,0x64,0x5F,0x61,0x76,0x74,0x72,0x6C,0x56, - 0x6C,0x68,0x51,0x52,0x63,0x6D,0x70,0x76,0x7B,0x7B,0x73,0x7B,0x88,0x86,0x7D,0x9A, - 0xA9,0x85,0x81,0x7C,0x6E,0x7B,0x6C,0x62,0x7B,0x7D,0x69,0x6A,0x6E,0x69,0x7B,0x85, - 0x89,0x7F,0x7F,0x90,0x90,0x91,0x94,0x98,0xA9,0xAC,0x97,0xB3,0xC7,0xB6,0xC7,0xA4, - 0xA9,0xB5,0x95,0xAF,0xA8,0xA4,0xAD,0x9D,0x94,0x87,0x82,0x8E,0x83,0x75,0x7B,0x68, - 0x70,0x7D,0x6D,0x80,0x7D,0x68,0x71,0x7D,0x84,0x77,0x5C,0x5B,0x61,0x59,0x5A,0x66, - 0x6B,0x65,0x5F,0x6B,0x78,0x75,0x82,0x80,0x8F,0xA0,0x95,0x8D,0x91,0x91,0x8C,0x94, - 0xA1,0xA5,0xAC,0xB2,0xAD,0xA7,0xA1,0xA2,0x91,0x8A,0x87,0x87,0x8D,0x79,0x77,0x75, - 0x6B,0x65,0x63,0x6F,0x6B,0x5E,0x4D,0x40,0x47,0x4F,0x47,0x36,0x3D,0x43,0x42,0x56, - 0x54,0x5A,0x62,0x5B,0x62,0x62,0x66,0x7D,0x87,0x78,0x76,0x74,0x7E,0x89,0x82,0x8A, - 0x8E,0x91,0xA0,0x9A,0xAD,0xBA,0xAC,0xBA,0xBD,0xA8,0xB9,0xB8,0x91,0xA3,0xA1,0x90, - 0xA1,0x92,0x8C,0x94,0x86,0x7F,0x8C,0x88,0x7C,0x75,0x66,0x74,0x73,0x66,0x65,0x66, - 0x74,0x69,0x61,0x59,0x50,0x67,0x6E,0x6B,0x62,0x5A,0x6F,0x74,0x66,0x73,0x72,0x76, - 0x87,0x78,0x85,0x90,0x8E,0x96,0x92,0x9F,0xA9,0xB1,0xB2,0xAB,0xC4,0xC7,0xBD,0xC9, - 0xC0,0xBC,0xC5,0xC2,0xBD,0xB5,0xAE,0x9C,0x8B,0x85,0x80,0x8E,0x7E,0x6F,0x82,0x81, - 0x78,0x63,0x47,0x46,0x54,0x5D,0x5D,0x54,0x4A,0x47,0x48,0x40,0x3C,0x51,0x58,0x4A, - 0x41,0x44,0x4A,0x4E,0x55,0x4E,0x63,0x7B,0x74,0x68,0x58,0x5C,0x6D,0x70,0x79,0x83, - 0x8C,0x9B,0x92,0x7D,0x80,0x8B,0x8B,0x94,0xA5,0xA5,0xA7,0xA9,0xAB,0xB5,0xB8,0xB9, - 0xBE,0xBC,0xC0,0xC3,0xB2,0xA2,0x92,0x95,0xAA,0xB3,0xA6,0x95,0x8B,0x8A,0x84,0x81, - 0x7E,0x78,0x71,0x6C,0x77,0x71,0x69,0x4E,0x4B,0x59,0x56,0x5D,0x53,0x4D,0x59,0x5D, - 0x51,0x42,0x45,0x4D,0x4C,0x58,0x5A,0x4B,0x5A,0x5D,0x57,0x66,0x6A,0x74,0x7D,0x81, - 0x8E,0x9C,0x9E,0x9F,0xA3,0xAC,0xBC,0xB6,0xB8,0xC1,0xCB,0xCD,0xC7,0xC4,0xBB,0xC0, - 0xC5,0xBD,0xAF,0xAC,0xAB,0xA7,0xA3,0x9A,0x9F,0xA1,0x91,0x91,0x95,0x93,0x8A,0x83, - 0x79,0x6B,0x6D,0x69,0x67,0x65,0x5F,0x5D,0x57,0x4F,0x4B,0x58,0x56,0x49,0x48,0x4F, - 0x5B,0x63,0x66,0x58,0x4F,0x56,0x56,0x5E,0x65,0x60,0x63,0x63,0x5E,0x5A,0x61,0x67, - 0x56,0x5B,0x63,0x64,0x6E,0x67,0x68,0x6A,0x6C,0x76,0x78,0x82,0x8B,0x88,0x88,0x86, - 0x8C,0x96,0x96,0xAB,0xBC,0xB9,0xBA,0xBC,0xB3,0xAA,0xAA,0xA1,0xAC,0xBC,0xB8,0xB9, - 0xA8,0x9D,0xA0,0xA7,0xA5,0x8F,0x87,0x91,0x97,0x90,0x86,0x88,0x8A,0x87,0x82,0x7B, - 0x8A,0x83,0x6F,0x6A,0x5E,0x69,0x74,0x71,0x75,0x84,0x83,0x7B,0x7B,0x6C,0x71,0x7C, - 0x74,0x71,0x6F,0x72,0x6F,0x69,0x60,0x5A,0x5E,0x61,0x64,0x72,0x81,0x86,0x75,0x66, - 0x6E,0x71,0x77,0x78,0x7C,0x8D,0x8A,0x84,0x7B,0x76,0x84,0x8D,0x92,0x98,0x92,0x97, - 0x99,0x8E,0x8D,0x85,0x90,0x8D,0x7E,0x97,0x9B,0x9A,0xA0,0x86,0x7E,0x88,0x85,0x8B, - 0x93,0x84,0x7D,0x82,0x76,0x7C,0x83,0x71,0x6E,0x6E,0x6F,0x7F,0x7A,0x71,0x68,0x59, - 0x65,0x63,0x5F,0x75,0x80,0x7C,0x74,0x6F,0x70,0x7A,0x79,0x72,0x7C,0x7F,0x81,0x89, - 0x8B,0x84,0x7C,0x77,0x79,0x7D,0x92,0x9B,0x8D,0x83,0x75,0x82,0x85,0x78,0x76,0x6F, - 0x74,0x78,0x7E,0x77,0x72,0x7D,0x79,0x77,0x85,0x83,0x7D,0x85,0x86,0x90,0x8E,0x89, - 0x93,0x97,0x92,0x8F,0x97,0x96,0x93,0x94,0x92,0x8A,0x84,0x8B,0x88,0x88,0x91,0x8B, - 0x80,0x91,0x90,0x87,0x94,0x90,0x94,0x9C,0x97,0x97,0x93,0x87,0x85,0x8A,0x8F,0x8F, - 0x86,0x7C,0x7E,0x88,0x94,0x8E,0x85,0x8C,0x85,0x7F,0x87,0x7C,0x6E,0x7A,0x7B,0x79, - 0x7B,0x72,0x6D,0x75,0x78,0x75,0x6E,0x6D,0x79,0x7C,0x7B,0x71,0x63,0x67,0x64,0x5E, - 0x5D,0x52,0x57,0x63,0x67,0x66,0x64,0x5C,0x5B,0x6A,0x64,0x65,0x67,0x54,0x55,0x61, - 0x66,0x6D,0x6B,0x6A,0x6D,0x72,0x7F,0x81,0x75,0x73,0x78,0x79,0x7A,0x7C,0x7D,0x80, - 0x87,0x89,0x8F,0x8D,0x8D,0x99,0x95,0x8A,0x86,0x84,0x89,0x9A,0x9F,0x95,0x94,0x92, - 0x8F,0x9C,0xA3,0x9D,0x97,0x92,0x97,0x98,0x8D,0x82,0x80,0x85,0x91,0x94,0x93,0x90, - 0x88,0x97,0x9F,0x97,0x99,0x91,0x8F,0x93,0x94,0x8E,0x86,0x8D,0x91,0x8F,0x93,0x94, - 0x96,0x95,0x8E,0x8A,0x84,0x7B,0x79,0x7D,0x7F,0x7D,0x7E,0x81,0x81,0x85,0x8A,0x87, - 0x84,0x82,0x76,0x77,0x7B,0x79,0x73,0x6C,0x72,0x6F,0x6C,0x6C,0x6B,0x71,0x72,0x6D, - 0x62,0x5E,0x5C,0x62,0x6A,0x5B,0x5C,0x60,0x59,0x61,0x69,0x64,0x66,0x68,0x6C,0x74, - 0x6F,0x6A,0x65,0x64,0x64,0x68,0x69,0x61,0x62,0x6C,0x74,0x74,0x77,0x77,0x75,0x82, - 0x8B,0x82,0x7A,0x82,0x82,0x86,0x92,0x91,0x93,0x94,0x99,0x97,0x8D,0x8C,0x87,0x8C, - 0x8D,0x89,0x91,0x87,0x83,0x91,0x98,0x9C,0x9B,0x95,0x95,0x9B,0x9F,0x9A,0x96,0x96, - 0x98,0xA1,0x9F,0x9B,0x99,0x9C,0xA1,0x9D,0x98,0x92,0x95,0x96,0x97,0x93,0x8A,0x90, - 0x92,0x92,0x92,0x94,0x91,0x8E,0x8D,0x8A,0x96,0x95,0x92,0x90,0x88,0x8A,0x8E,0x8A, - 0x89,0x8B,0x89,0x83,0x82,0x83,0x80,0x81,0x82,0x7C,0x7D,0x81,0x82,0x7C,0x73,0x75, - 0x72,0x72,0x75,0x72,0x6D,0x6B,0x78,0x71,0x6B,0x76,0x6C,0x6B,0x6B,0x66,0x66,0x5C, - 0x5D,0x5A,0x56,0x5C,0x59,0x57,0x54,0x5A,0x5C,0x5C,0x60,0x5C,0x64,0x69,0x68,0x69, - 0x64,0x62,0x70,0x75,0x6F,0x6F,0x65,0x67,0x73,0x76,0x77,0x73,0x6C,0x6F,0x74,0x73, - 0x71,0x6D,0x69,0x6E,0x78,0x7D,0x80,0x83,0x85,0x8C,0x91,0x8D,0x8F,0x8F,0x8E,0x98, - 0x9A,0x95,0x94,0x8F,0x93,0x9A,0x96,0x97,0x98,0x8F,0x93,0x9D,0x97,0x92,0x95,0x96, - 0x98,0xA2,0xA0,0x98,0x9C,0x9E,0xA4,0xA8,0xA1,0x9B,0x98,0x9C,0xA8,0xA6,0x9E,0x98, - 0x90,0x93,0x9A,0x98,0x95,0x91,0x8A,0x91,0x90,0x8F,0x93,0x8D,0x93,0x98,0x99,0x9B, - 0x97,0x90,0x8E,0x8E,0x8A,0x88,0x81,0x7D,0x8B,0x94,0x96,0x93,0x86,0x7D,0x7C,0x7E, - 0x78,0x6F,0x68,0x5D,0x68,0x6F,0x6C,0x72,0x6F,0x71,0x79,0x7B,0x73,0x6C,0x6D,0x6E, - 0x6F,0x6A,0x68,0x64,0x66,0x74,0x7B,0x7E,0x7D,0x6B,0x65,0x68,0x64,0x62,0x5A,0x50, - 0x54,0x60,0x6A,0x6C,0x69,0x68,0x65,0x68,0x64,0x64,0x65,0x64,0x63,0x5F,0x65,0x61, - 0x64,0x75,0x7D,0x80,0x81,0x7B,0x72,0x73,0x6F,0x6B,0x6E,0x6B,0x6E,0x7C,0x81,0x86, - 0x88,0x83,0x89,0x8A,0x89,0x92,0x8E,0x8C,0x90,0x87,0x8B,0x8C,0x83,0x91,0x9B,0x99, - 0x9B,0x94,0x86,0x89,0x89,0x87,0x8D,0x87,0x87,0x93,0x92,0x94,0x9A,0x97,0x9F,0x9E, - 0x9A,0x9C,0x97,0x95,0x93,0x8B,0x8F,0x92,0x8D,0x94,0xA1,0xA6,0xA5,0xA1,0x92,0x8F, - 0x91,0x88,0x87,0x83,0x7C,0x85,0x86,0x84,0x8B,0x84,0x8D,0x93,0x8C,0x88,0x82,0x81, - 0x83,0x82,0x84,0x8A,0x81,0x7B,0x89,0x8F,0x93,0x93,0x81,0x7D,0x87,0x7D,0x79,0x72, - 0x68,0x73,0x7C,0x78,0x7C,0x79,0x7B,0x8A,0x85,0x7F,0x7D,0x75,0x74,0x77,0x72,0x73, - 0x73,0x66,0x6B,0x7C,0x7E,0x82,0x7A,0x6A,0x74,0x73,0x6B,0x68,0x5C,0x61,0x70,0x75, - 0x73,0x70,0x6E,0x79,0x80,0x7C,0x78,0x74,0x74,0x7A,0x7D,0x7D,0x7F,0x7A,0x72,0x7A, - 0x86,0x88,0x8B,0x82,0x76,0x7A,0x7B,0x74,0x6C,0x66,0x6E,0x78,0x79,0x73,0x72,0x76, - 0x81,0x86,0x81,0x7B,0x75,0x7B,0x80,0x79,0x7A,0x7A,0x7D,0x7A,0x74,0x80,0x84,0x87, - 0x83,0x79,0x7B,0x80,0x7C,0x7B,0x79,0x78,0x7F,0x7F,0x7A,0x7B,0x80,0x81,0x86,0x86, - 0x81,0x81,0x84,0x84,0x85,0x7F,0x81,0x85,0x82,0x7F,0x79,0x81,0x85,0x88,0x87,0x81, - 0x83,0x84,0x80,0x7D,0x79,0x7C,0x7F,0x81,0x85,0x84,0x84,0x8A,0x8B,0x89,0x8B,0x8A, - 0x89,0x8A,0x89,0x8B,0x88,0x85,0x85,0x82,0x84,0x86,0x85,0x83,0x85,0x83,0x84,0x82, - 0x7D,0x7D,0x7D,0x7D,0x7A,0x7D,0x80,0x80,0x85,0x84,0x83,0x84,0x82,0x88,0x8A,0x88, - 0x8A,0x86,0x84,0x89,0x85,0x81,0x83,0x82,0x83,0x86,0x83,0x81,0x7F,0x80,0x7F,0x7D, - 0x81,0x7E,0x7D,0x7E,0x7C,0x80,0x84,0x81,0x80,0x83,0x84,0x86,0x82,0x82,0x83,0x81, - 0x84,0x82,0x7F,0x7F,0x82,0x83,0x80,0x80,0x81,0x81,0x81,0x80,0x7F,0x81,0x81,0x7F, - 0x7F,0x80,0x7A,0x7B,0x7C,0x7B,0x80,0x7E,0x7E,0x7F,0x7E,0x80,0x82,0x83,0x80,0x7E, - 0x83,0x84,0x82,0x81,0x80,0x80,0x81,0x82,0x81,0x80,0x82,0x80,0x81,0x81,0x7C,0x80, - 0x82,0x81,0x80,0x7F,0x82,0x81,0x80,0x7E,0x80,0x7F,0x7D,0x7D,0x7F,0x80,0x7E,0x7D, - 0x7D,0x7D,0x7D,0x7F,0x7C,0x7B,0x7E,0x7E,0x7F,0x7C,0x7B,0x7D,0x7D,0x7E,0x7D,0x7F, - 0x7F,0x7F,0x80,0x7F,0x81,0x80,0x81,0x81,0x7F,0x80,0x81,0x81,0x7F,0x7E,0x80,0x7E, - 0x7D,0x7E,0x7F,0x81,0x80,0x80,0x7F,0x7F,0x81,0x82,0x83,0x80,0x81,0x81,0x81,0x82, - 0x80,0x7F,0x81,0x82,0x80,0x81,0x81,0x80,0x7F,0x81,0x83,0x81,0x81,0x82,0x82,0x7F, - 0x7D,0x80,0x80,0x80,0x82,0x82,0x7E,0x80,0x81,0x7E,0x7F,0x80,0x7E,0x7D,0x7F,0x7C, - 0x7C,0x7C,0x7B,0x7C,0x7C,0x7F,0x7E,0x7C,0x7C,0x7E,0x7F,0x7E,0x7F,0x7F,0x7F,0x81, - 0x82,0x85,0x85,0x83,0x85,0x85,0x85,0x84,0x83,0x85,0x85,0x82,0x82,0x81,0x80,0x81, - 0x81,0x81,0x80,0x81,0x82,0x7F,0x7F,0x80,0x81,0x7F,0x80,0x84,0x7F,0x7F,0x81,0x80, - 0x81,0x82,0x83,0x82,0x81,0x81,0x82,0x82,0x82,0x82,0x80,0x81,0x83,0x82,0x82,0x84, - 0x83,0x83,0x83,0x83,0x84,0x80,0x80,0x81,0x83,0x82,0x82,0x84,0x82,0x7F,0x7F,0x82, - 0x81,0x81,0x80,0x7D,0x80,0x7C,0x80,0x81,0x7E,0x7F,0x7E,0x81,0x81,0x82,0x7F,0x7E, - 0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x80,0x7F,0x80,0x80, - 0x7D,0x7F,0x80,0x7F,0x7E,0x7D,0x7F,0x7F,0x81,0x80,0x7D,0x7F,0x7E,0x7F,0x80,0x80, - 0x80,0x80,0x80,0x82,0x81,0x80,0x82,0x82,0x82,0x84,0x82,0x81,0x81,0x7F,0x82,0x83, - 0x83,0x82,0x80,0x81,0x80,0x80,0x81,0x80,0x81,0x81,0x80,0x81,0x80,0x7F,0x7F,0x7F, - 0x80,0x81,0x80,0x80,0x80,0x80,0x7F,0x7F,0x81,0x7D,0x7E,0x81,0x7F,0x7F,0x81,0x80, - 0x80,0x7F,0x81,0x7F,0x7F,0x82,0x7E,0x80,0x7F,0x7E,0x80,0x7D,0x7F,0x7E,0x7F,0x82, - 0x80,0x7F,0x7E,0x7C,0x80,0x80,0x7E,0x81,0x7E,0x80,0x80,0x7D,0x7F,0x7E,0x80,0x80, - 0x81,0x81,0x7D,0x80,0x7F,0x80,0x82,0x80,0x81,0x80,0x81,0x82,0x81,0x80,0x81,0x82, - 0x83,0x80,0x81,0x81,0x80,0x81,0x81,0x82,0x7F,0x80,0x7F,0x7F,0x81,0x7F,0x7E,0x80, - 0x80,0x7E,0x7D,0x7E,0x7C,0x7E,0x7F,0x80,0x80,0x7B,0x7E,0x7F, -}; diff --git a/boop/trunk/display/fonts/smooth.bits b/boop/trunk/display/fonts/smooth.bits deleted file mode 100644 index 5bda21c..0000000 --- a/boop/trunk/display/fonts/smooth.bits +++ /dev/null @@ -1,279 +0,0 @@ -const unsigned char smooth_mt_bits[] = { - 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x00, 0x20, 0x20, - 0xe0, 0x3c, 0x20, 0xe0, 0x3c, 0x20, 0x20, 0xe0, 0xf0, 0x10, 0xfc, 0x10, - 0x30, 0x60, 0x78, 0xfc, 0x84, 0xfc, 0x78, 0x00, 0x80, 0x20, 0x18, 0x84, - 0x80, 0x80, 0x00, 0x80, 0xc0, 0x7c, 0x64, 0xc4, 0x84, 0x0c, 0x00, 0x40, - 0xc0, 0x40, 0x00, 0x3c, 0x3c, 0xe0, 0xf8, 0x0c, 0x04, 0x04, 0x08, 0xf0, - 0x80, 0x00, 0x50, 0x60, 0xfc, 0x60, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x0c, 0xf0, 0xf8, 0x04, 0x04, 0x04, - 0x0c, 0xf8, 0xc0, 0x08, 0x08, 0xfc, 0xfc, 0x00, 0x00, 0x18, 0x04, 0x04, - 0x04, 0x8c, 0xf8, 0x30, 0x08, 0x04, 0x44, 0x44, 0x44, 0xbc, 0x98, 0x00, - 0x00, 0x80, 0x40, 0x30, 0x08, 0xfc, 0xfc, 0x00, 0x7c, 0x44, 0x44, 0x44, - 0x44, 0x84, 0x00, 0xe0, 0xf8, 0x4c, 0x44, 0x44, 0xc4, 0x8c, 0x00, 0x0c, - 0x04, 0x04, 0x04, 0xc4, 0x74, 0x0c, 0x00, 0x10, 0xb8, 0x44, 0x44, 0x44, - 0xfc, 0xb8, 0x00, 0x70, 0xf8, 0x04, 0x04, 0x04, 0x8c, 0xf8, 0xc0, 0xc0, - 0x00, 0x00, 0xc0, 0x00, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x40, 0x20, 0x20, - 0x30, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x30, 0x20, - 0x20, 0x40, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x08, 0x04, 0x84, 0x84, 0xc4, - 0x78, 0x10, 0x80, 0xc0, 0x20, 0x10, 0x80, 0xc8, 0x48, 0x08, 0x88, 0x90, - 0x10, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x1c, 0xf8, 0xc0, - 0x00, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0xc4, 0x78, 0x30, - 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x18, 0x00, 0x04, 0xfc, - 0xfc, 0x04, 0x04, 0x04, 0x04, 0x08, 0xf0, 0xe0, 0x04, 0x04, 0xfc, 0xfc, - 0x84, 0x84, 0x84, 0xe4, 0x0c, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0x84, - 0xe4, 0x0c, 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x00, - 0x04, 0xfc, 0xfc, 0x84, 0x80, 0x80, 0x80, 0x84, 0xfc, 0xfc, 0x04, 0x04, - 0xfc, 0xfc, 0x04, 0x00, 0x00, 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0xfc, - 0xfc, 0xc4, 0x20, 0x20, 0x14, 0x0c, 0x04, 0x04, 0x00, 0x04, 0xfc, 0xfc, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0x1c, 0x38, 0xf0, 0xc0, - 0x00, 0x00, 0x80, 0x60, 0x18, 0xfc, 0xfc, 0x04, 0x04, 0xfc, 0x1c, 0x38, - 0x60, 0xc0, 0x80, 0x00, 0x04, 0xfc, 0x04, 0x04, 0xe0, 0xf0, 0x08, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x18, 0xf0, 0x80, 0x04, 0xfc, 0xfc, 0x84, 0x84, - 0x84, 0xc4, 0x78, 0x30, 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x18, 0xf0, 0x80, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0x84, 0x7c, 0x38, - 0x00, 0x00, 0x38, 0x7c, 0xc4, 0x84, 0x84, 0x84, 0x1c, 0x18, 0x0c, 0x04, - 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x0c, 0x04, 0xfc, 0xfc, 0x04, - 0x00, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0x0c, 0x3c, 0xe4, 0x80, - 0x00, 0x00, 0x80, 0x64, 0x0c, 0x04, 0x04, 0x0c, 0xfc, 0xc4, 0x00, 0x00, - 0xe0, 0x1c, 0x7c, 0xc0, 0x00, 0x00, 0xe4, 0x1c, 0x04, 0x04, 0x04, 0x1c, - 0x7c, 0xe0, 0xc0, 0x34, 0x0c, 0x04, 0x04, 0x04, 0x0c, 0x1c, 0x74, 0xe0, - 0x80, 0x40, 0x14, 0x0c, 0x04, 0x0c, 0x04, 0x04, 0x84, 0xc4, 0x74, 0x3c, - 0x0c, 0x04, 0xfc, 0xfc, 0x04, 0x00, 0x0c, 0x78, 0xc0, 0x00, 0x00, 0x04, - 0x04, 0xfc, 0xfc, 0x20, 0x10, 0x18, 0x0c, 0x04, 0x0c, 0x10, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x40, - 0x60, 0x20, 0x20, 0x20, 0xc0, 0x80, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x20, - 0x20, 0x20, 0xc0, 0x80, 0x80, 0xc0, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80, - 0xc0, 0x20, 0x20, 0x24, 0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x20, - 0x20, 0x20, 0xc0, 0x00, 0x20, 0xf8, 0xfc, 0x24, 0x24, 0x04, 0x00, 0x80, - 0xc0, 0x20, 0x20, 0x20, 0xe0, 0xe0, 0x20, 0x04, 0xfc, 0xfc, 0x20, 0x20, - 0x20, 0xe0, 0x80, 0x00, 0x20, 0xec, 0xe0, 0x00, 0x00, 0x00, 0x20, 0xec, - 0xec, 0x04, 0xfc, 0xfc, 0x00, 0xa0, 0x60, 0x20, 0x20, 0x04, 0xfc, 0xfc, - 0x00, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0xc0, 0x20, 0x20, 0x20, - 0xe0, 0x80, 0x00, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0x80, 0x00, - 0x80, 0xc0, 0x20, 0x20, 0x20, 0x60, 0xc0, 0x00, 0x20, 0xe0, 0xe0, 0x20, - 0x20, 0x20, 0x60, 0xc0, 0x00, 0x80, 0xc0, 0x20, 0x20, 0x20, 0xe0, 0xe0, - 0x20, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x60, 0x60, 0xc0, 0xe0, 0x20, 0x20, - 0x60, 0x60, 0x20, 0xf8, 0xf8, 0x20, 0x20, 0x00, 0x20, 0xe0, 0xe0, 0x00, - 0x00, 0x20, 0xe0, 0xe0, 0x00, 0x20, 0x60, 0xe0, 0x20, 0x00, 0x00, 0xa0, - 0x60, 0x20, 0x20, 0x60, 0xe0, 0x20, 0x00, 0x80, 0xe0, 0x80, 0x00, 0x20, - 0xe0, 0x20, 0x20, 0x60, 0xe0, 0x00, 0x80, 0xe0, 0x20, 0x20, 0x20, 0x20, - 0xe0, 0xa0, 0x00, 0x00, 0xa0, 0x60, 0x20, 0x60, 0x60, 0x20, 0x20, 0xe0, - 0xe0, 0x20, 0x00, 0x00, 0xf8, 0x7c, 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, - 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x40, 0x6c, 0x20, 0x20, 0x2c, 0xc0, 0x80, 0x00, 0x80, 0xc0, 0x2c, - 0x20, 0x20, 0x6c, 0xc0, 0x00, 0x20, 0xe0, 0xec, 0x00, 0x00, 0x2c, 0xe0, - 0xe0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x39, 0x1c, 0xf9, 0xc0, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0x08, 0x05, 0x04, 0x04, 0x05, 0x04, 0x18, 0xf0, 0x80, - 0x04, 0xfc, 0xfc, 0x04, 0x01, 0x00, 0x00, 0x05, 0xfc, 0xfc, 0x04, 0x00, - 0x00, 0xf8, 0xfc, 0x04, 0x64, 0xf4, 0x8c, 0x00, 0x00 }; - -const unsigned char smooth_lt_bits[] = { - 0x00, 0x00, 0x00, 0xfc, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0xf8, 0x6c, 0x00, 0xf0, 0x7c, 0x04, 0x00, 0xc0, 0xa0, 0x10, 0xfc, 0x10, - 0x60, 0x10, 0x30, 0x4c, 0x84, 0x4c, 0x30, 0x00, 0x40, 0x70, 0x80, 0x8c, - 0x80, 0x00, 0x00, 0x00, 0xd8, 0x38, 0x4c, 0x84, 0x04, 0x00, 0x0c, 0x00, - 0x40, 0x00, 0x00, 0x3c, 0x00, 0xc0, 0x30, 0x00, 0x00, 0x00, 0x3c, 0xf8, - 0x40, 0xd8, 0x50, 0x10, 0xfc, 0x10, 0x50, 0xd8, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa0, 0xb4, 0x14, 0xe0, 0x18, 0x08, 0x04, 0x04, - 0x18, 0xf0, 0x20, 0x10, 0x04, 0xfc, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, - 0x04, 0xc4, 0x7c, 0x78, 0x04, 0x08, 0x00, 0x44, 0xe4, 0xe8, 0x38, 0x00, - 0x00, 0x80, 0xe0, 0x00, 0x1c, 0xfc, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x40, - 0x80, 0xc0, 0x80, 0xd0, 0x90, 0x80, 0x04, 0x44, 0x04, 0x88, 0x00, 0x0c, - 0x00, 0x00, 0x00, 0x80, 0xac, 0x1c, 0x04, 0xa8, 0xfc, 0xec, 0x44, 0x44, - 0x28, 0x98, 0x00, 0xf8, 0x8c, 0x8c, 0x04, 0x04, 0x00, 0xf0, 0x20, 0xc0, - 0xc0, 0x00, 0xc0, 0xc0, 0x00, 0x80, 0xc0, 0x00, 0xc0, 0x60, 0x60, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - 0x60, 0x60, 0xc0, 0x00, 0xc0, 0x80, 0x00, 0x04, 0x08, 0x04, 0x84, 0x0c, - 0x7c, 0x28, 0x00, 0xe0, 0x70, 0x10, 0xd8, 0x00, 0x00, 0x48, 0x80, 0x88, - 0x30, 0x30, 0xe0, 0x80, 0x00, 0x00, 0x80, 0x40, 0x2c, 0x2c, 0x70, 0xa0, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x84, 0x00, 0x00, 0x84, 0x8c, 0xfc, 0x08, - 0xd0, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0c, 0x18, 0x00, 0xfc, - 0x04, 0x00, 0x04, 0x04, 0x08, 0x1c, 0x38, 0xd0, 0x00, 0x00, 0xfc, 0x84, - 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x1c, 0xd0, 0x38, 0x0c, 0x00, 0x04, 0x00, 0x04, 0x08, 0x1c, 0x18, - 0x00, 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xfc, 0x00, 0x00, - 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x04, - 0xfc, 0x80, 0xc0, 0x10, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0xfc, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x7c, 0x60, 0x80, - 0x80, 0x00, 0x00, 0x10, 0x04, 0xfc, 0x04, 0x00, 0x00, 0xfc, 0x0c, 0x30, - 0xf0, 0xc0, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xd0, 0x38, 0x1c, 0x00, - 0x04, 0x00, 0x04, 0x08, 0x28, 0xf0, 0x60, 0x00, 0x04, 0xfc, 0x00, 0x00, - 0x84, 0x0c, 0xfc, 0x08, 0xd0, 0x38, 0x1c, 0x00, 0x04, 0x00, 0x04, 0x08, - 0x28, 0xf0, 0x60, 0x00, 0x04, 0xfc, 0x00, 0x80, 0x84, 0x84, 0xc8, 0x70, - 0x00, 0x00, 0x70, 0xe8, 0xc4, 0xc0, 0x84, 0x84, 0x88, 0x04, 0x1c, 0x00, - 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0xfc, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0x00, 0x00, 0x14, 0x7c, 0xf0, 0x40, - 0x00, 0x00, 0x40, 0xb0, 0x14, 0x00, 0x00, 0x14, 0x7c, 0xa0, 0x00, 0x00, - 0x50, 0x2c, 0xb8, 0xa0, 0x00, 0x00, 0x10, 0x24, 0x00, 0x00, 0x0c, 0x0c, - 0x3c, 0xf0, 0xe0, 0x00, 0x1c, 0x04, 0x00, 0x00, 0x04, 0x3c, 0x38, 0xc0, - 0xc0, 0xe0, 0x3c, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xe0, 0x60, 0x1c, - 0x1c, 0x00, 0xfc, 0x04, 0x00, 0x04, 0x14, 0xb4, 0xa0, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0x00, 0x20, 0x30, 0x08, 0x0c, 0x0c, 0x18, 0x18, 0x10, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x08, 0x20, - 0x20, 0x20, 0x20, 0x60, 0xe0, 0x40, 0x00, 0x04, 0x00, 0xfc, 0x40, 0x00, - 0x00, 0x20, 0x60, 0xc0, 0xc0, 0x60, 0x60, 0x20, 0x20, 0x40, 0x20, 0xc0, - 0x60, 0x20, 0x00, 0x00, 0x44, 0xfc, 0x00, 0x00, 0xc0, 0x60, 0x60, 0x20, - 0x20, 0x40, 0xc0, 0x80, 0x00, 0xfc, 0x24, 0x04, 0x04, 0x04, 0x04, 0xc0, - 0x60, 0x20, 0x00, 0x00, 0x40, 0xe0, 0x00, 0x00, 0xfc, 0x40, 0x00, 0x00, - 0x60, 0xc0, 0x40, 0x00, 0x00, 0xe4, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x24, - 0xe4, 0x00, 0xfc, 0x00, 0x80, 0x40, 0x20, 0x20, 0x00, 0x00, 0xfc, 0x00, - 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x60, 0xc0, 0x40, 0x00, 0x00, 0x60, - 0xc0, 0x40, 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x60, 0xc0, 0x40, 0x00, - 0xc0, 0x60, 0x60, 0x20, 0x20, 0x00, 0xc0, 0x80, 0x00, 0xe0, 0x40, 0x40, - 0x00, 0x20, 0x00, 0xc0, 0x80, 0xc0, 0x60, 0x20, 0x00, 0x00, 0x40, 0xe0, - 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x20, 0x20, - 0x20, 0x40, 0x00, 0xfc, 0x24, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xa0, 0xe0, 0x80, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0xa0, 0xe0, 0x00, 0x00, 0x40, 0x60, 0x40, 0x00, 0x80, - 0x60, 0x20, 0x20, 0x20, 0xe0, 0x80, 0x00, 0x20, 0x60, 0x00, 0x00, 0x60, - 0xe0, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x60, 0x20, 0x00, 0x80, 0xa0, - 0x60, 0x60, 0x00, 0x80, 0xfc, 0x84, 0x04, 0x00, 0xfc, 0x00, 0x00, 0x04, - 0x78, 0x88, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x24, 0x2c, 0x20, 0x64, 0xec, 0x40, 0x00, 0xc0, 0x6c, 0x64, - 0x20, 0x2c, 0x04, 0xc0, 0x80, 0x00, 0xec, 0x04, 0x00, 0x0c, 0x04, 0xe0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x55, 0x2c, 0x75, 0xa1, 0x00, 0x00, - 0x00, 0xd0, 0x38, 0x1c, 0x00, 0x05, 0x00, 0x04, 0x09, 0x28, 0xf0, 0x60, - 0x00, 0x04, 0xfc, 0x01, 0x00, 0x00, 0x01, 0x00, 0x04, 0xfc, 0x00, 0x00, - 0x00, 0xf8, 0x00, 0x04, 0xf4, 0x9c, 0x08, 0x08, 0x00 }; - -const unsigned char smooth_mb_bits[] = { - 0x00, 0x00, 0x00, 0x1b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1e, - 0x03, 0x02, 0x1e, 0x03, 0x02, 0x02, 0x00, 0x08, 0x19, 0x11, 0xff, 0x12, - 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x04, 0x01, 0x00, 0x06, 0x0f, 0x10, - 0x10, 0x1f, 0x0f, 0x07, 0x0c, 0x10, 0x10, 0x10, 0x11, 0x13, 0x0e, 0x1e, - 0x11, 0x10, 0x10, 0x00, 0x00, 0x0f, 0x1f, 0x20, 0x40, 0x40, 0x30, 0x1f, - 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x1f, 0x1f, 0x01, 0x01, 0x01, 0x20, 0x38, 0x08, 0x01, 0x01, 0x01, 0x01, - 0x18, 0x00, 0x30, 0x1e, 0x03, 0x00, 0x00, 0x07, 0x0f, 0x10, 0x10, 0x10, - 0x18, 0x0f, 0x01, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x18, 0x1c, 0x16, - 0x13, 0x11, 0x10, 0x18, 0x0c, 0x10, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x02, - 0x03, 0x02, 0x02, 0x12, 0x12, 0x1f, 0x1f, 0x12, 0x0c, 0x10, 0x10, 0x10, - 0x10, 0x0f, 0x07, 0x07, 0x0f, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x02, 0x00, - 0x00, 0x18, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x10, 0x10, 0x10, - 0x18, 0x0f, 0x02, 0x00, 0x18, 0x11, 0x11, 0x11, 0x08, 0x07, 0x00, 0x18, - 0x00, 0x00, 0x38, 0x08, 0x01, 0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x0c, - 0x08, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x08, 0x0c, - 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, - 0x00, 0x00, 0x0f, 0x3f, 0x20, 0x42, 0x8f, 0x98, 0x90, 0x90, 0x9f, 0x1f, - 0x10, 0x08, 0x07, 0x01, 0x10, 0x18, 0x13, 0x02, 0x02, 0x02, 0x02, 0x13, - 0x1e, 0x18, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x0e, - 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x18, 0x0c, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x10, 0x10, 0x10, 0x08, 0x07, 0x03, 0x10, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x10, 0x11, 0x18, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x11, 0x1f, 0x0f, - 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, - 0x1f, 0x1f, 0x10, 0xc0, 0x80, 0x80, 0x80, 0x7f, 0x3f, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x01, 0x02, 0x0c, 0x1c, 0x18, 0x10, 0x00, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x1c, 0x10, 0x1f, 0x10, 0x10, 0x00, 0x01, - 0x07, 0x06, 0x01, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x1f, 0x10, 0x10, - 0x00, 0x00, 0x03, 0x06, 0x0c, 0x1f, 0x00, 0x00, 0x03, 0x07, 0x08, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x0c, 0x07, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x08, 0x10, 0x10, 0x10, 0x30, 0x50, - 0x4c, 0x07, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x01, 0x07, 0x1c, - 0x10, 0x00, 0x0c, 0x1c, 0x10, 0x10, 0x10, 0x11, 0x0f, 0x0f, 0x00, 0x00, - 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x18, - 0x10, 0x10, 0x10, 0x10, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, - 0x1c, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1e, 0x0e, - 0x00, 0x00, 0x00, 0x07, 0x1e, 0x0e, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1c, - 0x12, 0x01, 0x03, 0x17, 0x1c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x16, 0x13, 0x10, 0x10, 0x10, - 0x10, 0x18, 0x7f, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x30, 0x40, - 0x40, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0e, - 0x1f, 0x11, 0x11, 0x11, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, - 0x10, 0x10, 0x0f, 0x07, 0x07, 0x0f, 0x10, 0x10, 0x10, 0x08, 0x04, 0x07, - 0x0f, 0x10, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x07, 0x0f, 0x11, 0x11, - 0x11, 0x11, 0x0d, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x47, - 0xcf, 0x90, 0x90, 0x90, 0xff, 0x7f, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, - 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0xc0, 0x80, 0x80, 0xff, - 0x7f, 0x10, 0x1f, 0x1f, 0x11, 0x12, 0x1c, 0x18, 0x10, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, - 0x1f, 0x1f, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, - 0x07, 0x0f, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x03, 0x80, 0xff, 0xff, 0x90, - 0x10, 0x10, 0x18, 0x0f, 0x03, 0x07, 0x0f, 0x10, 0x10, 0x90, 0xff, 0xff, - 0x80, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x18, 0x19, 0x13, 0x13, - 0x1e, 0x0e, 0x00, 0x0f, 0x1f, 0x10, 0x18, 0x08, 0x00, 0x0f, 0x1f, 0x10, - 0x10, 0x00, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x01, 0x07, 0x1c, 0x0c, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x1c, 0x03, 0x00, 0x0f, 0x1c, 0x07, - 0x00, 0x00, 0x10, 0x18, 0x14, 0x03, 0x17, 0x1c, 0x18, 0x10, 0x00, 0xc0, - 0x80, 0xc7, 0x3c, 0x0c, 0x01, 0x00, 0x00, 0x10, 0x1c, 0x1e, 0x13, 0x11, - 0x10, 0x18, 0x01, 0x01, 0x7e, 0xfc, 0x80, 0x80, 0xff, 0xff, 0x80, 0x80, - 0xfe, 0x3f, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, - 0x00, 0x0e, 0x1f, 0x11, 0x11, 0x11, 0x1f, 0x1f, 0x10, 0x07, 0x0f, 0x10, - 0x10, 0x10, 0x18, 0x0f, 0x03, 0x00, 0x0f, 0x1f, 0x10, 0x10, 0x00, 0x1f, - 0x1f, 0x10, 0x10, 0x18, 0x17, 0x03, 0x02, 0x02, 0x02, 0x17, 0x1e, 0x18, - 0x10, 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x07, 0x00, - 0x00, 0x03, 0x0f, 0x18, 0x10, 0x10, 0x10, 0x10, 0x0f, 0x07, 0x00, 0x00, - 0x10, 0x1f, 0x1f, 0x18, 0x10, 0x10, 0x11, 0x1b, 0x0e }; - -const unsigned char smooth_lb_bits[] = { - 0x00, 0x00, 0x00, 0x1b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1f, - 0x07, 0x00, 0x1b, 0x0f, 0x00, 0x00, 0x00, 0x19, 0x11, 0x13, 0xff, 0x13, - 0x06, 0x0e, 0x00, 0x00, 0x10, 0x10, 0x02, 0x02, 0x00, 0x09, 0x1f, 0x19, - 0x10, 0x09, 0x06, 0x0f, 0x1b, 0x08, 0x10, 0x01, 0x13, 0x0e, 0x0c, 0x0c, - 0x1a, 0x00, 0x00, 0x00, 0x00, 0x07, 0x38, 0x40, 0x00, 0x00, 0x68, 0x3f, - 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1f, 0x01, 0x00, 0x00, 0x00, 0x50, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x28, 0x2d, 0x05, 0x00, 0x00, 0x03, 0x0c, 0x08, 0x10, 0x10, - 0x0c, 0x07, 0x02, 0x10, 0x10, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, - 0x18, 0x18, 0x18, 0x1c, 0x1c, 0x08, 0x10, 0x00, 0x10, 0x01, 0x0f, 0x05, - 0x02, 0x03, 0x00, 0x10, 0x10, 0x1f, 0x12, 0x10, 0x1c, 0x18, 0x10, 0x10, - 0x18, 0x18, 0x0f, 0x03, 0x18, 0x08, 0x00, 0x10, 0x00, 0x0f, 0x05, 0x00, - 0x00, 0x10, 0x15, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x18, 0x10, 0x10, - 0x00, 0x1f, 0x05, 0x00, 0x01, 0x11, 0x11, 0x10, 0x1d, 0x0f, 0x03, 0x18, - 0x18, 0x60, 0x38, 0x10, 0x01, 0x03, 0x03, 0x06, 0x00, 0x06, 0x0c, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x0c, 0x06, 0x00, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, 0x1f, 0x18, 0x00, - 0x00, 0x00, 0x17, 0x18, 0x60, 0x45, 0x5f, 0x00, 0x90, 0x00, 0x08, 0xdf, - 0x40, 0x0c, 0x0f, 0x02, 0x00, 0x1c, 0x06, 0x03, 0x02, 0x02, 0x03, 0x07, - 0x1f, 0x14, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x10, 0x11, 0x09, 0x07, - 0x05, 0x0e, 0x18, 0x00, 0x00, 0x10, 0x10, 0x00, 0x0c, 0x04, 0x00, 0x1f, - 0x10, 0x00, 0x10, 0x10, 0x08, 0x1c, 0x0e, 0x05, 0x00, 0x10, 0x1f, 0x10, - 0x10, 0x10, 0x10, 0x11, 0x1c, 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x05, 0x0e, 0x1c, 0x08, 0x10, 0x00, 0x11, 0x10, 0x01, 0x0f, - 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1f, 0x00, 0x00, - 0x10, 0x1f, 0x00, 0x40, 0x80, 0x80, 0xc0, 0xff, 0x40, 0x00, 0x00, 0x10, - 0x1f, 0x01, 0x03, 0x07, 0x06, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x03, - 0x07, 0x06, 0x02, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x1f, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x07, 0x1c, 0x1f, 0x00, 0x00, 0x05, 0x0e, 0x1c, 0x00, - 0x10, 0x00, 0x10, 0x08, 0x0a, 0x07, 0x03, 0x00, 0x10, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x1c, 0x00, 0x10, 0x30, 0x30, 0x08, - 0x0a, 0x07, 0x03, 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1a, - 0x10, 0x10, 0x1c, 0x08, 0x10, 0x10, 0x01, 0x11, 0x1b, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0f, 0x04, - 0x10, 0x00, 0x10, 0x18, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x17, - 0x1a, 0x1a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x1d, 0x15, - 0x01, 0x00, 0x00, 0x0b, 0x1d, 0x15, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, - 0x07, 0x00, 0x01, 0x0e, 0x1e, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x1f, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1c, 0x1f, 0x11, 0x11, 0x10, 0x10, - 0x10, 0x1c, 0x7f, 0x40, 0x00, 0x40, 0x00, 0x00, 0x05, 0x2d, 0x28, 0x00, - 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0c, - 0x1a, 0x11, 0x01, 0x08, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x08, 0x00, - 0x00, 0x10, 0x18, 0x0f, 0x0f, 0x18, 0x18, 0x10, 0x10, 0x14, 0x0c, 0x0f, - 0x18, 0x10, 0x00, 0x00, 0x08, 0x1f, 0x00, 0x10, 0x0b, 0x1d, 0x18, 0x10, - 0x10, 0x08, 0x09, 0x05, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x8f, - 0x98, 0x90, 0x80, 0x80, 0x48, 0x3f, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, - 0x00, 0x1f, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x40, 0x80, 0x80, 0x40, - 0x7f, 0x00, 0x1f, 0x12, 0x03, 0x07, 0x1c, 0x10, 0x10, 0x00, 0x1f, 0x10, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x10, 0x00, - 0x1f, 0x10, 0x10, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x00, - 0x0f, 0x1c, 0x18, 0x10, 0x10, 0x00, 0x0f, 0x04, 0x00, 0xff, 0x88, 0x08, - 0x00, 0x10, 0x00, 0x0f, 0x04, 0x0f, 0x18, 0x10, 0x00, 0x00, 0x88, 0xff, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x09, 0x11, 0x11, 0x12, - 0x07, 0x0c, 0x00, 0x1f, 0x10, 0x10, 0x18, 0x00, 0x00, 0x1f, 0x18, 0x10, - 0x00, 0x18, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1a, 0x1a, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0x18, 0x04, 0x01, 0x17, 0x18, 0x0a, - 0x01, 0x00, 0x00, 0x10, 0x0b, 0x03, 0x07, 0x1c, 0x10, 0x10, 0x00, 0xc0, - 0x81, 0x0b, 0x5e, 0x06, 0x03, 0x00, 0x00, 0x18, 0x18, 0x16, 0x17, 0x13, - 0x10, 0x18, 0x01, 0x03, 0x7f, 0x42, 0x80, 0x00, 0xff, 0x00, 0x00, 0xc0, - 0x7c, 0x42, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x01, 0x0c, 0x1a, 0x11, 0x01, 0x08, 0x1f, 0x10, 0x00, 0x0f, 0x1c, 0x18, - 0x10, 0x10, 0x00, 0x0f, 0x04, 0x00, 0x1f, 0x18, 0x10, 0x00, 0x18, 0x1f, - 0x10, 0x00, 0x00, 0x14, 0x1e, 0x12, 0x02, 0x02, 0x03, 0x03, 0x1f, 0x14, - 0x00, 0x05, 0x0e, 0x1c, 0x00, 0x10, 0x00, 0x10, 0x08, 0x0a, 0x07, 0x03, - 0x00, 0x04, 0x0f, 0x04, 0x10, 0x00, 0x10, 0x18, 0x1c, 0x0f, 0x00, 0x10, - 0x00, 0x1f, 0x00, 0x08, 0x10, 0x11, 0x11, 0x07, 0x0f }; diff --git a/boop/trunk/display/fonts/smooth.info b/boop/trunk/display/fonts/smooth.info deleted file mode 100644 index 75389f2..0000000 --- a/boop/trunk/display/fonts/smooth.info +++ /dev/null @@ -1,17 +0,0 @@ -const unsigned char smooth_info[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 3, 2, 4,10, 7,13,12, 2, 4, 4, 7, 9, 3, 4, 2, 5, - 8, 5, 8, 8, 8, 7, 8, 8, 8, 8, 2, 3, 9, 9, 9, 7, - -14,11, 9,10,10, 9, 9,10,11, 4, 7,10,10,14,12,11, - 9,11,11, 8,10,11,11,15,10,10, 9, 4, 5, 4, 9, 7, - - 4, 8, 9, 7, 9, 8, 7, 8, 9, 4, 5, 8, 4,14, 9, 8, - 9, 8, 7, 6, 6, 9, 9,12, 8, 9, 7, 6, 2, 6, 9, 0, - - 8, 8, 9,11, 11, 11, 10 -}; - -const unsigned char smooth_dlines = 2; diff --git a/boop/trunk/sound3.h b/boop/trunk/sound3.h deleted file mode 100644 index 01655d7..0000000 --- a/boop/trunk/sound3.h +++ /dev/null @@ -1,1571 +0,0 @@ -#define sound3_len 25060 -const unsigned char sound3_data[] = { -0x80,0x80,0x80,0x80, -0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80, -0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81, -0x81,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x80, -0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x80, -0x80,0x80,0x80,0x80,0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, -0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7F,0x7F,0x80,0x81,0x81, -0x81,0x81,0x80,0x7F,0x7F,0x7E,0x7E,0x7F,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81, -0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x81,0x81,0x80, -0x80,0x80,0x81,0x82,0x82,0x83,0x82,0x82,0x81,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F, -0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x81, -0x81,0x80,0x80,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7C,0x77,0x71,0x67, -0x5F,0x58,0x55,0x55,0x58,0x5B,0x5D,0x5D,0x5B,0x58,0x54,0x4D,0x42,0x38,0x3F,0x56, -0x6D,0x81,0x94,0xA6,0xB7,0xC1,0xC8,0xD0,0xDA,0xE3,0xE8,0xEA,0xE6,0xDE,0xD3,0xC5, -0xB7,0xAA,0x9F,0x9A,0x99,0x97,0x95,0x96,0x96,0x95,0x92,0x8F,0x8D,0x8E,0x8E,0x90, -0x8F,0x87,0x80,0x79,0x70,0x68,0x62,0x65,0x6B,0x6F,0x73,0x76,0x76,0x77,0x7B,0x7D, -0x77,0x72,0x6C,0x68,0x6B,0x72,0x7F,0x8A,0x8E,0x8C,0x83,0x6E,0x59,0x48,0x38,0x30, -0x2C,0x2B,0x2E,0x39,0x47,0x4E,0x54,0x5C,0x60,0x5E,0x58,0x56,0x5A,0x67,0x78,0x8D, -0xA2,0xB6,0xC1,0xC3,0xC0,0xBB,0xB2,0xAA,0xA1,0x93,0x89,0x85,0x83,0x80,0x81,0x84, -0x82,0x7D,0x72,0x63,0x55,0x48,0x40,0x3F,0x48,0x55,0x63,0x76,0x89,0x95,0x91,0x90, -0x89,0x83,0x7E,0x7B,0x7A,0x75,0x70,0x67,0x6D,0x75,0x7F,0x93,0xAB,0xB9,0xB6,0xAE, -0x9B,0x90,0x7B,0x6B,0x66,0x5F,0x5E,0x6A,0x76,0x7D,0x7F,0x82,0x85,0x7D,0x78,0x77, -0x82,0x89,0x99,0xAB,0xC3,0xC5,0xB3,0xA6,0xA0,0x93,0x85,0x8C,0x97,0x9F,0x9B,0x8A, -0x71,0x5C,0x53,0x57,0x62,0x77,0x88,0x9A,0xA6,0xAC,0xB0,0xB5,0xC5,0xD1,0xD6,0xCF, -0xCE,0xCE,0xC4,0xAE,0x97,0x81,0x71,0x65,0x5F,0x5D,0x5C,0x57,0x43,0x35,0x2C,0x27, -0x29,0x32,0x45,0x59,0x6B,0x76,0x75,0x74,0x78,0x7D,0x7D,0x77,0x71,0x73,0x78,0x70, -0x6A,0x63,0x55,0x4F,0x51,0x5B,0x57,0x54,0x60,0x6F,0x7A,0x8C,0xAB,0xCB,0xE5,0xEE, -0xD6,0xAD,0x84,0x6D,0x6F,0x7B,0x86,0x82,0x78,0x6C,0x5C,0x50,0x4E,0x53,0x59,0x6D, -0x74,0x7F,0x89,0x85,0x90,0x9F,0xB9,0xCA,0xCF,0xD3,0xD8,0xE1,0xE1,0xD2,0xB0,0x86, -0x6B,0x74,0x86,0x88,0x84,0x86,0x88,0x85,0x8C,0x98,0x97,0x95,0x93,0x92,0x8E,0x86, -0x87,0x8C,0x8D,0x8B,0x7E,0x6A,0x53,0x40,0x3C,0x3D,0x3C,0x48,0x5E,0x6F,0x7B,0x88, -0x8F,0x88,0x81,0x82,0x7D,0x72,0x6C,0x68,0x64,0x5B,0x56,0x5B,0x62,0x6A,0x6A,0x6F, -0x73,0x73,0x70,0x69,0x5F,0x5F,0x5C,0x54,0x57,0x5F,0x6B,0x77,0x86,0xA3,0xC9,0xDD, -0xD5,0xC9,0xC1,0xBA,0xB7,0xB6,0xB3,0xAA,0xA0,0x96,0x94,0x93,0x90,0x8A,0x87,0x7D, -0x71,0x67,0x5B,0x55,0x55,0x59,0x5B,0x5B,0x59,0x5F,0x79,0x8F,0x9B,0x9B,0x8F,0x86, -0x7E,0x7E,0x84,0x84,0x74,0x6B,0x6C,0x67,0x5D,0x54,0x51,0x5E,0x6E,0x6C,0x63,0x60, -0x67,0x73,0x7F,0x79,0x64,0x58,0x62,0x77,0x78,0x6B,0x63,0x5E,0x5C,0x5E,0x57,0x4F, -0x55,0x60,0x65,0x69,0x65,0x5D,0x60,0x6B,0x73,0x71,0x76,0x7F,0x8C,0x95,0x96,0x93, -0xA3,0xBE,0xC5,0xC4,0xCA,0xD6,0xD5,0xBC,0xAA,0x9F,0x97,0x9A,0xA4,0xA5,0xA6,0xAB, -0xAC,0xB1,0xB5,0xAC,0x9E,0x91,0x86,0x7E,0x83,0x8D,0x99,0xA7,0xAA,0xA4,0xA2,0x9E, -0x9D,0x9A,0x91,0x89,0x85,0x7B,0x73,0x79,0x83,0x81,0x72,0x68,0x62,0x5A,0x52,0x5A, -0x6E,0x86,0x98,0xA0,0xA3,0x9F,0x95,0x87,0x79,0x73,0x6D,0x68,0x66,0x68,0x69,0x6A, -0x6A,0x6D,0x6E,0x6C,0x6E,0x69,0x5F,0x59,0x5C,0x62,0x67,0x6B,0x6C,0x6C,0x6F,0x79, -0x80,0x7C,0x73,0x6D,0x68,0x68,0x6A,0x76,0x8C,0xA5,0xB6,0xBD,0xBD,0xB3,0xAB,0xAB, -0xAE,0xAF,0xB2,0xB3,0xA4,0x97,0x8D,0x81,0x76,0x69,0x62,0x63,0x60,0x58,0x4B,0x3B, -0x31,0x37,0x45,0x4E,0x56,0x5F,0x72,0x86,0x90,0x95,0x90,0x84,0x89,0x93,0x9B,0xA1, -0xA3,0xAA,0xA7,0xA0,0x96,0x96,0x97,0x91,0x96,0x99,0x99,0x95,0x8F,0x8C,0x89,0x8E, -0x94,0x8B,0x79,0x64,0x4B,0x37,0x2F,0x33,0x40,0x50,0x5E,0x69,0x63,0x57,0x53,0x50, -0x46,0x41,0x46,0x56,0x68,0x77,0x85,0x8F,0x92,0x9A,0xA2,0xA8,0xAC,0xB0,0xB1,0xB0, -0xB1,0xB7,0xB5,0xB0,0xAC,0xA5,0xA7,0xA8,0x9F,0x93,0x8A,0x87,0x8B,0x8A,0x85,0x7B, -0x6E,0x61,0x56,0x52,0x59,0x62,0x65,0x6B,0x77,0x81,0x7F,0x75,0x75,0x7E,0x86,0x8B, -0x8E,0x96,0x9E,0x9B,0x94,0x8F,0x89,0x92,0xA3,0xAE,0xB3,0xAD,0xA1,0x94,0x87,0x7B, -0x74,0x70,0x6C,0x69,0x61,0x55,0x48,0x47,0x52,0x63,0x71,0x73,0x75,0x77,0x7E,0x84, -0x7A,0x6E,0x70,0x77,0x7E,0x7C,0x79,0x7C,0x7C,0x79,0x75,0x70,0x71,0x76,0x7E,0x81, -0x84,0x85,0x7D,0x73,0x6F,0x75,0x81,0x84,0x88,0x88,0x7E,0x68,0x50,0x4F,0x60,0x72, -0x7D,0x84,0x80,0x6F,0x59,0x49,0x44,0x46,0x57,0x74,0x8B,0x91,0x8B,0x8A,0x8C,0x8B, -0x86,0x83,0x84,0x84,0x89,0x90,0x98,0xAA,0xBF,0xC9,0xCB,0xD1,0xCE,0xBD,0xAF,0xAC, -0xA8,0x9C,0x91,0x8A,0x88,0x8E,0x91,0x91,0x96,0xA2,0xAF,0xB3,0xAE,0x9D,0x86,0x73, -0x6C,0x6D,0x74,0x7F,0x7E,0x78,0x7E,0x89,0x8C,0x85,0x84,0x89,0x8B,0x8C,0x8A,0x81, -0x7D,0x85,0x8F,0x8E,0x87,0x8A,0x99,0xA7,0xAF,0xA9,0xA0,0x93,0x87,0x7D,0x76,0x76, -0x79,0x7E,0x7D,0x73,0x6B,0x67,0x6C,0x75,0x76,0x78,0x7A,0x7D,0x81,0x78,0x6B,0x66, -0x65,0x63,0x66,0x6B,0x6A,0x61,0x56,0x51,0x54,0x5F,0x69,0x75,0x82,0x8B,0x90,0x8C, -0x85,0x80,0x85,0x8C,0x8D,0x88,0x7B,0x67,0x57,0x4A,0x44,0x49,0x52,0x5A,0x65,0x6F, -0x70,0x71,0x6D,0x63,0x52,0x4A,0x45,0x42,0x49,0x55,0x66,0x75,0x7C,0x7D,0x78,0x73, -0x72,0x75,0x72,0x65,0x5F,0x64,0x71,0x7F,0x89,0x96,0xA6,0xB3,0xB4,0xB0,0xA9,0xA3, -0x9A,0x96,0x9A,0xA0,0xAB,0xB7,0xC0,0xC0,0xB9,0xA6,0x8E,0x7C,0x7A,0x7E,0x7C,0x79, -0x7A,0x79,0x75,0x71,0x78,0x83,0x87,0x86,0x7B,0x6B,0x67,0x6B,0x7A,0x91,0xA2,0xA7, -0xA9,0xAD,0xB0,0xB0,0xAE,0xA4,0x92,0x85,0x80,0x7F,0x7D,0x78,0x73,0x7F,0x98,0xA7, -0xA1,0x91,0x86,0x81,0x7B,0x6F,0x62,0x57,0x55,0x56,0x55,0x51,0x58,0x68,0x78,0x80, -0x80,0x7D,0x7B,0x80,0x89,0x92,0x8F,0x83,0x77,0x6F,0x6A,0x67,0x67,0x6C,0x6F,0x72, -0x73,0x73,0x78,0x80,0x82,0x7F,0x7A,0x7A,0x7F,0x86,0x92,0xA8,0xBD,0xC7,0xC7,0xC5, -0xC6,0xCB,0xC8,0xB8,0xA1,0x85,0x72,0x6C,0x6B,0x68,0x66,0x74,0x8E,0x9F,0xA5,0x9D, -0x88,0x6E,0x57,0x4E,0x51,0x5B,0x65,0x71,0x7B,0x80,0x76,0x65,0x5D,0x5D,0x61,0x5D, -0x52,0x4C,0x46,0x3C,0x3C,0x44,0x52,0x67,0x80,0x8F,0x90,0x87,0x80,0x7D,0x7A,0x7C, -0x81,0x83,0x7D,0x72,0x67,0x64,0x69,0x73,0x82,0x91,0xA1,0xAA,0xA4,0x91,0x7D,0x70, -0x69,0x6C,0x73,0x79,0x87,0x98,0xA6,0xB0,0xBB,0xD0,0xDE,0xDC,0xD8,0xD8,0xD1,0xBE, -0xA9,0x9E,0xA3,0xAE,0xAE,0xA2,0x8E,0x7B,0x74,0x78,0x7D,0x80,0x85,0x8A,0x8B,0x87, -0x7F,0x7E,0x83,0x87,0x83,0x76,0x6A,0x65,0x67,0x73,0x86,0x96,0x9F,0x9B,0x8C,0x7F, -0x75,0x6C,0x64,0x59,0x50,0x51,0x5A,0x64,0x68,0x66,0x68,0x74,0x84,0x8C,0x88,0x86, -0x86,0x7D,0x6D,0x64,0x5A,0x46,0x33,0x31,0x3B,0x41,0x3F,0x3A,0x3C,0x43,0x4F,0x5B, -0x61,0x61,0x69,0x74,0x78,0x7A,0x7A,0x7C,0x7F,0x7E,0x7E,0x83,0x8B,0x94,0x9B,0x9D, -0x92,0x88,0x89,0x89,0x80,0x76,0x74,0x7A,0x7E,0x80,0x83,0x88,0x8B,0x8F,0x98,0xA3, -0xAC,0xB0,0xA9,0x9D,0x97,0x99,0x96,0x8A,0x7A,0x78,0x7D,0x7D,0x77,0x73,0x7F,0x94, -0xA8,0xB1,0xAE,0xA9,0xA6,0x9D,0x8B,0x7D,0x72,0x6F,0x75,0x80,0x8B,0x90,0x90,0x84, -0x72,0x6B,0x74,0x79,0x76,0x7B,0x7D,0x72,0x6C,0x74,0x81,0x8A,0x8C,0x84,0x71,0x5F, -0x56,0x58,0x5C,0x59,0x51,0x4D,0x51,0x5F,0x6A,0x6B,0x73,0x86,0x93,0x98,0x98,0x96, -0x90,0x89,0x8B,0x9B,0xAC,0xB3,0xB5,0xB6,0xB9,0xB6,0xAE,0xA5,0x9F,0x9C,0xA0,0xA9, -0xAB,0xA4,0x9A,0x97,0x97,0x96,0x93,0x8F,0x88,0x7A,0x6D,0x65,0x68,0x74,0x7B,0x7D, -0x7A,0x76,0x78,0x83,0x92,0x9A,0x97,0x90,0x8B,0x8F,0x92,0x89,0x7D,0x79,0x77,0x6F, -0x65,0x5D,0x5E,0x6C,0x80,0x88,0x85,0x83,0x82,0x81,0x7C,0x77,0x74,0x77,0x7C,0x7F, -0x81,0x82,0x83,0x7C,0x6B,0x5B,0x56,0x5C,0x5F,0x5C,0x57,0x54,0x53,0x50,0x51,0x5D, -0x71,0x7D,0x83,0x87,0x86,0x84,0x85,0x8C,0x9B,0xA7,0xA2,0x92,0x88,0x88,0x8C,0x96, -0xA1,0xA3,0x98,0x89,0x7F,0x78,0x70,0x6C,0x72,0x7B,0x7A,0x73,0x6E,0x6E,0x74,0x78, -0x7A,0x7D,0x81,0x81,0x74,0x63,0x59,0x5B,0x65,0x6D,0x72,0x75,0x77,0x7A,0x81,0x83, -0x86,0x8C,0x84,0x76,0x6D,0x70,0x7C,0x88,0x8A,0x86,0x87,0x8D,0x8A,0x8A,0x96,0xA0, -0x98,0x8A,0x88,0x94,0x9F,0x9F,0x99,0x8E,0x84,0x81,0x7C,0x7B,0x80,0x82,0x7F,0x7A, -0x75,0x72,0x77,0x84,0x92,0x9B,0x9C,0x93,0x85,0x7A,0x78,0x84,0x94,0x9C,0x9A,0x8E, -0x84,0x87,0x8C,0x87,0x76,0x62,0x4E,0x41,0x43,0x56,0x6D,0x75,0x73,0x6F,0x76,0x84, -0x8C,0x8C,0x8B,0x87,0x81,0x7B,0x79,0x7E,0x7F,0x7B,0x74,0x74,0x7E,0x8B,0x92,0x93, -0x83,0x6F,0x67,0x65,0x61,0x5C,0x5A,0x5C,0x62,0x68,0x6B,0x6F,0x6D,0x63,0x5F,0x68, -0x74,0x7B,0x7D,0x7C,0x87,0x9C,0xAA,0xAA,0x9F,0x99,0xA3,0xA8,0xA5,0xA5,0xA3,0xA0, -0xA0,0x9E,0x9F,0xA7,0xA9,0xA4,0x9A,0x90,0x8D,0x8E,0x8A,0x85,0x81,0x7D,0x7A,0x76, -0x76,0x7C,0x86,0x8C,0x89,0x85,0x7E,0x76,0x70,0x6B,0x6B,0x71,0x74,0x6E,0x66,0x69, -0x79,0x8D,0x9B,0xA1,0x9D,0x96,0x93,0x92,0x8F,0x8E,0x8E,0x8C,0x86,0x81,0x83,0x85, -0x80,0x7B,0x7E,0x82,0x80,0x7F,0x81,0x81,0x7C,0x7D,0x7E,0x79,0x7A,0x7B,0x74,0x6D, -0x6B,0x73,0x80,0x92,0x9A,0x90,0x89,0x89,0x85,0x79,0x67,0x5B,0x63,0x75,0x7F,0x7B, -0x72,0x6E,0x76,0x80,0x88,0x8C,0x91,0x97,0x97,0x97,0x99,0x93,0x83,0x74,0x71,0x70, -0x6D,0x66,0x62,0x64,0x70,0x84,0x98,0xA2,0xA0,0x9C,0x97,0x91,0x8B,0x84,0x7E,0x7A, -0x72,0x67,0x65,0x76,0x8B,0x8F,0x87,0x82,0x86,0x8B,0x86,0x75,0x66,0x6A,0x75,0x7D, -0x83,0x85,0x85,0x89,0x90,0x90,0x85,0x74,0x62,0x50,0x42,0x46,0x5D,0x6D,0x6E,0x72, -0x81,0x8F,0x91,0x8B,0x84,0x7E,0x76,0x7A,0x8A,0x92,0x8C,0x87,0x8B,0x8F,0x8B,0x80, -0x75,0x6D,0x61,0x54,0x4D,0x53,0x5C,0x5D,0x55,0x46,0x40,0x4B,0x5B,0x67,0x6E,0x70, -0x6F,0x72,0x7C,0x85,0x81,0x75,0x70,0x77,0x86,0x91,0x93,0x96,0x9A,0x9D,0xA4,0xAE, -0xB8,0xB3,0xA2,0x94,0x8C,0x82,0x7C,0x81,0x8E,0x9A,0x9B,0x9B,0xA6,0xB0,0xAE,0x9E, -0x8D,0x85,0x7D,0x71,0x76,0x8E,0xA1,0xA5,0x9F,0x99,0x91,0x86,0x86,0x89,0x88,0x77, -0x64,0x61,0x6D,0x7C,0x87,0x8D,0x8A,0x80,0x76,0x70,0x74,0x83,0x8D,0x89,0x7E,0x7C, -0x79,0x73,0x75,0x7F,0x7D,0x6C,0x5C,0x63,0x79,0x81,0x7E,0x7B,0x73,0x6E,0x69,0x60, -0x60,0x6A,0x70,0x77,0x84,0x94,0x9C,0x95,0x8C,0x87,0x85,0x8D,0x91,0x8F,0x8E,0x8C, -0x8D,0x93,0x9F,0xAC,0xB1,0xA5,0x91,0x87,0x88,0x89,0x87,0x82,0x7B,0x7B,0x80,0x85, -0x92,0xA7,0xB1,0xAF,0xAB,0xA5,0xA0,0x99,0x88,0x72,0x60,0x52,0x52,0x64,0x7B,0x8B, -0x97,0x9D,0x97,0x82,0x6E,0x6A,0x73,0x74,0x69,0x62,0x65,0x68,0x63,0x62,0x6E,0x82, -0x95,0x90,0x7E,0x78,0x80,0x80,0x6D,0x5F,0x65,0x77,0x83,0x84,0x8B,0x95,0x98,0x9E, -0xA6,0x9F,0x90,0x8E,0x89,0x75,0x61,0x55,0x53,0x56,0x5B,0x63,0x6D,0x7B,0x7E,0x73, -0x66,0x5D,0x58,0x55,0x55,0x56,0x50,0x4D,0x5E,0x7B,0x96,0xA8,0xA8,0x99,0x88,0x7B, -0x79,0x84,0x8A,0x8C,0x94,0x9B,0x93,0x86,0x85,0x8A,0x93,0x95,0x85,0x73,0x6B,0x66, -0x64,0x69,0x69,0x6A,0x71,0x71,0x73,0x7E,0x8D,0x98,0x94,0x8A,0x8E,0x9A,0x9C,0x94, -0x90,0x8C,0x87,0x82,0x7C,0x77,0x79,0x85,0x99,0xA2,0x97,0x8A,0x83,0x82,0x89,0x89, -0x81,0x84,0x90,0x8E,0x82,0x7F,0x81,0x78,0x68,0x5E,0x5F,0x5D,0x5A,0x5E,0x5C,0x56, -0x51,0x56,0x62,0x74,0x83,0x85,0x87,0x8B,0x8C,0x8E,0x94,0x95,0x8C,0x88,0x94,0xAC, -0xBC,0xBC,0xBC,0xBE,0xB5,0xAB,0x9F,0x91,0x84,0x7B,0x70,0x6F,0x78,0x7E,0x79,0x78, -0x78,0x69,0x59,0x51,0x45,0x3A,0x33,0x31,0x36,0x3E,0x47,0x53,0x62,0x69,0x68,0x67, -0x6F,0x7E,0x88,0x8E,0x92,0x9A,0xA9,0xB9,0xBE,0xBF,0xC1,0xBF,0xBB,0xB0,0xA1,0x9A, -0x9E,0xA5,0xA8,0xA9,0xA4,0x99,0x8B,0x7F,0x78,0x6A,0x5F,0x60,0x61,0x62,0x6A,0x6E, -0x6D,0x70,0x76,0x7C,0x81,0x91,0x9D,0x9A,0x92,0x86,0x80,0x82,0x87,0x8A,0x94,0xA4, -0xAD,0xAD,0xA7,0xA7,0xAF,0xAC,0xA4,0x97,0x82,0x7F,0x8C,0x98,0xA3,0xA2,0x8D,0x7A, -0x75,0x70,0x66,0x60,0x63,0x65,0x64,0x61,0x63,0x65,0x63,0x5E,0x58,0x58,0x5A,0x56, -0x58,0x67,0x78,0x81,0x7D,0x7F,0x8B,0x91,0x8B,0x83,0x83,0x84,0x82,0x85,0x8E,0x91, -0x8A,0x85,0x7B,0x6B,0x6F,0x81,0x95,0xA5,0xA8,0x9B,0x93,0x97,0x96,0x8F,0x91,0x97, -0x8F,0x75,0x5A,0x58,0x65,0x71,0x79,0x80,0x82,0x7D,0x78,0x75,0x70,0x69,0x62,0x61, -0x64,0x62,0x64,0x6F,0x80,0x8F,0x9D,0xAD,0xB5,0xAE,0x98,0x7D,0x73,0x72,0x70,0x6C, -0x69,0x6C,0x6F,0x6E,0x6C,0x6B,0x68,0x69,0x69,0x64,0x5B,0x4E,0x46,0x47,0x54,0x63, -0x6D,0x6F,0x71,0x72,0x70,0x74,0x77,0x75,0x71,0x68,0x65,0x73,0x89,0x96,0x9B,0xA0, -0xA8,0xA8,0xA8,0xAA,0xA9,0xA2,0x99,0x90,0x8D,0x8D,0x8E,0x8E,0x90,0x89,0x7D,0x75, -0x6C,0x6F,0x7B,0x7B,0x73,0x73,0x77,0x7B,0x78,0x6F,0x6A,0x6A,0x67,0x6D,0x7B,0x7A, -0x7B,0x84,0x89,0x86,0x80,0x85,0x8B,0x87,0x83,0x7F,0x7C,0x87,0x96,0xA8,0xBF,0xC7, -0xBD,0xBD,0xCB,0xC6,0xAE,0x93,0x82,0x78,0x73,0x75,0x7D,0x86,0x82,0x70,0x5D,0x60, -0x73,0x81,0x85,0x82,0x73,0x66,0x6C,0x7F,0x8D,0x8C,0x82,0x76,0x69,0x60,0x5E,0x5E, -0x60,0x63,0x69,0x77,0x83,0x87,0x95,0x9D,0x9C,0xA3,0xA5,0x9A,0x93,0x99,0x9D,0x9E, -0x9E,0x9E,0x9D,0x95,0x8A,0x7A,0x72,0x77,0x7B,0x84,0x95,0x92,0x83,0x81,0x87,0x8B, -0x88,0x7E,0x74,0x69,0x5B,0x5D,0x6A,0x6E,0x6C,0x69,0x69,0x6C,0x6F,0x72,0x6E,0x64, -0x66,0x73,0x89,0xA0,0xAF,0xB9,0xC1,0xB4,0x9D,0x95,0x96,0x8B,0x84,0x83,0x73,0x59, -0x54,0x6E,0x8D,0x9C,0x95,0x7D,0x69,0x69,0x73,0x6A,0x5F,0x6A,0x79,0x7F,0x7B,0x7B, -0x7F,0x87,0x88,0x83,0x7C,0x74,0x6D,0x71,0x78,0x7B,0x78,0x7D,0x89,0x8F,0x8A,0x7A, -0x70,0x6B,0x6A,0x73,0x7A,0x7A,0x81,0x8D,0x8F,0x91,0x94,0x90,0x88,0x7D,0x73,0x72, -0x74,0x7A,0x82,0x81,0x82,0x89,0x89,0x80,0x79,0x71,0x6D,0x74,0x84,0x8D,0x85,0x74, -0x6C,0x68,0x65,0x63,0x5D,0x5B,0x64,0x66,0x5F,0x67,0x78,0x8A,0x9A,0xA2,0x9E,0x92, -0x8B,0x8E,0x96,0x99,0xA0,0xAE,0xB0,0xA5,0x91,0x84,0x77,0x67,0x5F,0x60,0x5F,0x58, -0x4A,0x41,0x4B,0x55,0x65,0x7B,0x7E,0x7E,0x84,0x8B,0x89,0x82,0x7C,0x78,0x79,0x7D, -0x80,0x86,0x89,0x8C,0x90,0x8D,0x89,0x8E,0x95,0x92,0x8B,0x86,0x8B,0x96,0x99,0x97, -0x93,0x93,0x9A,0xA3,0x9E,0x87,0x73,0x67,0x6A,0x6B,0x66,0x64,0x65,0x6B,0x74,0x7A, -0x78,0x72,0x6B,0x68,0x6E,0x75,0x72,0x69,0x6C,0x7D,0x83,0x79,0x6D,0x72,0x7F,0x85, -0x8E,0x9A,0xA6,0xAF,0xAE,0xA8,0xA1,0x97,0x91,0x9A,0xA5,0xA3,0x9E,0x9D,0x9B,0x96, -0x8D,0x87,0x8C,0x8F,0x7E,0x6C,0x6E,0x74,0x81,0x94,0x9D,0x93,0x83,0x7E,0x86,0x8D, -0x86,0x7A,0x73,0x6F,0x69,0x65,0x63,0x62,0x64,0x67,0x67,0x6D,0x79,0x7D,0x7B,0x81, -0x8D,0x96,0x9B,0xA1,0xA2,0xA0,0x9F,0xA7,0xB0,0xAF,0xA8,0x9D,0x95,0x8F,0x8D,0x8B, -0x8A,0x8F,0x92,0x83,0x6F,0x6B,0x73,0x77,0x77,0x71,0x65,0x57,0x4F,0x54,0x5B,0x5E, -0x5F,0x5A,0x59,0x62,0x6E,0x7A,0x7F,0x83,0x86,0x83,0x82,0x7A,0x6D,0x6D,0x7A,0x8F, -0xA5,0xB6,0xAF,0x97,0x8D,0x93,0x9B,0xA6,0x9E,0x88,0x7E,0x79,0x70,0x68,0x66,0x70, -0x84,0x99,0xA1,0x9A,0x90,0x87,0x7A,0x69,0x56,0x43,0x34,0x31,0x3C,0x4F,0x64,0x76, -0x7E,0x82,0x86,0x87,0x85,0x81,0x78,0x74,0x80,0x91,0x95,0x9A,0xA5,0xA1,0x92,0x87, -0x8C,0x94,0x8D,0x89,0x8B,0x88,0x84,0x7D,0x71,0x6A,0x5D,0x58,0x60,0x67,0x6D,0x73, -0x79,0x81,0x82,0x7C,0x71,0x6A,0x67,0x64,0x62,0x67,0x74,0x84,0x8F,0x96,0xA0,0xA9, -0xAF,0xB1,0xB4,0xB1,0x9D,0x8D,0x88,0x8A,0x8E,0x91,0x98,0xA2,0x9F,0x92,0x86,0x72, -0x60,0x56,0x48,0x3E,0x3C,0x3A,0x3B,0x3E,0x47,0x55,0x61,0x6D,0x74,0x7A,0x79,0x73, -0x78,0x83,0x80,0x6C,0x66,0x76,0x8C,0x9A,0xA6,0xB1,0xB4,0xB3,0xAA,0x9B,0x91,0x8D, -0x90,0x91,0x95,0xA0,0xAA,0xB7,0xBC,0xB5,0xA5,0x8D,0x72,0x61,0x62,0x64,0x61,0x63, -0x69,0x6C,0x6D,0x6D,0x73,0x74,0x6B,0x64,0x5E,0x57,0x5C,0x6B,0x79,0x86,0x92,0x9D, -0x99,0x92,0x9A,0xA5,0xAF,0xAB,0xA4,0xA5,0x9D,0x8E,0x88,0x92,0xA0,0x98,0x86,0x89, -0x95,0xA3,0xB4,0xB7,0xAA,0x9D,0x90,0x83,0x7C,0x74,0x64,0x54,0x5D,0x69,0x61,0x51, -0x4F,0x54,0x55,0x57,0x60,0x62,0x5E,0x63,0x6D,0x74,0x7A,0x7F,0x83,0x8B,0x9D,0xB2, -0xBD,0xBE,0xB9,0xB3,0xAA,0x9B,0x8F,0x8E,0x98,0x92,0x85,0x87,0x93,0xAA,0xB5,0xB8, -0xB5,0x9E,0x7F,0x70,0x6F,0x68,0x57,0x4A,0x4E,0x59,0x61,0x6C,0x74,0x74,0x6F,0x62, -0x5E,0x61,0x5D,0x56,0x58,0x6C,0x87,0x8F,0x90,0x91,0x89,0x83,0x8D,0x90,0x86,0x83, -0x8D,0x9A,0x8C,0x6C,0x60,0x75,0x92,0x98,0x90,0x89,0x78,0x6C,0x72,0x78,0x76,0x72, -0x65,0x5A,0x57,0x58,0x5B,0x67,0x72,0x6D,0x61,0x63,0x6D,0x71,0x6B,0x65,0x6E,0x79, -0x76,0x73,0x7A,0x84,0x88,0x83,0x8A,0x9D,0xAB,0xA6,0x8C,0x7D,0x87,0x91,0x95,0xA0, -0xA9,0xA1,0x96,0x8D,0x8F,0xA0,0xAC,0xA3,0x8A,0x73,0x6F,0x74,0x70,0x5B,0x49,0x49, -0x60,0x79,0x84,0x7D,0x73,0x78,0x7B,0x81,0x87,0x78,0x66,0x67,0x6D,0x6D,0x71,0x7E, -0x86,0x8B,0x95,0xA5,0xAD,0xAF,0xA8,0x99,0x8D,0x83,0x80,0x83,0x7E,0x7C,0x7E,0x7B, -0x75,0x71,0x71,0x71,0x69,0x62,0x6B,0x76,0x79,0x72,0x6A,0x74,0x7B,0x79,0x7B,0x85, -0x99,0xA3,0xA0,0x99,0x8F,0x8C,0x8A,0x89,0x87,0x7D,0x78,0x7F,0x88,0x95,0x9E,0x9A, -0x91,0x91,0x95,0x99,0x91,0x82,0x86,0x82,0x76,0x76,0x81,0x8A,0x87,0x7B,0x7C,0x7B, -0x6B,0x65,0x6F,0x72,0x77,0x7F,0x6C,0x54,0x5C,0x78,0x81,0x76,0x76,0x79,0x71,0x6A, -0x6D,0x79,0x81,0x77,0x75,0x8C,0x9B,0x99,0x9D,0xA7,0xA8,0xA4,0xA0,0xA1,0x9E,0x8B, -0x6F,0x63,0x6C,0x74,0x77,0x72,0x66,0x67,0x6E,0x73,0x7A,0x80,0x81,0x75,0x71,0x85, -0x88,0x77,0x73,0x7E,0x82,0x82,0x83,0x7E,0x8C,0x9D,0x9A,0xA2,0xA6,0x9D,0x96,0x90, -0x8B,0x8B,0x92,0x91,0x8F,0x9C,0xA6,0xAA,0xAB,0xA8,0x9F,0x93,0x83,0x70,0x64,0x60, -0x65,0x74,0x81,0x80,0x7C,0x7D,0x7B,0x80,0x7C,0x78,0x82,0x89,0x80,0x6B,0x62,0x72, -0x7E,0x82,0x83,0x7B,0x6E,0x6E,0x77,0x83,0x8A,0x8E,0x87,0x79,0x7C,0x89,0x89,0x83, -0x79,0x6C,0x61,0x64,0x72,0x7E,0x8C,0x92,0x82,0x6A,0x5F,0x64,0x6C,0x70,0x64,0x57, -0x63,0x76,0x85,0x91,0x93,0x7F,0x70,0x75,0x78,0x7C,0x81,0x7D,0x7C,0x80,0x7F,0x90, -0xA3,0xA0,0x98,0x99,0x95,0x86,0x7F,0x77,0x69,0x5F,0x61,0x69,0x6F,0x72,0x75,0x7A, -0x7E,0x74,0x69,0x6A,0x6B,0x70,0x7E,0x82,0x73,0x6F,0x84,0x9D,0xAA,0xAD,0xAA,0xA0, -0x96,0x88,0x75,0x6C,0x6A,0x5D,0x5B,0x64,0x72,0x7D,0x7F,0x78,0x75,0x77,0x70,0x68, -0x6D,0x73,0x73,0x73,0x70,0x79,0x81,0x7F,0x7E,0x88,0x91,0x89,0x7C,0x87,0x91,0x82, -0x74,0x7D,0x8D,0x92,0x8B,0x94,0x9E,0x9D,0x9B,0x9B,0xAC,0xB0,0x90,0x7A,0x86,0x8B, -0x84,0x7C,0x65,0x54,0x57,0x62,0x70,0x7D,0x81,0x78,0x72,0x6C,0x6B,0x6E,0x71,0x75, -0x76,0x6C,0x69,0x72,0x7A,0x8C,0xA0,0xAF,0xAF,0x9A,0x8F,0x89,0x7F,0x7A,0x7F,0x84, -0x83,0x82,0x80,0x80,0x8C,0xA3,0xB9,0xC5,0xC2,0xAE,0xA3,0xA5,0x99,0x8C,0x8F,0x8B, -0x8C,0x98,0x97,0x8B,0x86,0x81,0x6D,0x68,0x6F,0x72,0x6E,0x62,0x60,0x6E,0x74,0x7B, -0x84,0x7E,0x7B,0x89,0x97,0x96,0x90,0x87,0x84,0x89,0x83,0x7B,0x7A,0x71,0x74,0x7E, -0x7F,0x86,0x90,0x9B,0x9D,0x8F,0x8B,0x8E,0x94,0x92,0x7F,0x72,0x72,0x75,0x6F,0x6B, -0x77,0x7B,0x64,0x57,0x62,0x60,0x57,0x52,0x53,0x60,0x5D,0x51,0x59,0x60,0x5D,0x70, -0x80,0x7C,0x72,0x74,0x6E,0x5D,0x64,0x6E,0x70,0x81,0x93,0x97,0x93,0x96,0xA1,0xA9, -0xAB,0xA5,0xAB,0xAF,0x9E,0x96,0x93,0x86,0x7E,0x82,0x87,0x84,0x7C,0x7F,0x80,0x81, -0x86,0x82,0x76,0x77,0x7E,0x7B,0x73,0x71,0x70,0x72,0x7A,0x7C,0x8B,0x9A,0x9B,0x92, -0x86,0x86,0x8C,0x8C,0x8B,0x8E,0x91,0x90,0x99,0xA0,0x92,0x7C,0x81,0x93,0x95,0x88, -0x7A,0x7A,0x7A,0x73,0x6A,0x66,0x68,0x6C,0x72,0x6C,0x67,0x6B,0x71,0x86,0x98,0x87, -0x6B,0x6F,0x85,0x8C,0x87,0x76,0x66,0x6D,0x6D,0x6A,0x7A,0x82,0x7D,0x79,0x74,0x6C, -0x69,0x69,0x6D,0x75,0x7D,0x7B,0x78,0x82,0x86,0x7F,0x80,0x8A,0x86,0x7B,0x7F,0x84, -0x7A,0x72,0x72,0x73,0x71,0x6E,0x62,0x51,0x4E,0x54,0x66,0x75,0x72,0x6E,0x70,0x6D, -0x77,0x8F,0x92,0x8A,0x9A,0xA8,0xA3,0xAB,0xB7,0xB6,0xAC,0xA1,0x99,0x9D,0xA8,0xA2, -0x8E,0x84,0x87,0x89,0x7F,0x72,0x62,0x5F,0x71,0x81,0x7F,0x7A,0x7B,0x7D,0x81,0x82, -0x89,0x93,0x9C,0x9A,0x89,0x7B,0x7F,0x89,0x90,0x85,0x75,0x7F,0x8A,0x8E,0x87,0x85, -0x8E,0x84,0x76,0x78,0x81,0x87,0x85,0x88,0x86,0x75,0x67,0x63,0x71,0x83,0x85,0x82, -0x8D,0x8F,0x82,0x85,0x8A,0x7B,0x6E,0x70,0x78,0x7D,0x75,0x67,0x6C,0x7A,0x89,0x95, -0x87,0x6F,0x65,0x6F,0x80,0x8F,0x8D,0x84,0x84,0x88,0x8D,0x91,0x93,0x98,0xA0,0xA8, -0xAA,0x9F,0x97,0x8E,0x78,0x72,0x7D,0x78,0x75,0x7D,0x85,0x7F,0x7D,0x8A,0x7E,0x6E, -0x7A,0x87,0x88,0x82,0x7E,0x85,0x8E,0x90,0x8D,0x91,0x99,0xA1,0xA0,0x96,0x9A,0x99, -0x8E,0x7F,0x76,0x77,0x6C,0x67,0x6F,0x77,0x7D,0x7B,0x74,0x78,0x70,0x66,0x6E,0x7D, -0x85,0x7A,0x67,0x67,0x79,0x86,0x88,0x85,0x80,0x7F,0x75,0x6C,0x6F,0x73,0x79,0x76, -0x67,0x67,0x73,0x7A,0x69,0x58,0x65,0x75,0x7E,0x8B,0x86,0x7C,0x82,0x86,0x83,0x7C, -0x7B,0x7B,0x7D,0x81,0x7F,0x6D,0x5A,0x5D,0x63,0x62,0x60,0x60,0x5B,0x5F,0x74,0x87, -0x9B,0x99,0x86,0x8C,0xAD,0xB1,0x9F,0x97,0x8B,0x80,0x85,0x8A,0x89,0x7F,0x7D,0x7E, -0x79,0x7B,0x71,0x5C,0x62,0x73,0x71,0x69,0x76,0x89,0x86,0x7A,0x73,0x76,0x79,0x74, -0x78,0x86,0x91,0x85,0x6A,0x67,0x76,0x85,0x8C,0x91,0x97,0x91,0x91,0x95,0x95,0xA0, -0x9F,0x99,0x9F,0xA2,0xA2,0x9B,0x9A,0x9C,0x94,0x82,0x70,0x74,0x7A,0x72,0x69,0x70, -0x7C,0x78,0x80,0x89,0x7D,0x73,0x76,0x79,0x74,0x66,0x60,0x6B,0x79,0x7F,0x84,0x8D, -0x97,0x9C,0x9B,0x8A,0x79,0x77,0x71,0x6B,0x6F,0x7C,0x88,0x8E,0xA2,0xB4,0xAE,0x9E, -0x8D,0x82,0x7F,0x7B,0x80,0x7F,0x7F,0x80,0x7D,0x84,0x85,0x79,0x71,0x68,0x63,0x5F, -0x57,0x4C,0x4D,0x5C,0x63,0x68,0x69,0x69,0x73,0x78,0x7E,0x8C,0x92,0x98,0x99,0x99, -0x9E,0xA7,0xB0,0xA9,0xA6,0xAA,0xA9,0xAF,0xAD,0xA2,0x97,0x8C,0x81,0x77,0x78,0x75, -0x6D,0x6D,0x74,0x7C,0x84,0x8B,0x83,0x72,0x76,0x85,0x86,0x79,0x70,0x70,0x70,0x77, -0x7E,0x81,0x88,0x8D,0x87,0x83,0x83,0x84,0x8E,0x99,0x9A,0x97,0x8B,0x81,0x86,0x8F, -0x8E,0x88,0x92,0x9E,0xA4,0x99,0x81,0x7D,0x7B,0x67,0x53,0x50,0x53,0x55,0x5B,0x5F, -0x5E,0x5E,0x5F,0x63,0x68,0x6A,0x60,0x62,0x77,0x77,0x6B,0x74,0x84,0x8F,0x93,0x97, -0x96,0x8A,0x7A,0x80,0x9A,0xA2,0x99,0x98,0x9C,0x8E,0x81,0x85,0x8D,0x97,0x9E,0x9F, -0x8E,0x7E,0x76,0x70,0x78,0x8B,0x8F,0x80,0x75,0x67,0x56,0x4E,0x4A,0x54,0x65,0x6D, -0x74,0x77,0x6E,0x68,0x7C,0x98,0xA3,0xA4,0xA3,0x95,0x86,0x87,0x91,0x9F,0xA6,0x95, -0x78,0x6E,0x71,0x71,0x71,0x70,0x6E,0x6C,0x6F,0x76,0x84,0x96,0x8E,0x84,0x84,0x7E, -0x7A,0x71,0x64,0x6A,0x73,0x77,0x7D,0x87,0x92,0x8A,0x6F,0x61,0x66,0x73,0x75,0x6B, -0x64,0x6C,0x77,0x7E,0x78,0x73,0x7D,0x84,0x89,0x8A,0x89,0x88,0x84,0x7B,0x7A,0x7F, -0x86,0x8F,0x9A,0x9B,0x8A,0x74,0x79,0x8F,0x97,0x91,0x80,0x73,0x6F,0x72,0x75,0x77, -0x81,0x84,0x7F,0x7B,0x76,0x78,0x8D,0xA3,0xA0,0x94,0x8B,0x80,0x76,0x67,0x5F,0x5C, -0x63,0x6E,0x6F,0x7A,0x91,0x9A,0x95,0x96,0xA2,0xAE,0x9C,0x8B,0x9D,0xA2,0x96,0x8F, -0x8C,0x8F,0x84,0x7F,0x81,0x75,0x66,0x5E,0x63,0x68,0x66,0x68,0x70,0x7E,0x84,0x7E, -0x77,0x75,0x82,0x88,0x94,0xAB,0xAE,0xA4,0x9A,0x91,0x88,0x84,0x89,0x91,0x8C,0x88, -0x8B,0x88,0x81,0x85,0x9A,0xA3,0x98,0x8B,0x82,0x92,0xAB,0xA9,0x95,0x87,0x74,0x65, -0x6A,0x76,0x7B,0x7E,0x7B,0x7B,0x79,0x7F,0x83,0x80,0x7A,0x67,0x63,0x66,0x67,0x7B, -0x7D,0x72,0x78,0x88,0x8D,0x7B,0x76,0x7F,0x7E,0x76,0x75,0x7A,0x86,0x91,0x94,0x8F, -0x87,0x87,0x8A,0x88,0x82,0x7E,0x7D,0x76,0x70,0x73,0x80,0x80,0x78,0x67,0x56,0x68, -0x82,0x88,0x7A,0x6F,0x72,0x7A,0x86,0x88,0x82,0x7C,0x7E,0x7A,0x6A,0x56,0x54,0x65, -0x74,0x8C,0x96,0x8A,0x87,0x93,0x9E,0x9F,0x9D,0x9B,0x94,0x8D,0x8F,0x87,0x78,0x6C, -0x6A,0x71,0x7D,0x84,0x86,0x82,0x6E,0x63,0x6C,0x7A,0x7A,0x6A,0x6D,0x83,0x86,0x79, -0x6F,0x75,0x86,0x96,0x9D,0x96,0x83,0x75,0x6D,0x65,0x62,0x69,0x75,0x81,0x8E,0x94, -0x8A,0x77,0x79,0x7F,0x76,0x71,0x70,0x7B,0x89,0x8D,0x8B,0x81,0x7C,0x7E,0x74,0x5F, -0x55,0x51,0x58,0x67,0x6D,0x71,0x72,0x7B,0x8B,0x93,0x8F,0x81,0x80,0x8E,0x87,0x7F, -0x81,0x85,0x8E,0x9B,0xB0,0xAC,0x94,0x93,0x99,0x8E,0x75,0x64,0x5C,0x57,0x57,0x61, -0x70,0x77,0x7D,0x87,0x8D,0x89,0x83,0x91,0xA1,0x97,0x8B,0x91,0x9B,0x98,0x9E,0xA4, -0xA5,0xA8,0x9D,0x84,0x70,0x6B,0x76,0x7C,0x89,0x97,0x95,0x92,0x8C,0x93,0x94,0x76, -0x6A,0x71,0x75,0x71,0x6B,0x69,0x6E,0x80,0x95,0x8B,0x72,0x71,0x7A,0x83,0x8B,0x91, -0x9C,0x9D,0x8B,0x86,0x8F,0x88,0x77,0x74,0x78,0x84,0x8F,0x8E,0x8B,0x96,0x9D,0x9D, -0x9C,0x96,0x98,0x92,0x82,0x6F,0x61,0x59,0x53,0x5E,0x69,0x62,0x60,0x67,0x6E,0x6F, -0x67,0x66,0x65,0x63,0x6A,0x6E,0x76,0x80,0x8A,0x93,0x9A,0x98,0x96,0x9C,0x99,0x91, -0x8C,0x83,0x80,0x81,0x81,0x81,0x8A,0x93,0x8F,0x87,0x84,0x78,0x77,0x85,0x91,0x99, -0x99,0x8E,0x77,0x62,0x55,0x57,0x74,0x82,0x72,0x6D,0x70,0x73,0x80,0x8C,0x8D,0x93, -0x93,0x88,0x7D,0x7C,0x87,0x99,0x9C,0x93,0x91,0x91,0x92,0x9D,0xAE,0xAD,0x9B,0x8B, -0x7C,0x71,0x6A,0x62,0x69,0x6E,0x77,0x80,0x87,0x8D,0x80,0x70,0x6B,0x6D,0x76,0x7C, -0x7B,0x78,0x73,0x6F,0x66,0x5E,0x5E,0x5E,0x62,0x67,0x65,0x5D,0x62,0x75,0x7E,0x7D, -0x76,0x76,0x7F,0x82,0x8A,0x92,0xA3,0xAE,0xAB,0xA4,0x94,0x91,0x96,0x83,0x6F,0x72, -0x7D,0x83,0x8D,0x90,0x7B,0x66,0x60,0x5B,0x62,0x78,0x7A,0x6F,0x66,0x61,0x6F,0x89, -0x8C,0x84,0x7D,0x68,0x58,0x5F,0x63,0x68,0x74,0x84,0x93,0x9B,0x92,0x88,0x8F,0x9F, -0x9E,0x97,0x95,0x97,0x8C,0x7E,0x79,0x85,0x8A,0x80,0x87,0x93,0x8F,0x89,0x83,0x76, -0x6A,0x63,0x5E,0x54,0x52,0x5F,0x6E,0x80,0x83,0x8A,0x99,0x95,0x8C,0x8D,0x89,0x85, -0x83,0x7E,0x88,0x91,0x92,0x9E,0x9B,0x93,0x95,0x8D,0x85,0x7D,0x7D,0x82,0x7D,0x7B, -0x6E,0x5E,0x6C,0x79,0x81,0x8C,0x89,0x75,0x6F,0x87,0x96,0x91,0x99,0x95,0x87,0x80, -0x75,0x6C,0x6B,0x6B,0x68,0x6A,0x71,0x78,0x78,0x77,0x79,0x7E,0x8B,0x94,0x98,0x91, -0x89,0x82,0x89,0xA3,0xAF,0xAF,0xAF,0xAB,0xA1,0x8F,0x7D,0x81,0x84,0x81,0x7B,0x82, -0x7F,0x77,0x78,0x84,0x84,0x79,0x63,0x5F,0x74,0x72,0x72,0x82,0x92,0x94,0x91,0x8E, -0x88,0x8A,0x94,0x8C,0x83,0x8C,0x93,0x99,0x9F,0x98,0x8D,0x91,0x99,0x9E,0x93,0x7D, -0x72,0x7E,0x87,0x7C,0x7B,0x7B,0x82,0x85,0x79,0x68,0x66,0x68,0x6D,0x70,0x73,0x7A, -0x71,0x67,0x65,0x6D,0x6B,0x65,0x6E,0x7C,0x7F,0x82,0x6F,0x5E,0x69,0x7C,0x84,0x7A, -0x7F,0x7E,0x76,0x7A,0x8C,0x97,0x89,0x66,0x61,0x71,0x79,0x84,0x86,0x81,0x7A,0x7E, -0x78,0x6B,0x6C,0x79,0x80,0x87,0x87,0x85,0x8F,0x93,0x83,0x81,0x83,0x82,0x84,0x76, -0x6C,0x6C,0x69,0x65,0x68,0x66,0x6D,0x7B,0x84,0x82,0x80,0x7F,0x80,0x87,0x7F,0x76, -0x79,0x86,0x8E,0x81,0x75,0x7C,0x8B,0x95,0x88,0x79,0x85,0x92,0x8D,0x8E,0x91,0x8B, -0x9D,0xA9,0xA5,0xAE,0xAE,0xA2,0x9B,0x98,0x8D,0x7E,0x79,0x73,0x6D,0x68,0x61,0x71, -0x80,0x75,0x59,0x4E,0x51,0x50,0x56,0x65,0x71,0x79,0x6E,0x65,0x7D,0x89,0x85,0x86, -0x87,0x92,0x9D,0xA4,0x99,0x7B,0x63,0x66,0x7C,0x88,0x87,0x83,0x80,0x7F,0x83,0x88, -0x81,0x78,0x6F,0x6D,0x69,0x60,0x74,0x88,0x8F,0x91,0x97,0x9D,0x9C,0x90,0x94,0x91, -0x7E,0x6E,0x74,0x80,0x7B,0x78,0x78,0x84,0x8A,0x88,0x8B,0x93,0x91,0x90,0x97,0x9A, -0x9D,0xA2,0xA5,0x94,0x83,0x85,0x91,0x8F,0x8D,0x8E,0x92,0x91,0x83,0x73,0x70,0x74, -0x76,0x76,0x76,0x6B,0x66,0x68,0x69,0x83,0x8C,0x8B,0x8A,0x7B,0x78,0x85,0x84,0x79, -0x68,0x6B,0x7D,0x84,0x8E,0x8B,0x86,0x8C,0x98,0xA3,0xA0,0x94,0x8B,0x72,0x6D,0x75, -0x72,0x79,0x8A,0x8E,0x82,0x70,0x6B,0x6F,0x79,0x70,0x66,0x72,0x7B,0x81,0x81,0x8C, -0x8E,0x80,0x72,0x6E,0x75,0x7C,0x81,0x7A,0x70,0x7A,0x84,0x86,0x7F,0x80,0x89,0x87, -0x81,0x79,0x7E,0x89,0x8D,0x85,0x7B,0x78,0x7B,0x78,0x75,0x78,0x7F,0x8A,0x8A,0x81, -0x7D,0x81,0x8C,0x82,0x74,0x78,0x81,0x86,0x89,0x84,0x85,0x83,0x67,0x53,0x61,0x75, -0x71,0x6A,0x6A,0x71,0x85,0x8C,0x92,0x9A,0x9F,0xA0,0x9D,0x9C,0x9B,0xA0,0xA3,0x9D, -0x97,0x8C,0x81,0x7E,0x7F,0x73,0x66,0x64,0x6C,0x6C,0x74,0x8A,0x93,0x8A,0x76,0x76, -0x83,0x75,0x6C,0x81,0x8A,0x84,0x86,0x93,0x9E,0x9D,0x99,0x8E,0x82,0x7A,0x6D,0x69, -0x68,0x61,0x57,0x57,0x5A,0x6A,0x7B,0x7B,0x7C,0x83,0x8A,0x87,0x80,0x7C,0x72,0x6D, -0x6E,0x70,0x7B,0x86,0x8C,0x90,0x83,0x67,0x68,0x74,0x6C,0x63,0x61,0x61,0x77,0x82, -0x78,0x76,0x74,0x79,0x7D,0x73,0x7D,0x8F,0x93,0x8B,0x71,0x5F,0x6E,0x84,0x94,0x9B, -0x95,0x7F,0x6A,0x68,0x7B,0x90,0x96,0x96,0xA2,0xA9,0xA6,0x96,0x92,0x9D,0x92,0x8B, -0x90,0x91,0x88,0x7E,0x7C,0x87,0x90,0x87,0x7F,0x7D,0x77,0x75,0x79,0x67,0x65,0x76, -0x7D,0x79,0x81,0x92,0x9C,0xA0,0xA0,0x98,0x8A,0x80,0x73,0x77,0x7B,0x75,0x7E,0x95, -0x97,0x88,0x83,0x8E,0x85,0x73,0x73,0x7B,0x85,0x7D,0x65,0x5B,0x78,0x94,0x9A,0x98, -0x94,0x8D,0x89,0x88,0x80,0x7B,0x72,0x66,0x66,0x7D,0x89,0x77,0x71,0x6D,0x75,0x8C, -0x8D,0x8A,0x8D,0x92,0x94,0x94,0x94,0x94,0x98,0x96,0x88,0x78,0x79,0x72,0x67,0x69, -0x65,0x6B,0x7D,0x80,0x71,0x72,0x74,0x6D,0x6D,0x7A,0x7C,0x7B,0x80,0x7F,0x82,0x93, -0xA7,0xA5,0xA4,0xB0,0xB1,0x9A,0x83,0x79,0x72,0x6F,0x73,0x74,0x79,0x84,0x87,0x7F, -0x7C,0x82,0x82,0x85,0x8D,0x94,0x87,0x78,0x73,0x73,0x72,0x78,0x85,0x93,0xAE,0xBC, -0xA8,0x87,0x7B,0x7E,0x6C,0x60,0x64,0x58,0x4A,0x60,0x7B,0x7B,0x7A,0x78,0x6E,0x6F, -0x82,0x85,0x7D,0x6F,0x55,0x5B,0x76,0x81,0x70,0x60,0x62,0x61,0x6A,0x76,0x7B,0x88, -0x8A,0x7C,0x71,0x6D,0x8C,0xAC,0x9F,0x84,0x85,0x95,0x8D,0x8D,0x98,0x96,0x8D,0x7C, -0x6A,0x5A,0x53,0x57,0x61,0x67,0x5E,0x5D,0x6A,0x7C,0x86,0x88,0x86,0x88,0x8B,0x86, -0x8B,0x9A,0x8F,0x7A,0x72,0x78,0x7F,0x80,0x7E,0x7D,0x8D,0x9E,0x9A,0x8E,0x80,0x7B, -0x7E,0x81,0x8B,0x92,0x95,0x92,0x87,0x83,0x81,0x84,0x8A,0x8F,0x8C,0x74,0x67,0x77, -0x80,0x87,0x96,0xAA,0xB3,0x9F,0x8B,0x7E,0x77,0x71,0x7B,0x85,0x80,0x7E,0x8C,0xA4, -0xAF,0xA9,0xA5,0xA0,0x90,0x76,0x69,0x75,0x7C,0x7D,0x78,0x6B,0x76,0x89,0x98,0x99, -0x87,0x79,0x72,0x72,0x6D,0x6A,0x6C,0x61,0x6C,0x7F,0x81,0x79,0x73,0x73,0x6E,0x63, -0x59,0x52,0x5E,0x77,0x77,0x6A,0x63,0x75,0x89,0x8E,0x8F,0x8A,0x83,0x79,0x83,0x93, -0x93,0x82,0x76,0x81,0x8F,0x99,0x94,0x75,0x62,0x6B,0x81,0x94,0x89,0x80,0x87,0x80, -0x78,0x7D,0x7A,0x7C,0x83,0x7C,0x6B,0x61,0x6A,0x7A,0x83,0x87,0x8B,0xA1,0xA8,0x98, -0x8D,0x89,0x84,0x7C,0x6D,0x6A,0x7A,0x86,0x92,0xA9,0xAA,0x8E,0x7E,0x95,0xA2,0x89, -0x79,0x79,0x82,0x90,0x8F,0x7F,0x7F,0x8E,0x9C,0xA6,0x99,0x85,0x84,0x7F,0x77,0x79, -0x79,0x71,0x66,0x62,0x68,0x70,0x76,0x71,0x6D,0x78,0x85,0x91,0x95,0x93,0x8D,0x8E, -0x98,0x8D,0x7A,0x7D,0x95,0x97,0x85,0x7F,0x82,0x7E,0x72,0x6D,0x7C,0x7E,0x6F,0x67, -0x63,0x67,0x71,0x7D,0x80,0x7A,0x85,0x9A,0xA6,0xA8,0x9D,0x87,0x81,0x85,0x80,0x71, -0x63,0x5D,0x5D,0x69,0x78,0x79,0x6C,0x71,0x78,0x76,0x7B,0x74,0x6C,0x74,0x8A,0x97, -0x8B,0x82,0x88,0x8F,0x91,0x88,0x86,0x88,0x7C,0x6A,0x6A,0x70,0x75,0x6B,0x70,0x82, -0x82,0x7D,0x81,0x81,0x7D,0x88,0x8D,0x8A,0x7E,0x70,0x75,0x7B,0x7F,0x7D,0x71,0x6D, -0x73,0x7A,0x8B,0x8F,0x82,0x8C,0xA5,0xAB,0xA9,0xA8,0x99,0x81,0x76,0x7A,0x7A,0x72, -0x70,0x76,0x7E,0x82,0x6F,0x61,0x68,0x6F,0x67,0x59,0x5A,0x53,0x4A,0x56,0x6B,0x6B, -0x68,0x7E,0x93,0x92,0x8E,0x90,0x8D,0x8C,0x8C,0x7F,0x7C,0x8F,0x8E,0x7D,0x7F,0x91, -0xA5,0xA7,0xA4,0x90,0x7C,0x7B,0x6B,0x61,0x6F,0x84,0x8C,0x82,0x76,0x7C,0x8B,0x94, -0x90,0x89,0x85,0x7C,0x76,0x78,0x84,0x82,0x77,0x7C,0x7F,0x74,0x69,0x75,0x84,0x81, -0x81,0x8E,0x9D,0xA5,0xA5,0xA7,0xA5,0x9B,0x93,0x90,0x97,0xA1,0x98,0x90,0x95,0x97, -0x91,0x86,0x7C,0x82,0x7D,0x68,0x60,0x61,0x6E,0x78,0x75,0x79,0x7F,0x82,0x8D,0x8E, -0x7E,0x75,0x86,0x96,0x97,0x8B,0x7E,0x85,0x87,0x86,0x8F,0x9B,0x95,0x84,0x7D,0x7F, -0x7C,0x70,0x73,0x82,0x81,0x7E,0x82,0x8A,0x92,0x98,0x9B,0x95,0x87,0x7F,0x80,0x7B, -0x79,0x78,0x67,0x5E,0x5C,0x67,0x7F,0x8A,0x75,0x56,0x57,0x61,0x61,0x5E,0x6D,0x77, -0x68,0x71,0x8C,0x93,0x8F,0x8A,0x90,0xA2,0x9C,0x78,0x62,0x5D,0x5C,0x62,0x6C,0x6E, -0x6E,0x71,0x7E,0x8E,0x96,0x9A,0x90,0x8B,0x8E,0x8D,0x87,0x78,0x6B,0x6E,0x87,0x9A, -0x9C,0x8E,0x7B,0x7D,0x81,0x70,0x5A,0x4D,0x48,0x59,0x66,0x64,0x74,0x8B,0x8B,0x87, -0x88,0x87,0x91,0x97,0x91,0x8E,0x8F,0x8E,0x8C,0x89,0x8A,0x90,0xA2,0xAC,0x9C,0x81, -0x7C,0x85,0x8B,0x93,0x93,0x88,0x7E,0x70,0x73,0x7C,0x74,0x73,0x78,0x7F,0x81,0x7A, -0x76,0x7A,0x7F,0x83,0x85,0x77,0x6E,0x69,0x64,0x6E,0x79,0x81,0x8A,0x94,0x8F,0x8A, -0x8D,0x94,0x96,0x98,0x90,0x79,0x70,0x7F,0x92,0x9F,0x96,0x88,0x7E,0x7F,0x7F,0x76, -0x6F,0x69,0x68,0x6B,0x6D,0x67,0x62,0x72,0x8B,0x8D,0x77,0x6C,0x7D,0x86,0x82,0x72, -0x63,0x66,0x6D,0x71,0x7D,0x8F,0x9D,0x98,0x8A,0x86,0x87,0x86,0x84,0x7D,0x7D,0x7D, -0x79,0x7D,0x89,0x8E,0x88,0x8E,0x9D,0xA3,0x97,0x83,0x6E,0x62,0x6A,0x73,0x73,0x6D, -0x68,0x66,0x5C,0x5A,0x68,0x76,0x80,0x85,0x7E,0x7C,0x7C,0x7D,0x88,0x95,0x8D,0x84, -0x7D,0x7D,0x9C,0xB8,0xB8,0xAB,0xA6,0xA3,0x92,0x8A,0x85,0x7A,0x69,0x51,0x52,0x6E, -0x84,0x8F,0x92,0x90,0x95,0x9F,0xA1,0x93,0x7B,0x6B,0x7D,0x97,0x87,0x6B,0x6E,0x73, -0x73,0x70,0x74,0x71,0x6C,0x71,0x70,0x72,0x76,0x85,0x97,0x8A,0x7D,0x88,0x90,0x92, -0x98,0x9F,0x9E,0x91,0x89,0x85,0x82,0x7F,0x7C,0x8B,0x8D,0x84,0x7D,0x7F,0x7F,0x80, -0x8D,0x96,0x8E,0x80,0x7B,0x76,0x6E,0x73,0x77,0x7A,0x76,0x6A,0x64,0x5F,0x68,0x78, -0x80,0x78,0x7A,0x88,0x93,0xA9,0xAD,0x91,0x74,0x78,0x87,0x8A,0x82,0x75,0x76,0x83, -0x84,0x7B,0x75,0x7A,0x7A,0x7A,0x79,0x79,0x76,0x6C,0x6C,0x78,0x7C,0x7E,0x88,0x8D, -0x8D,0x89,0x7E,0x79,0x77,0x7A,0x84,0x8B,0x92,0x89,0x8A,0x9A,0x95,0x89,0x89,0x90, -0x8D,0x80,0x7E,0x92,0x98,0x85,0x76,0x72,0x6E,0x70,0x77,0x7C,0x78,0x72,0x69,0x5B, -0x5E,0x70,0x7D,0x7C,0x80,0x79,0x6D,0x74,0x78,0x75,0x75,0x7A,0x77,0x65,0x5B,0x5E, -0x6B,0x6F,0x61,0x63,0x79,0x89,0x8D,0x84,0x83,0x88,0x85,0x8C,0x93,0x89,0x85,0x8B, -0x8F,0x86,0x74,0x76,0x77,0x6C,0x68,0x6E,0x73,0x78,0x7B,0x7F,0x76,0x6E,0x77,0x81, -0x88,0x8C,0x8D,0x8E,0x92,0x91,0x93,0x9F,0x9F,0x8E,0x75,0x72,0x77,0x7A,0x7E,0x80, -0x8E,0x93,0x93,0x94,0x93,0x90,0x8B,0x88,0x86,0x88,0x8C,0x8E,0x8C,0x8C,0x96,0x95, -0x89,0x87,0x80,0x6E,0x6D,0x72,0x6B,0x70,0x79,0x83,0x91,0x86,0x78,0x83,0x8E,0x8A, -0x86,0x92,0x9A,0x8F,0x8E,0x90,0x84,0x81,0x78,0x65,0x65,0x78,0x84,0x93,0x94,0x89, -0x92,0x91,0x7E,0x7B,0x87,0x88,0x87,0x87,0x7C,0x6E,0x73,0x7B,0x83,0x83,0x74,0x73, -0x7F,0x80,0x77,0x78,0x80,0x8B,0x8A,0x77,0x6A,0x6C,0x7B,0x81,0x87,0x96,0x9C,0x99, -0x98,0x98,0x91,0x88,0x78,0x6C,0x67,0x63,0x66,0x6E,0x79,0x87,0x90,0x8A,0x85,0x85, -0x83,0x76,0x6D,0x61,0x5C,0x68,0x83,0x9B,0x95,0x85,0x7E,0x88,0x90,0x84,0x6E,0x6D, -0x71,0x75,0x75,0x73,0x7E,0x8D,0x99,0x9C,0x99,0x9B,0x99,0x95,0x8F,0x81,0x75,0x79, -0x7F,0x78,0x67,0x59,0x5A,0x67,0x7A,0x77,0x70,0x7D,0x85,0x83,0x86,0x85,0x80,0x7B, -0x75,0x70,0x75,0x7E,0x86,0x92,0x94,0x8D,0x83,0x7B,0x83,0x8D,0x86,0x72,0x76,0x87, -0x90,0x9E,0x9D,0x91,0x8C,0x83,0x7E,0x75,0x6B,0x62,0x52,0x53,0x63,0x64,0x5D,0x5F, -0x5B,0x58,0x68,0x79,0x7E,0x86,0x91,0x8E,0x83,0x8A,0x9A,0xA4,0xA0,0x95,0x87,0x86, -0x8E,0x95,0x92,0x7D,0x7B,0x89,0x86,0x76,0x6E,0x77,0x8C,0x8B,0x82,0x87,0x82,0x7D, -0x7D,0x7D,0x7C,0x6F,0x70,0x82,0x81,0x76,0x6F,0x71,0x75,0x78,0x78,0x78,0x82,0x88, -0x8D,0x8F,0x93,0x97,0x8C,0x86,0x8D,0x8C,0x8F,0x94,0x92,0x8E,0x8F,0x99,0xA9,0xA5, -0x8F,0x77,0x64,0x67,0x70,0x72,0x69,0x6A,0x73,0x74,0x74,0x81,0x8E,0x88,0x7F,0x7D, -0x79,0x75,0x76,0x79,0x79,0x79,0x7D,0x84,0x8F,0x8C,0x88,0x8C,0x87,0x7B,0x7A,0x7E, -0x7E,0x7D,0x79,0x81,0x93,0x91,0x83,0x87,0x8C,0x81,0x71,0x7E,0x87,0x72,0x5E,0x60, -0x6E,0x77,0x76,0x7B,0x7F,0x77,0x6F,0x75,0x86,0x90,0x90,0x7E,0x66,0x66,0x70,0x7E, -0x88,0x82,0x80,0x87,0x96,0x96,0x8D,0x8B,0x92,0x95,0x91,0x96,0x91,0x85,0x76,0x6F, -0x76,0x7E,0x84,0x86,0x85,0x85,0x87,0x8A,0x8C,0x88,0x85,0x80,0x78,0x76,0x78,0x7B, -0x76,0x6E,0x73,0x7E,0x90,0x8D,0x78,0x70,0x77,0x7F,0x7F,0x80,0x81,0x88,0x92,0x8D, -0x95,0xAD,0xAD,0x9D,0x9D,0x9D,0x95,0x95,0x8A,0x76,0x71,0x79,0x82,0x84,0x82,0x81, -0x75,0x6C,0x70,0x6E,0x70,0x7C,0x8B,0x86,0x71,0x6C,0x73,0x81,0x8B,0x7F,0x7A,0x83, -0x8E,0x96,0x8D,0x7F,0x79,0x79,0x81,0x7E,0x76,0x7A,0x78,0x78,0x81,0x8C,0x92,0x83, -0x78,0x7C,0x79,0x70,0x74,0x84,0x8C,0x7D,0x76,0x7C,0x7E,0x72,0x6D,0x76,0x71,0x66, -0x6D,0x71,0x75,0x76,0x6B,0x6B,0x70,0x6C,0x67,0x70,0x7E,0x8A,0x95,0x94,0x7E,0x79, -0x83,0x83,0x7D,0x7D,0x81,0x7D,0x82,0x89,0x85,0x8A,0x8B,0x7B,0x7B,0x7F,0x6F,0x74, -0x7A,0x74,0x80,0x92,0x8E,0x80,0x85,0x8F,0x8F,0x8D,0x82,0x73,0x71,0x79,0x77,0x70, -0x71,0x7A,0x76,0x76,0x82,0x7F,0x6F,0x62,0x62,0x71,0x77,0x7B,0x82,0x7C,0x78,0x7F, -0x88,0x8D,0x8A,0x7A,0x73,0x89,0x98,0x8F,0x8F,0x96,0x98,0x91,0x87,0x88,0x8B,0x8B, -0x88,0x7D,0x79,0x7C,0x77,0x7E,0x8E,0x86,0x76,0x77,0x7F,0x86,0x8E,0x93,0x99,0x8D, -0x75,0x6F,0x75,0x71,0x6F,0x75,0x7B,0x80,0x8F,0x91,0x80,0x70,0x7A,0x81,0x85,0x93, -0x9E,0x94,0x87,0x82,0x8E,0xA4,0xA7,0x9E,0x94,0x7E,0x77,0x80,0x71,0x75,0x80,0x86, -0x90,0x92,0x91,0x8F,0x8F,0x90,0x83,0x82,0x91,0x90,0x97,0x87,0x6B,0x6D,0x74,0x6E, -0x65,0x75,0x8C,0x92,0x94,0x83,0x79,0x80,0x7B,0x79,0x75,0x72,0x6B,0x66,0x6F,0x81, -0x91,0x9B,0x9C,0x9C,0x90,0x78,0x7E,0x7E,0x7D,0x75,0x75,0x77,0x64,0x65,0x7C,0x91, -0x9C,0x98,0x85,0x7A,0x6A,0x61,0x69,0x77,0x6F,0x61,0x6D,0x89,0x8D,0x84,0x7B,0x85, -0x96,0x8C,0x84,0x81,0x7B,0x70,0x6A,0x73,0x7A,0x78,0x72,0x6D,0x73,0x74,0x69,0x6A, -0x6E,0x66,0x64,0x79,0x83,0x88,0x8E,0x88,0x7B,0x7D,0x87,0x8F,0x88,0x7C,0x77,0x74, -0x72,0x6C,0x69,0x72,0x81,0x7E,0x73,0x6B,0x6F,0x7B,0x8D,0x9B,0x9C,0x9D,0x92,0x86, -0x86,0x8C,0x8D,0x97,0x9D,0x94,0x84,0x8A,0x8F,0x87,0x7B,0x7C,0x8B,0x92,0x81,0x6D, -0x74,0x85,0x8D,0x85,0x7C,0x86,0x94,0x9D,0x96,0x87,0x85,0x7A,0x6E,0x70,0x77,0x72, -0x68,0x7A,0x89,0x83,0x7F,0x83,0x8D,0x84,0x7B,0x8D,0x94,0x91,0x94,0x98,0x8B,0x81, -0x87,0x89,0x7E,0x76,0x75,0x74,0x74,0x6C,0x66,0x6F,0x7A,0x79,0x74,0x73,0x72,0x6D, -0x68,0x6C,0x7C,0x8D,0x99,0x9A,0x8F,0x8B,0x94,0x8D,0x77,0x74,0x7A,0x7B,0x7B,0x77, -0x74,0x6E,0x65,0x6F,0x81,0x87,0x82,0x7D,0x73,0x6F,0x6B,0x6F,0x7B,0x7C,0x7B,0x8F, -0x99,0x91,0x8F,0x94,0x8D,0x7A,0x74,0x81,0x88,0x87,0x86,0x8A,0x8A,0x8C,0x9A,0xA1, -0x8A,0x7C,0x7F,0x75,0x6E,0x6B,0x66,0x71,0x7F,0x79,0x71,0x7D,0x82,0x77,0x6D,0x71, -0x72,0x62,0x64,0x7B,0x86,0x81,0x81,0x83,0x80,0x7B,0x76,0x80,0x84,0x84,0x8F,0x9F, -0xA6,0xA5,0x9D,0x8D,0x8A,0x91,0x90,0x87,0x6F,0x62,0x76,0x8A,0x88,0x78,0x73,0x7E, -0x7D,0x7B,0x75,0x67,0x6B,0x7D,0x80,0x7A,0x83,0x90,0x93,0x97,0x9A,0x9A,0x92,0x84, -0x7F,0x79,0x7F,0x8C,0x8A,0x83,0x7E,0x7C,0x80,0x91,0x9F,0x9D,0x9B,0x9E,0x99,0x89, -0x7F,0x81,0x8A,0x8E,0x90,0x8F,0x89,0x8C,0x88,0x7E,0x7C,0x70,0x63,0x6A,0x74,0x6B, -0x68,0x6E,0x6F,0x67,0x67,0x78,0x84,0x80,0x83,0x8B,0x8F,0x91,0x94,0x99,0x9A,0x98, -0x93,0x83,0x73,0x6E,0x77,0x7B,0x77,0x76,0x7A,0x7E,0x80,0x84,0x84,0x82,0x7F,0x71, -0x68,0x72,0x7B,0x7B,0x79,0x78,0x7D,0x85,0x7F,0x74,0x70,0x64,0x56,0x57,0x62,0x65, -0x66,0x72,0x7F,0x84,0x86,0x82,0x85,0x8D,0x8A,0x80,0x7D,0x82,0x82,0x7E,0x83,0x88, -0x89,0x92,0x94,0x8B,0x7A,0x69,0x6A,0x7A,0x7D,0x71,0x76,0x81,0x7C,0x6E,0x65,0x70, -0x76,0x70,0x71,0x68,0x62,0x6B,0x76,0x80,0x86,0x85,0x89,0x8F,0x8D,0x83,0x8B,0x9C, -0xA2,0x9C,0x8E,0x88,0x82,0x84,0x89,0x93,0x9D,0x9B,0x95,0x94,0x90,0x87,0x86,0x82, -0x75,0x7B,0x78,0x73,0x73,0x67,0x64,0x70,0x78,0x78,0x7A,0x87,0x8A,0x84,0x8A,0x96, -0x98,0x95,0x98,0x97,0x84,0x77,0x7F,0x84,0x79,0x76,0x71,0x77,0x8A,0x91,0x8E,0x8C, -0x94,0x8F,0x7B,0x75,0x75,0x83,0x86,0x74,0x77,0x8C,0x90,0x8C,0x91,0x91,0x8F,0x90, -0x81,0x72,0x72,0x6F,0x6B,0x70,0x6A,0x63,0x73,0x83,0x7C,0x72,0x7A,0x82,0x7E,0x73, -0x6B,0x70,0x76,0x7E,0x87,0x8A,0x8A,0x89,0x8E,0x8F,0x90,0x98,0x91,0x7D,0x7B,0x8E, -0x99,0x95,0x8E,0x8B,0x92,0x90,0x7F,0x71,0x71,0x7D,0x7E,0x77,0x7D,0x8D,0x9A,0xA4, -0x9A,0x84,0x7E,0x83,0x80,0x75,0x68,0x60,0x60,0x67,0x70,0x70,0x6E,0x6C,0x73,0x7A, -0x7A,0x7C,0x88,0x9B,0x9A,0x8A,0x84,0x81,0x86,0x8C,0x86,0x87,0x8E,0x83,0x77,0x78, -0x75,0x6F,0x70,0x7F,0x7C,0x72,0x74,0x79,0x75,0x65,0x6E,0x80,0x82,0x82,0x75,0x6C, -0x71,0x70,0x6F,0x72,0x7B,0x82,0x7F,0x78,0x6F,0x72,0x83,0x88,0x83,0x84,0x89,0x86, -0x81,0x8A,0x8E,0x8B,0x88,0x8B,0x9B,0x9E,0x8D,0x83,0x82,0x86,0x81,0x70,0x6F,0x88, -0x8F,0x82,0x7A,0x77,0x81,0x91,0x94,0x91,0x8C,0x81,0x82,0x85,0x80,0x83,0x94,0x95, -0x87,0x83,0x8D,0x92,0x8D,0x87,0x7C,0x74,0x6C,0x6A,0x6E,0x75,0x73,0x82,0x93,0x8E, -0x8A,0x90,0x8E,0x88,0x87,0x81,0x84,0x8B,0x89,0x89,0x83,0x77,0x73,0x71,0x79,0x86, -0x8E,0x87,0x76,0x6E,0x6C,0x71,0x78,0x75,0x71,0x6E,0x63,0x68,0x7C,0x82,0x82,0x85, -0x88,0x82,0x82,0x83,0x77,0x67,0x60,0x5C,0x6C,0x7B,0x71,0x72,0x7A,0x7B,0x7E,0x84, -0x82,0x83,0x86,0x81,0x7B,0x79,0x83,0x93,0x9C,0x9D,0x91,0x86,0x89,0x8F,0x8C,0x7F, -0x71,0x6B,0x69,0x6C,0x6E,0x6F,0x75,0x6C,0x5D,0x62,0x7A,0x89,0x7C,0x71,0x87,0x9A, -0x9B,0x9C,0x9B,0x97,0x93,0x8D,0x87,0x87,0x8B,0x84,0x77,0x76,0x78,0x81,0x86,0x87, -0x86,0x7F,0x75,0x76,0x8A,0x9F,0xA0,0x92,0x87,0x8C,0x8F,0x88,0x87,0x8F,0x8F,0x8D, -0x8C,0x7C,0x6D,0x70,0x74,0x75,0x75,0x7A,0x89,0x90,0x86,0x7A,0x72,0x73,0x70,0x70, -0x73,0x7D,0x8A,0x92,0x99,0xA5,0xAC,0xA5,0x90,0x85,0x81,0x74,0x60,0x50,0x57,0x6A, -0x78,0x7E,0x89,0x8F,0x8F,0x8B,0x82,0x83,0x80,0x72,0x68,0x69,0x71,0x77,0x76,0x75, -0x7D,0x87,0x88,0x7A,0x75,0x7F,0x84,0x84,0x85,0x85,0x8B,0x96,0x97,0x86,0x7E,0x89, -0x97,0x99,0x8F,0x82,0x79,0x84,0x91,0x8B,0x7D,0x79,0x7A,0x74,0x6E,0x77,0x7D,0x73, -0x73,0x7E,0x88,0x8D,0x90,0x8C,0x7B,0x72,0x78,0x80,0x7E,0x7F,0x7E,0x79,0x7E,0x81, -0x80,0x7D,0x7B,0x84,0x98,0x9E,0x8D,0x7B,0x78,0x79,0x74,0x73,0x7D,0x88,0x83,0x77, -0x74,0x7A,0x89,0x8B,0x8A,0x8A,0x7D,0x74,0x78,0x7B,0x7D,0x7D,0x73,0x6C,0x71,0x75, -0x76,0x78,0x7E,0x7C,0x73,0x7A,0x7E,0x75,0x6E,0x70,0x7C,0x8A,0x8E,0x8B,0x81,0x7E, -0x76,0x7B,0x8C,0x8F,0x84,0x74,0x6D,0x72,0x79,0x7E,0x80,0x7E,0x85,0x8A,0x81,0x6F, -0x68,0x71,0x73,0x63,0x64,0x78,0x90,0x98,0x8F,0x83,0x81,0x8C,0x85,0x72,0x6C,0x68, -0x6A,0x76,0x80,0x85,0x86,0x85,0x86,0x85,0x84,0x91,0x93,0x7C,0x6E,0x73,0x78,0x79, -0x8C,0x94,0x8F,0x97,0xA2,0x9E,0x94,0x96,0x94,0x89,0x81,0x80,0x7D,0x89,0x93,0x8B, -0x80,0x7C,0x7E,0x7E,0x82,0x80,0x7E,0x81,0x80,0x76,0x66,0x70,0x86,0x7D,0x6B,0x70, -0x83,0x92,0x98,0x95,0x8E,0x91,0x91,0x92,0x95,0x96,0x8D,0x84,0x84,0x86,0x86,0x90, -0x9C,0x92,0x8B,0x93,0x89,0x75,0x6B,0x6B,0x6B,0x69,0x74,0x77,0x69,0x6C,0x79,0x76, -0x79,0x82,0x8A,0x88,0x76,0x62,0x61,0x6D,0x71,0x78,0x85,0x8F,0x8A,0x77,0x7A,0x8B, -0x87,0x81,0x7F,0x7E,0x7D,0x7F,0x7E,0x7D,0x80,0x83,0x8B,0x85,0x75,0x77,0x7A,0x75, -0x7D,0x8E,0x94,0x8A,0x78,0x75,0x7E,0x83,0x84,0x71,0x64,0x6F,0x76,0x7C,0x8B,0x8A, -0x7E,0x88,0x91,0x82,0x76,0x78,0x79,0x74,0x76,0x78,0x79,0x85,0x8E,0x82,0x83,0x90, -0x83,0x6C,0x6D,0x78,0x78,0x7A,0x83,0x87,0x8E,0x93,0x97,0x91,0x84,0x94,0x9F,0x94, -0x82,0x78,0x7A,0x7A,0x7E,0x8B,0x93,0x8D,0x8D,0x90,0x82,0x74,0x77,0x7E,0x7F,0x78, -0x6C,0x72,0x84,0x7E,0x6C,0x69,0x7D,0x8B,0x80,0x74,0x71,0x82,0x8B,0x83,0x72,0x72, -0x88,0x9E,0xA4,0x97,0x86,0x7E,0x7D,0x77,0x72,0x74,0x76,0x78,0x79,0x7D,0x8D,0x8D, -0x8D,0x89,0x7C,0x7B,0x79,0x6D,0x73,0x7F,0x85,0x82,0x77,0x75,0x79,0x7B,0x7A,0x7D, -0x85,0x85,0x85,0x8D,0x8A,0x79,0x66,0x69,0x73,0x75,0x7A,0x88,0x94,0x8D,0x84,0x92, -0x98,0x8C,0x7C,0x7D,0x83,0x78,0x71,0x74,0x7F,0x87,0x93,0x91,0x86,0x7C,0x76,0x7F, -0x7F,0x77,0x70,0x67,0x68,0x72,0x74,0x73,0x70,0x84,0x92,0x7D,0x6E,0x7B,0x85,0x87, -0x87,0x88,0x8A,0x8B,0x8F,0x92,0x8F,0x89,0x86,0x87,0x8B,0x8B,0x97,0xA3,0x99,0x83, -0x78,0x78,0x79,0x71,0x64,0x5E,0x67,0x72,0x6E,0x6D,0x75,0x72,0x6F,0x7B,0x7A,0x6D, -0x6A,0x68,0x71,0x80,0x8C,0x90,0x91,0x94,0x92,0x8B,0x8F,0x8B,0x7E,0x7F,0x79,0x6F, -0x6F,0x7E,0x8B,0x8C,0x8D,0x93,0x8E,0x86,0x7E,0x80,0x8A,0x86,0x76,0x71,0x7D,0x7D, -0x7B,0x80,0x7E,0x7F,0x7E,0x7D,0x77,0x73,0x7C,0x7C,0x7A,0x86,0x91,0x9D,0x9D,0x98, -0x97,0x98,0x9B,0x97,0x8E,0x83,0x80,0x87,0x94,0x92,0x85,0x82,0x86,0x88,0x87,0x7E, -0x7A,0x7B,0x78,0x7D,0x88,0x86,0x86,0x90,0x97,0x8B,0x7E,0x74,0x6C,0x6B,0x70,0x7C, -0x81,0x7B,0x79,0x7D,0x7C,0x86,0x8C,0x81,0x7D,0x85,0x84,0x8F,0xA0,0x96,0x91,0x96, -0x94,0x88,0x7F,0x71,0x5E,0x56,0x5D,0x69,0x67,0x68,0x77,0x89,0x91,0x85,0x71,0x6A, -0x67,0x5B,0x60,0x6F,0x7C,0x88,0x90,0x9A,0x96,0x7D,0x6E,0x76,0x7C,0x75,0x6D,0x72, -0x7B,0x7D,0x7D,0x86,0x90,0x88,0x81,0x85,0x86,0x78,0x6A,0x61,0x5E,0x60,0x6A,0x7B, -0x8C,0x90,0x89,0x85,0x85,0x80,0x79,0x72,0x71,0x7B,0x79,0x6D,0x6C,0x74,0x7D,0x90, -0x9E,0x9F,0x9A,0x8E,0x7F,0x77,0x80,0x85,0x82,0x82,0x89,0x83,0x78,0x7A,0x83,0x80, -0x7F,0x87,0x83,0x7A,0x77,0x77,0x7A,0x82,0x89,0x88,0x7E,0x7D,0x86,0x8B,0x81,0x7E, -0x86,0x87,0x7C,0x76,0x7D,0x8A,0x94,0x99,0x94,0x85,0x82,0x87,0x8E,0x93,0x90,0x85, -0x88,0x8D,0x8C,0x8C,0x85,0x82,0x86,0x82,0x80,0x80,0x83,0x83,0x82,0x82,0x78,0x72, -0x75,0x80,0x8B,0x92,0x8B,0x7C,0x75,0x79,0x78,0x73,0x73,0x73,0x75,0x79,0x7F,0x81, -0x82,0x81,0x87,0x91,0x90,0x79,0x6E,0x6A,0x67,0x70,0x7A,0x84,0x89,0x8A,0x89,0x86, -0x82,0x7D,0x6F,0x67,0x6F,0x6F,0x70,0x7C,0x82,0x86,0x8F,0x97,0x9D,0x94,0x86,0x85, -0x85,0x82,0x7E,0x7B,0x84,0x86,0x81,0x75,0x75,0x81,0x7F,0x71,0x79,0x87,0x7E,0x7C, -0x83,0x88,0x83,0x82,0x83,0x80,0x7A,0x6F,0x6C,0x78,0x83,0x80,0x7C,0x81,0x87,0x89, -0x7F,0x6F,0x76,0x7E,0x7E,0x7D,0x83,0x81,0x7A,0x86,0x93,0x9D,0x97,0x85,0x7A,0x78, -0x7B,0x86,0x88,0x82,0x84,0x89,0x8C,0x86,0x82,0x7F,0x7D,0x87,0x8D,0x83,0x75,0x79, -0x84,0x87,0x85,0x6F,0x69,0x73,0x79,0x7A,0x79,0x79,0x72,0x6C,0x75,0x82,0x85,0x8B, -0x90,0x92,0x98,0x9E,0x9A,0x96,0x8C,0x7C,0x75,0x7B,0x7B,0x82,0x87,0x7C,0x79,0x7C, -0x7D,0x7B,0x7C,0x79,0x71,0x6D,0x6A,0x6D,0x78,0x8D,0x9E,0x9D,0x92,0x85,0x74,0x6F, -0x70,0x73,0x78,0x7A,0x7C,0x8B,0x8F,0x87,0x7B,0x7E,0x7E,0x7A,0x82,0x84,0x7D,0x7B, -0x81,0x88,0x8B,0x85,0x7D,0x73,0x6C,0x63,0x5F,0x6B,0x79,0x83,0x89,0x8B,0x86,0x81, -0x8A,0x93,0x8F,0x83,0x77,0x7A,0x82,0x88,0x8C,0x86,0x80,0x7E,0x83,0x8C,0x8D,0x8B, -0x8E,0x86,0x77,0x75,0x7A,0x79,0x76,0x7B,0x7D,0x7D,0x80,0x84,0x83,0x78,0x73,0x79, -0x74,0x6B,0x69,0x7A,0x86,0x83,0x81,0x83,0x93,0x91,0x7B,0x7A,0x85,0x8D,0x87,0x7D, -0x82,0x82,0x73,0x6A,0x7C,0x8D,0x8D,0x83,0x7B,0x7D,0x80,0x83,0x7E,0x7F,0x86,0x7E, -0x79,0x7C,0x7D,0x7B,0x79,0x7B,0x83,0x87,0x7F,0x7C,0x70,0x66,0x75,0x7A,0x6B,0x68, -0x77,0x85,0x86,0x86,0x8C,0x91,0x8A,0x88,0x92,0x92,0x88,0x85,0x7C,0x70,0x71,0x84, -0x8F,0x8F,0x95,0x8B,0x82,0x89,0x96,0x94,0x91,0x91,0x8A,0x77,0x69,0x6A,0x74,0x88, -0x91,0x87,0x7F,0x7F,0x83,0x80,0x7D,0x7F,0x83,0x8A,0x87,0x7B,0x7C,0x7F,0x76,0x83, -0x94,0x96,0x91,0x8E,0x89,0x82,0x81,0x8C,0x8D,0x86,0x85,0x81,0x85,0x90,0x98,0x96, -0x8D,0x89,0x80,0x77,0x72,0x6D,0x6A,0x5C,0x58,0x65,0x73,0x7C,0x7F,0x80,0x81,0x82, -0x79,0x69,0x70,0x87,0x8A,0x88,0x84,0x7C,0x7D,0x8D,0x99,0x90,0x81,0x70,0x69,0x75, -0x7F,0x7F,0x78,0x7A,0x89,0x8C,0x84,0x7D,0x7A,0x74,0x75,0x7C,0x81,0x82,0x7C,0x75, -0x73,0x71,0x6F,0x73,0x71,0x6C,0x66,0x67,0x69,0x66,0x6F,0x81,0x8C,0x87,0x7E,0x82, -0x8C,0x94,0x98,0x8B,0x84,0x8D,0x8C,0x7F,0x82,0x8A,0x8D,0x8E,0x8F,0x99,0x95,0x84, -0x81,0x89,0x89,0x7C,0x6E,0x6D,0x6F,0x7C,0x89,0x7E,0x73,0x6E,0x6A,0x77,0x87,0x89, -0x83,0x89,0x97,0x9A,0x92,0x90,0x8F,0x85,0x7B,0x76,0x75,0x7B,0x81,0x83,0x7E,0x80, -0x80,0x83,0x87,0x8A,0x8D,0x8E,0x82,0x71,0x6E,0x74,0x7A,0x7B,0x76,0x7A,0x85,0x81, -0x6F,0x69,0x6B,0x70,0x79,0x76,0x6D,0x69,0x74,0x83,0x89,0x80,0x82,0x8B,0x8C,0x88, -0x7F,0x83,0x91,0x8F,0x8B,0x8F,0x8A,0x7A,0x77,0x81,0x7D,0x77,0x7E,0x86,0x89,0x7C, -0x71,0x7C,0x86,0x84,0x7F,0x79,0x74,0x75,0x76,0x79,0x79,0x7A,0x7E,0x7E,0x88,0x8C, -0x87,0x8E,0x8E,0x85,0x81,0x85,0x8C,0x8B,0x88,0x8F,0x99,0x96,0x91,0x94,0x9C,0x94, -0x87,0x85,0x84,0x7E,0x76,0x70,0x6F,0x72,0x74,0x70,0x79,0x8B,0x8C,0x83,0x85,0x8A, -0x83,0x78,0x73,0x78,0x7C,0x7B,0x7D,0x82,0x86,0x8B,0x8F,0x94,0x93,0x8D,0x86,0x85, -0x86,0x7E,0x73,0x6B,0x75,0x87,0x83,0x77,0x7C,0x86,0x87,0x78,0x71,0x7B,0x7B,0x79, -0x7A,0x75,0x77,0x72,0x6C,0x6B,0x71,0x7A,0x79,0x7C,0x7D,0x78,0x79,0x76,0x73,0x73, -0x75,0x78,0x75,0x77,0x7D,0x7D,0x83,0x88,0x92,0x95,0x8C,0x88,0x8A,0x8C,0x8B,0x83, -0x82,0x86,0x82,0x7B,0x78,0x7B,0x7E,0x82,0x7E,0x7A,0x7D,0x7C,0x74,0x71,0x70,0x71, -0x80,0x88,0x76,0x76,0x93,0x94,0x83,0x7D,0x81,0x80,0x7F,0x80,0x81,0x89,0x91,0x91, -0x94,0x9B,0x97,0x8D,0x8D,0x82,0x70,0x78,0x8A,0x86,0x79,0x78,0x7E,0x86,0x83,0x7F, -0x80,0x88,0x87,0x7F,0x7E,0x87,0x8B,0x7D,0x6F,0x78,0x8D,0x90,0x87,0x82,0x85,0x85, -0x79,0x77,0x80,0x87,0x8D,0x86,0x74,0x77,0x89,0x8E,0x87,0x81,0x7A,0x7D,0x8A,0x8E, -0x82,0x7D,0x7D,0x74,0x6C,0x6D,0x74,0x73,0x6F,0x6B,0x73,0x72,0x68,0x72,0x7C,0x77, -0x72,0x7F,0x8F,0x8F,0x77,0x68,0x71,0x7E,0x7B,0x7D,0x82,0x82,0x7D,0x83,0x8B,0x90, -0x8B,0x83,0x84,0x84,0x87,0x79,0x67,0x6E,0x7B,0x7F,0x7A,0x78,0x81,0x86,0x83,0x7A, -0x73,0x7D,0x88,0x85,0x7E,0x81,0x89,0x8C,0x90,0x92,0x84,0x7E,0x85,0x87,0x81,0x7C, -0x7C,0x74,0x6E,0x6F,0x74,0x88,0x97,0x8E,0x80,0x7D,0x85,0x89,0x81,0x7B,0x81,0x87, -0x86,0x8B,0x99,0x9F,0x93,0x88,0x87,0x86,0x82,0x8A,0x8D,0x7E,0x7B,0x81,0x88,0x8E, -0x83,0x74,0x7A,0x7A,0x71,0x6F,0x74,0x77,0x7A,0x7D,0x7F,0x7F,0x79,0x73,0x76,0x7C, -0x76,0x75,0x82,0x94,0x95,0x8D,0x8D,0x82,0x78,0x75,0x7D,0x8B,0x8D,0x88,0x8A,0x92, -0x9E,0x97,0x7A,0x71,0x7B,0x82,0x83,0x7E,0x7E,0x79,0x78,0x7A,0x7A,0x7E,0x7F,0x74, -0x76,0x80,0x87,0x8E,0x8A,0x7D,0x7A,0x77,0x76,0x73,0x67,0x6B,0x77,0x7E,0x81,0x81, -0x83,0x8B,0x8D,0x81,0x75,0x78,0x7F,0x7E,0x82,0x84,0x86,0x91,0x95,0x8B,0x88,0x8D, -0x92,0x86,0x74,0x73,0x77,0x7B,0x83,0x81,0x72,0x6E,0x7A,0x80,0x7E,0x75,0x7A,0x80, -0x79,0x7D,0x7E,0x77,0x77,0x78,0x7F,0x7C,0x78,0x83,0x91,0x91,0x92,0x93,0x91,0x8B, -0x7E,0x7A,0x77,0x71,0x78,0x7E,0x81,0x88,0x85,0x7A,0x7E,0x83,0x73,0x6B,0x70,0x71, -0x73,0x7D,0x7E,0x7B,0x7B,0x74,0x6E,0x71,0x79,0x7E,0x80,0x81,0x7D,0x77,0x7E,0x7D, -0x81,0x8A,0x82,0x7A,0x83,0x87,0x7F,0x81,0x81,0x7C,0x7B,0x81,0x8B,0x90,0x8D,0x83, -0x7A,0x79,0x7A,0x82,0x90,0x92,0x8F,0x95,0x97,0x8A,0x77,0x6E,0x72,0x73,0x76,0x77, -0x7D,0x83,0x81,0x82,0x7F,0x83,0x8A,0x85,0x85,0x84,0x7F,0x7F,0x88,0x8F,0x8A,0x8E, -0x8D,0x89,0x8F,0x8D,0x89,0x94,0x92,0x89,0x8F,0x98,0x92,0x89,0x88,0x8A,0x84,0x7B, -0x78,0x73,0x78,0x7E,0x7A,0x76,0x75,0x79,0x71,0x6B,0x6E,0x6C,0x75,0x7F,0x7A,0x7D, -0x86,0x83,0x80,0x7F,0x79,0x76,0x74,0x74,0x74,0x7C,0x83,0x7C,0x7A,0x83,0x8B,0x82, -0x78,0x7B,0x87,0x8E,0x88,0x81,0x84,0x8B,0x87,0x7E,0x79,0x7E,0x7F,0x7D,0x7C,0x7D, -0x88,0x8A,0x7D,0x7C,0x7C,0x69,0x66,0x76,0x78,0x71,0x76,0x88,0x93,0x87,0x7D,0x82, -0x81,0x7A,0x7F,0x87,0x81,0x6B,0x66,0x7E,0x95,0x8F,0x79,0x6B,0x6F,0x72,0x69,0x6E, -0x84,0x8F,0x8C,0x8A,0x93,0x98,0x90,0x8A,0x84,0x7F,0x7B,0x7C,0x82,0x82,0x7D,0x7B, -0x7F,0x86,0x8D,0x8E,0x87,0x81,0x7D,0x7C,0x7A,0x83,0x8E,0x92,0x8E,0x89,0x87,0x86, -0x85,0x86,0x8A,0x8B,0x84,0x7D,0x80,0x7E,0x72,0x66,0x68,0x76,0x7D,0x81,0x8D,0x98, -0x96,0x87,0x83,0x8B,0x8D,0x8E,0x91,0x8E,0x86,0x7C,0x7C,0x86,0x87,0x82,0x81,0x82, -0x8B,0x8C,0x81,0x7E,0x7E,0x7A,0x70,0x6B,0x6B,0x72,0x78,0x75,0x75,0x76,0x71,0x66, -0x62,0x6B,0x79,0x81,0x83,0x7F,0x7A,0x7F,0x86,0x82,0x82,0x8C,0x8F,0x88,0x82,0x82, -0x83,0x82,0x7F,0x81,0x7C,0x75,0x80,0x8A,0x90,0x8E,0x7D,0x6F,0x67,0x6D,0x7A,0x7F, -0x7C,0x7E,0x86,0x7F,0x74,0x77,0x81,0x7B,0x69,0x6A,0x75,0x79,0x78,0x74,0x73,0x7F, -0x91,0x94,0x88,0x7C,0x74,0x76,0x78,0x78,0x7D,0x88,0x8C,0x8C,0x8D,0x93,0x9D,0x97, -0x8A,0x83,0x85,0x85,0x80,0x85,0x8C,0x8D,0x90,0x8C,0x84,0x7D,0x77,0x75,0x72,0x70, -0x70,0x71,0x76,0x8A,0x8F,0x82,0x7B,0x74,0x71,0x77,0x82,0x82,0x80,0x85,0x8D,0x91, -0x8A,0x82,0x89,0x98,0x99,0x90,0x8C,0x8F,0x97,0x8F,0x7D,0x7D,0x7F,0x7B,0x70,0x68, -0x6F,0x7A,0x81,0x87,0x86,0x85,0x7E,0x77,0x72,0x70,0x6E,0x6D,0x74,0x79,0x81,0x8C, -0x8E,0x88,0x86,0x8A,0x85,0x7B,0x74,0x74,0x7B,0x84,0x8C,0x88,0x86,0x8C,0x90,0x92, -0x8C,0x88,0x85,0x85,0x8D,0x89,0x76,0x71,0x79,0x78,0x73,0x75,0x7F,0x86,0x86,0x88, -0x80,0x73,0x69,0x65,0x6B,0x73,0x73,0x72,0x75,0x75,0x73,0x76,0x85,0x92,0x8B,0x7C, -0x7A,0x82,0x83,0x7E,0x80,0x86,0x88,0x8C,0x8F,0x8D,0x87,0x80,0x80,0x85,0x89,0x8E, -0x96,0x98,0x8E,0x83,0x7C,0x80,0x89,0x88,0x81,0x7E,0x7D,0x76,0x6B,0x6D,0x76,0x75, -0x75,0x75,0x77,0x7A,0x77,0x72,0x79,0x7D,0x71,0x70,0x81,0x8C,0x85,0x7E,0x7D,0x7F, -0x80,0x83,0x87,0x85,0x83,0x87,0x95,0xA1,0x9E,0x90,0x84,0x89,0x8D,0x8C,0x8C,0x8A, -0x8C,0x8B,0x86,0x7E,0x74,0x6B,0x67,0x6A,0x6D,0x70,0x75,0x74,0x75,0x7D,0x75,0x66, -0x67,0x71,0x6C,0x66,0x73,0x84,0x88,0x8A,0x8B,0x89,0x8F,0x8E,0x7F,0x76,0x74,0x7B, -0x8C,0x92,0x94,0x95,0x92,0x96,0x98,0x96,0x8C,0x86,0x81,0x78,0x72,0x6D,0x72,0x7F, -0x81,0x83,0x84,0x81,0x81,0x84,0x85,0x7D,0x72,0x71,0x73,0x73,0x76,0x79,0x77,0x71, -0x7B,0x89,0x82,0x7C,0x7D,0x79,0x80,0x81,0x7D,0x82,0x91,0x9A,0x97,0x94,0x9B,0x9D, -0x9C,0x8D,0x83,0x8A,0x7D,0x73,0x79,0x83,0x83,0x7E,0x81,0x7D,0x79,0x7C,0x73,0x71, -0x76,0x6C,0x63,0x69,0x6D,0x6C,0x76,0x7F,0x7E,0x79,0x7C,0x75,0x73,0x70,0x6D,0x79, -0x85,0x7B,0x72,0x7D,0x91,0x95,0x90,0x8A,0x89,0x95,0x8E,0x89,0x96,0x93,0x89,0x8D, -0x91,0x88,0x83,0x84,0x7F,0x7F,0x7E,0x75,0x79,0x89,0x8A,0x84,0x78,0x6E,0x6C,0x69, -0x61,0x57,0x61,0x6D,0x73,0x82,0x89,0x85,0x86,0x89,0x8E,0x8C,0x89,0x8B,0x88,0x8F, -0x93,0x94,0x9A,0x93,0x83,0x85,0x8A,0x8C,0x87,0x86,0x7D,0x7F,0x8F,0x90,0x92,0x9B, -0x94,0x87,0x82,0x83,0x83,0x84,0x85,0x79,0x7A,0x77,0x6D,0x70,0x77,0x74,0x6F,0x6F, -0x72,0x75,0x7D,0x7E,0x81,0x93,0x84,0x74,0x7A,0x7F,0x7F,0x80,0x7E,0x82,0x85,0x85, -0x7F,0x7E,0x86,0x81,0x81,0x7F,0x7F,0x86,0x8C,0x89,0x7F,0x7A,0x79,0x75,0x76,0x76, -0x76,0x77,0x73,0x70,0x60,0x63,0x72,0x73,0x6C,0x68,0x6A,0x71,0x78,0x81,0x87,0x83, -0x7E,0x88,0x8C,0x85,0x84,0x8A,0x87,0x7F,0x83,0x8D,0x93,0x90,0x94,0x92,0x85,0x82, -0x8A,0x93,0x90,0x82,0x7F,0x7B,0x79,0x81,0x7E,0x7D,0x7F,0x84,0x83,0x7F,0x86,0x7D, -0x6F,0x72,0x77,0x81,0x88,0x84,0x83,0x87,0x8A,0x7F,0x7A,0x7C,0x7D,0x83,0x83,0x6F, -0x6F,0x7E,0x91,0x94,0x89,0x8E,0x94,0x92,0x86,0x85,0x91,0x88,0x77,0x7B,0x83,0x84, -0x77,0x7A,0x80,0x7A,0x74,0x79,0x7E,0x77,0x6F,0x74,0x72,0x6D,0x77,0x7F,0x84,0x87, -0x86,0x85,0x83,0x7C,0x77,0x7C,0x82,0x7E,0x7A,0x79,0x83,0x8C,0x8C,0x8A,0x7F,0x76, -0x76,0x7C,0x80,0x7F,0x7D,0x81,0x82,0x83,0x83,0x85,0x86,0x7E,0x7B,0x82,0x79,0x79, -0x83,0x82,0x7B,0x78,0x7D,0x82,0x84,0x78,0x6E,0x6E,0x79,0x7B,0x77,0x71,0x72,0x82, -0x8F,0x88,0x7F,0x81,0x8D,0x90,0x8D,0x80,0x75,0x82,0x87,0x7B,0x72,0x7C,0x85,0x89, -0x8A,0x88,0x82,0x87,0x89,0x81,0x7E,0x84,0x8A,0x8E,0x93,0x90,0x91,0x91,0x85,0x83, -0x8A,0x89,0x8F,0x8F,0x81,0x7B,0x83,0x89,0x86,0x7A,0x70,0x6B,0x6A,0x6C,0x6E,0x7C, -0x87,0x89,0x84,0x81,0x84,0x84,0x81,0x81,0x84,0x8D,0x8E,0x87,0x7E,0x7A,0x82,0x8F, -0x90,0x82,0x79,0x7F,0x86,0x82,0x7D,0x84,0x8F,0x8F,0x8C,0x8B,0x8B,0x7D,0x75,0x72, -0x6A,0x66,0x61,0x5C,0x5B,0x5E,0x5F,0x69,0x77,0x7B,0x79,0x7A,0x79,0x7E,0x86,0x86, -0x85,0x8A,0x90,0x94,0x97,0x9B,0x99,0x91,0x85,0x83,0x8C,0x88,0x79,0x71,0x74,0x72, -0x6E,0x77,0x83,0x82,0x81,0x81,0x80,0x82,0x7C,0x7B,0x7D,0x74,0x75,0x7C,0x7D,0x80, -0x7A,0x74,0x7E,0x8A,0x87,0x7E,0x7E,0x85,0x85,0x81,0x82,0x86,0x81,0x7C,0x79,0x79, -0x7C,0x79,0x80,0x8B,0x8A,0x84,0x86,0x8F,0x94,0x91,0x90,0x90,0x90,0x8D,0x86,0x80, -0x7C,0x80,0x84,0x82,0x84,0x81,0x7D,0x75,0x6B,0x6D,0x69,0x6B,0x75,0x77,0x74,0x77, -0x82,0x89,0x82,0x7C,0x7D,0x88,0x91,0x8C,0x78,0x6D,0x71,0x75,0x79,0x7E,0x7E,0x7B, -0x7E,0x80,0x7F,0x85,0x8F,0x9B,0x9E,0x91,0x86,0x8C,0x93,0x88,0x7B,0x74,0x7A,0x83, -0x83,0x7F,0x7E,0x7E,0x80,0x79,0x71,0x75,0x7F,0x79,0x6F,0x73,0x7A,0x7B,0x7E,0x85, -0x84,0x7F,0x7D,0x79,0x79,0x82,0x85,0x86,0x8F,0x95,0x90,0x8D,0x96,0x92,0x83,0x7E, -0x72,0x6E,0x7C,0x82,0x84,0x8D,0x92,0x8F,0x8B,0x88,0x7B,0x73,0x77,0x71,0x62,0x64, -0x72,0x71,0x6F,0x73,0x7A,0x79,0x78,0x77,0x7C,0x86,0x8A,0x87,0x81,0x7E,0x85,0x89, -0x8A,0x8C,0x90,0x91,0x8D,0x85,0x83,0x87,0x8C,0x8B,0x8A,0x85,0x78,0x71,0x71,0x75, -0x7A,0x7F,0x84,0x81,0x7F,0x82,0x83,0x80,0x79,0x7B,0x83,0x79,0x6F,0x6F,0x76,0x7E, -0x82,0x7D,0x70,0x69,0x75,0x83,0x8C,0x8B,0x84,0x8B,0x93,0x91,0x83,0x78,0x7D,0x85, -0x91,0x9A,0x92,0x8D,0x91,0x94,0x97,0x96,0x8D,0x7C,0x69,0x6D,0x7E,0x84,0x89,0x8F, -0x8A,0x7F,0x7B,0x7A,0x7A,0x76,0x6B,0x5F,0x5C,0x60,0x6E,0x7C,0x7C,0x77,0x78,0x7E, -0x81,0x83,0x83,0x7C,0x80,0x8F,0x8F,0x88,0x8F,0x9A,0xA0,0xA0,0x96,0x87,0x7E,0x7E, -0x7A,0x7A,0x84,0x83,0x7D,0x84,0x84,0x76,0x6F,0x80,0x90,0x89,0x76,0x6D,0x70,0x72, -0x70,0x75,0x7A,0x77,0x6C,0x6A,0x71,0x73,0x75,0x79,0x80,0x86,0x85,0x8A,0x89,0x85, -0x87,0x86,0x84,0x8D,0x92,0x81,0x6E,0x70,0x80,0x8A,0x85,0x7C,0x74,0x74,0x77,0x75, -0x77,0x7F,0x7B,0x77,0x7A,0x77,0x76,0x84,0x91,0x93,0x7E,0x6C,0x74,0x80,0x7E,0x7C, -0x7E,0x7B,0x6E,0x6A,0x74,0x7A,0x84,0x8B,0x8C,0x86,0x80,0x8D,0x94,0x8C,0x8A,0x89, -0x7F,0x78,0x7F,0x8D,0x90,0x84,0x74,0x73,0x7B,0x82,0x87,0x8A,0x8E,0x8B,0x90,0x98, -0x94,0x88,0x85,0x87,0x83,0x7C,0x79,0x81,0x83,0x7A,0x75,0x7A,0x82,0x7D,0x7B,0x75, -0x69,0x6A,0x73,0x7E,0x8B,0x8F,0x93,0x93,0x8F,0x88,0x84,0x89,0x8A,0x87,0x7F,0x7A, -0x88,0x94,0x90,0x88,0x7F,0x7C,0x7D,0x7E,0x84,0x84,0x80,0x7C,0x82,0x8A,0x85,0x84, -0x88,0x82,0x7B,0x82,0x89,0x83,0x7F,0x81,0x7B,0x73,0x78,0x7D,0x78,0x6D,0x6C,0x76, -0x7E,0x82,0x7C,0x72,0x73,0x76,0x74,0x74,0x7B,0x81,0x7E,0x82,0x8D,0x89,0x83,0x82, -0x84,0x85,0x7D,0x76,0x6F,0x6E,0x7C,0x82,0x81,0x82,0x82,0x80,0x7C,0x7F,0x87,0x87, -0x81,0x7B,0x76,0x7A,0x83,0x85,0x85,0x82,0x81,0x82,0x83,0x82,0x80,0x85,0x8B,0x8B, -0x82,0x76,0x71,0x6D,0x72,0x75,0x73,0x79,0x84,0x87,0x85,0x7B,0x76,0x7C,0x84,0x89, -0x82,0x78,0x77,0x75,0x76,0x83,0x88,0x82,0x83,0x84,0x83,0x87,0x8C,0x8A,0x84,0x79, -0x75,0x81,0x84,0x80,0x85,0x8D,0x8E,0x8E,0x8C,0x85,0x7F,0x82,0x85,0x87,0x86,0x7C, -0x7D,0x83,0x82,0x82,0x7E,0x78,0x76,0x7B,0x7F,0x80,0x8A,0x93,0x8D,0x82,0x7E,0x85, -0x93,0x98,0x8F,0x8F,0x8C,0x8B,0x8C,0x89,0x83,0x78,0x79,0x7A,0x71,0x6B,0x6E,0x77, -0x78,0x7B,0x88,0x8A,0x82,0x7B,0x79,0x7B,0x7B,0x78,0x7D,0x80,0x7C,0x75,0x72,0x75, -0x7B,0x87,0x86,0x7C,0x7B,0x7D,0x79,0x79,0x82,0x82,0x75,0x72,0x7D,0x91,0xA1,0xA2, -0x95,0x84,0x79,0x78,0x77,0x70,0x6A,0x66,0x66,0x69,0x69,0x6A,0x76,0x80,0x77,0x6F, -0x73,0x71,0x71,0x77,0x7F,0x86,0x88,0x83,0x83,0x86,0x89,0x8C,0x87,0x8A,0x8B,0x88, -0x7F,0x78,0x81,0x8D,0x8C,0x84,0x83,0x87,0x89,0x88,0x8C,0x92,0x92,0x8B,0x84,0x80, -0x82,0x81,0x7D,0x76,0x77,0x78,0x70,0x70,0x7D,0x8A,0x89,0x89,0x86,0x7A,0x75,0x7A, -0x7D,0x7D,0x7F,0x87,0x8E,0x83,0x78,0x7E,0x8B,0x99,0x9F,0x99,0x92,0x8C,0x82,0x7C, -0x7F,0x82,0x80,0x80,0x85,0x8C,0x8A,0x87,0x8F,0x8A,0x7B,0x70,0x6D,0x6D,0x72,0x75, -0x76,0x7B,0x82,0x85,0x82,0x7F,0x82,0x85,0x87,0x7A,0x68,0x6C,0x7D,0x81,0x7D,0x80, -0x85,0x86,0x84,0x7B,0x78,0x7C,0x7A,0x79,0x81,0x89,0x91,0x93,0x92,0x92,0x8F,0x8D, -0x8D,0x8D,0x88,0x80,0x78,0x7B,0x88,0x85,0x7B,0x71,0x6B,0x71,0x7A,0x78,0x6A,0x62, -0x66,0x6C,0x73,0x81,0x87,0x86,0x86,0x7F,0x7A,0x7A,0x7D,0x83,0x87,0x88,0x88,0x8A, -0x93,0x9A,0x94,0x86,0x7F,0x80,0x81,0x83,0x83,0x7C,0x77,0x78,0x7B,0x80,0x8B,0x91, -0x8A,0x7F,0x6D,0x60,0x65,0x72,0x6F,0x6C,0x70,0x74,0x7C,0x7F,0x81,0x80,0x7B,0x74, -0x70,0x72,0x72,0x6E,0x74,0x79,0x79,0x84,0x94,0x98,0x95,0x95,0x95,0x93,0x90,0x8A, -0x88,0x8C,0x89,0x81,0x7D,0x79,0x79,0x85,0x8C,0x84,0x79,0x76,0x7B,0x82,0x85,0x7F, -0x76,0x73,0x71,0x72,0x7B,0x82,0x7B,0x71,0x78,0x7D,0x78,0x73,0x72,0x7B,0x7E,0x7D, -0x82,0x83,0x82,0x8A,0x8F,0x92,0x95,0x96,0x97,0x96,0x9A,0x9D,0x96,0x8A,0x7F,0x76, -0x78,0x84,0x88,0x84,0x80,0x80,0x83,0x85,0x7D,0x74,0x71,0x75,0x76,0x77,0x7F,0x83, -0x86,0x8D,0x8F,0x8C,0x89,0x84,0x7F,0x7F,0x7B,0x7B,0x83,0x88,0x87,0x88,0x8A,0x86, -0x7A,0x6C,0x70,0x81,0x91,0x8B,0x77,0x78,0x87,0x8E,0x89,0x78,0x6A,0x65,0x6A,0x73, -0x78,0x79,0x78,0x7B,0x78,0x71,0x77,0x84,0x84,0x7A,0x72,0x6E,0x70,0x78,0x79,0x79, -0x81,0x8D,0x94,0x92,0x8D,0x8C,0x8D,0x8A,0x85,0x7F,0x78,0x77,0x7C,0x7C,0x71,0x6B, -0x73,0x7F,0x87,0x85,0x81,0x84,0x88,0x7D,0x72,0x71,0x71,0x71,0x71,0x7A,0x83,0x83, -0x8A,0x90,0x91,0x8E,0x88,0x87,0x92,0x93,0x80,0x78,0x84,0x85,0x7F,0x7E,0x82,0x86, -0x8B,0x8A,0x81,0x82,0x87,0x8A,0x8C,0x89,0x85,0x83,0x82,0x82,0x7E,0x7C,0x7C,0x80, -0x76,0x70,0x7C,0x86,0x7E,0x71,0x6E,0x72,0x7A,0x7C,0x80,0x95,0x9F,0x92,0x84,0x84, -0x8B,0x8E,0x8A,0x7F,0x7B,0x7E,0x7F,0x7C,0x7D,0x81,0x86,0x87,0x80,0x7A,0x76,0x70, -0x6E,0x72,0x75,0x7B,0x80,0x82,0x7B,0x7A,0x81,0x7D,0x73,0x70,0x78,0x7A,0x73,0x74, -0x81,0x90,0x97,0x8D,0x87,0x88,0x85,0x86,0x88,0x81,0x7F,0x82,0x82,0x88,0x8C,0x86, -0x81,0x84,0x85,0x85,0x79,0x6D,0x70,0x78,0x78,0x71,0x6F,0x76,0x7B,0x7B,0x73,0x70, -0x7B,0x7A,0x79,0x81,0x84,0x84,0x8C,0x91,0x8A,0x83,0x89,0x8D,0x84,0x7F,0x85,0x8C, -0x8F,0x88,0x83,0x88,0x8D,0x86,0x83,0x8C,0x89,0x80,0x7A,0x76,0x75,0x7F,0x86,0x7A, -0x75,0x7F,0x7F,0x80,0x84,0x82,0x7A,0x77,0x74,0x73,0x75,0x74,0x73,0x75,0x7B,0x7B, -0x81,0x84,0x85,0x8A,0x89,0x84,0x7A,0x6E,0x73,0x80,0x88,0x8B,0x91,0x95,0x8B,0x88, -0x89,0x81,0x7E,0x7E,0x7D,0x7D,0x7C,0x7E,0x78,0x77,0x75,0x74,0x7A,0x77,0x74,0x78, -0x77,0x77,0x7D,0x85,0x88,0x85,0x83,0x80,0x80,0x7E,0x7C,0x86,0x8E,0x8A,0x85,0x82, -0x84,0x7A,0x71,0x70,0x72,0x7D,0x87,0x8F,0x94,0x8F,0x84,0x85,0x8D,0x91,0x90,0x91, -0x8C,0x83,0x87,0x87,0x83,0x89,0x88,0x82,0x7F,0x7A,0x7B,0x7A,0x75,0x75,0x7F,0x83, -0x7F,0x78,0x6E,0x5F,0x63,0x76,0x7B,0x7F,0x80,0x81,0x7F,0x85,0x8B,0x8D,0x92,0x8A, -0x7E,0x82,0x84,0x7F,0x84,0x8B,0x8B,0x8A,0x8F,0x8E,0x89,0x85,0x83,0x8A,0x90,0x7C, -0x69,0x76,0x84,0x7E,0x7C,0x7E,0x7C,0x81,0x80,0x7A,0x79,0x77,0x75,0x7B,0x7F,0x7C, -0x75,0x73,0x72,0x73,0x73,0x76,0x77,0x7D,0x86,0x84,0x86,0x88,0x85,0x84,0x7B,0x77, -0x7D,0x7E,0x81,0x84,0x84,0x88,0x91,0x97,0x95,0x91,0x8C,0x85,0x7E,0x7A,0x78,0x7A, -0x82,0x87,0x7F,0x79,0x7D,0x77,0x6D,0x73,0x7D,0x86,0x85,0x7E,0x7D,0x78,0x6E,0x67, -0x69,0x76,0x81,0x86,0x85,0x84,0x8D,0x90,0x84,0x7F,0x7E,0x7B,0x7C,0x7D,0x7F,0x83, -0x85,0x85,0x86,0x85,0x82,0x7C,0x75,0x71,0x70,0x70,0x7C,0x8B,0x8D,0x86,0x7B,0x79, -0x7E,0x75,0x72,0x7F,0x83,0x79,0x79,0x82,0x83,0x80,0x83,0x81,0x7F,0x7E,0x7B,0x83, -0x94,0x95,0x8A,0x8C,0x91,0x8C,0x8C,0x8E,0x8B,0x8B,0x8A,0x79,0x77,0x81,0x80,0x7F, -0x7D,0x78,0x75,0x74,0x76,0x7A,0x7E,0x7D,0x77,0x7B,0x84,0x87,0x88,0x85,0x7F,0x7A, -0x74,0x79,0x83,0x8A,0x87,0x85,0x86,0x7E,0x78,0x77,0x79,0x7F,0x89,0x8B,0x89,0x8B, -0x8D,0x8E,0x91,0x91,0x86,0x7D,0x7E,0x7F,0x82,0x88,0x8B,0x85,0x7F,0x7E,0x80,0x81, -0x77,0x71,0x6E,0x6D,0x77,0x80,0x7D,0x7B,0x81,0x82,0x83,0x86,0x84,0x7B,0x76,0x7F, -0x86,0x88,0x86,0x84,0x89,0x8B,0x7F,0x73,0x76,0x81,0x8B,0x8A,0x7F,0x79,0x7F,0x80, -0x78,0x77,0x7C,0x81,0x81,0x81,0x83,0x83,0x81,0x7F,0x7D,0x75,0x70,0x77,0x74,0x68, -0x6D,0x78,0x78,0x75,0x77,0x7D,0x84,0x81,0x76,0x76,0x7C,0x79,0x78,0x86,0x95,0x9B, -0x99,0x8F,0x82,0x7A,0x78,0x6D,0x64,0x70,0x7C,0x7C,0x7F,0x87,0x8B,0x8A,0x89,0x8E, -0x8D,0x89,0x82,0x7A,0x79,0x87,0x91,0x8B,0x86,0x86,0x86,0x85,0x81,0x75,0x79,0x8C, -0x87,0x78,0x78,0x7C,0x7B,0x77,0x73,0x78,0x7E,0x77,0x72,0x7E,0x8F,0x8E,0x89,0x8B, -0x8C,0x8A,0x85,0x85,0x85,0x86,0x8C,0x91,0x93,0x92,0x8D,0x87,0x81,0x7C,0x7F,0x78, -0x73,0x78,0x7A,0x7D,0x82,0x8B,0x8F,0x8D,0x8A,0x8B,0x8C,0x85,0x82,0x86,0x84,0x7A, -0x7D,0x83,0x86,0x7B,0x6A,0x62,0x5E,0x5E,0x60,0x68,0x74,0x78,0x79,0x7E,0x81,0x83, -0x89,0x8F,0x94,0x95,0x95,0x93,0x92,0x97,0x8B,0x7C,0x7D,0x80,0x82,0x80,0x7F,0x80, -0x85,0x84,0x7F,0x80,0x83,0x79,0x71,0x72,0x73,0x73,0x75,0x83,0x8B,0x7A,0x6E,0x6F, -0x6D,0x62,0x5F,0x6B,0x74,0x6E,0x6E,0x78,0x81,0x7F,0x73,0x76,0x83,0x87,0x87,0x88, -0x95,0x9A,0x96,0x91,0x95,0xA2,0x9A,0x87,0x7A,0x78,0x7A,0x7D,0x7E,0x83,0x8C,0x8E, -0x87,0x7A,0x76,0x6E,0x64,0x68,0x70,0x71,0x6D,0x72,0x7A,0x82,0x88,0x85,0x7D,0x79, -0x75,0x71,0x6F,0x73,0x7A,0x7F,0x8C,0x98,0x9A,0x99,0x97,0x91,0x8B,0x85,0x83,0x88, -0x91,0x8F,0x86,0x87,0x8D,0x8D,0x8C,0x8C,0x86,0x81,0x83,0x82,0x7A,0x76,0x72,0x6E, -0x6D,0x6D,0x70,0x74,0x76,0x76,0x77,0x7B,0x85,0x8B,0x8E,0x91,0x8A,0x83,0x7E,0x82, -0x94,0x9A,0x8E,0x88,0x92,0x97,0x8B,0x8A,0x97,0x9B,0x8E,0x82,0x80,0x7E,0x7A,0x7D, -0x78,0x7A,0x84,0x85,0x80,0x7E,0x7D,0x7D,0x7D,0x7E,0x7C,0x72,0x69,0x67,0x6A,0x70, -0x77,0x7D,0x7C,0x7A,0x7F,0x89,0x87,0x7A,0x77,0x7E,0x7E,0x80,0x82,0x86,0x8B,0x8D, -0x90,0x91,0x8E,0x8D,0x87,0x84,0x81,0x7D,0x75,0x6C,0x71,0x7A,0x7D,0x7C,0x77,0x71, -0x6A,0x65,0x63,0x69,0x73,0x7C,0x7E,0x76,0x71,0x78,0x79,0x79,0x81,0x86,0x84,0x83, -0x7D,0x73,0x75,0x85,0x8D,0x84,0x7C,0x7B,0x7F,0x80,0x80,0x80,0x86,0x8E,0x8D,0x8D, -0x8F,0x88,0x7E,0x7D,0x83,0x8B,0x8A,0x7F,0x79,0x78,0x76,0x75,0x79,0x7B,0x73,0x6C, -0x6E,0x7A,0x85,0x8B,0x8B,0x85,0x84,0x88,0x89,0x8A,0x8D,0x85,0x7F,0x7D,0x83,0x88, -0x83,0x7F,0x87,0x90,0x8E,0x88,0x86,0x8B,0x93,0x91,0x87,0x7F,0x81,0x88,0x8A,0x89, -0x85,0x81,0x7C,0x79,0x77,0x7B,0x82,0x88,0x8B,0x87,0x7F,0x78,0x76,0x79,0x7D,0x7D, -0x80,0x83,0x82,0x7E,0x7B,0x7C,0x83,0x83,0x81,0x81,0x80,0x80,0x84,0x81,0x77,0x79, -0x7D,0x7F,0x81,0x80,0x84,0x86,0x81,0x81,0x80,0x81,0x7A,0x69,0x68,0x7A,0x8F,0x97, -0x90,0x8A,0x87,0x86,0x81,0x7B,0x78,0x6C,0x6D,0x7C,0x80,0x79,0x7A,0x86,0x8A,0x7F, -0x76,0x7A,0x7B,0x6E,0x64,0x74,0x86,0x85,0x80,0x83,0x88,0x8A,0x86,0x7A,0x6F,0x74, -0x7E,0x85,0x8A,0x8B,0x85,0x80,0x81,0x84,0x8A,0x84,0x7F,0x81,0x80,0x76,0x73,0x7E, -0x89,0x8C,0x87,0x7F,0x82,0x88,0x84,0x7B,0x78,0x7B,0x7B,0x78,0x77,0x74,0x73,0x75, -0x74,0x72,0x75,0x79,0x7D,0x80,0x7E,0x7C,0x83,0x8E,0x93,0x96,0x92,0x92,0x94,0x8C, -0x89,0x8A,0x88,0x81,0x7C,0x80,0x8B,0x87,0x7C,0x78,0x77,0x73,0x74,0x7F,0x80,0x79, -0x76,0x74,0x77,0x80,0x84,0x84,0x83,0x7E,0x73,0x70,0x79,0x80,0x81,0x7F,0x84,0x8B, -0x82,0x76,0x7B,0x8C,0x94,0x8C,0x86,0x82,0x84,0x87,0x8B,0x93,0x91,0x8A,0x88,0x88, -0x86,0x84,0x83,0x85,0x7F,0x76,0x76,0x7D,0x84,0x89,0x84,0x85,0x88,0x83,0x83,0x88, -0x87,0x7D,0x7A,0x7C,0x7B,0x75,0x75,0x7D,0x83,0x83,0x7F,0x86,0x8C,0x84,0x79,0x7A, -0x84,0x87,0x89,0x8C,0x86,0x7A,0x72,0x73,0x79,0x82,0x83,0x7F,0x81,0x80,0x7B,0x78, -0x79,0x7A,0x74,0x6E,0x71,0x71,0x6A,0x64,0x69,0x7A,0x86,0x81,0x76,0x73,0x7A,0x7E, -0x76,0x73,0x7A,0x85,0x87,0x89,0x8D,0x87,0x7E,0x80,0x7D,0x7B,0x85,0x89,0x8A,0x88, -0x84,0x80,0x7E,0x88,0x86,0x7A,0x80,0x88,0x86,0x80,0x7E,0x84,0x84,0x7D,0x74,0x73, -0x76,0x71,0x68,0x6A,0x7B,0x87,0x89,0x83,0x7F,0x7F,0x82,0x83,0x82,0x84,0x85,0x7E, -0x77,0x7B,0x88,0x92,0xA1,0xA4,0x98,0x90,0x90,0x89,0x80,0x7C,0x7B,0x7C,0x82,0x85, -0x83,0x87,0x88,0x84,0x7E,0x7B,0x7E,0x7D,0x79,0x79,0x79,0x82,0x8F,0x90,0x8A,0x83, -0x7D,0x80,0x82,0x77,0x6D,0x6F,0x76,0x7B,0x80,0x82,0x84,0x89,0x87,0x7D,0x83,0x8C, -0x8A,0x7E,0x74,0x73,0x7D,0x87,0x86,0x80,0x83,0x87,0x89,0x87,0x87,0x85,0x7E,0x79, -0x79,0x7A,0x7E,0x82,0x7D,0x76,0x78,0x84,0x8E,0x90,0x83,0x7A,0x7C,0x7D,0x76,0x7D, -0x86,0x82,0x79,0x78,0x76,0x73,0x77,0x79,0x7D,0x80,0x82,0x86,0x90,0x95,0x94,0x89, -0x7E,0x78,0x79,0x7C,0x7B,0x80,0x83,0x87,0x87,0x84,0x83,0x81,0x77,0x77,0x83,0x84, -0x79,0x78,0x7D,0x7E,0x84,0x8D,0x89,0x82,0x81,0x7F,0x7F,0x7E,0x7E,0x7B,0x75,0x6C, -0x70,0x78,0x78,0x70,0x6B,0x74,0x7E,0x7D,0x79,0x7C,0x81,0x8D,0x92,0x8E,0x8A,0x88, -0x82,0x7A,0x76,0x7C,0x83,0x81,0x7E,0x84,0x90,0x91,0x8E,0x8B,0x81,0x76,0x6D,0x73, -0x7D,0x7C,0x7A,0x75,0x74,0x77,0x77,0x7E,0x84,0x81,0x79,0x6D,0x68,0x67,0x6A,0x7F, -0x8B,0x84,0x80,0x84,0x85,0x8A,0x92,0x90,0x88,0x89,0x85,0x7B,0x77,0x7D,0x85,0x88, -0x8B,0x8B,0x85,0x85,0x7B,0x7E,0x98,0xA0,0x98,0x99,0x9A,0x8D,0x80,0x83,0x86,0x7F, -0x77,0x71,0x75,0x79,0x74,0x6C,0x65,0x6B,0x77,0x7A,0x7E,0x7E,0x7B,0x7B,0x7D,0x81, -0x84,0x89,0x8A,0x85,0x8A,0x90,0x86,0x82,0x89,0x83,0x7C,0x84,0x8B,0x89,0x8E,0x91, -0x8F,0x8E,0x8E,0x90,0x91,0x86,0x76,0x72,0x76,0x78,0x77,0x7F,0x87,0x89,0x80,0x75, -0x75,0x7A,0x7B,0x74,0x74,0x76,0x76,0x72,0x71,0x76,0x7B,0x7C,0x7B,0x7B,0x7D,0x78, -0x73,0x79,0x84,0x8A,0x87,0x85,0x82,0x80,0x86,0x8C,0x89,0x85,0x7F,0x7D,0x84,0x89, -0x86,0x85,0x83,0x7C,0x7B,0x80,0x7A,0x6D,0x67,0x6C,0x77,0x7D,0x7F,0x83,0x80,0x79, -0x7A,0x7A,0x7C,0x79,0x76,0x77,0x78,0x81,0x87,0x87,0x8A,0x92,0x94,0x8D,0x89,0x84, -0x7A,0x79,0x7C,0x7E,0x83,0x85,0x8A,0x91,0x8B,0x82,0x7F,0x82,0x82,0x7D,0x79,0x73, -0x72,0x77,0x7A,0x79,0x79,0x7E,0x80,0x7E,0x7A,0x71,0x76,0x83,0x85,0x80,0x7D,0x7F, -0x84,0x82,0x81,0x8C,0x98,0x98,0x89,0x7F,0x7D,0x85,0x8D,0x89,0x84,0x85,0x88,0x85, -0x7E,0x78,0x7C,0x83,0x7E,0x7A,0x88,0x93,0x8C,0x85,0x84,0x7E,0x81,0x82,0x7B,0x79, -0x75,0x72,0x78,0x7D,0x79,0x79,0x84,0x87,0x7C,0x79,0x84,0x85,0x85,0x82,0x7D,0x82, -0x85,0x86,0x8A,0x8D,0x8C,0x87,0x84,0x82,0x7A,0x7A,0x7C,0x80,0x83,0x88,0x8D,0x97, -0x97,0x8A,0x84,0x89,0x84,0x7A,0x75,0x73,0x77,0x75,0x6C,0x6D,0x78,0x7B,0x73,0x71, -0x7B,0x81,0x7D,0x75,0x6F,0x73,0x79,0x74,0x74,0x7C,0x7D,0x7E,0x8A,0x95,0x94,0x92, -0x8D,0x87,0x84,0x7C,0x78,0x7F,0x83,0x80,0x7A,0x7E,0x85,0x82,0x7C,0x7B,0x80,0x81, -0x7C,0x75,0x75,0x79,0x72,0x68,0x68,0x6C,0x6F,0x72,0x76,0x7F,0x84,0x85,0x83,0x7B, -0x79,0x78,0x78,0x7D,0x7F,0x7E,0x81,0x89,0x94,0x92,0x84,0x7F,0x80,0x7E,0x7A,0x7C, -0x81,0x84,0x81,0x79,0x79,0x88,0x93,0x90,0x8A,0x8F,0x95,0x8F,0x86,0x84,0x88,0x89, -0x85,0x80,0x7A,0x7A,0x7C,0x7D,0x7C,0x75,0x7A,0x85,0x85,0x7D,0x75,0x71,0x79,0x82, -0x82,0x85,0x8C,0x91,0x8C,0x88,0x89,0x8D,0x92,0x8F,0x89,0x84,0x7C,0x7B,0x86,0x8D, -0x8A,0x8A,0x8C,0x88,0x83,0x7E,0x7E,0x83,0x86,0x85,0x88,0x89,0x81,0x7B,0x7D,0x7D, -0x78,0x75,0x73,0x73,0x74,0x6E,0x6E,0x7C,0x86,0x86,0x82,0x7E,0x7F,0x80,0x7C,0x7D, -0x89,0x8C,0x88,0x89,0x8D,0x8A,0x86,0x89,0x8B,0x83,0x78,0x7C,0x81,0x7C,0x76,0x76, -0x7F,0x89,0x8A,0x88,0x85,0x83,0x7A,0x72,0x70,0x6F,0x6E,0x70,0x76,0x75,0x73,0x70, -0x6F,0x77,0x81,0x7D,0x78,0x7C,0x7F,0x7C,0x78,0x7A,0x82,0x87,0x8A,0x89,0x86,0x7D, -0x76,0x7D,0x86,0x85,0x7F,0x7B,0x76,0x76,0x75,0x75,0x7B,0x86,0x89,0x86,0x83,0x80, -0x7D,0x7B,0x7A,0x74,0x6D,0x6E,0x79,0x7E,0x7D,0x7C,0x82,0x86,0x8A,0x8A,0x88,0x87, -0x83,0x7D,0x7E,0x81,0x7F,0x77,0x70,0x77,0x82,0x88,0x85,0x81,0x84,0x8B,0x8D,0x87, -0x86,0x89,0x87,0x86,0x8A,0x8E,0x91,0x8F,0x8D,0x89,0x89,0x8B,0x86,0x81,0x75,0x68, -0x6A,0x72,0x77,0x7D,0x83,0x83,0x7B,0x76,0x79,0x82,0x89,0x88,0x89,0x8E,0x90,0x8B, -0x86,0x85,0x84,0x80,0x83,0x88,0x85,0x7E,0x7C,0x84,0x8B,0x8D,0x8B,0x8C,0x8E,0x8A, -0x80,0x7F,0x82,0x81,0x7E,0x7C,0x82,0x89,0x89,0x84,0x85,0x88,0x85,0x80,0x7C,0x74, -0x6D,0x6C,0x73,0x7D,0x81,0x7C,0x7A,0x7E,0x7D,0x76,0x77,0x79,0x77,0x78,0x79,0x81, -0x8A,0x8E,0x8F,0x8C,0x8C,0x8B,0x82,0x75,0x6E,0x6D,0x75,0x7B,0x7D,0x7E,0x80,0x83, -0x84,0x81,0x7C,0x7C,0x81,0x88,0x89,0x80,0x73,0x70,0x6E,0x6C,0x72,0x78,0x77,0x73, -0x74,0x74,0x71,0x6F,0x70,0x78,0x7F,0x85,0x85,0x82,0x80,0x7C,0x7E,0x86,0x88,0x86, -0x85,0x85,0x84,0x7F,0x7E,0x80,0x7E,0x7E,0x80,0x7C,0x78,0x7B,0x80,0x85,0x92,0x9C, -0x97,0x91,0x92,0x87,0x79,0x74,0x74,0x76,0x73,0x71,0x75,0x80,0x8A,0x8B,0x86,0x85, -0x84,0x7A,0x71,0x74,0x7A,0x7B,0x7D,0x83,0x8F,0x9B,0x9D,0x96,0x8D,0x83,0x7F,0x7D, -0x7D,0x84,0x88,0x87,0x86,0x86,0x8F,0x9D,0xA0,0x99,0x8D,0x7E,0x74,0x76,0x78,0x78, -0x7D,0x7F,0x7F,0x81,0x7F,0x76,0x76,0x7F,0x7D,0x78,0x7D,0x81,0x81,0x81,0x86,0x8B, -0x8A,0x86,0x82,0x79,0x72,0x73,0x76,0x7A,0x80,0x8A,0x91,0x92,0x8E,0x88,0x84,0x83, -0x82,0x81,0x85,0x87,0x81,0x77,0x76,0x7B,0x7F,0x7C,0x75,0x6E,0x68,0x6A,0x6C,0x6C, -0x6B,0x6C,0x72,0x78,0x7E,0x80,0x7F,0x83,0x83,0x7B,0x7A,0x7F,0x86,0x87,0x88,0x8E, -0x94,0x97,0x95,0x92,0x92,0x88,0x79,0x6F,0x6F,0x74,0x6E,0x71,0x7E,0x7D,0x7A,0x7E, -0x81,0x80,0x77,0x70,0x6B,0x6A,0x6E,0x6E,0x76,0x82,0x86,0x8A,0x8E,0x88,0x7F,0x7E, -0x83,0x81,0x7B,0x79,0x7F,0x82,0x7F,0x7A,0x77,0x7D,0x88,0x8A,0x8A,0x8D,0x8E,0x8B, -0x8B,0x8E,0x91,0x8A,0x7D,0x79,0x76,0x75,0x74,0x73,0x7D,0x86,0x86,0x83,0x7F,0x7B, -0x79,0x77,0x75,0x78,0x81,0x86,0x88,0x8D,0x8C,0x85,0x84,0x85,0x85,0x80,0x79,0x7A, -0x7B,0x7D,0x80,0x84,0x8B,0x8C,0x85,0x83,0x8D,0x94,0x90,0x8E,0x8C,0x85,0x82,0x82, -0x82,0x84,0x82,0x80,0x81,0x81,0x78,0x74,0x78,0x7F,0x84,0x85,0x82,0x80,0x7F,0x7F, -0x80,0x7E,0x7B,0x7B,0x7E,0x7E,0x7F,0x82,0x85,0x89,0x8B,0x88,0x85,0x86,0x89,0x8B, -0x85,0x80,0x7F,0x86,0x8F,0x95,0x96,0x93,0x87,0x80,0x7F,0x7D,0x76,0x72,0x6B,0x67, -0x69,0x6B,0x6E,0x72,0x75,0x76,0x7C,0x83,0x80,0x76,0x74,0x74,0x7A,0x82,0x81,0x7F, -0x82,0x82,0x7C,0x81,0x8F,0x8E,0x82,0x7B,0x75,0x71,0x74,0x7D,0x84,0x87,0x84,0x81, -0x81,0x7D,0x71,0x6F,0x74,0x77,0x77,0x73,0x75,0x82,0x83,0x7A,0x74,0x79,0x7E,0x7B, -0x7C,0x7E,0x84,0x8B,0x87,0x84,0x86,0x8B,0x87,0x7E,0x80,0x80,0x7B,0x7B,0x7B,0x80, -0x8A,0x8C,0x89,0x87,0x88,0x86,0x7D,0x7B,0x7F,0x84,0x83,0x85,0x8B,0x8B,0x8E,0x91, -0x88,0x77,0x6F,0x74,0x76,0x72,0x76,0x80,0x89,0x8F,0x89,0x7F,0x7C,0x7C,0x7E,0x7D, -0x7E,0x7E,0x79,0x77,0x78,0x7E,0x88,0x8C,0x8C,0x8C,0x8E,0x8D,0x83,0x7C,0x81,0x87, -0x89,0x82,0x80,0x7F,0x81,0x8C,0x91,0x8E,0x8A,0x8E,0x88,0x7C,0x74,0x73,0x75,0x76, -0x77,0x7C,0x80,0x7F,0x7D,0x80,0x82,0x7D,0x7A,0x83,0x85,0x7D,0x80,0x84,0x84,0x81, -0x83,0x85,0x88,0x83,0x78,0x78,0x7F,0x82,0x83,0x80,0x7D,0x83,0x83,0x7C,0x76,0x79, -0x81,0x8A,0x87,0x7C,0x7C,0x8A,0x8D,0x8A,0x86,0x7D,0x78,0x7A,0x74,0x6B,0x6A,0x70, -0x78,0x7A,0x7C,0x7C,0x88,0x8E,0x87,0x85,0x89,0x85,0x85,0x86,0x82,0x7D,0x80,0x7F, -0x7D,0x83,0x82,0x7B,0x7F,0x7C,0x74,0x75,0x76,0x75,0x70,0x74,0x79,0x79,0x7A,0x7B, -0x83,0x8F,0x8D,0x87,0x89,0x88,0x83,0x7C,0x77,0x76,0x7D,0x81,0x80,0x7C,0x7F,0x7F, -0x7E,0x7E,0x81,0x7F,0x7B,0x7C,0x7A,0x75,0x76,0x7D,0x83,0x85,0x82,0x87,0x8A,0x8A, -0x85,0x7F,0x7A,0x82,0x84,0x7F,0x7C,0x7E,0x85,0x82,0x82,0x7C,0x7B,0x7A,0x75,0x71, -0x7A,0x81,0x8B,0x8F,0x8D,0x83,0x7B,0x7D,0x7F,0x7D,0x81,0x88,0x8B,0x8A,0x88,0x8B, -0x88,0x89,0x80,0x83,0x8F,0x95,0x8D,0x85,0x80,0x82,0x87,0x8D,0x8F,0x87,0x7F,0x73, -0x72,0x73,0x76,0x81,0x8E,0x8B,0x82,0x75,0x75,0x78,0x7C,0x7F,0x7E,0x86,0x8B,0x85, -0x83,0x82,0x80,0x83,0x84,0x85,0x7F,0x82,0x7E,0x7D,0x84,0x84,0x80,0x87,0x8A,0x87, -0x84,0x8A,0x8E,0x82,0x7A,0x76,0x75,0x70,0x65,0x67,0x78,0x82,0x8A,0x88,0x85,0x80, -0x81,0x80,0x7A,0x7B,0x7D,0x7A,0x7C,0x78,0x72,0x78,0x7C,0x7C,0x78,0x7C,0x7A,0x75, -0x76,0x74,0x74,0x81,0x82,0x87,0x92,0x97,0x97,0x8D,0x82,0x78,0x7C,0x87,0x8B,0x88, -0x82,0x78,0x77,0x78,0x7C,0x7D,0x76,0x72,0x70,0x73,0x77,0x70,0x70,0x75,0x7A,0x85, -0x8A,0x8D,0x87,0x81,0x7C,0x78,0x73,0x74,0x75,0x78,0x79,0x7B,0x80,0x87,0x8F,0x8E, -0x88,0x8C,0x8E,0x85,0x80,0x7F,0x84,0x82,0x81,0x83,0x84,0x85,0x80,0x7A,0x7D,0x80, -0x7C,0x76,0x79,0x7E,0x7D,0x7D,0x7F,0x80,0x83,0x87,0x83,0x83,0x85,0x80,0x7B,0x7D, -0x84,0x8A,0x89,0x83,0x81,0x7F,0x7F,0x84,0x89,0x89,0x89,0x89,0x87,0x82,0x80,0x7D, -0x81,0x85,0x80,0x7B,0x7E,0x7E,0x81,0x87,0x86,0x83,0x81,0x81,0x82,0x80,0x7D,0x7E, -0x82,0x87,0x8A,0x89,0x87,0x85,0x81,0x84,0x89,0x8B,0x8B,0x8A,0x85,0x80,0x7E,0x7F, -0x81,0x7F,0x7B,0x76,0x7B,0x85,0x88,0x84,0x85,0x88,0x8D,0x8A,0x86,0x89,0x8A,0x81, -0x76,0x72,0x73,0x72,0x6B,0x6D,0x7A,0x82,0x81,0x7D,0x7C,0x7F,0x7D,0x74,0x70,0x71, -0x74,0x7D,0x88,0x8C,0x8A,0x86,0x87,0x8B,0x89,0x81,0x78,0x75,0x71,0x69,0x69,0x77, -0x82,0x85,0x87,0x88,0x86,0x86,0x7F,0x74,0x73,0x7A,0x7A,0x71,0x6F,0x70,0x72,0x7C, -0x83,0x81,0x7B,0x76,0x70,0x6D,0x71,0x73,0x78,0x80,0x84,0x87,0x8B,0x8F,0x8D,0x84, -0x7E,0x7F,0x82,0x80,0x7A,0x77,0x7E,0x87,0x89,0x88,0x87,0x81,0x79,0x79,0x7F,0x81, -0x7F,0x87,0x8F,0x90,0x8D,0x88,0x86,0x85,0x85,0x8A,0x8E,0x85,0x7C,0x79,0x7E,0x85, -0x84,0x7E,0x7F,0x85,0x85,0x82,0x7F,0x80,0x85,0x8B,0x8C,0x8D,0x8C,0x85,0x7F,0x7F, -0x80,0x7F,0x7B,0x7B,0x7E,0x7F,0x7E,0x7F,0x83,0x83,0x84,0x86,0x87,0x85,0x81,0x7E, -0x7B,0x7A,0x7D,0x84,0x8D,0x8F,0x8D,0x8F,0x90,0x8C,0x84,0x7E,0x7F,0x7F,0x7B,0x7A, -0x7F,0x81,0x81,0x82,0x84,0x81,0x78,0x71,0x70,0x6F,0x6A,0x6B,0x73,0x79,0x7B,0x7B, -0x7A,0x7B,0x7F,0x86,0x88,0x88,0x8D,0x8C,0x86,0x82,0x84,0x88,0x8C,0x8E,0x88,0x80, -0x77,0x76,0x7C,0x7C,0x79,0x78,0x7C,0x80,0x7C,0x7C,0x82,0x83,0x80,0x79,0x78,0x79, -0x77,0x79,0x7D,0x82,0x84,0x7F,0x79,0x75,0x70,0x6A,0x65,0x67,0x6E,0x73,0x7B,0x80, -0x80,0x7F,0x7E,0x82,0x87,0x8C,0x91,0x91,0x8C,0x84,0x85,0x88,0x87,0x86,0x86,0x86, -0x85,0x7E,0x7E,0x80,0x83,0x84,0x7E,0x77,0x73,0x70,0x70,0x73,0x75,0x79,0x7E,0x83, -0x89,0x89,0x88,0x82,0x76,0x70,0x74,0x79,0x7D,0x83,0x89,0x8D,0x93,0x94,0x8F,0x90, -0x8D,0x87,0x81,0x80,0x83,0x87,0x8D,0x8F,0x8A,0x88,0x87,0x89,0x87,0x81,0x7B,0x75, -0x71,0x6E,0x6F,0x76,0x79,0x7E,0x87,0x8A,0x87,0x86,0x86,0x83,0x7C,0x7A,0x7C,0x7F, -0x81,0x83,0x85,0x87,0x8B,0x91,0x94,0x97,0x96,0x91,0x88,0x7F,0x7E,0x87,0x91,0x92, -0x8D,0x8B,0x8A,0x83,0x7F,0x79,0x74,0x6F,0x67,0x63,0x6B,0x76,0x7C,0x81,0x84,0x81, -0x81,0x86,0x85,0x7E,0x75,0x71,0x73,0x77,0x78,0x7B,0x81,0x85,0x84,0x82,0x82,0x85, -0x84,0x7F,0x7D,0x7E,0x7F,0x7C,0x7D,0x86,0x8B,0x89,0x86,0x82,0x80,0x7C,0x7A,0x7B, -0x77,0x6E,0x68,0x6A,0x6F,0x6F,0x6D,0x6C,0x6E,0x71,0x73,0x78,0x7B,0x7E,0x7F,0x7D, -0x81,0x80,0x7A,0x77,0x78,0x78,0x76,0x7A,0x82,0x8C,0x90,0x89,0x80,0x81,0x80,0x83, -0x86,0x85,0x8C,0x92,0x8F,0x8A,0x8B,0x8E,0x8A,0x86,0x83,0x7D,0x79,0x76,0x71,0x71, -0x74,0x7A,0x81,0x80,0x7D,0x78,0x75,0x7A,0x7E,0x84,0x84,0x82,0x82,0x85,0x86,0x84, -0x83,0x86,0x88,0x90,0x90,0x8E,0x91,0x92,0x8D,0x8C,0x91,0x95,0x8E,0x88,0x83,0x84, -0x8A,0x88,0x7D,0x75,0x76,0x7C,0x7B,0x7A,0x7E,0x82,0x8C,0x8E,0x85,0x7B,0x76,0x7E, -0x83,0x7C,0x7A,0x7F,0x85,0x86,0x7E,0x7C,0x80,0x83,0x7F,0x7F,0x80,0x7C,0x77,0x7A, -0x7B,0x81,0x87,0x8B,0x89,0x82,0x81,0x82,0x85,0x85,0x7F,0x7D,0x81,0x89,0x89,0x7A, -0x73,0x76,0x76,0x75,0x73,0x77,0x81,0x80,0x7B,0x76,0x77,0x7C,0x80,0x84,0x81,0x7D, -0x81,0x84,0x87,0x86,0x83,0x83,0x7A,0x74,0x75,0x7A,0x7B,0x76,0x7A,0x82,0x86,0x80, -0x77,0x78,0x7E,0x7F,0x7A,0x71,0x73,0x7D,0x85,0x87,0x89,0x8F,0x90,0x8A,0x82,0x7E, -0x79,0x75,0x74,0x78,0x78,0x78,0x7C,0x82,0x83,0x7D,0x7B,0x81,0x85,0x7F,0x78,0x75, -0x77,0x7B,0x7D,0x7C,0x83,0x8D,0x8C,0x84,0x7D,0x7E,0x81,0x83,0x84,0x80,0x7C,0x7C, -0x7C,0x80,0x84,0x87,0x8A,0x8B,0x81,0x79,0x7E,0x85,0x88,0x84,0x7A,0x7B,0x87,0x8B, -0x85,0x80,0x81,0x82,0x82,0x7F,0x7E,0x7F,0x80,0x7E,0x7E,0x7F,0x7F,0x7E,0x7D,0x79, -0x73,0x73,0x79,0x7B,0x7F,0x86,0x8E,0x93,0x94,0x92,0x8F,0x8A,0x80,0x78,0x78,0x81, -0x89,0x8F,0x92,0x94,0x95,0x92,0x8E,0x89,0x84,0x7B,0x77,0x7A,0x7B,0x79,0x7B,0x87, -0x8E,0x85,0x7A,0x7A,0x81,0x82,0x78,0x6C,0x6A,0x73,0x79,0x7C,0x7A,0x7B,0x81,0x86, -0x88,0x85,0x81,0x81,0x89,0x88,0x82,0x82,0x83,0x82,0x7B,0x75,0x79,0x85,0x8D,0x84, -0x7E,0x85,0x87,0x81,0x7D,0x78,0x73,0x73,0x71,0x72,0x77,0x78,0x76,0x77,0x78,0x74, -0x7A,0x83,0x82,0x7A,0x77,0x78,0x79,0x7B,0x7C,0x7D,0x87,0x89,0x84,0x83,0x83,0x81, -0x7D,0x7B,0x7A,0x80,0x82,0x7D,0x78,0x7A,0x79,0x80,0x8C,0x90,0x8B,0x83,0x7F,0x7D, -0x7C,0x78,0x74,0x77,0x7B,0x77,0x7D,0x8C,0x92,0x90,0x88,0x7D,0x7A,0x7B,0x75,0x70, -0x78,0x7F,0x81,0x88,0x87,0x82,0x88,0x8C,0x86,0x88,0x87,0x7C,0x76,0x80,0x86,0x8E, -0x92,0x87,0x80,0x7F,0x79,0x77,0x85,0x87,0x7B,0x7F,0x86,0x86,0x89,0x8B,0x8C,0x8B, -0x83,0x7C,0x81,0x89,0x84,0x81,0x82,0x7E,0x7B,0x84,0x82,0x7B,0x7D,0x79,0x74,0x74, -0x7A,0x7C,0x80,0x84,0x84,0x8B,0x8A,0x86,0x84,0x83,0x80,0x82,0x8B,0x8E,0x83,0x83, -0x83,0x7D,0x7E,0x7F,0x77,0x7C,0x7A,0x79,0x80,0x80,0x7E,0x7D,0x81,0x7D,0x79,0x84, -0x8A,0x86,0x88,0x89,0x8B,0x82,0x79,0x70,0x74,0x79,0x6F,0x70,0x78,0x75,0x7E,0x85, -0x84,0x85,0x7E,0x7C,0x79,0x76,0x6B,0x6B,0x7C,0x87,0x84,0x89,0x89,0x8C,0x93,0x90, -0x8B,0x84,0x8E,0x87,0x7E,0x82,0x84,0x84,0x81,0x78,0x78,0x79,0x7B,0x7C,0x80,0x7C, -0x73,0x7B,0x7F,0x72,0x6A,0x6C,0x6E,0x73,0x74,0x7D,0x80,0x86,0x88,0x88,0x8C,0x8A, -0x85,0x88,0x7B,0x72,0x7B,0x82,0x85,0x82,0x82,0x81,0x82,0x87,0x89,0x81,0x80,0x84, -0x87,0x84,0x79,0x77,0x84,0x7C,0x7B,0x79,0x7B,0x79,0x73,0x73,0x74,0x7A,0x7A,0x71, -0x78,0x7F,0x7B,0x84,0x84,0x83,0x86,0x8D,0x8E,0x87,0x88,0x86,0x80,0x8D,0x86,0x7F, -0x85,0x86,0x8A,0x86,0x84,0x85,0x8B,0x8D,0x7B,0x76,0x82,0x82,0x84,0x88,0x8A,0x90, -0x90,0x8A,0x7F,0x7C,0x7D,0x72,0x75,0x7B,0x6C,0x72,0x7B,0x7F,0x80,0x84,0x87,0x8A, -0x87,0x7D,0x73,0x7C,0x83,0x7E,0x82,0x8A,0x96,0x9D,0x96,0x88,0x82,0x83,0x81,0x79, -0x7F,0x7F,0x7D,0x80,0x80,0x87,0x8D,0x89,0x88,0x80,0x77,0x72,0x75,0x79,0x76,0x7D, -0x80,0x79,0x7C,0x7D,0x7A,0x7C,0x7A,0x75,0x76,0x7A,0x7C,0x7C,0x82,0x7F,0x7A,0x7E, -0x7F,0x82,0x86,0x82,0x80,0x80,0x84,0x85,0x86,0x83,0x7E,0x83,0x88,0x82,0x81,0x83, -0x7F,0x7D,0x7D,0x80,0x80,0x7D,0x76,0x74,0x7B,0x7C,0x7A,0x7C,0x78,0x78,0x7A,0x7A, -0x78,0x7B,0x83,0x82,0x7B,0x7E,0x82,0x84,0x86,0x89,0x8D,0x8C,0x84,0x7E,0x7B,0x77, -0x72,0x79,0x82,0x81,0x7E,0x7B,0x79,0x76,0x77,0x7B,0x83,0x8C,0x8E,0x8E,0x8D,0x86, -0x7D,0x81,0x88,0x89,0x83,0x7D,0x7B,0x80,0x84,0x7E,0x77,0x7A,0x80,0x81,0x76,0x6B, -0x6C,0x75,0x7F,0x89,0x8B,0x8B,0x8A,0x88,0x87,0x87,0x87,0x81,0x7E,0x7E,0x7E,0x7D, -0x81,0x81,0x7B,0x77,0x7B,0x81,0x88,0x8E,0x8E,0x8B,0x8C,0x8D,0x89,0x85,0x84,0x7E, -0x7A,0x7A,0x7E,0x80,0x7E,0x7F,0x81,0x80,0x7F,0x81,0x81,0x7E,0x7C,0x79,0x7B,0x80, -0x7F,0x7C,0x80,0x8E,0x94,0x90,0x8B,0x8B,0x8A,0x81,0x7B,0x80,0x84,0x85,0x84,0x7F, -0x7C,0x82,0x86,0x8B,0x8E,0x88,0x7F,0x7F,0x80,0x7D,0x7A,0x75,0x72,0x73,0x74,0x76, -0x7E,0x85,0x83,0x7D,0x7A,0x79,0x75,0x73,0x76,0x82,0x87,0x7F,0x7B,0x78,0x78,0x7B, -0x80,0x87,0x8A,0x82,0x79,0x7B,0x7D,0x79,0x79,0x81,0x83,0x83,0x85,0x80,0x7E,0x80, -0x80,0x7D,0x82,0x87,0x83,0x7D,0x78,0x75,0x75,0x74,0x77,0x7D,0x7D,0x79,0x7A,0x7F, -0x82,0x7E,0x78,0x72,0x6A,0x6A,0x77,0x7F,0x7D,0x7C,0x7F,0x82,0x85,0x87,0x86,0x85, -0x85,0x81,0x7C,0x7A,0x80,0x8B,0x8F,0x93,0x94,0x90,0x8C,0x8B,0x8C,0x88,0x7F,0x7A, -0x7D,0x85,0x8A,0x86,0x84,0x84,0x81,0x7D,0x76,0x74,0x74,0x75,0x74,0x72,0x7A,0x7F, -0x80,0x86,0x8F,0x8E,0x8A,0x88,0x85,0x88,0x8B,0x8C,0x89,0x8A,0x89,0x88,0x8B,0x87, -0x7E,0x7D,0x7E,0x7B,0x7F,0x86,0x88,0x84,0x83,0x81,0x81,0x86,0x87,0x83,0x81,0x7E, -0x7E,0x7C,0x78,0x74,0x79,0x7A,0x76,0x7D,0x83,0x80,0x7D,0x7A,0x75,0x73,0x71,0x77, -0x7E,0x88,0x94,0x99,0x98,0x90,0x8B,0x8A,0x85,0x80,0x7E,0x7C,0x7B,0x7C,0x84,0x87, -0x81,0x80,0x86,0x8B,0x83,0x72,0x6B,0x6A,0x6C,0x6B,0x68,0x6F,0x78,0x7F,0x7F,0x7C, -0x7E,0x7D,0x78,0x7A,0x79,0x7A,0x7B,0x7F,0x82,0x83,0x88,0x8C,0x8B,0x8F,0x91,0x8D, -0x87,0x81,0x7A,0x72,0x70,0x74,0x77,0x7A,0x7C,0x7E,0x84,0x83,0x84,0x84,0x84,0x87, -0x86,0x7F,0x76,0x73,0x75,0x76,0x74,0x6D,0x6E,0x79,0x7A,0x7B,0x80,0x7E,0x7A,0x7C, -0x84,0x88,0x85,0x87,0x87,0x84,0x82,0x82,0x88,0x8C,0x8E,0x90,0x90,0x8D,0x85,0x7B, -0x78,0x73,0x72,0x77,0x79,0x7A,0x82,0x8D,0x8F,0x8A,0x87,0x86,0x86,0x81,0x79,0x79, -0x7E,0x80,0x7D,0x78,0x78,0x7E,0x8A,0x93,0x8B,0x83,0x83,0x83,0x7F,0x79,0x7C,0x83, -0x88,0x8C,0x89,0x87,0x8C,0x8E,0x8C,0x84,0x81,0x86,0x88,0x85,0x7C,0x7A,0x7E,0x79, -0x76,0x7C,0x84,0x84,0x7C,0x7F,0x88,0x88,0x81,0x7B,0x7C,0x82,0x83,0x83,0x85,0x86, -0x84,0x81,0x84,0x85,0x82,0x7E,0x78,0x7A,0x7F,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x83, -0x86,0x85,0x80,0x77,0x79,0x7E,0x81,0x84,0x87,0x86,0x81,0x7B,0x7B,0x7C,0x79,0x77, -0x78,0x78,0x77,0x77,0x78,0x77,0x78,0x77,0x78,0x7C,0x7A,0x7B,0x80,0x82,0x7E,0x79, -0x77,0x77,0x77,0x77,0x73,0x75,0x79,0x7D,0x7A,0x7A,0x81,0x89,0x89,0x84,0x7D,0x78, -0x7C,0x84,0x85,0x7F,0x78,0x7A,0x82,0x87,0x87,0x87,0x8C,0x8C,0x85,0x82,0x83,0x87, -0x8B,0x87,0x7E,0x79,0x7B,0x7F,0x7E,0x7E,0x7E,0x81,0x84,0x83,0x7E,0x76,0x72,0x6F, -0x70,0x74,0x77,0x7E,0x8A,0x8F,0x90,0x95,0x9B,0x97,0x8C,0x83,0x7F,0x7E,0x7E,0x7F, -0x80,0x86,0x90,0x90,0x8C,0x8B,0x89,0x85,0x81,0x7B,0x77,0x7A,0x82,0x88,0x89,0x8B, -0x8C,0x8B,0x87,0x7B,0x73,0x72,0x73,0x72,0x6F,0x74,0x7C,0x82,0x84,0x85,0x87,0x87, -0x83,0x7F,0x7E,0x83,0x89,0x8B,0x88,0x88,0x8A,0x88,0x83,0x85,0x84,0x81,0x7E,0x7C, -0x77,0x77,0x79,0x79,0x7A,0x7B,0x7C,0x7E,0x7B,0x77,0x75,0x75,0x73,0x72,0x74,0x75, -0x7B,0x82,0x85,0x8A,0x8B,0x84,0x81,0x83,0x82,0x7A,0x74,0x75,0x7B,0x82,0x88,0x87, -0x8A,0x91,0x90,0x8C,0x86,0x7E,0x75,0x70,0x70,0x74,0x7E,0x85,0x87,0x8B,0x89,0x82, -0x7D,0x7B,0x7D,0x7A,0x75,0x6B,0x6A,0x78,0x7F,0x82,0x86,0x84,0x7F,0x75,0x71,0x75, -0x7A,0x7E,0x7D,0x82,0x89,0x88,0x89,0x84,0x7D,0x7B,0x7E,0x85,0x85,0x83,0x88,0x8D, -0x89,0x85,0x87,0x89,0x84,0x7F,0x7E,0x7F,0x80,0x78,0x75,0x7A,0x83,0x88,0x82,0x7C, -0x7B,0x7E,0x7E,0x75,0x76,0x7C,0x7D,0x7E,0x7C,0x77,0x79,0x7F,0x84,0x85,0x83,0x81, -0x84,0x87,0x7E,0x78,0x81,0x8A,0x8D,0x8F,0x8D,0x8C,0x8A,0x89,0x8B,0x8A,0x85,0x81, -0x81,0x81,0x7E,0x82,0x8D,0x8F,0x86,0x7D,0x7D,0x7B,0x7A,0x7D,0x7C,0x78,0x7C,0x80, -0x81,0x81,0x88,0x8F,0x88,0x7F,0x78,0x79,0x7F,0x7C,0x7D,0x83,0x82,0x87,0x8F,0x91, -0x89,0x80,0x80,0x7A,0x76,0x79,0x79,0x7E,0x82,0x83,0x8A,0x87,0x80,0x76,0x75,0x78, -0x7B,0x7B,0x78,0x71,0x74,0x79,0x7D,0x83,0x86,0x87,0x85,0x81,0x7A,0x74,0x76,0x7B, -0x82,0x89,0x88,0x88,0x87,0x86,0x7D,0x75,0x79,0x7A,0x76,0x77,0x7D,0x7B,0x77,0x73, -0x7B,0x7E,0x82,0x82,0x81,0x82,0x7A,0x78,0x7E,0x7A,0x75,0x76,0x79,0x85,0x87,0x87, -0x84,0x88,0x80,0x72,0x71,0x71,0x71,0x78,0x7C,0x7E,0x8E,0x98,0x94,0x8C,0x8D,0x88, -0x84,0x82,0x7C,0x74,0x76,0x75,0x7F,0x85,0x84,0x8B,0x96,0x97,0x89,0x85,0x8B,0x8C, -0x83,0x7D,0x7C,0x81,0x81,0x7C,0x79,0x7C,0x7D,0x7E,0x78,0x75,0x77,0x7E,0x82,0x7E, -0x7F,0x7F,0x86,0x86,0x89,0x87,0x86,0x86,0x90,0x8F,0x86,0x7F,0x7F,0x7E,0x79,0x76, -0x7B,0x7C,0x78,0x78,0x7A,0x86,0x8D,0x8F,0x8B,0x8E,0x8A,0x7E,0x7A,0x83,0x86,0x82, -0x83,0x87,0x85,0x85,0x82,0x77,0x72,0x70,0x6F,0x77,0x80,0x7C,0x75,0x73,0x7C,0x80, -0x85,0x85,0x85,0x84,0x7F,0x7A,0x77,0x7D,0x7D,0x7E,0x7E,0x7C,0x7F,0x85,0x83,0x80, -0x7E,0x82,0x81,0x7E,0x7E,0x77,0x7E,0x86,0x87,0x8B,0x8B,0x88,0x84,0x7E,0x7D,0x7D, -0x81,0x7F,0x78,0x7D,0x81,0x80,0x80,0x7C,0x7C,0x7C,0x7C,0x7D,0x7E,0x80,0x7E,0x7F, -0x81,0x7F,0x82,0x81,0x7C,0x7A,0x77,0x75,0x73,0x77,0x7E,0x82,0x8B,0x90,0x8E,0x8C, -0x83,0x7D,0x7E,0x7E,0x81,0x82,0x85,0x89,0x88,0x81,0x7D,0x84,0x86,0x7C,0x73,0x70, -0x73,0x77,0x7A,0x77,0x75,0x7C,0x80,0x80,0x83,0x80,0x7C,0x82,0x84,0x80,0x7D,0x7D, -0x7E,0x7F,0x82,0x82,0x82,0x84,0x81,0x7B,0x7A,0x7D,0x81,0x82,0x84,0x8A,0x89,0x83, -0x7F,0x82,0x84,0x84,0x80,0x7B,0x7F,0x87,0x86,0x81,0x7E,0x7C,0x78,0x79,0x7E,0x80, -0x81,0x80,0x7F,0x82,0x84,0x89,0x8F,0x91,0x95,0x95,0x8E,0x84,0x7D,0x79,0x76,0x77, -0x7E,0x81,0x82,0x86,0x90,0x96,0x91,0x8A,0x82,0x7D,0x7A,0x75,0x72,0x78,0x82,0x85, -0x86,0x89,0x87,0x82,0x7E,0x7D,0x79,0x72,0x70,0x74,0x7C,0x7F,0x7F,0x85,0x8F,0x8F, -0x8D,0x88,0x80,0x80,0x80,0x7F,0x80,0x83,0x83,0x83,0x86,0x84,0x7D,0x79,0x76,0x72, -0x6A,0x67,0x6D,0x79,0x83,0x88,0x8A,0x88,0x85,0x82,0x81,0x7E,0x76,0x6B,0x6B,0x74, -0x7E,0x83,0x85,0x86,0x86,0x80,0x7B,0x78,0x7C,0x82,0x7F,0x7E,0x84,0x89,0x88,0x86, -0x8B,0x8F,0x87,0x80,0x7D,0x79,0x79,0x7C,0x7C,0x7C,0x7E,0x7E,0x7F,0x83,0x81,0x7D, -0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x82,0x80,0x7C,0x81,0x86,0x82,0x7C,0x7A,0x79,0x7C, -0x7E,0x80,0x87,0x8A,0x85,0x87,0x8E,0x8D,0x85,0x80,0x7C,0x77,0x74,0x72,0x73,0x7B, -0x80,0x82,0x84,0x84,0x84,0x84,0x85,0x87,0x8A,0x88,0x82,0x7F,0x81,0x80,0x83,0x8B, -0x8D,0x8B,0x85,0x7E,0x78,0x76,0x7A,0x80,0x87,0x88,0x82,0x7F,0x7E,0x7F,0x7F,0x7C, -0x78,0x77,0x7C,0x84,0x88,0x86,0x80,0x7E,0x81,0x7F,0x7B,0x76,0x76,0x7B,0x77,0x73, -0x78,0x83,0x87,0x82,0x80,0x81,0x83,0x86,0x82,0x7E,0x80,0x86,0x8A,0x8C,0x90,0x92, -0x8B,0x87,0x85,0x84,0x7F,0x7B,0x7C,0x7E,0x7A,0x7C,0x84,0x86,0x84,0x83,0x85,0x7F, -0x7C,0x7F,0x7C,0x7E,0x7C,0x74,0x70,0x6F,0x76,0x7E,0x82,0x80,0x79,0x77,0x77,0x77, -0x7D,0x81,0x85,0x86,0x81,0x81,0x83,0x8B,0x93,0x90,0x8F,0x89,0x84,0x7E,0x76,0x77, -0x76,0x71,0x71,0x71,0x75,0x7D,0x82,0x81,0x7A,0x76,0x78,0x7C,0x82,0x7C,0x78,0x7E, -0x81,0x81,0x7D,0x7C,0x81,0x7F,0x7C,0x7B,0x7E,0x7F,0x7A,0x78,0x7B,0x80,0x88,0x89, -0x86,0x82,0x82,0x83,0x7E,0x7D,0x7F,0x80,0x82,0x80,0x7D,0x7F,0x80,0x83,0x83,0x80, -0x7F,0x81,0x81,0x7C,0x7A,0x7F,0x84,0x86,0x80,0x7B,0x7E,0x84,0x88,0x85,0x7F,0x7E, -0x7F,0x83,0x80,0x80,0x8C,0x93,0x8F,0x89,0x88,0x8B,0x8A,0x87,0x82,0x7E,0x82,0x86, -0x86,0x85,0x7F,0x7D,0x7F,0x7F,0x7C,0x7C,0x7F,0x7E,0x7A,0x7A,0x7C,0x83,0x89,0x86, -0x83,0x81,0x7F,0x81,0x84,0x83,0x7E,0x7B,0x7C,0x7D,0x83,0x89,0x89,0x85,0x7F,0x82, -0x8A,0x8B,0x82,0x7A,0x7C,0x81,0x83,0x83,0x84,0x88,0x87,0x83,0x7D,0x7B,0x7A,0x7C, -0x7A,0x7A,0x7C,0x7A,0x71,0x6D,0x70,0x72,0x77,0x7F,0x87,0x8A,0x88,0x86,0x83,0x7D, -0x75,0x6E,0x70,0x77,0x7E,0x83,0x87,0x8A,0x8B,0x8A,0x87,0x84,0x80,0x7B,0x78,0x76, -0x73,0x71,0x77,0x7E,0x81,0x81,0x83,0x88,0x8D,0x89,0x7F,0x7A,0x7D,0x7C,0x75,0x74, -0x78,0x7D,0x7D,0x7B,0x7B,0x7E,0x80,0x82,0x83,0x83,0x83,0x82,0x82,0x83,0x7E,0x7B, -0x7E,0x82,0x85,0x88,0x8B,0x87,0x80,0x7D,0x80,0x87,0x88,0x7E,0x7A,0x7D,0x84,0x86, -0x83,0x82,0x81,0x80,0x7C,0x79,0x7B,0x80,0x82,0x82,0x80,0x7D,0x7A,0x7D,0x82,0x80, -0x80,0x82,0x83,0x83,0x7E,0x7C,0x84,0x89,0x86,0x7D,0x7F,0x85,0x87,0x89,0x8B,0x8B, -0x8E,0x8B,0x83,0x7A,0x76,0x78,0x7A,0x7C,0x7E,0x82,0x87,0x8B,0x89,0x83,0x7C,0x7A, -0x7B,0x7B,0x7A,0x79,0x79,0x7B,0x7D,0x7F,0x84,0x8C,0x92,0x90,0x87,0x80,0x80,0x83, -0x83,0x82,0x84,0x85,0x85,0x85,0x85,0x80,0x7A,0x76,0x74,0x76,0x79,0x7B,0x7C,0x7D, -0x7F,0x81,0x82,0x81,0x7F,0x83,0x84,0x7D,0x79,0x7B,0x80,0x86,0x8E,0x8D,0x82,0x7D, -0x7C,0x7B,0x7A,0x75,0x6F,0x73,0x76,0x76,0x7C,0x88,0x8C,0x86,0x84,0x80,0x7B,0x7C, -0x77,0x72,0x73,0x75,0x75,0x7A,0x85,0x85,0x82,0x83,0x7F,0x79,0x7D,0x7E,0x7D,0x7E, -0x7D,0x7D,0x82,0x87,0x83,0x7C,0x80,0x83,0x82,0x7D,0x75,0x79,0x82,0x81,0x7C,0x7F, -0x85,0x86,0x84,0x83,0x7C,0x7B,0x80,0x80,0x7F,0x7B,0x7A,0x7F,0x82,0x7C,0x7F,0x85, -0x83,0x7A,0x7A,0x7F,0x84,0x90,0x97,0x91,0x93,0x98,0x8F,0x83,0x7C,0x7B,0x80,0x88, -0x85,0x7F,0x83,0x88,0x84,0x83,0x7E,0x76,0x74,0x78,0x78,0x7C,0x7F,0x79,0x79,0x82, -0x86,0x8C,0x98,0x8F,0x81,0x7A,0x73,0x71,0x79,0x78,0x7D,0x87,0x8F,0x8A,0x88,0x8D, -0x8C,0x89,0x81,0x78,0x78,0x81,0x7A,0x7D,0x83,0x81,0x83,0x8E,0x8D,0x87,0x83,0x83, -0x7E,0x7D,0x77,0x75,0x85,0x85,0x7A,0x73,0x79,0x7B,0x7E,0x7B,0x74,0x71,0x79,0x7C, -0x7A,0x7F,0x7E,0x83,0x85,0x7E,0x7F,0x80,0x82,0x80,0x7A,0x80,0x83,0x8C,0x8D,0x83, -0x83,0x86,0x81,0x7E,0x79,0x75,0x7A,0x7D,0x7C,0x78,0x7F,0x84,0x83,0x8A,0x88,0x81, -0x7A,0x73,0x73,0x71,0x74,0x74,0x75,0x7B,0x7C,0x7E,0x86,0x84,0x83,0x86,0x8C,0x8B, -0x82,0x7D,0x79,0x7C,0x83,0x80,0x86,0x85,0x86,0x89,0x82,0x79,0x76,0x7C,0x85,0x7E, -0x7B,0x79,0x76,0x7D,0x7B,0x7D,0x83,0x85,0x89,0x85,0x81,0x82,0x83,0x87,0x7E,0x7C, -0x82,0x81,0x85,0x81,0x7F,0x86,0x84,0x84,0x85,0x84,0x88,0x7E,0x7D,0x80,0x81,0x86, -0x83,0x83,0x88,0x84,0x84,0x85,0x7F,0x7C,0x7B,0x81,0x83,0x7F,0x7B,0x73,0x77,0x7A, -0x78,0x7F,0x81,0x80,0x7F,0x85,0x85,0x81,0x84,0x87,0x86,0x86,0x82,0x7B,0x7B,0x7E, -0x85,0x8B,0x90,0x8E,0x84,0x80,0x85,0x87,0x89,0x82,0x7D,0x7D,0x7F,0x7D,0x7B,0x7F, -0x86,0x8A,0x89,0x83,0x7E,0x83,0x83,0x7F,0x7E,0x7B,0x7C,0x7E,0x7E,0x7C,0x7A,0x7D, -0x81,0x7E,0x79,0x75,0x79,0x7A,0x75,0x75,0x7A,0x79,0x7A,0x81,0x88,0x87,0x88,0x86, -0x83,0x7D,0x71,0x70,0x77,0x7E,0x83,0x83,0x7D,0x7D,0x81,0x85,0x82,0x82,0x82,0x79, -0x75,0x78,0x7C,0x81,0x7F,0x7D,0x7F,0x84,0x85,0x85,0x86,0x86,0x81,0x80,0x82,0x7E, -0x79,0x79,0x7E,0x7C,0x78,0x75,0x70,0x71,0x72,0x77,0x7C,0x82,0x83,0x82,0x83,0x7F, -0x78,0x79,0x7A,0x7F,0x84,0x85,0x86,0x8E,0x95,0x98,0x95,0x8F,0x88,0x81,0x7E,0x7B, -0x7A,0x7C,0x7D,0x7D,0x7D,0x7C,0x7D,0x81,0x86,0x89,0x86,0x81,0x7F,0x81,0x82,0x86, -0x88,0x87,0x81,0x7B,0x7A,0x7B,0x7E,0x83,0x85,0x86,0x82,0x7E,0x7E,0x7F,0x7F,0x82, -0x82,0x80,0x7F,0x84,0x8B,0x8B,0x86,0x7E,0x7C,0x81,0x86,0x84,0x7D,0x79,0x7E,0x82, -0x83,0x81,0x81,0x84,0x84,0x84,0x85,0x84,0x84,0x86,0x85,0x7D,0x75,0x76,0x7B,0x7C, -0x77,0x74,0x79,0x80,0x84,0x84,0x87,0x86,0x7F,0x7B,0x76,0x73,0x74,0x76,0x79,0x7F, -0x87,0x8B,0x8F,0x92,0x8F,0x88,0x81,0x7A,0x74,0x76,0x79,0x7F,0x83,0x84,0x84,0x84, -0x85,0x82,0x7D,0x7C,0x7E,0x7D,0x79,0x76,0x78,0x7C,0x7A,0x7A,0x7B,0x7D,0x83,0x86, -0x86,0x85,0x82,0x7F,0x80,0x83,0x84,0x84,0x86,0x86,0x85,0x84,0x86,0x88,0x86,0x82, -0x7D,0x79,0x7B,0x7B,0x77,0x75,0x76,0x80,0x88,0x85,0x83,0x86,0x85,0x81,0x79,0x7A, -0x77,0x74,0x75,0x76,0x7B,0x7E,0x81,0x87,0x87,0x83,0x7F,0x7B,0x75,0x73,0x7F,0x88, -0x89,0x89,0x85,0x81,0x7F,0x7F,0x82,0x82,0x83,0x80,0x76,0x72,0x71,0x77,0x7A,0x79, -0x79,0x7B,0x7B,0x7A,0x80,0x87,0x88,0x87,0x88,0x8A,0x8B,0x87,0x87,0x88,0x81,0x7B, -0x7D,0x85,0x8B,0x8A,0x8B,0x8A,0x89,0x89,0x83,0x7F,0x7D,0x7B,0x7E,0x7C,0x7C,0x7E, -0x7F,0x83,0x80,0x80,0x7E,0x7C,0x7F,0x80,0x7D,0x7E,0x7D,0x83,0x85,0x82,0x7F,0x7C, -0x7E,0x81,0x7D,0x85,0x8B,0x87,0x82,0x7D,0x78,0x75,0x7B,0x85,0x88,0x89,0x85,0x83, -0x81,0x7E,0x80,0x82,0x80,0x7D,0x7B,0x81,0x84,0x83,0x86,0x85,0x80,0x7E,0x7A,0x7B, -0x7A,0x78,0x78,0x75,0x71,0x75,0x7B,0x7C,0x79,0x79,0x7D,0x80,0x80,0x81,0x7F,0x7D, -0x7E,0x7E,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x7F,0x80,0x80,0x7C,0x7C,0x80,0x83,0x82, -0x7D,0x7D,0x80,0x7F,0x7B,0x7F,0x85,0x85,0x84,0x85,0x80,0x7C,0x7A,0x7B,0x81,0x81, -0x7C,0x7A,0x7C,0x7C,0x78,0x76,0x77,0x78,0x7D,0x7F,0x7E,0x82,0x8A,0x8C,0x90,0x95, -0x98,0x95,0x8E,0x88,0x7F,0x77,0x74,0x73,0x77,0x7D,0x7D,0x7B,0x7B,0x7B,0x7C,0x81, -0x84,0x82,0x7D,0x7C,0x80,0x7E,0x7A,0x7E,0x87,0x8C,0x8A,0x87,0x87,0x83,0x7D,0x7A, -0x7C,0x82,0x86,0x86,0x87,0x84,0x81,0x7F,0x80,0x84,0x88,0x8B,0x8B,0x8C,0x8E,0x8C, -0x85,0x7D,0x79,0x78,0x77,0x7B,0x7D,0x7D,0x79,0x78,0x7B,0x7E,0x84,0x88,0x83,0x7D, -0x7C,0x7D,0x7F,0x81,0x82,0x80,0x7B,0x7A,0x7D,0x82,0x86,0x87,0x85,0x81,0x81,0x80, -0x7A,0x79,0x7C,0x80,0x81,0x7F,0x81,0x87,0x8C,0x8C,0x89,0x8A,0x8D,0x8A,0x83,0x7C, -0x7A,0x7D,0x81,0x84,0x86,0x88,0x85,0x7F,0x7D,0x7C,0x79,0x77,0x75,0x71,0x70,0x72, -0x73,0x74,0x75,0x77,0x7A,0x7C,0x7D,0x81,0x88,0x8B,0x86,0x83,0x87,0x8C,0x8E,0x8B, -0x85,0x80,0x82,0x82,0x7D,0x7B,0x7F,0x81,0x81,0x7C,0x74,0x6F,0x71,0x75,0x7B,0x80, -0x81,0x82,0x88,0x88,0x86,0x88,0x88,0x85,0x81,0x7A,0x74,0x77,0x77,0x72,0x70,0x74, -0x78,0x7A,0x7A,0x79,0x77,0x7A,0x80,0x80,0x83,0x86,0x8C,0x90,0x8C,0x89,0x8D,0x8C, -0x87,0x81,0x80,0x82,0x84,0x82,0x7B,0x7A,0x7F,0x7E,0x7A,0x7C,0x80,0x83,0x83,0x86, -0x88,0x85,0x81,0x7D,0x81,0x83,0x7F,0x81,0x86,0x87,0x83,0x82,0x87,0x89,0x85,0x81, -0x7E,0x85,0x88,0x7C,0x76,0x79,0x82,0x8C,0x91,0x90,0x8B,0x8B,0x89,0x86,0x8B,0x87, -0x7F,0x87,0x84,0x7B,0x78,0x7E,0x83,0x81,0x7F,0x78,0x79,0x7F,0x77,0x70,0x72,0x71, -0x70,0x72,0x77,0x7F,0x8D,0x92,0x89,0x8A,0x8D,0x89,0x8B,0x85,0x73,0x71,0x77,0x7E, -0x7E,0x80,0x82,0x86,0x8C,0x8D,0x89,0x8B,0x88,0x7A,0x6E,0x69,0x6D,0x7A,0x7D,0x7A, -0x7D,0x7F,0x75,0x71,0x73,0x76,0x79,0x7E,0x7C,0x78,0x75,0x76,0x7D,0x7F,0x7B,0x79, -0x7E,0x82,0x7F,0x84,0x82,0x7D,0x7E,0x81,0x81,0x84,0x8D,0x8C,0x80,0x7C,0x7E,0x85, -0x88,0x85,0x87,0x85,0x81,0x7F,0x7B,0x77,0x72,0x75,0x7D,0x73,0x72,0x75,0x76,0x7C, -0x7F,0x84,0x87,0x87,0x8F,0x87,0x86,0x83,0x82,0x86,0x7E,0x78,0x7A,0x79,0x7B,0x7E, -0x7C,0x80,0x81,0x86,0x85,0x82,0x8B,0x8D,0x8C,0x87,0x83,0x84,0x85,0x87,0x82,0x7F, -0x82,0x7E,0x7E,0x76,0x75,0x78,0x75,0x74,0x78,0x7B,0x81,0x81,0x82,0x81,0x7E,0x89, -0x91,0x89,0x87,0x88,0x8B,0x89,0x83,0x80,0x7D,0x7D,0x7D,0x81,0x86,0x8B,0x89,0x87, -0x81,0x7E,0x85,0x88,0x83,0x7D,0x7C,0x7D,0x7F,0x80,0x7D,0x7F,0x87,0x8B,0x8A,0x7F, -0x77,0x7D,0x7D,0x77,0x76,0x7C,0x80,0x82,0x81,0x80,0x7E,0x84,0x89,0x85,0x83,0x82, -0x7C,0x7F,0x80,0x82,0x83,0x87,0x8B,0x85,0x84,0x86,0x86,0x82,0x7C,0x7B,0x7A,0x77, -0x79,0x7C,0x7D,0x7F,0x7F,0x7D,0x77,0x76,0x7A,0x7A,0x79,0x77,0x7B,0x81,0x7F,0x7F, -0x83,0x8B,0x8D,0x85,0x7F,0x77,0x72,0x7A,0x7D,0x7D,0x7A,0x7A,0x7D,0x7B,0x7D,0x7D, -0x7A,0x7D,0x80,0x7B,0x76,0x78,0x81,0x85,0x85,0x85,0x82,0x80,0x7F,0x82,0x85,0x86, -0x88,0x83,0x7B,0x79,0x7D,0x84,0x87,0x84,0x82,0x80,0x7F,0x7A,0x75,0x78,0x7D,0x80, -0x81,0x82,0x85,0x86,0x84,0x81,0x82,0x86,0x84,0x7F,0x7E,0x82,0x84,0x84,0x86,0x86, -0x83,0x85,0x86,0x87,0x85,0x81,0x80,0x7F,0x80,0x81,0x82,0x88,0x8B,0x8B,0x85,0x7C, -0x7C,0x80,0x7E,0x7C,0x7F,0x80,0x7F,0x7F,0x83,0x87,0x86,0x85,0x84,0x85,0x83,0x80, -0x7F,0x7C,0x79,0x78,0x7A,0x80,0x85,0x84,0x7E,0x76,0x78,0x7B,0x7E,0x7E,0x7E,0x80, -0x80,0x81,0x84,0x84,0x83,0x81,0x82,0x86,0x89,0x8A,0x8A,0x84,0x7D,0x7C,0x7F,0x82, -0x7F,0x7C,0x77,0x75,0x77,0x79,0x7F,0x82,0x84,0x85,0x83,0x80,0x7B,0x77,0x76,0x76, -0x75,0x73,0x73,0x77,0x7C,0x7F,0x81,0x7F,0x80,0x80,0x7F,0x7D,0x7B,0x7F,0x80,0x82, -0x83,0x81,0x81,0x83,0x82,0x86,0x87,0x85,0x86,0x87,0x89,0x85,0x82,0x80,0x7D,0x7B, -0x79,0x76,0x78,0x7B,0x80,0x85,0x85,0x85,0x87,0x8A,0x85,0x7C,0x79,0x77,0x74,0x72, -0x71,0x79,0x7F,0x85,0x8B,0x8B,0x89,0x83,0x7F,0x7E,0x7D,0x80,0x7C,0x73,0x76,0x7D, -0x83,0x85,0x87,0x8C,0x8E,0x8E,0x8B,0x84,0x81,0x80,0x87,0x8D,0x87,0x82,0x7E,0x7B, -0x7A,0x7D,0x84,0x82,0x7C,0x79,0x77,0x7C,0x7D,0x7D,0x83,0x82,0x7E,0x79,0x79,0x79, -0x75,0x7A,0x7F,0x83,0x89,0x89,0x89,0x88,0x83,0x81,0x7D,0x7B,0x78,0x7C,0x86,0x87, -0x86,0x8D,0x90,0x8C,0x85,0x86,0x87,0x88,0x87,0x80,0x79,0x75,0x75,0x79,0x7B,0x7A, -0x81,0x85,0x84,0x80,0x7C,0x7A,0x79,0x7D,0x82,0x84,0x87,0x89,0x8F,0x90,0x8A,0x86, -0x86,0x82,0x79,0x79,0x7B,0x79,0x7B,0x80,0x83,0x82,0x80,0x7E,0x7D,0x7B,0x7C,0x78, -0x71,0x6B,0x6C,0x7D,0x8A,0x89,0x88,0x86,0x82,0x7B,0x79,0x7C,0x79,0x75,0x76,0x7C, -0x82,0x83,0x86,0x88,0x83,0x7B,0x7D,0x83,0x80,0x7A,0x79,0x78,0x7C,0x80,0x80,0x81, -0x87,0x8C,0x87,0x80,0x7C,0x78,0x77,0x77,0x77,0x7F,0x83,0x83,0x7E,0x79,0x76,0x73, -0x75,0x7A,0x7C,0x7B,0x7C,0x84,0x89,0x88,0x8C,0x90,0x8E,0x83,0x79,0x78,0x7C,0x7E, -0x7F,0x7F,0x81,0x83,0x85,0x8A,0x8C,0x88,0x82,0x80,0x80,0x7D,0x7D,0x82,0x86,0x8C, -0x91,0x90,0x8A,0x83,0x7D,0x7F,0x84,0x84,0x80,0x79,0x77,0x78,0x7D,0x80,0x80,0x81, -0x81,0x7C,0x7B,0x7B,0x7D,0x80,0x84,0x85,0x82,0x80,0x7F,0x81,0x86,0x89,0x8C,0x8E, -0x8A,0x85,0x86,0x86,0x84,0x82,0x81,0x7E,0x7B,0x7A,0x78,0x76,0x7B,0x81,0x81,0x7E, -0x7B,0x7E,0x82,0x80,0x7C,0x7D,0x7E,0x7C,0x7A,0x7E,0x7E,0x7F,0x7E,0x7F,0x7F,0x82, -0x85,0x82,0x7C,0x7A,0x79,0x7B,0x7D,0x7E,0x7E,0x7F,0x81,0x85,0x85,0x83,0x80,0x7E, -0x7B,0x76,0x74,0x75,0x76,0x78,0x7B,0x7E,0x81,0x85,0x88,0x86,0x81,0x80,0x82,0x85, -0x84,0x84,0x85,0x87,0x89,0x89,0x88,0x86,0x84,0x7F,0x7E,0x7B,0x78,0x75,0x76,0x77, -0x78,0x76,0x77,0x7B,0x80,0x79,0x75,0x7B,0x80,0x81,0x84,0x86,0x87,0x87,0x87,0x84, -0x80,0x80,0x7F,0x80,0x82,0x7E,0x7D,0x80,0x82,0x84,0x87,0x84,0x83,0x84,0x85,0x7E, -0x7C,0x7D,0x7F,0x7F,0x7E,0x7E,0x80,0x82,0x81,0x7F,0x81,0x84,0x86,0x89,0x87,0x80, -0x7D,0x79,0x76,0x77,0x77,0x7A,0x7C,0x7E,0x7B,0x7C,0x82,0x83,0x81,0x7F,0x7D,0x80, -0x83,0x7F,0x7E,0x86,0x89,0x86,0x86,0x8A,0x8B,0x87,0x87,0x84,0x85,0x85,0x80,0x7E, -0x7B,0x77,0x7B,0x81,0x81,0x80,0x86,0x86,0x84,0x87,0x89,0x84,0x83,0x85,0x82,0x80, -0x7D,0x79,0x7A,0x7B,0x79,0x78,0x7E,0x80,0x7D,0x80,0x7C,0x7E,0x81,0x82,0x85,0x88, -0x8C,0x8E,0x8F,0x8F,0x87,0x86,0x8C,0x87,0x85,0x85,0x83,0x80,0x7E,0x79,0x74,0x75, -0x76,0x72,0x76,0x75,0x72,0x7A,0x7E,0x79,0x78,0x7D,0x7D,0x7A,0x7D,0x7F,0x7E,0x82, -0x86,0x84,0x84,0x82,0x7F,0x7C,0x7B,0x78,0x80,0x82,0x7D,0x7F,0x83,0x87,0x82,0x83, -0x84,0x81,0x7E,0x7C,0x7C,0x7D,0x7B,0x7A,0x7A,0x7E,0x79,0x7E,0x84,0x79,0x74,0x7B, -0x76,0x74,0x7A,0x7A,0x7C,0x7D,0x85,0x87,0x83,0x87,0x81,0x82,0x84,0x81,0x86,0x88, -0x89,0x89,0x85,0x84,0x84,0x89,0x86,0x82,0x84,0x86,0x87,0x8A,0x81,0x7F,0x81,0x76, -0x75,0x78,0x81,0x83,0x83,0x85,0x83,0x7F,0x7C,0x77,0x7C,0x77,0x77,0x7F,0x85,0x87, -0x82,0x85,0x87,0x83,0x7E,0x7D,0x7A,0x80,0x7D,0x82,0x86,0x87,0x8D,0x90,0x8A,0x8D, -0x8B,0x8A,0x82,0x7A,0x7E,0x7E,0x83,0x89,0x8B,0x82,0x7D,0x7E,0x7A,0x7A,0x7E,0x79, -0x79,0x7A,0x78,0x7A,0x7F,0x83,0x83,0x82,0x86,0x81,0x77,0x7A,0x72,0x76,0x7B,0x7B, -0x7B,0x7E,0x83,0x86,0x82,0x7E,0x7B,0x7D,0x83,0x83,0x7C,0x7B,0x7F,0x83,0x87,0x89, -0x90,0x91,0x93,0x8F,0x85,0x81,0x81,0x7C,0x78,0x79,0x7C,0x78,0x74,0x74,0x76,0x78, -0x78,0x7A,0x7A,0x7B,0x7A,0x79,0x79,0x78,0x79,0x7E,0x86,0x8A,0x84,0x7F,0x82,0x84, -0x84,0x85,0x85,0x83,0x7D,0x77,0x78,0x82,0x8D,0x91,0x89,0x80,0x7F,0x80,0x7F,0x81, -0x82,0x84,0x86,0x89,0x86,0x7F,0x7B,0x78,0x71,0x6B,0x6A,0x6F,0x7A,0x7F,0x79,0x76, -0x7D,0x81,0x7F,0x7B,0x7B,0x7B,0x79,0x76,0x78,0x7C,0x83,0x84,0x85,0x89,0x8B,0x8A, -0x87,0x86,0x86,0x87,0x89,0x8C,0x8D,0x8C,0x8A,0x85,0x80,0x7F,0x80,0x83,0x83,0x7F, -0x79,0x78,0x7B,0x7B,0x7A,0x7C,0x7E,0x7F,0x7D,0x79,0x7B,0x81,0x86,0x8C,0x8A,0x82, -0x7C,0x7C,0x82,0x84,0x83,0x80,0x7E,0x7F,0x7E,0x7D,0x7E,0x83,0x8B,0x8F,0x8C,0x8A, -0x89,0x8B,0x8C,0x8C,0x8B,0x8A,0x8A,0x86,0x7F,0x7C,0x7C,0x7E,0x81,0x81,0x81,0x7B, -0x74,0x70,0x6F,0x73,0x76,0x7B,0x80,0x80,0x81,0x80,0x7C,0x78,0x75,0x72,0x74,0x7A, -0x81,0x85,0x83,0x84,0x86,0x88,0x86,0x86,0x89,0x8C,0x88,0x82,0x80,0x7E,0x7D,0x81, -0x84,0x83,0x81,0x7D,0x7B,0x7A,0x75,0x72,0x74,0x77,0x7A,0x7A,0x79,0x76,0x78,0x7F, -0x7F,0x7B,0x76,0x74,0x78,0x7C,0x7F,0x85,0x8A,0x8B,0x87,0x88,0x85,0x7F,0x81,0x81, -0x84,0x82,0x80,0x80,0x7D,0x7D,0x80,0x83,0x85,0x82,0x81,0x80,0x7B,0x79,0x79,0x7A, -0x81,0x80,0x7E,0x80,0x81,0x82,0x80,0x80,0x7F,0x7D,0x80,0x80,0x80,0x80,0x7F,0x80, -0x84,0x86,0x86,0x86,0x88,0x88,0x84,0x82,0x81,0x83,0x85,0x83,0x85,0x89,0x86,0x83, -0x7F,0x7C,0x76,0x76,0x7B,0x80,0x83,0x7E,0x7E,0x86,0x88,0x84,0x86,0x8A,0x88,0x80, -0x7F,0x81,0x81,0x83,0x84,0x82,0x80,0x7B,0x7E,0x7E,0x77,0x72,0x73,0x7E,0x86,0x88, -0x85,0x7E,0x7E,0x7E,0x7D,0x7C,0x7B,0x7D,0x81,0x82,0x84,0x88,0x8C,0x89,0x84,0x86, -0x85,0x81,0x84,0x84,0x82,0x83,0x86,0x8A,0x88,0x85,0x82,0x7C,0x79,0x75,0x74,0x76, -0x7A,0x7C,0x7B,0x7C,0x7D,0x80,0x7E,0x7C,0x7F,0x84,0x81,0x7A,0x77,0x78,0x7C,0x7C, -0x81,0x85,0x80,0x7E,0x7F,0x85,0x89,0x85,0x85,0x84,0x87,0x87,0x85,0x85,0x81,0x7D, -0x79,0x7B,0x81,0x80,0x7C,0x7D,0x81,0x80,0x79,0x75,0x75,0x75,0x75,0x75,0x77,0x7E, -0x84,0x85,0x82,0x7D,0x7A,0x79,0x7D,0x7E,0x7A,0x78,0x77,0x7C,0x82,0x82,0x7D,0x7A, -0x7B,0x7F,0x84,0x8D,0x91,0x8D,0x8A,0x8B,0x8B,0x87,0x81,0x83,0x83,0x81,0x7C,0x78, -0x78,0x79,0x7D,0x7B,0x78,0x79,0x79,0x78,0x77,0x76,0x79,0x80,0x88,0x8A,0x84,0x7F, -0x7F,0x82,0x83,0x7E,0x7E,0x84,0x89,0x8A,0x86,0x85,0x84,0x82,0x83,0x83,0x84,0x85, -0x88,0x8C,0x8C,0x8D,0x8F,0x90,0x8E,0x88,0x84,0x81,0x80,0x81,0x83,0x83,0x84,0x84, -0x80,0x7C,0x7B,0x78,0x73,0x70,0x6F,0x71,0x77,0x7A,0x7B,0x7E,0x81,0x83,0x84,0x86, -0x83,0x83,0x83,0x82,0x81,0x82,0x85,0x8B,0x8E,0x91,0x8E,0x89,0x85,0x80,0x7A,0x78, -0x79,0x79,0x77,0x75,0x78,0x7D,0x86,0x89,0x84,0x7E,0x7D,0x7E,0x7B,0x77,0x70,0x6F, -0x72,0x73,0x71,0x75,0x7B,0x80,0x7D,0x80,0x81,0x80,0x82,0x83,0x7F,0x7D,0x80,0x82, -0x81,0x83,0x85,0x85,0x88,0x8B,0x86,0x81,0x7E,0x7C,0x7E,0x7A,0x76,0x76,0x7A,0x81, -0x82,0x83,0x83,0x84,0x82,0x81,0x81,0x80,0x7C,0x7B,0x7E,0x7E,0x7A,0x7B,0x7E,0x7C, -0x80,0x84,0x81,0x83,0x85,0x81,0x7D,0x77,0x75,0x76,0x80,0x8A,0x89,0x87,0x85,0x83, -0x85,0x86,0x86,0x88,0x88,0x84,0x7E,0x7F,0x81,0x84,0x81,0x7D,0x7E,0x83,0x84,0x86, -0x87,0x80,0x7B,0x7B,0x81,0x7E,0x83,0x84,0x81,0x82,0x80,0x7F,0x81,0x80,0x82,0x7E, -0x86,0x8A,0x7C,0x7D,0x7D,0x79,0x77,0x7A,0x81,0x81,0x80,0x83,0x7D,0x80,0x80,0x80, -0x83,0x7E,0x83,0x82,0x7F,0x81,0x84,0x85,0x87,0x88,0x8C,0x83,0x86,0x85,0x7F,0x80, -0x79,0x75,0x7C,0x80,0x82,0x82,0x87,0x8B,0x83,0x87,0x7F,0x7A,0x80,0x7F,0x80,0x81, -0x7E,0x81,0x7B,0x7C,0x82,0x82,0x85,0x80,0x7E,0x78,0x77,0x78,0x79,0x79,0x7F,0x7C, -0x80,0x86,0x89,0x89,0x86,0x86,0x82,0x80,0x82,0x7F,0x7E,0x81,0x7E,0x7F,0x78,0x7B, -0x7F,0x81,0x7F,0x7D,0x79,0x76,0x74,0x75,0x74,0x78,0x81,0x80,0x7E,0x79,0x7A,0x79, -0x79,0x7C,0x7F,0x84,0x8E,0x89,0x84,0x84,0x7D,0x7A,0x7B,0x7F,0x7C,0x77,0x7D,0x7D, -0x80,0x85,0x88,0x87,0x82,0x7E,0x7B,0x7D,0x80,0x7D,0x7D,0x7D,0x7F,0x80,0x83,0x81, -0x82,0x7F,0x77,0x71,0x6F,0x74,0x7B,0x83,0x86,0x81,0x84,0x87,0x8B,0x8E,0x86,0x81, -0x82,0x84,0x82,0x82,0x82,0x81,0x82,0x88,0x86,0x87,0x8A,0x86,0x85,0x86,0x85,0x87, -0x8C,0x88,0x81,0x85,0x8B,0x8A,0x86,0x7E,0x75,0x76,0x78,0x78,0x79,0x7B,0x7A,0x79, -0x79,0x77,0x7A,0x82,0x83,0x85,0x89,0x86,0x84,0x87,0x84,0x7F,0x83,0x8A,0x8B,0x89, -0x86,0x83,0x83,0x88,0x89,0x8C,0x8E,0x89,0x87,0x87,0x80,0x76,0x73,0x74,0x71,0x73, -0x78,0x7A,0x7B,0x7A,0x78,0x79,0x7C,0x7B,0x7C,0x7B,0x7C,0x7A,0x79,0x7B,0x82,0x8B, -0x8B,0x86,0x83,0x81,0x80,0x7B,0x76,0x73,0x73,0x78,0x7C,0x81,0x80,0x7E,0x80,0x85, -0x89,0x8C,0x8A,0x84,0x80,0x7D,0x7B,0x76,0x78,0x7E,0x81,0x82,0x81,0x7E,0x7D,0x7B, -0x7C,0x78,0x75,0x75,0x78,0x7A,0x7B,0x7F,0x86,0x8A,0x8C,0x8A,0x85,0x87,0x8A,0x8C, -0x86,0x80,0x7A,0x78,0x7A,0x7C,0x7C,0x7B,0x7A,0x7C,0x7E,0x7E,0x80,0x81,0x83,0x84, -0x82,0x82,0x84,0x88,0x84,0x7F,0x80,0x84,0x8B,0x8E,0x8A,0x86,0x81,0x7C,0x78,0x75, -0x74,0x73,0x75,0x7B,0x81,0x85,0x86,0x86,0x87,0x85,0x84,0x87,0x8A,0x88,0x81,0x7B, -0x76,0x74,0x7A,0x81,0x86,0x83,0x7E,0x7E,0x7F,0x7F,0x7D,0x7D,0x7F,0x82,0x84,0x85, -0x83,0x84,0x84,0x84,0x86,0x87,0x85,0x83,0x83,0x83,0x80,0x80,0x80,0x7F,0x81,0x7E, -0x7D,0x80,0x87,0x89,0x85,0x82,0x80,0x82,0x85,0x83,0x7A,0x76,0x78,0x7B,0x7E,0x83, -0x89,0x8B,0x88,0x85,0x7F,0x7C,0x7E,0x7B,0x78,0x76,0x79,0x7D,0x83,0x85,0x86,0x87, -0x88,0x86,0x81,0x7C,0x7A,0x7A,0x78,0x76,0x79,0x7E,0x84,0x85,0x84,0x83,0x80,0x7C, -0x79,0x79,0x78,0x76,0x78,0x7C,0x7D,0x81,0x84,0x87,0x83,0x7F,0x7E,0x81,0x81,0x7E, -0x7D,0x7E,0x7E,0x7F,0x7E,0x7D,0x7F,0x83,0x81,0x7F,0x7E,0x7D,0x7B,0x7B,0x78,0x75, -0x74,0x79,0x7D,0x7F,0x81,0x82,0x7D,0x7B,0x7A,0x7D,0x83,0x86,0x83,0x82,0x83,0x85, -0x82,0x80,0x7F,0x7D,0x7D,0x7C,0x7B,0x7E,0x81,0x83,0x86,0x8B,0x8D,0x8D,0x8E,0x8B, -0x85,0x80,0x80,0x87,0x8C,0x8C,0x8B,0x87,0x7F,0x77,0x73,0x73,0x75,0x75,0x77,0x79, -0x7B,0x7F,0x81,0x86,0x8B,0x8B,0x88,0x83,0x81,0x82,0x82,0x83,0x82,0x81,0x83,0x88, -0x8A,0x86,0x7F,0x7E,0x7F,0x81,0x82,0x83,0x87,0x89,0x87,0x84,0x80,0x81,0x84,0x87, -0x86,0x82,0x81,0x81,0x82,0x80,0x7D,0x79,0x76,0x76,0x77,0x74,0x75,0x76,0x78,0x78, -0x78,0x7B,0x7F,0x82,0x87,0x86,0x84,0x83,0x81,0x7E,0x7C,0x7D,0x7D,0x7E,0x80,0x82, -0x85,0x89,0x8A,0x89,0x86,0x85,0x83,0x81,0x7F,0x80,0x7F,0x7E,0x7D,0x79,0x76,0x77, -0x7B,0x7E,0x80,0x7F,0x7D,0x79,0x74,0x71,0x75,0x7B,0x80,0x82,0x82,0x7F,0x7D,0x7E, -0x81,0x85,0x86,0x87,0x86,0x81,0x7C,0x7D,0x82,0x81,0x7D,0x7A,0x78,0x7C,0x84,0x86, -0x85,0x87,0x89,0x89,0x84,0x7D,0x7B,0x7B,0x7E,0x7E,0x7F,0x7E,0x80,0x83,0x85,0x81, -0x7D,0x7C,0x7D,0x7A,0x78,0x78,0x7D,0x81,0x83,0x83,0x7F,0x79,0x7A,0x7D,0x7E,0x7D, -0x79,0x77,0x7B,0x80,0x82,0x84,0x87,0x8A,0x88,0x83,0x80,0x82,0x87,0x8E,0x8F,0x8B, -0x89,0x86,0x84,0x82,0x7F,0x7E,0x7B,0x79,0x79,0x77,0x76,0x79,0x7F,0x89,0x8A,0x84, -0x7E,0x7C,0x7D,0x7E,0x7F,0x84,0x83,0x84,0x87,0x8C,0x8B,0x89,0x89,0x83,0x7F,0x7E, -0x7B,0x7B,0x7C,0x81,0x85,0x85,0x88,0x88,0x87,0x88,0x88,0x85,0x80,0x7F,0x80,0x84, -0x82,0x83,0x7F,0x7E,0x82,0x7C,0x7B,0x7D,0x7C,0x7A,0x75,0x74,0x76,0x77,0x7A,0x7B, -0x7D,0x83,0x85,0x81,0x84,0x84,0x85,0x86,0x88,0x83,0x7E,0x7E,0x7C,0x7C,0x7D,0x80, -0x83,0x82,0x81,0x7A,0x72,0x78,0x82,0x8A,0x88,0x89,0x8B,0x83,0x7B,0x79,0x74,0x77, -0x7C,0x7B,0x78,0x78,0x7D,0x82,0x7F,0x79,0x74,0x70,0x71,0x6F,0x73,0x79,0x7A,0x7F, -0x82,0x87,0x86,0x85,0x83,0x80,0x7F,0x7C,0x7C,0x7E,0x80,0x86,0x91,0x92,0x8D,0x8A, -0x85,0x82,0x81,0x82,0x7D,0x7A,0x83,0x81,0x80,0x87,0x85,0x83,0x84,0x7F,0x74,0x70, -0x79,0x78,0x79,0x7B,0x7B,0x7F,0x81,0x85,0x84,0x83,0x86,0x85,0x84,0x83,0x82,0x85, -0x80,0x78,0x86,0x8B,0x8C,0x8A,0x82,0x89,0x87,0x89,0x8C,0x8C,0x8E,0x86,0x84,0x81, -0x7B,0x7E,0x7D,0x7C,0x78,0x78,0x7A,0x76,0x79,0x79,0x74,0x78,0x80,0x81,0x85,0x85, -0x88,0x85,0x82,0x83,0x80,0x85,0x86,0x83,0x87,0x82,0x81,0x7E,0x78,0x79,0x7A,0x7F, -0x7A,0x7E,0x83,0x81,0x86,0x8A,0x88,0x8A,0x8A,0x8A,0x85,0x7F,0x79,0x70,0x73,0x72, -0x6F,0x7A,0x7C,0x78,0x7A,0x77,0x7A,0x77,0x7D,0x85,0x7F,0x84,0x87,0x84,0x88,0x88, -0x89,0x84,0x7E,0x81,0x7F,0x83,0x8B,0x8C,0x8B,0x86,0x85,0x82,0x7E,0x7F,0x79,0x78, -0x78,0x76,0x7B,0x83,0x89,0x87,0x83,0x86,0x83,0x7C,0x75,0x6E,0x6E,0x71,0x76,0x7B, -0x79,0x7D,0x82,0x80,0x80,0x7E,0x7A,0x76,0x77,0x79,0x78,0x7B,0x81,0x83,0x81,0x7F, -0x80,0x82,0x88,0x8A,0x87,0x88,0x89,0x88,0x86,0x86,0x83,0x7D,0x7D,0x81,0x81,0x80, -0x7F,0x7F,0x81,0x83,0x82,0x7F,0x7B,0x79,0x77,0x75,0x76,0x7C,0x80,0x80,0x81,0x7C, -0x78,0x79,0x7D,0x7D,0x7C,0x7E,0x82,0x84,0x88,0x86,0x83,0x86,0x87,0x89,0x8B,0x8E, -0x8F,0x88,0x83,0x80,0x7F,0x82,0x84,0x85,0x85,0x83,0x87,0x87,0x86,0x82,0x7F,0x81, -0x82,0x7F,0x7C,0x7B,0x7D,0x80,0x84,0x88,0x86,0x82,0x81,0x82,0x82,0x80,0x7F,0x7D, -0x7B,0x7F,0x83,0x85,0x88,0x87,0x86,0x80,0x7B,0x79,0x76,0x7A,0x7F,0x81,0x82,0x82, -0x86,0x86,0x86,0x86,0x82,0x7F,0x7E,0x7A,0x77,0x79,0x7F,0x83,0x85,0x8A,0x83,0x7C, -0x7B,0x79,0x74,0x71,0x70,0x6F,0x73,0x7C,0x83,0x89,0x8D,0x89,0x84,0x7E,0x79,0x7C, -0x7F,0x81,0x80,0x7D,0x7C,0x79,0x76,0x74,0x73,0x76,0x76,0x7B,0x83,0x82,0x7E,0x7F, -0x84,0x89,0x8E,0x8C,0x82,0x7B,0x7A,0x7A,0x7D,0x7E,0x7F,0x80,0x80,0x7F,0x7F,0x81, -0x81,0x7D,0x7B,0x7A,0x7A,0x7D,0x7E,0x80,0x81,0x80,0x83,0x86,0x83,0x85,0x88,0x88, -0x84,0x82,0x81,0x7E,0x7D,0x7E,0x7F,0x81,0x89,0x8A,0x84,0x80,0x7E,0x80,0x83,0x82, -0x82,0x82,0x81,0x81,0x82,0x87,0x87,0x80,0x7B,0x7D,0x83,0x83,0x7F,0x7D,0x7E,0x80, -0x86,0x88,0x83,0x81,0x7F,0x7B,0x78,0x78,0x78,0x77,0x7B,0x81,0x87,0x89,0x8A,0x8A, -0x86,0x84,0x80,0x80,0x86,0x86,0x84,0x82,0x85,0x88,0x84,0x80,0x7E,0x7D,0x7A,0x78, -0x76,0x78,0x7C,0x7F,0x81,0x80,0x80,0x80,0x81,0x80,0x7E,0x7D,0x7F,0x83,0x86,0x86, -0x87,0x83,0x81,0x80,0x7D,0x79,0x76,0x78,0x7A,0x7C,0x7F,0x82,0x83,0x84,0x84,0x86, -0x87,0x87,0x84,0x80,0x7E,0x7F,0x82,0x83,0x81,0x7E,0x80,0x81,0x81,0x82,0x82,0x7D, -0x79,0x78,0x77,0x75,0x75,0x74,0x77,0x7B,0x80,0x81,0x82,0x83,0x84,0x85,0x83,0x80, -0x80,0x7F,0x7C,0x7C,0x7C,0x7D,0x80,0x87,0x8A,0x86,0x82,0x82,0x84,0x83,0x7C,0x78, -0x79,0x79,0x79,0x7C,0x81,0x82,0x83,0x83,0x7F,0x7C,0x7A,0x76,0x72,0x71,0x74,0x77, -0x78,0x7A,0x7B,0x7A,0x7D,0x82,0x89,0x8E,0x8D,0x8B,0x89,0x88,0x89,0x8A,0x89,0x85, -0x81,0x7E,0x80,0x81,0x7F,0x7F,0x82,0x82,0x80,0x7C,0x76,0x78,0x7D,0x7D,0x7B,0x79, -0x7D,0x82,0x89,0x8C,0x8B,0x8B,0x8B,0x89,0x85,0x83,0x82,0x81,0x81,0x82,0x7E,0x80, -0x84,0x84,0x83,0x81,0x84,0x89,0x8C,0x8C,0x84,0x81,0x7D,0x78,0x76,0x77,0x79,0x7E, -0x85,0x89,0x88,0x8B,0x8A,0x86,0x82,0x7F,0x7E,0x7E,0x7E,0x80,0x7D,0x7C,0x7E,0x82, -0x83,0x83,0x84,0x81,0x79,0x76,0x77,0x7B,0x82,0x85,0x87,0x87,0x88,0x86,0x81,0x83, -0x82,0x7D,0x7D,0x79,0x76,0x76,0x79,0x75,0x74,0x75,0x74,0x7B,0x79,0x77,0x77,0x74, -0x7B,0x83,0x7F,0x7A,0x7D,0x85,0x84,0x80,0x81,0x7D,0x80,0x85,0x81,0x7E,0x7E,0x80, -0x80,0x7F,0x83,0x84,0x85,0x87,0x86,0x84,0x85,0x88,0x82,0x7F,0x7E,0x7E,0x7C,0x7D, -0x7D,0x79,0x7A,0x7F,0x80,0x7E,0x7A,0x7A,0x7B,0x7C,0x79,0x76,0x79,0x7B,0x7B,0x78, -0x7E,0x82,0x81,0x85,0x89,0x8B,0x88,0x85,0x81,0x7D,0x80,0x84,0x83,0x84,0x89,0x8A, -0x89,0x89,0x86,0x83,0x83,0x85,0x80,0x80,0x7E,0x7A,0x84,0x89,0x86,0x81,0x7F,0x80, -0x7E,0x7E,0x7C,0x79,0x7E,0x78,0x78,0x80,0x7F,0x87,0x84,0x80,0x7A,0x79,0x82,0x7D, -0x83,0x82,0x74,0x81,0x82,0x87,0x8B,0x8C,0x8E,0x8A,0x8B,0x84,0x7A,0x80,0x82,0x81, -0x87,0x82,0x82,0x80,0x7C,0x7B,0x77,0x7A,0x7B,0x7D,0x81,0x77,0x7C,0x80,0x7B,0x85, -0x86,0x89,0x8B,0x89,0x8A,0x81,0x84,0x83,0x78,0x83,0x7B,0x7A,0x83,0x7D,0x7B,0x79, -0x7F,0x85,0x83,0x8A,0x84,0x7D,0x87,0x7F,0x7C,0x79,0x75,0x79,0x7A,0x82,0x81,0x7F, -0x85,0x7B,0x7C,0x7E,0x7D,0x80,0x7A,0x79,0x79,0x7C,0x84,0x82,0x86,0x84,0x7F,0x80, -0x81,0x85,0x87,0x80,0x7B,0x75,0x74,0x76,0x76,0x7A,0x7A,0x7D,0x84,0x86,0x88,0x84, -0x7E,0x7A,0x7A,0x7C,0x7A,0x7D,0x7F,0x7D,0x7E,0x7F,0x83,0x87,0x87,0x82,0x7E,0x7E, -0x7D,0x7B,0x7D,0x7C,0x7C,0x7D,0x7C,0x7B,0x7A,0x7D,0x7D,0x7F,0x83,0x84,0x84,0x85, -0x83,0x82,0x7E,0x7D,0x7F,0x83,0x84,0x83,0x83,0x81,0x80,0x84,0x88,0x89,0x86,0x84, -0x82,0x7E,0x7B,0x7A,0x7C,0x80,0x85,0x89,0x88,0x86,0x87,0x87,0x84,0x82,0x7F,0x82, -0x83,0x82,0x83,0x82,0x82,0x82,0x82,0x82,0x80,0x81,0x82,0x81,0x7F,0x7E,0x7F,0x7F, -0x81,0x82,0x80,0x80,0x81,0x82,0x83,0x82,0x7F,0x80,0x84,0x88,0x87,0x84,0x84,0x81, -0x80,0x7E,0x7A,0x7B,0x7C,0x7E,0x80,0x82,0x83,0x7F,0x80,0x80,0x7C,0x79,0x77,0x76, -0x76,0x79,0x7F,0x7F,0x81,0x83,0x80,0x82,0x81,0x7E,0x7E,0x7B,0x7C,0x7D,0x80,0x84, -0x85,0x89,0x8A,0x86,0x84,0x81,0x7F,0x7B,0x79,0x7B,0x79,0x78,0x7A,0x7D,0x81,0x83, -0x83,0x80,0x7E,0x7F,0x7D,0x78,0x76,0x73,0x75,0x79,0x83,0x88,0x83,0x7E,0x7A,0x7C, -0x7F,0x7D,0x7D,0x7C,0x7E,0x7F,0x7F,0x86,0x87,0x84,0x7F,0x7E,0x86,0x89,0x88,0x87, -0x85,0x85,0x80,0x81,0x84,0x85,0x87,0x86,0x81,0x7F,0x7D,0x7B,0x7A,0x7A,0x7A,0x7A, -0x7B,0x7C,0x7A,0x79,0x79,0x7B,0x7F,0x82,0x81,0x84,0x89,0x87,0x83,0x81,0x81,0x80, -0x7C,0x7B,0x7C,0x7E,0x7F,0x83,0x84,0x84,0x88,0x8C,0x8A,0x87,0x88,0x87,0x84,0x80, -0x7A,0x7B,0x80,0x80,0x7E,0x7F,0x82,0x84,0x83,0x80,0x7A,0x7A,0x7E,0x7E,0x7D,0x7A, -0x7D,0x82,0x87,0x89,0x88,0x87,0x85,0x82,0x80,0x7F,0x80,0x80,0x7D,0x7B,0x7D,0x82, -0x86,0x87,0x88,0x87,0x85,0x83,0x83,0x84,0x85,0x87,0x86,0x81,0x7E,0x7B,0x7A,0x7B, -0x7B,0x7B,0x7E,0x7F,0x7B,0x74,0x74,0x7B,0x80,0x80,0x7D,0x7A,0x7C,0x81,0x82,0x7F, -0x80,0x80,0x80,0x81,0x83,0x84,0x83,0x80,0x7E,0x7C,0x7C,0x7E,0x81,0x83,0x85,0x87, -0x88,0x83,0x7D,0x77,0x76,0x7A,0x7D,0x7D,0x7C,0x7F,0x82,0x7F,0x7B,0x77,0x79,0x7A, -0x79,0x79,0x7A,0x7B,0x7A,0x7A,0x7C,0x7D,0x7C,0x7B,0x7B,0x7C,0x7C,0x7C,0x7D,0x7E, -0x82,0x87,0x8A,0x89,0x85,0x82,0x81,0x82,0x82,0x7F,0x7E,0x85,0x8A,0x88,0x85,0x87, -0x87,0x84,0x80,0x80,0x82,0x86,0x85,0x7E,0x78,0x77,0x7B,0x80,0x80,0x7D,0x7F,0x84, -0x86,0x88,0x84,0x7E,0x80,0x82,0x81,0x7F,0x81,0x83,0x82,0x81,0x81,0x81,0x88,0x86, -0x7E,0x79,0x7A,0x7D,0x7E,0x85,0x88,0x86,0x86,0x83,0x7F,0x83,0x82,0x89,0x86,0x83, -0x87,0x83,0x86,0x83,0x82,0x80,0x7C,0x81,0x7E,0x7A,0x82,0x82,0x7F,0x7B,0x78,0x79, -0x7F,0x7F,0x80,0x7C,0x83,0x87,0x84,0x86,0x7E,0x80,0x81,0x7B,0x7D,0x79,0x7F,0x83, -0x80,0x7E,0x76,0x7F,0x7C,0x7A,0x7F,0x79,0x7E,0x83,0x84,0x84,0x82,0x86,0x84,0x83, -0x85,0x83,0x83,0x88,0x82,0x78,0x7A,0x78,0x7F,0x7A,0x7E,0x7F,0x7D,0x83,0x7E,0x84, -0x80,0x80,0x7E,0x72,0x72,0x78,0x7A,0x7D,0x7F,0x83,0x84,0x89,0x89,0x86,0x83,0x84, -0x80,0x80,0x7F,0x79,0x79,0x7F,0x81,0x7F,0x80,0x87,0x82,0x82,0x7F,0x7D,0x7B,0x7B, -0x78,0x74,0x7A,0x81,0x81,0x83,0x7F,0x7F,0x7E,0x7E,0x7B,0x78,0x7B,0x7C,0x7C,0x78, -0x77,0x7C,0x81,0x8B,0x89,0x8E,0x8A,0x8A,0x8C,0x83,0x81,0x81,0x87,0x87,0x84,0x85, -0x82,0x81,0x80,0x7D,0x78,0x7A,0x78,0x74,0x7B,0x7D,0x81,0x84,0x82,0x80,0x7A,0x7E, -0x80,0x83,0x83,0x82,0x82,0x80,0x7E,0x7C,0x7C,0x7B,0x7C,0x80,0x81,0x86,0x8B,0x84, -0x83,0x86,0x85,0x83,0x84,0x84,0x87,0x8A,0x8A,0x86,0x88,0x8E,0x8D,0x8D,0x8D,0x83, -0x7E,0x7D,0x7A,0x78,0x73,0x72,0x77,0x7B,0x7C,0x7A,0x7C,0x7E,0x7F,0x83,0x84,0x83, -0x83,0x82,0x81,0x82,0x81,0x7E,0x7E,0x82,0x84,0x88,0x89,0x89,0x8A,0x87,0x82,0x7C, -0x78,0x78,0x76,0x75,0x75,0x76,0x7A,0x7D,0x80,0x83,0x85,0x85,0x82,0x7B,0x78,0x77, -0x78,0x7A,0x7C,0x7F,0x7D,0x7A,0x7A,0x78,0x79,0x7C,0x7E,0x7F,0x81,0x84,0x86,0x87, -0x86,0x81,0x80,0x7E,0x7D,0x80,0x82,0x83,0x80,0x7D,0x7A,0x77,0x79,0x79,0x78,0x7C, -0x7E,0x7E,0x7D,0x7B,0x7D,0x7F,0x83,0x85,0x82,0x83,0x82,0x81,0x7F,0x7C,0x82,0x89, -0x8A,0x85,0x82,0x82,0x85,0x8A,0x88,0x81,0x7B,0x7A,0x7A,0x7B,0x78,0x7A,0x7F,0x84, -0x86,0x85,0x85,0x84,0x83,0x82,0x7F,0x7D,0x7F,0x80,0x81,0x84,0x83,0x81,0x7F,0x80, -0x88,0x89,0x87,0x84,0x85,0x86,0x88,0x88,0x84,0x80,0x81,0x83,0x88,0x82,0x7F,0x81, -0x81,0x7E,0x76,0x76,0x78,0x7B,0x81,0x7F,0x80,0x83,0x85,0x82,0x81,0x80,0x7D,0x7D, -0x79,0x7C,0x81,0x83,0x82,0x7C,0x7D,0x7D,0x7E,0x83,0x82,0x7E,0x7D,0x7A,0x7F,0x82, -0x86,0x89,0x8A,0x88,0x82,0x83,0x83,0x81,0x80,0x7F,0x82,0x80,0x7D,0x7E,0x78,0x7B, -0x7B,0x7A,0x80,0x81,0x84,0x84,0x80,0x7F,0x7B,0x7D,0x7F,0x7D,0x7B,0x7D,0x7F,0x83, -0x81,0x7E,0x81,0x82,0x83,0x80,0x7C,0x7B,0x7D,0x82,0x7F,0x7C,0x7E,0x81,0x86,0x85, -0x86,0x85,0x82,0x82,0x7E,0x7C,0x7C,0x7D,0x7F,0x7B,0x75,0x76,0x7A,0x7D,0x7F,0x7F, -0x80,0x7E,0x7B,0x7C,0x7D,0x81,0x81,0x81,0x82,0x80,0x81,0x81,0x84,0x83,0x82,0x81, -0x7E,0x7F,0x81,0x82,0x82,0x80,0x7E,0x7D,0x7E,0x80,0x80,0x7F,0x7E,0x7C,0x7B,0x7B, -0x7B,0x7B,0x79,0x7C,0x80,0x80,0x82,0x81,0x7E,0x79,0x79,0x7D,0x7D,0x7F,0x7F,0x81, -0x87,0x8B,0x8A,0x86,0x83,0x84,0x8A,0x8E,0x8D,0x89,0x89,0x89,0x88,0x87,0x86,0x83, -0x83,0x84,0x86,0x84,0x80,0x80,0x81,0x80,0x81,0x82,0x7F,0x78,0x73,0x72,0x6E,0x72, -0x79,0x7F,0x84,0x86,0x85,0x83,0x83,0x88,0x88,0x89,0x85,0x7E,0x7D,0x7E,0x81,0x81, -0x84,0x88,0x87,0x85,0x84,0x84,0x84,0x81,0x7B,0x7A,0x7D,0x85,0x88,0x85,0x85,0x82, -0x84,0x84,0x82,0x83,0x80,0x7F,0x7F,0x7B,0x75,0x70,0x70,0x72,0x78,0x7E,0x7E,0x80, -0x82,0x7F,0x7C,0x7B,0x7C,0x7B,0x7D,0x7B,0x79,0x79,0x7A,0x79,0x7D,0x81,0x82,0x83, -0x83,0x85,0x83,0x80,0x7F,0x7F,0x85,0x83,0x80,0x7E,0x7A,0x80,0x83,0x85,0x84,0x7D, -0x7B,0x7A,0x80,0x7F,0x7E,0x7D,0x7B,0x7D,0x79,0x80,0x85,0x86,0x83,0x7C,0x7C,0x76, -0x78,0x7B,0x7C,0x7D,0x7B,0x84,0x83,0x88,0x8C,0x8B,0x88,0x85,0x83,0x80,0x7E,0x7E, -0x7C,0x7C,0x7F,0x83,0x83,0x8A,0x8A,0x8B,0x8C,0x88,0x84,0x79,0x77,0x74,0x74,0x7A, -0x7B,0x7D,0x80,0x81,0x81,0x80,0x7E,0x7F,0x83,0x82,0x81,0x81,0x80,0x82,0x83,0x85, -0x84,0x89,0x85,0x89,0x87,0x82,0x81,0x7E,0x83,0x82,0x81,0x82,0x7B,0x7F,0x82,0x81, -0x87,0x85,0x85,0x88,0x8B,0x89,0x86,0x7F,0x78,0x78,0x7A,0x7B,0x7A,0x7C,0x7D,0x7C, -0x7B,0x77,0x7B,0x80,0x80,0x7C,0x7A,0x7A,0x7A,0x81,0x85,0x80,0x81,0x82,0x86,0x8A, -0x88,0x88,0x85,0x80,0x80,0x7E,0x7E,0x7D,0x7C,0x7F,0x83,0x88,0x8C,0x8E,0x8B,0x84, -0x7E,0x7B,0x7C,0x7C,0x7C,0x7B,0x78,0x78,0x79,0x79,0x79,0x7A,0x7A,0x77,0x74,0x74, -0x76,0x78,0x7D,0x81,0x81,0x82,0x82,0x82,0x83,0x81,0x80,0x81,0x84,0x86,0x87,0x89, -0x88,0x83,0x7D,0x76,0x7A,0x7F,0x80,0x7F,0x7E,0x7E,0x80,0x83,0x84,0x81,0x82,0x80, -0x7A,0x77,0x76,0x73,0x72,0x74,0x78,0x7D,0x81,0x83,0x84,0x85,0x81,0x7E,0x7C,0x7D, -0x7F,0x7E,0x7E,0x80,0x82,0x86,0x8B,0x8F,0x8E,0x89,0x84,0x81,0x80,0x80,0x7B,0x7A, -0x7E,0x82,0x84,0x84,0x88,0x89,0x87,0x82,0x7A,0x75,0x75,0x78,0x7C,0x7D,0x7B,0x7D, -0x81,0x86,0x85,0x83,0x84,0x81,0x82,0x83,0x84,0x8A,0x8E,0x91,0x90,0x90,0x8C,0x87, -0x85,0x82,0x7D,0x7C,0x78,0x78,0x7B,0x80,0x86,0x87,0x86,0x82,0x82,0x82,0x7F,0x7F, -0x7A,0x79,0x7A,0x7C,0x7C,0x7B,0x80,0x7D,0x7B,0x7B,0x77,0x7A,0x7B,0x7E,0x83,0x85, -0x87,0x88,0x87,0x83,0x7E,0x7E,0x82,0x81,0x80,0x7E,0x7F,0x81,0x80,0x7D,0x7C,0x7E, -0x81,0x7F,0x7B,0x78,0x7A,0x7E,0x7D,0x7F,0x81,0x83,0x86,0x83,0x82,0x7E,0x7D,0x7D, -0x79,0x75,0x75,0x78,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x80,0x7A,0x7C,0x7D,0x82,0x81, -0x80,0x80,0x7F,0x83,0x84,0x84,0x83,0x7F,0x7E,0x7D,0x7F,0x7E,0x7B,0x7C,0x7B,0x7C, -0x7E,0x7F,0x80,0x80,0x80,0x82,0x83,0x83,0x84,0x85,0x88,0x89,0x87,0x85,0x81,0x7F, -0x7D,0x7A,0x7B,0x7B,0x7A,0x7A,0x7C,0x80,0x81,0x83,0x84,0x85,0x83,0x83,0x84,0x83, -0x7F,0x7E,0x80,0x81,0x82,0x81,0x82,0x82,0x7F,0x7B,0x79,0x7A,0x7C,0x7D,0x80,0x82, -0x85,0x87,0x88,0x89,0x89,0x87,0x83,0x80,0x83,0x85,0x84,0x81,0x7E,0x7D,0x7D,0x7F, -0x81,0x80,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x7F,0x7F,0x7C,0x7C,0x80,0x80,0x7E, -0x7F,0x81,0x81,0x85,0x85,0x81,0x81,0x7E,0x7E,0x80,0x83,0x84,0x82,0x85,0x89,0x86, -0x88,0x88,0x85,0x83,0x80,0x7F,0x82,0x82,0x83,0x80,0x7A,0x78,0x79,0x7F,0x7D,0x7B, -0x7D,0x79,0x79,0x75,0x73,0x73,0x78,0x7F,0x7F,0x83,0x84,0x81,0x82,0x80,0x7F,0x80, -0x7F,0x82,0x84,0x83,0x85,0x83,0x82,0x82,0x7F,0x7E,0x7D,0x80,0x81,0x81,0x7F,0x7F, -0x81,0x83,0x83,0x7F,0x7A,0x78,0x76,0x74,0x74,0x73,0x75,0x76,0x79,0x7C,0x7C,0x7B, -0x7D,0x80,0x82,0x81,0x7E,0x7F,0x81,0x82,0x83,0x82,0x86,0x85,0x86,0x86,0x82,0x82, -0x7F,0x82,0x85,0x87,0x87,0x85,0x89,0x87,0x84,0x7E,0x7D,0x7F,0x7C,0x7C,0x7A,0x7C, -0x7E,0x7D,0x7F,0x7F,0x81,0x84,0x85,0x86,0x84,0x84,0x7F,0x7E,0x81,0x84,0x88,0x87, -0x86,0x83,0x82,0x81,0x80,0x7F,0x7B,0x7D,0x7F,0x80,0x82,0x84,0x86,0x87,0x89,0x8A, -0x86,0x86,0x84,0x85,0x83,0x84,0x83,0x81,0x80,0x7B,0x79,0x7B,0x7A,0x79,0x76,0x77, -0x7C,0x7D,0x80,0x80,0x82,0x87,0x87,0x85,0x81,0x7F,0x83,0x82,0x81,0x82,0x80,0x80, -0x80,0x7D,0x7B,0x7D,0x80,0x84,0x83,0x81,0x80,0x82,0x85,0x83,0x80,0x81,0x80,0x7E, -0x7B,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x77,0x7C,0x7E,0x7F,0x7D,0x7E,0x80,0x81, -0x81,0x82,0x84,0x86,0x84,0x84,0x85,0x86,0x86,0x84,0x82,0x80,0x7E,0x7C,0x7B,0x7E, -0x7F,0x7E,0x7E,0x7F,0x81,0x83,0x84,0x82,0x7F,0x7C,0x7B,0x7E,0x82,0x83,0x83,0x82, -0x7F,0x7A,0x77,0x79,0x7E,0x81,0x80,0x7E,0x7F,0x7F,0x7D,0x7B,0x7B,0x7F,0x82,0x82, -0x81,0x80,0x7F,0x7B,0x7B,0x7F,0x82,0x85,0x87,0x89,0x8A,0x89,0x87,0x86,0x86,0x81, -0x7C,0x7D,0x7D,0x7D,0x7C,0x79,0x79,0x7A,0x80,0x87,0x88,0x87,0x85,0x84,0x80,0x7D, -0x7A,0x79,0x7D,0x82,0x84,0x81,0x7F,0x82,0x85,0x89,0x87,0x81,0x7D,0x78,0x77,0x78, -0x7B,0x7F,0x82,0x87,0x86,0x86,0x88,0x88,0x85,0x7E,0x7C,0x7E,0x84,0x85,0x85,0x87, -0x85,0x84,0x81,0x7F,0x7C,0x7D,0x82,0x82,0x82,0x82,0x82,0x83,0x85,0x82,0x80,0x7F, -0x7E,0x80,0x81,0x80,0x7D,0x7A,0x7A,0x7D,0x84,0x88,0x87,0x84,0x81,0x80,0x80,0x7F, -0x7B,0x7A,0x7B,0x7B,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x84,0x82,0x7F,0x7F,0x7F,0x7D, -0x7D,0x7F,0x82,0x84,0x85,0x86,0x83,0x7E,0x78,0x74,0x73,0x72,0x73,0x76,0x79,0x7C, -0x80,0x81,0x7E,0x7D,0x7E,0x81,0x83,0x83,0x80,0x7C,0x7A,0x7B,0x7E,0x83,0x85,0x86, -0x85,0x83,0x7E,0x7A,0x78,0x7A,0x7F,0x82,0x83,0x7F,0x7D,0x7B,0x7A,0x7A,0x7B,0x7E, -0x7F,0x7F,0x81,0x80,0x7F,0x80,0x82,0x85,0x87,0x87,0x85,0x82,0x80,0x7F,0x80,0x82, -0x84,0x85,0x88,0x88,0x85,0x86,0x86,0x84,0x80,0x7C,0x7D,0x80,0x81,0x80,0x7E,0x7E, -0x7F,0x80,0x81,0x81,0x7F,0x80,0x80,0x7D,0x7D,0x7E,0x83,0x86,0x83,0x81,0x7E,0x81, -0x85,0x84,0x84,0x88,0x88,0x8C,0x8B,0x89,0x87,0x86,0x86,0x83,0x7F,0x7C,0x7A,0x78, -0x78,0x79,0x7C,0x7E,0x81,0x80,0x7E,0x7B,0x7E,0x81,0x7F,0x7F,0x80,0x81,0x82,0x82, -0x80,0x80,0x7D,0x80,0x80,0x7E,0x7B,0x7A,0x7A,0x7C,0x7C,0x81,0x85,0x87,0x88,0x8A, -0x89,0x88,0x82,0x7F,0x81,0x81,0x82,0x7E,0x7B,0x7B,0x7A,0x79,0x79,0x78,0x7A,0x7B, -0x7D,0x7D,0x79,0x78,0x7D,0x83,0x86,0x85,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x81, -0x7E,0x7B,0x7A,0x7A,0x7A,0x7B,0x7E,0x81,0x82,0x82,0x80,0x7D,0x7A,0x7A,0x7B,0x7D, -0x7E,0x7E,0x80,0x82,0x85,0x85,0x82,0x81,0x7D,0x7A,0x78,0x79,0x7D,0x81,0x84,0x85, -0x85,0x85,0x85,0x85,0x83,0x7F,0x7C,0x7C,0x81,0x86,0x87,0x85,0x82,0x82,0x80,0x7F, -0x7D,0x7A,0x7B,0x7E,0x80,0x7D,0x7B,0x7C,0x7C,0x7D,0x7B,0x7A,0x7C,0x7E,0x7E,0x7B, -0x7B,0x7E,0x82,0x84,0x82,0x80,0x81,0x83,0x84,0x84,0x83,0x82,0x83,0x84,0x84,0x83, -0x85,0x8A,0x8E,0x8E,0x89,0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x7F,0x80,0x82, -0x82,0x7F,0x7D,0x7C,0x7D,0x7E,0x7D,0x7B,0x7B,0x7C,0x7F,0x80,0x81,0x82,0x84,0x83, -0x81,0x7E,0x7D,0x81,0x86,0x87,0x86,0x87,0x86,0x86,0x84,0x84,0x84,0x85,0x85,0x83, -0x81,0x7F,0x7A,0x77,0x78,0x7D,0x84,0x87,0x85,0x82,0x80,0x80,0x7F,0x7B,0x77,0x76, -0x7A,0x7C,0x7B,0x77,0x76,0x79,0x7B,0x7C,0x7B,0x7B,0x7E,0x7E,0x7E,0x7E,0x7E,0x7F, -0x7F,0x7F,0x7E,0x7E,0x82,0x86,0x86,0x86,0x85,0x83,0x80,0x7F,0x7F,0x7C,0x77,0x73, -0x75,0x7B,0x82,0x86,0x87,0x84,0x80,0x7D,0x7C,0x7C,0x7A,0x78,0x76,0x78,0x7A,0x7B, -0x7E,0x81,0x81,0x7F,0x7E,0x7F,0x81,0x82,0x82,0x83,0x86,0x87,0x87,0x86,0x84,0x82, -0x83,0x85,0x84,0x81,0x80,0x82,0x83,0x84,0x84,0x83,0x84,0x83,0x81,0x7E,0x7D,0x7E, -0x7F,0x80,0x80,0x7F,0x7F,0x7E,0x7F,0x7F,0x7F,0x81,0x81,0x80,0x7F,0x80,0x82,0x83, -0x83,0x82,0x81,0x81,0x82,0x82,0x81,0x82,0x82,0x82,0x81,0x81,0x83,0x86,0x89,0x89, -0x87,0x84,0x81,0x80,0x81,0x83,0x83,0x80,0x7F,0x80,0x81,0x81,0x7F,0x7E,0x7D,0x7F, -0x81,0x81,0x7E,0x7B,0x79,0x79,0x7B,0x7C,0x7E,0x7E,0x7C,0x7A,0x79,0x7A,0x7C,0x7E, -0x7E,0x7E,0x82,0x86,0x89,0x88,0x88,0x87,0x87,0x89,0x89,0x8A,0x89,0x85,0x84,0x83, -0x82,0x7F,0x7C,0x7A,0x79,0x78,0x77,0x76,0x77,0x79,0x7B,0x7C,0x7D,0x7F,0x7F,0x79, -0x74,0x73,0x75,0x79,0x7E,0x82,0x85,0x86,0x87,0x87,0x88,0x86,0x84,0x82,0x81,0x80, -0x7E,0x7E,0x81,0x84,0x85,0x84,0x83,0x83,0x84,0x81,0x7C,0x78,0x77,0x77,0x76,0x77, -0x78,0x77,0x77,0x79,0x7D,0x7E,0x7D,0x7D,0x7E,0x81,0x83,0x81,0x7F,0x80,0x80,0x7F, -0x7E,0x7E,0x80,0x83,0x85,0x85,0x84,0x81,0x7F,0x7E,0x7F,0x82,0x86,0x89,0x89,0x85, -0x80,0x7E,0x7E,0x7E,0x7D,0x7F,0x84,0x88,0x88,0x87,0x84,0x81,0x81,0x83,0x84,0x82, -0x7E,0x7B,0x7A,0x7B,0x7D,0x81,0x83,0x82,0x82,0x81,0x7F,0x7D,0x7D,0x7F,0x82,0x85, -0x86,0x86,0x86,0x83,0x81,0x82,0x85,0x89,0x8A,0x8B,0x8A,0x8A,0x87,0x81,0x7F,0x7F, -0x80,0x80,0x7F,0x80,0x82,0x82,0x83,0x84,0x83,0x80,0x7E,0x80,0x80,0x7E,0x7A,0x79, -0x7A,0x7B,0x7B,0x78,0x76,0x76,0x76,0x77,0x78,0x7A,0x7D,0x81,0x85,0x89,0x8B,0x8B, -0x89,0x87,0x84,0x81,0x7E,0x7B,0x79,0x7A,0x7D,0x80,0x82,0x82,0x81,0x80,0x7F,0x7D, -0x7A,0x7A,0x78,0x76,0x75,0x77,0x7B,0x7E,0x7E,0x7E,0x7F,0x80,0x7F,0x7B,0x78,0x77, -0x78,0x7D,0x81,0x81,0x80,0x81,0x82,0x82,0x83,0x87,0x8A,0x8B,0x8A,0x86,0x81,0x7F, -0x7F,0x7E,0x7B,0x78,0x78,0x7B,0x7F,0x80,0x7F,0x7F,0x7E,0x7F,0x82,0x83,0x82,0x83, -0x83,0x80,0x80,0x82,0x84,0x80,0x7B,0x7B,0x7F,0x83,0x83,0x82,0x82,0x82,0x81,0x81, -0x81,0x80,0x7F,0x7C,0x78,0x79,0x7D,0x81,0x85,0x88,0x88,0x86,0x85,0x84,0x86,0x87, -0x86,0x85,0x83,0x83,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x7F,0x7A,0x78,0x79,0x7A, -0x7B,0x7D,0x81,0x85,0x89,0x89,0x85,0x80,0x7D,0x79,0x78,0x77,0x76,0x77,0x79,0x7B, -0x7D,0x80,0x82,0x85,0x87,0x88,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x85,0x87,0x85, -0x81,0x81,0x81,0x81,0x81,0x7F,0x7D,0x7C,0x7E,0x7F,0x80,0x81,0x81,0x7F,0x7D,0x7D, -0x80,0x80,0x80,0x7F,0x7E,0x7A,0x76,0x75,0x79,0x7B,0x79,0x79,0x7C,0x81,0x85,0x86, -0x84,0x81,0x80,0x81,0x82,0x81,0x7F,0x7D,0x7D,0x7F,0x80,0x7F,0x80,0x80,0x81,0x80, -0x7F,0x7F,0x80,0x7F,0x7C,0x7C,0x7D,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x7C,0x7A,0x79, -0x78,0x77,0x76,0x77,0x77,0x7A,0x7D,0x81,0x85,0x84,0x84,0x83,0x82,0x85,0x86,0x84, -0x80,0x7F,0x82,0x86,0x89,0x89,0x86,0x83,0x80,0x7C,0x79,0x78,0x7A,0x7F,0x80,0x7F, -0x7E,0x7E,0x7E,0x7D,0x7C,0x7B,0x7B,0x7C,0x7E,0x7F,0x7F,0x80,0x83,0x85,0x84,0x84, -0x86,0x86,0x84,0x84,0x86,0x8A,0x8B,0x8A,0x8A,0x8A,0x8A,0x8C,0x8C,0x8A,0x87,0x83, -0x80,0x80,0x82,0x84,0x84,0x84,0x83,0x81,0x80,0x7D,0x7B,0x79,0x78,0x76,0x78,0x78, -0x77,0x78,0x7C,0x7F,0x80,0x82,0x81,0x80,0x7C,0x7A,0x7C,0x7F,0x82,0x83,0x85,0x88, -0x8B,0x8D,0x8C,0x8B,0x88,0x85,0x84,0x82,0x81,0x7E,0x7D,0x7C,0x7C,0x7E,0x7E,0x7E, -0x7E,0x7F,0x7F,0x7E,0x7A,0x76,0x75,0x76,0x77,0x78,0x7A,0x7C,0x7B,0x78,0x76,0x78, -0x7B,0x7E,0x7D,0x7D,0x7E,0x7F,0x80,0x83,0x85,0x85,0x83,0x82,0x82,0x84,0x85,0x86, -0x86,0x83,0x7E,0x79,0x77,0x79,0x79,0x79,0x7A,0x7D,0x80,0x80,0x80,0x82,0x82,0x83, -0x83,0x82,0x81,0x81,0x81,0x81,0x82,0x85,0x87,0x85,0x82,0x7E,0x7B,0x7A,0x7C,0x7D, -0x7A,0x78,0x79,0x7D,0x7F,0x7E,0x7F,0x81,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x84, -0x83,0x83,0x84,0x85,0x86,0x86,0x83,0x7F,0x7E,0x80,0x81,0x81,0x80,0x7E,0x7D,0x7E, -0x82,0x85,0x86,0x88,0x88,0x86,0x81,0x7C,0x7B,0x7C,0x7D,0x7B,0x7A,0x7C,0x7E,0x7E, -0x7C,0x79,0x78,0x7A,0x80,0x84,0x85,0x84,0x85,0x87,0x8A,0x8D,0x8E,0x8B,0x87,0x83, -0x80,0x7F,0x80,0x7E,0x7C,0x7B,0x7C,0x7E,0x80,0x81,0x82,0x81,0x7F,0x7D,0x7D,0x7E, -0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7D,0x7E,0x81,0x83,0x84,0x85,0x85,0x85,0x85,0x83, -0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x82,0x82,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7B, -0x79,0x79,0x7C,0x7E,0x7D,0x7C,0x7C,0x7B,0x79,0x77,0x77,0x77,0x78,0x7A,0x7D,0x80, -0x83,0x86,0x86,0x85,0x81,0x80,0x81,0x85,0x87,0x84,0x7F,0x7D,0x7D,0x7E,0x7E,0x7E, -0x80,0x81,0x81,0x80,0x80,0x7F,0x7E,0x7C,0x7B,0x7A,0x79,0x7B,0x7B,0x7B,0x79,0x78, -0x7A,0x7E,0x82,0x82,0x81,0x7F,0x7C,0x7A,0x79,0x7B,0x7D,0x80,0x83,0x85,0x87,0x88, -0x88,0x87,0x88,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x83,0x81,0x80,0x81, -0x83,0x83,0x85,0x85,0x84,0x80,0x7D,0x7A,0x77,0x74,0x76,0x7A,0x7F,0x83,0x84,0x84, -0x84,0x85,0x84,0x80,0x7C,0x7A,0x7B,0x7E,0x82,0x87,0x8B,0x8D,0x8E,0x8D,0x8A,0x85, -0x81,0x7F,0x7D,0x7D,0x80,0x85,0x88,0x89,0x88,0x87,0x85,0x83,0x82,0x80,0x7A,0x76, -0x74,0x73,0x74,0x76,0x78,0x7B,0x7E,0x7F,0x7F,0x7E,0x7F,0x7E,0x7C,0x7C,0x80,0x84, -0x85,0x82,0x80,0x80,0x84,0x88,0x8C,0x8C,0x88,0x84,0x82,0x82,0x80,0x7C,0x7B,0x7B, -0x7B,0x77,0x74,0x74,0x74,0x75,0x79,0x7D,0x81,0x82,0x80,0x7E,0x7E,0x80,0x80,0x7F, -0x7E,0x7C,0x7B,0x7E,0x83,0x87,0x87,0x84,0x82,0x81,0x82,0x83,0x82,0x7F,0x7C,0x7A, -0x7A,0x7E,0x82,0x84,0x84,0x84,0x83,0x81,0x7F,0x7E,0x7D,0x7C,0x7D,0x7C,0x7D,0x7E, -0x7E,0x7E,0x7E,0x7F,0x7F,0x7D,0x7B,0x79,0x79,0x7C,0x81,0x83,0x84,0x87,0x88,0x86, -0x84,0x83,0x81,0x80,0x7F,0x7F,0x80,0x82,0x82,0x81,0x80,0x7F,0x7E,0x7E,0x7E,0x82, -0x86,0x88,0x88,0x86,0x84,0x7F,0x7B,0x7A,0x79,0x78,0x78,0x7A,0x7C,0x7E,0x82,0x85, -0x87,0x85,0x81,0x7F,0x7C,0x7B,0x7C,0x7E,0x80,0x82,0x85,0x89,0x8E,0x91,0x8F,0x88, -0x84,0x81,0x81,0x81,0x7F,0x7F,0x80,0x82,0x84,0x85,0x85,0x82,0x80,0x7E,0x7D,0x7E, -0x7D,0x7C,0x7A,0x79,0x78,0x7A,0x7E,0x83,0x86,0x89,0x88,0x84,0x82,0x80,0x7F,0x7F, -0x80,0x83,0x86,0x87,0x86,0x85,0x84,0x82,0x80,0x7C,0x7A,0x79,0x7C,0x7F,0x81,0x80, -0x80,0x83,0x86,0x83,0x7F,0x7C,0x7A,0x78,0x77,0x77,0x79,0x7B,0x7E,0x7E,0x7A,0x76, -0x74,0x76,0x7C,0x82,0x85,0x86,0x88,0x89,0x89,0x88,0x85,0x80,0x7C,0x79,0x77,0x77, -0x79,0x7A,0x7B,0x7C,0x7F,0x81,0x82,0x81,0x7E,0x7B,0x79,0x7B,0x7D,0x7D,0x7C,0x7B, -0x7D,0x7F,0x80,0x82,0x82,0x80,0x7D,0x7C,0x7C,0x7E,0x80,0x82,0x82,0x81,0x80,0x80, -0x80,0x7F,0x7E,0x7F,0x81,0x82,0x82,0x83,0x86,0x89,0x8A,0x87,0x83,0x80,0x7D,0x7A, -0x79,0x7B,0x7E,0x80,0x83,0x87,0x8B,0x8A,0x85,0x7F,0x7E,0x7E,0x7F,0x81,0x82,0x84, -0x86,0x87,0x87,0x86,0x84,0x83,0x82,0x7F,0x7E,0x7F,0x81,0x81,0x7F,0x7E,0x7D,0x7F, -0x83,0x85,0x84,0x81,0x80,0x80,0x80,0x81,0x7F,0x7E,0x7F,0x82,0x82,0x80,0x81,0x84, -0x85,0x83,0x7F,0x7C,0x7C,0x7E,0x80,0x81,0x83,0x86,0x88,0x89,0x87,0x85,0x83,0x81, -0x7F,0x7D,0x7D,0x7D,0x7C,0x7C,0x7D,0x7B,0x7A,0x79,0x7B,0x7B,0x7C,0x7D,0x7C,0x79, -0x79,0x7B,0x80,0x82,0x83,0x83,0x84,0x86,0x85,0x82,0x80,0x81,0x81,0x80,0x80,0x81, -0x81,0x80,0x7F,0x7F,0x81,0x81,0x80,0x80,0x80,0x80,0x7F,0x80,0x7F,0x7E,0x7E,0x7D, -0x7C,0x79,0x78,0x79,0x7A,0x79,0x77,0x78,0x7C,0x80,0x7F,0x7D,0x7D,0x80,0x82,0x83, -0x83,0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x85,0x84,0x80, -0x7B,0x78,0x78,0x79,0x7A,0x7B,0x7C,0x7C,0x7D,0x7D,0x7B,0x7A,0x79,0x7A,0x7D,0x80, -0x81,0x81,0x82,0x85,0x88,0x89,0x88,0x86,0x85,0x83,0x82,0x81,0x7F,0x7D,0x7F,0x81, -0x82,0x84,0x85,0x86,0x86,0x84,0x82,0x84,0x86,0x86,0x84,0x81,0x7F,0x7F,0x7E,0x7D, -0x7D,0x7F,0x7F,0x80,0x80,0x7F,0x80,0x82,0x84,0x86,0x86,0x86,0x86,0x84,0x82,0x81, -0x81,0x83,0x84,0x84,0x84,0x83,0x83,0x85,0x85,0x83,0x81,0x80,0x81,0x82,0x82,0x82, -0x82,0x82,0x82,0x82,0x82,0x81,0x7F,0x7D,0x7C,0x7B,0x7A,0x7A,0x7B,0x7C,0x7D,0x7E, -0x7F,0x7F,0x7E,0x7B,0x79,0x79,0x7B,0x7C,0x7E,0x80,0x82,0x83,0x85,0x85,0x84,0x81, -0x7E,0x7F,0x80,0x7E,0x7A,0x79,0x7B,0x7D,0x7E,0x80,0x82,0x83,0x80,0x7E,0x7C,0x7A, -0x78,0x77,0x76,0x76,0x77,0x79,0x7C,0x7E,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x7F,0x7D, -0x7C,0x7C,0x7C,0x7C,0x7D,0x7F,0x81,0x80,0x7F,0x81,0x84,0x89,0x8A,0x88,0x85,0x83, -0x82,0x80,0x7E,0x7C,0x7A,0x7A,0x7E,0x83,0x85,0x84,0x84,0x85,0x86,0x85,0x83,0x83, -0x83,0x82,0x7E,0x7C,0x7A,0x7A,0x7B,0x7D,0x7F,0x81,0x82,0x83,0x84,0x84,0x83,0x81, -0x80,0x80,0x80,0x82,0x86,0x89,0x88,0x83,0x80,0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x80, -0x82,0x85,0x89,0x8B,0x8B,0x89,0x86,0x83,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x80, -0x7E,0x7C,0x7C,0x7D,0x7E,0x80,0x81,0x80,0x7E,0x7D,0x7B,0x7A,0x7C,0x7E,0x7F,0x80, -0x81,0x83,0x83,0x81,0x7F,0x7E,0x7F,0x80,0x81,0x83,0x83,0x84,0x84,0x83,0x82,0x7F, -0x7D,0x7B,0x7C,0x7E,0x81,0x83,0x83,0x81,0x82,0x85,0x84,0x81,0x7C,0x79,0x79,0x7A, -0x7D,0x7F,0x82,0x85,0x83,0x80,0x7E,0x7E,0x7D,0x7B,0x79,0x77,0x77,0x7B,0x80,0x83, -0x81,0x7F,0x80,0x82,0x84,0x83,0x81,0x81,0x81,0x7F,0x7C,0x7A,0x7A,0x7C,0x7E,0x7F, -0x7F,0x7F,0x7D,0x7A,0x78,0x76,0x74,0x76,0x7A,0x7D,0x80,0x83,0x85,0x84,0x81,0x80, -0x7F,0x7F,0x7F,0x7F,0x81,0x83,0x83,0x82,0x81,0x82,0x82,0x81,0x7F,0x81,0x84,0x83, -0x80,0x7F,0x82,0x85,0x86,0x86,0x85,0x80,0x7B,0x79,0x79,0x7B,0x7D,0x7E,0x7F,0x7D, -0x7B,0x7A,0x7D,0x82,0x84,0x84,0x85,0x85,0x86,0x85,0x83,0x83,0x85,0x86,0x87,0x88, -0x88,0x86,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x83,0x81,0x83,0x85,0x86,0x85,0x84, -0x82,0x80,0x7F,0x7F,0x7F,0x7E,0x7F,0x81,0x83,0x84,0x84,0x81,0x7E,0x7C,0x7B,0x7A, -0x7B,0x7F,0x82,0x83,0x81,0x7F,0x7F,0x81,0x82,0x81,0x7F,0x7F,0x80,0x81,0x82,0x81, -0x81,0x83,0x82,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7D,0x7C,0x7B,0x79,0x79, -0x7B,0x7D,0x7D,0x7B,0x7A,0x7C,0x7E,0x7F,0x7F,0x7D,0x7A,0x78,0x76,0x75,0x76,0x79, -0x7D,0x80,0x82,0x83,0x83,0x83,0x82,0x80,0x80,0x7F,0x7F,0x80,0x81,0x81,0x80,0x80, -0x83,0x85,0x87,0x86,0x83,0x80,0x7C,0x79,0x75,0x75,0x78,0x7D,0x7F,0x7F,0x7F,0x82, -0x86,0x87,0x86,0x84,0x81,0x7E,0x7A,0x77,0x74,0x76,0x7C,0x80,0x83,0x86,0x89,0x8C, -0x8C,0x8A,0x87,0x86,0x85,0x82,0x80,0x7E,0x7C,0x7D,0x7F,0x81,0x83,0x84,0x83,0x82, -0x81,0x81,0x80,0x7E,0x7D,0x7D,0x7E,0x80,0x81,0x82,0x84,0x86,0x85,0x84,0x83,0x81, -0x7F,0x7D,0x7D,0x7E,0x80,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x82,0x7F,0x7D,0x7C, -0x7B,0x7A,0x79,0x79,0x7B,0x7F,0x82,0x86,0x88,0x88,0x85,0x81,0x81,0x81,0x82,0x82, -0x81,0x81,0x81,0x83,0x84,0x82,0x81,0x80,0x81,0x81,0x81,0x80,0x80,0x81,0x83,0x85, -0x85,0x82,0x80,0x80,0x80,0x7E,0x7B,0x7A,0x7D,0x7F,0x80,0x7D,0x7C,0x7B,0x7A,0x78, -0x78,0x7A,0x7E,0x81,0x83,0x85,0x87,0x88,0x86,0x84,0x83,0x80,0x7D,0x7B,0x7A,0x79, -0x78,0x79,0x7C,0x7E,0x81,0x81,0x81,0x80,0x80,0x81,0x82,0x83,0x82,0x81,0x80,0x7F, -0x7E,0x7C,0x7C,0x80,0x82,0x82,0x80,0x7E,0x7C,0x7B,0x7C,0x7D,0x7E,0x7D,0x7C,0x7C, -0x7B,0x7A,0x79,0x7A,0x7B,0x7B,0x7A,0x7C,0x7F,0x81,0x80,0x7F,0x81,0x83,0x82,0x80, -0x7F,0x80,0x80,0x7F,0x7F,0x83,0x87,0x8A,0x89,0x86,0x83,0x82,0x83,0x84,0x83,0x83, -0x84,0x85,0x83,0x80,0x7E,0x7E,0x7D,0x7C,0x7B,0x7A,0x7D,0x81,0x84,0x86,0x86,0x84, -0x83,0x82,0x81,0x80,0x80,0x81,0x83,0x85,0x85,0x87,0x88,0x88,0x86,0x84,0x84,0x83, -0x81,0x7F,0x7E,0x7E,0x7E,0x7F,0x82,0x85,0x86,0x85,0x82,0x80,0x81,0x82,0x81,0x7F, -0x7D,0x7C,0x7E,0x7F,0x7F,0x7F,0x80,0x81,0x83,0x83,0x82,0x82,0x82,0x7F,0x7D,0x7E, -0x7F,0x7F,0x7E,0x7F,0x82,0x83,0x82,0x82,0x83,0x83,0x82,0x81,0x80,0x7D,0x7A,0x7A, -0x7B,0x7C,0x7D,0x7B,0x7A,0x7C,0x7F,0x81,0x81,0x7F,0x7B,0x78,0x79,0x7B,0x7A,0x7A, -0x7C,0x7E,0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7E,0x7E,0x80,0x83,0x85,0x85,0x82,0x80, -0x7F,0x80,0x81,0x81,0x81,0x83,0x85,0x84,0x81,0x7F,0x7D,0x7C,0x7A,0x78,0x7A,0x7C, -0x7E,0x7E,0x7D,0x7D,0x7E,0x81,0x82,0x81,0x7F,0x7E,0x7F,0x7E,0x7B,0x7A,0x7B,0x7C, -0x7D,0x7E,0x81,0x84,0x86,0x86,0x85,0x84,0x82,0x80,0x7F,0x80,0x81,0x81,0x83,0x86, -0x89,0x8B,0x8C,0x8C,0x8A,0x86,0x80,0x7B,0x78,0x79,0x7A,0x7C,0x7D,0x7D,0x7C,0x7E, -0x81,0x82,0x81,0x7F,0x7B,0x79,0x79,0x7C,0x7F,0x83,0x86,0x87,0x87,0x86,0x84,0x83, -0x81,0x81,0x81,0x81,0x81,0x80,0x7F,0x7E,0x80,0x80,0x80,0x7F,0x7F,0x80,0x83,0x87, -0x8A,0x8C,0x8C,0x8A,0x86,0x80,0x7C,0x7A,0x79,0x7B,0x7E,0x81,0x81,0x81,0x81,0x80, -0x7E,0x7E,0x7E,0x80,0x81,0x81,0x81,0x80,0x80,0x82,0x83,0x84,0x83,0x82,0x81,0x80, -0x7E,0x7E,0x7D,0x7C,0x7E,0x81,0x83,0x83,0x81,0x7F,0x7E,0x80,0x83,0x85,0x84,0x81, -0x7D,0x7B,0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x7E,0x7A,0x77,0x76,0x77,0x77, -0x77,0x78,0x7B,0x7D,0x7E,0x7E,0x7F,0x81,0x81,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7E, -0x7F,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x85,0x83,0x81,0x81,0x82,0x80,0x7D,0x7B, -0x7C,0x7C,0x7C,0x79,0x78,0x79,0x7A,0x7A,0x7A,0x7A,0x7B,0x7C,0x7C,0x7B,0x7C,0x7E, -0x81,0x83,0x85,0x86,0x85,0x83,0x83,0x84,0x85,0x84,0x85,0x86,0x89,0x8B,0x8B,0x89, -0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x85,0x83,0x7F,0x7A,0x77,0x78,0x7C, -0x80,0x82,0x82,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7D,0x7C,0x7B,0x7D,0x7F,0x81,0x84, -0x85,0x84,0x84,0x84,0x86,0x85,0x84,0x83,0x83,0x84,0x86,0x8B,0x8D,0x8C,0x88,0x85, -0x82,0x7E,0x7B,0x7A,0x7C,0x7E,0x7F,0x7E,0x7C,0x79,0x78,0x78,0x79,0x79,0x79,0x78, -0x78,0x77,0x77,0x7A,0x7D,0x7F,0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x83,0x83,0x85, -0x87,0x86,0x83,0x81,0x83,0x84,0x83,0x80,0x7F,0x80,0x82,0x81,0x7F,0x7D,0x7B,0x78, -0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x7B,0x7E,0x81,0x81,0x80,0x7E,0x7C,0x7B, -0x7A,0x79,0x79,0x7B,0x80,0x85,0x89,0x8A,0x89,0x89,0x89,0x87,0x84,0x81,0x7F,0x80, -0x81,0x80,0x7F,0x7F,0x82,0x84,0x85,0x82,0x7D,0x7A,0x78,0x77,0x76,0x75,0x77,0x7B, -0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7D,0x7C,0x7D,0x80,0x82,0x82,0x83,0x85,0x85,0x84, -0x83,0x84,0x86,0x86,0x83,0x81,0x82,0x85,0x86,0x86,0x85,0x84,0x84,0x85,0x85,0x84, -0x82,0x81,0x81,0x82,0x83,0x81,0x7D,0x7B,0x7B,0x7C,0x7E,0x7F,0x7F,0x7F,0x7F,0x80, -0x81,0x84,0x85,0x84,0x83,0x83,0x86,0x88,0x88,0x86,0x85,0x86,0x85,0x85,0x86,0x85, -0x83,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x84,0x85,0x83,0x7E,0x7C,0x7C,0x7C,0x7D, -0x7F,0x80,0x81,0x81,0x81,0x7F,0x7E,0x7E,0x7E,0x7D,0x7A,0x77,0x76,0x78,0x7A,0x7D, -0x7F,0x80,0x82,0x85,0x89,0x8A,0x89,0x86,0x81,0x7E,0x7D,0x7D,0x7D,0x7B,0x79,0x76, -0x76,0x78,0x7B,0x7E,0x7F,0x80,0x80,0x7F,0x7B,0x79,0x7B,0x7E,0x7F,0x81,0x81,0x82, -0x81,0x7D,0x7B,0x79,0x79,0x78,0x77,0x78,0x79,0x7B,0x7C,0x7C,0x7E,0x80,0x82,0x83, -0x83,0x83,0x83,0x83,0x82,0x7F,0x7D,0x7C,0x7D,0x7E,0x80,0x84,0x86,0x86,0x85,0x85, -0x86,0x85,0x83,0x81,0x7E,0x7D,0x7D,0x7F,0x81,0x84,0x87,0x89,0x8A,0x8A,0x86,0x81, -0x7F,0x7F,0x7E,0x7D,0x7E,0x80,0x82,0x81,0x80,0x7D,0x7B,0x7A,0x7A,0x7B,0x7C,0x7E, -0x00 -}; diff --git a/lpctool/trunk/ChangeLog b/lpctool/ChangeLog similarity index 100% rename from lpctool/trunk/ChangeLog rename to lpctool/ChangeLog diff --git a/lpctool/trunk/Makefile b/lpctool/Makefile similarity index 100% rename from lpctool/trunk/Makefile rename to lpctool/Makefile diff --git a/lpctool/trunk/Makefile.local.WinARM b/lpctool/Makefile.local.WinARM similarity index 100% rename from lpctool/trunk/Makefile.local.WinARM rename to lpctool/Makefile.local.WinARM diff --git a/lpctool/trunk/Makefile.local.linuxARM b/lpctool/Makefile.local.linuxARM similarity index 100% rename from lpctool/trunk/Makefile.local.linuxARM rename to lpctool/Makefile.local.linuxARM diff --git a/lpctool/trunk/bin2h.c b/lpctool/bin2h.c similarity index 100% rename from lpctool/trunk/bin2h.c rename to lpctool/bin2h.c diff --git a/lpctool/trunk/bootcom.c b/lpctool/bootcom.c similarity index 100% rename from lpctool/trunk/bootcom.c rename to lpctool/bootcom.c diff --git a/lpctool/trunk/bootcom.h b/lpctool/bootcom.h similarity index 100% rename from lpctool/trunk/bootcom.h rename to lpctool/bootcom.h diff --git a/boop/trunk/display/fonts/charset.bits b/lpctool/charset.bits similarity index 100% rename from boop/trunk/display/fonts/charset.bits rename to lpctool/charset.bits diff --git a/boop/trunk/display/fonts/charset.info b/lpctool/charset.info similarity index 100% rename from boop/trunk/display/fonts/charset.info rename to lpctool/charset.info diff --git a/lpctool/trunk/crt.s b/lpctool/crt.s similarity index 100% rename from lpctool/trunk/crt.s rename to lpctool/crt.s diff --git a/lpctool/trunk/flash.c b/lpctool/flash.c similarity index 100% rename from lpctool/trunk/flash.c rename to lpctool/flash.c diff --git a/lpctool/trunk/flash.h b/lpctool/flash.h similarity index 100% rename from lpctool/trunk/flash.h rename to lpctool/flash.h diff --git a/lpctool/trunk/fonty.c b/lpctool/fonty.c similarity index 100% rename from lpctool/trunk/fonty.c rename to lpctool/fonty.c diff --git a/lpctool/trunk/fonty.h b/lpctool/fonty.h similarity index 100% rename from lpctool/trunk/fonty.h rename to lpctool/fonty.h diff --git a/lpctool/trunk/infohelper.c b/lpctool/infohelper.c similarity index 100% rename from lpctool/trunk/infohelper.c rename to lpctool/infohelper.c diff --git a/lpctool/trunk/infohelper.h b/lpctool/infohelper.h similarity index 100% rename from lpctool/trunk/infohelper.h rename to lpctool/infohelper.h diff --git a/lpctool/trunk/irq.c b/lpctool/irq.c similarity index 100% rename from lpctool/trunk/irq.c rename to lpctool/irq.c diff --git a/lpctool/trunk/lcd.c b/lpctool/lcd.c similarity index 100% rename from lpctool/trunk/lcd.c rename to lpctool/lcd.c diff --git a/lpctool/trunk/lcd.h b/lpctool/lcd.h similarity index 100% rename from lpctool/trunk/lcd.h rename to lpctool/lcd.h diff --git a/lpctool/trunk/lpc2220.h b/lpctool/lpc2220.h similarity index 100% rename from lpctool/trunk/lpc2220.h rename to lpctool/lpc2220.h diff --git a/lpctool/trunk/lpc2220.ld b/lpctool/lpc2220.ld similarity index 100% rename from lpctool/trunk/lpc2220.ld rename to lpctool/lpc2220.ld diff --git a/lpctool/trunk/lpc2220_rom.ld b/lpctool/lpc2220_rom.ld similarity index 100% rename from lpctool/trunk/lpc2220_rom.ld rename to lpctool/lpc2220_rom.ld diff --git a/lpctool/trunk/lpctool.c b/lpctool/lpctool.c similarity index 100% rename from lpctool/trunk/lpctool.c rename to lpctool/lpctool.c diff --git a/lpctool/trunk/lpctool_serial.c b/lpctool/lpctool_serial.c similarity index 100% rename from lpctool/trunk/lpctool_serial.c rename to lpctool/lpctool_serial.c diff --git a/lpctool/trunk/lpctool_serial.h b/lpctool/lpctool_serial.h similarity index 100% rename from lpctool/trunk/lpctool_serial.h rename to lpctool/lpctool_serial.h diff --git a/lpctool/trunk/ramtool.c b/lpctool/ramtool.c similarity index 100% rename from lpctool/trunk/ramtool.c rename to lpctool/ramtool.c diff --git a/lpctool/trunk/serial.c b/lpctool/serial.c similarity index 100% rename from lpctool/trunk/serial.c rename to lpctool/serial.c diff --git a/lpctool/trunk/serial.h b/lpctool/serial.h similarity index 100% rename from lpctool/trunk/serial.h rename to lpctool/serial.h diff --git a/lpctool/trunk/toolcmd.h b/lpctool/toolcmd.h similarity index 100% rename from lpctool/trunk/toolcmd.h rename to lpctool/toolcmd.h diff --git a/lpctool/trunk/toolcom.c b/lpctool/toolcom.c similarity index 100% rename from lpctool/trunk/toolcom.c rename to lpctool/toolcom.c diff --git a/lpctool/trunk/toolcom.h b/lpctool/toolcom.h similarity index 100% rename from lpctool/trunk/toolcom.h rename to lpctool/toolcom.h diff --git a/lpctool/trunk/charset.bits b/lpctool/trunk/charset.bits deleted file mode 100644 index 307a269..0000000 --- a/lpctool/trunk/charset.bits +++ /dev/null @@ -1,118 +0,0 @@ -const unsigned char charset_bits[] = { - 0x80, 0xc0, 0x80, 0xe0, 0x80, 0xc0, 0x80, 0xf0, 0x01, 0x03, 0x01, 0x07, - 0x01, 0x03, 0x01, 0x0f, 0x80, 0x88, 0xaa, 0xff, 0xff, 0xaa, 0x88, 0x80, - 0x00, 0xc0, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x07, - 0x00, 0x03, 0x00, 0x0f, 0x80, 0x88, 0xaa, 0xab, 0xab, 0xaa, 0x88, 0x80, - 0x80, 0x80, 0x80, 0x70, 0x01, 0x01, 0x01, 0x0e, 0x0e, 0x01, 0x01, 0x01, - 0x70, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x24, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x80, 0x00, 0x80, - 0x00, 0x80, 0x00, 0x92, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xaa, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xaa, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x81, - 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xaa, 0x02, 0x05, 0x02, 0x00, - 0x3e, 0x41, 0x41, 0x22, 0x02, 0x05, 0x02, 0x00, 0x7f, 0x09, 0x09, 0x01, - 0x1c, 0x22, 0x41, 0x4f, 0x41, 0x22, 0x1c, 0x1c, 0x22, 0x41, 0x4f, 0x47, - 0x22, 0x1c, 0x1c, 0x22, 0x41, 0x4f, 0x4f, 0x2e, 0x1c, 0x1c, 0x22, 0x41, - 0x4f, 0x5f, 0x3e, 0x1c, 0x1c, 0x22, 0x41, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, - 0x22, 0x71, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, 0x3a, 0x79, 0x7f, 0x7f, 0x3e, - 0x1c, 0x1c, 0x3e, 0x7d, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, 0x3e, 0x7f, 0x7f, - 0x7f, 0x3e, 0x1c, 0x00, 0x00, 0x5f, 0x03, 0x00, 0x03, 0x14, 0x7f, 0x14, - 0x7f, 0x14, 0x24, 0x4a, 0xff, 0x4a, 0x32, 0x63, 0x13, 0x08, 0x64, 0x63, - 0x36, 0x49, 0x55, 0x22, 0x50, 0x03, 0x1c, 0x22, 0x41, 0x41, 0x22, 0x1c, - 0x14, 0x08, 0x3e, 0x08, 0x14, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x80, 0x60, - 0x60, 0x08, 0x08, 0x08, 0x08, 0x08, 0x60, 0x60, 0xc0, 0x30, 0x0c, 0x03, - 0x3e, 0x51, 0x49, 0x45, 0x3e, 0x00, 0x42, 0x7f, 0x40, 0x00, 0x42, 0x61, - 0x51, 0x49, 0x46, 0x22, 0x41, 0x49, 0x49, 0x36, 0x18, 0x14, 0x12, 0x7f, - 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3e, 0x49, 0x49, 0x49, 0x32, 0x61, - 0x11, 0x09, 0x05, 0x03, 0x36, 0x49, 0x49, 0x49, 0x36, 0x26, 0x49, 0x49, - 0x49, 0x3e, 0x6c, 0x6c, 0x80, 0x6c, 0x6c, 0x08, 0x14, 0x22, 0x41, 0x14, - 0x14, 0x14, 0x14, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x51, 0x09, 0x06, - 0x3e, 0x41, 0x59, 0x55, 0x5e, 0x7e, 0x09, 0x09, 0x09, 0x7e, 0x7f, 0x49, - 0x49, 0x49, 0x36, 0x3e, 0x41, 0x41, 0x41, 0x22, 0x7f, 0x41, 0x41, 0x41, - 0x3e, 0x7f, 0x49, 0x49, 0x41, 0x41, 0x7f, 0x09, 0x09, 0x01, 0x01, 0x3e, - 0x41, 0x41, 0x49, 0x3a, 0x7f, 0x08, 0x08, 0x08, 0x7f, 0x41, 0x7f, 0x41, - 0x30, 0x41, 0x41, 0x41, 0x3f, 0x7f, 0x08, 0x14, 0x22, 0x41, 0x7f, 0x40, - 0x40, 0x40, 0x40, 0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x7f, 0x02, 0x04, 0x08, - 0x7f, 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x7f, 0x09, 0x09, 0x09, 0x06, 0x3e, - 0x41, 0x41, 0x41, 0xbe, 0x7f, 0x09, 0x09, 0x09, 0x76, 0x26, 0x49, 0x49, - 0x49, 0x32, 0x01, 0x01, 0x7f, 0x01, 0x01, 0x3f, 0x40, 0x40, 0x40, 0x3f, - 0x1f, 0x20, 0x40, 0x20, 0x1f, 0x7f, 0x20, 0x10, 0x20, 0x7f, 0x41, 0x22, - 0x1c, 0x22, 0x41, 0x07, 0x08, 0x70, 0x08, 0x07, 0x61, 0x51, 0x49, 0x45, - 0x43, 0x7f, 0x41, 0x41, 0x03, 0x0c, 0x30, 0xc0, 0x41, 0x41, 0x7f, 0x02, - 0x01, 0x02, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01, 0x02, 0x20, 0x54, 0x54, - 0x78, 0x7f, 0x48, 0x48, 0x30, 0x38, 0x44, 0x44, 0x24, 0x30, 0x48, 0x48, - 0x7f, 0x38, 0x54, 0x54, 0x18, 0x08, 0x7e, 0x09, 0x02, 0x98, 0xa4, 0xa4, - 0x78, 0x7f, 0x08, 0x08, 0x70, 0x44, 0x7d, 0x40, 0x44, 0x84, 0x7d, 0x7f, - 0x10, 0x28, 0x44, 0x41, 0x7f, 0x40, 0x7c, 0x04, 0x18, 0x04, 0x78, 0x7c, - 0x08, 0x04, 0x78, 0x38, 0x44, 0x44, 0x38, 0xfc, 0x24, 0x24, 0x18, 0x18, - 0x24, 0x24, 0xfc, 0x7c, 0x08, 0x04, 0x08, 0x48, 0x54, 0x54, 0x24, 0x04, - 0x3f, 0x44, 0x3c, 0x40, 0x20, 0x7c, 0x1c, 0x20, 0x40, 0x20, 0x1c, 0x3c, - 0x40, 0x30, 0x40, 0x3c, 0x44, 0x28, 0x10, 0x28, 0x44, 0x9c, 0xa0, 0xa0, - 0x7c, 0x64, 0x54, 0x54, 0x4c, 0x08, 0x36, 0x41, 0x77, 0x41, 0x36, 0x08, - 0x08, 0x08, 0x2a, 0x1c, 0x08, 0x08, 0x1c, 0x2a, 0x08, 0x08, 0x00, 0x00, - 0x00, 0xdf, 0xdf, 0x07, 0x07, 0x00, 0x07, 0x07, 0x14, 0x3e, 0x14, 0x3e, - 0x14, 0x24, 0x4a, 0xff, 0x4a, 0x32, 0xf3, 0xfb, 0x18, 0xdf, 0xc7, 0x36, - 0x49, 0x55, 0x22, 0x50, 0x04, 0x07, 0x03, 0x3c, 0x7e, 0xc3, 0x81, 0x81, - 0xc3, 0x7e, 0x3c, 0x14, 0x08, 0x3e, 0x08, 0x14, 0x18, 0x7e, 0x7e, 0x18, - 0x80, 0x60, 0x60, 0x18, 0x18, 0x18, 0x18, 0x18, 0x60, 0x60, 0xc0, 0xf0, - 0x3c, 0x0f, 0x03, 0x7e, 0xff, 0xc3, 0xff, 0x7e, 0x04, 0xc6, 0xff, 0xff, - 0xc0, 0xe6, 0xf7, 0xd3, 0xdf, 0xce, 0x42, 0xc3, 0xdb, 0xff, 0x76, 0x38, - 0x3c, 0x36, 0xff, 0xff, 0x5f, 0xdf, 0xdb, 0xfb, 0x73, 0x7e, 0xff, 0xdb, - 0xfb, 0x72, 0x03, 0xf3, 0xfb, 0x0f, 0x07, 0x76, 0xff, 0xdb, 0xff, 0x76, - 0x4e, 0xdf, 0xdb, 0xff, 0x7e, 0x6c, 0x6c, 0x80, 0x6c, 0x6c, 0x18, 0x3c, - 0x66, 0xc3, 0x81, 0x36, 0x36, 0x36, 0x36, 0x81, 0xc3, 0x66, 0x3c, 0x18, - 0x06, 0xd3, 0xd9, 0x0f, 0x06, 0x7e, 0xc3, 0xdb, 0xd7, 0xde, 0xfe, 0xff, - 0x33, 0xff, 0xfe, 0xff, 0xff, 0xdb, 0xff, 0x66, 0x7e, 0xff, 0xc3, 0xe7, - 0x66, 0xff, 0xff, 0xc3, 0xff, 0x7e, 0xff, 0xff, 0xdb, 0xdb, 0xc3, 0xff, - 0xff, 0x1b, 0x1b, 0x03, 0x7e, 0xff, 0xc3, 0xfb, 0x7a, 0xff, 0xff, 0x18, - 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0x60, 0xe3, 0xc3, 0xff, 0x7f, 0xff, - 0xff, 0x1c, 0xf7, 0xe3, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xfe, 0x0c, - 0xfe, 0xff, 0xff, 0xfe, 0x18, 0x7f, 0xff, 0x7e, 0xff, 0xc3, 0xff, 0x7e, - 0xff, 0xff, 0x1b, 0x1f, 0x0e, 0x7e, 0xff, 0xc3, 0x7f, 0xde, 0xff, 0xff, - 0x1b, 0xff, 0xee, 0x4e, 0xdf, 0xdb, 0xfb, 0x72, 0x03, 0xff, 0xff, 0x03, - 0x03, 0x7f, 0xff, 0xc0, 0xff, 0x7f, 0x3f, 0x7f, 0xc0, 0x7f, 0x3f, 0xff, - 0x7f, 0x30, 0x7f, 0xff, 0xe7, 0xe7, 0x18, 0x18, 0xe7, 0xe7, 0x0f, 0x1f, - 0xf0, 0x1f, 0x0f, 0xe3, 0xf3, 0xdb, 0xcf, 0xc7, 0xff, 0xff, 0xc3, 0xc3, - 0x03, 0x0f, 0x3c, 0xf0, 0xc0, 0xc3, 0xc3, 0xff, 0xff, 0x04, 0x06, 0x03, - 0x06, 0x04, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x03, 0x07, 0x60, 0xf4, 0xd4, - 0xf4, 0xf8, 0xff, 0xff, 0xcc, 0xfc, 0x78, 0x78, 0xfc, 0xcc, 0xcc, 0x48, - 0x78, 0xfc, 0xcc, 0xff, 0xff, 0x78, 0xfc, 0xac, 0xbc, 0xb8, 0x18, 0xfe, - 0xff, 0x1b, 0x1b, 0xb8, 0xbc, 0xac, 0xfc, 0x78, 0xff, 0xff, 0x18, 0xf8, - 0xf0, 0xcc, 0xfd, 0xfd, 0xc0, 0xc0, 0xcc, 0xfd, 0x7d, 0xff, 0xff, 0x10, - 0xfc, 0xec, 0x7f, 0xff, 0xc0, 0xc0, 0xfc, 0xfc, 0x0c, 0xfc, 0x0c, 0xfc, - 0xf8, 0xfc, 0xf8, 0x0c, 0xfc, 0xf8, 0x78, 0xfc, 0xcc, 0xfc, 0x78, 0xfc, - 0xfc, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xfc, 0xf8, 0xfc, 0xf8, 0x0c, - 0x1c, 0x18, 0xd8, 0xdc, 0xfc, 0xec, 0x6c, 0x0c, 0x7f, 0xff, 0xcc, 0xcc, - 0x7c, 0xfc, 0xc0, 0x7c, 0xfc, 0x3c, 0x7c, 0xc0, 0x7c, 0x3c, 0x7c, 0xfc, - 0xc0, 0x60, 0xc0, 0xfc, 0x7c, 0xcc, 0xfc, 0x30, 0xfc, 0xdc, 0x9c, 0xbc, - 0xb0, 0xfc, 0x7c, 0xcc, 0xec, 0xfc, 0xdc, 0xcc, 0x10, 0x56, 0xef, 0x81, - 0xef, 0xef, 0x81, 0xee, 0x56, 0x10, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x18, - 0x3c, 0x7e, 0x18, 0x18, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, - 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xe3, 0xf1, 0xf8, 0x7c, - 0x3e, 0x1f, 0x8f, 0xc7, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, - 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0x7c, 0x3e, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, - 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0xff, 0xff, 0xe7, 0xc3, - 0xc3, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xc3, 0xc3, 0xe7, 0xff, 0xff, - 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x1f, 0x07, 0x03, - 0x03, 0x07, 0x1f, 0xff, 0x1c, 0x3e, 0x77, 0x63, 0x77, 0x3e, 0x1c, 0x1c, - 0x36, 0x63, 0x41, 0x63, 0x36, 0x1c, 0x1c, 0x08, 0x41, 0x63, 0x41, 0x08, - 0x1c, 0x08, 0x14, 0x22, 0x49, 0x22, 0x14, 0x08, 0x55, 0xaa, 0x55, 0xaa, - 0x55, 0xaa, 0x55, 0xaa, 0x33, 0x33, 0xcc, 0xcc, 0x33, 0x33, 0xcc, 0xcc, - 0x33, 0x33, 0x0e, 0x11, 0x0e, 0x12, 0x1f, 0x10, 0x19, 0x15, 0x12, 0x11, - 0x15, 0x0a, 0x07, 0x04, 0x1e, 0x17, 0x15, 0x09, 0x0e, 0x15, 0x09, 0x01, - 0x1d, 0x03, 0x0a, 0x15, 0x0a, 0x12, 0x15, 0x0e, 0x0a, 0x10, 0x0a, 0x04, - 0x0a, 0x11, 0x0a, 0x0a, 0x0a, 0x11, 0x0a, 0x04, 0x01, 0x15, 0x02, 0x01, - 0x03, 0x07, 0x03, 0x01, 0x04, 0x06, 0x07, 0x06, 0x04, 0x04, 0x0e, 0x1f, - 0x1f, 0x0e, 0x04, 0x18, 0x3c, 0x7e, 0x7e, 0x3c, 0x18, 0x3c, 0x42, 0x81, - 0x81, 0x81, 0x81, 0x42, 0x3c, 0x3c, 0x42, 0x99, 0xbd, 0xbd, 0x99, 0x42, - 0x3c, 0x7f, 0x49, 0x41, 0x6b, 0x41, 0x49, 0x7f, 0x80, 0x40, 0x20, 0x10, - 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0x3e, 0x01, 0x01, 0x01, - 0x01, 0x02, 0x04, 0x38, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x01, - 0x15, 0x0a, 0x15, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/lpctool/trunk/charset.info b/lpctool/trunk/charset.info deleted file mode 100644 index 5c205b8..0000000 --- a/lpctool/trunk/charset.info +++ /dev/null @@ -1,22 +0,0 @@ -const unsigned char charset_info[] = { -0x08, 0x84, 0x48, 0x84, 0x44, 0x44, 0x48, 0x88, // 0- 15 graticule & borders -0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, // 16- 31 graticule & symbols -0x21, 0x35, 0x55, 0x51, 0x33, 0x55, 0x35, 0x24, // 32- 47 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x55, 0x23, 0x44, 0x45, // 48- 63 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x53, 0x55, 0x55, 0x55, // 64- 80 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x55, 0x53, 0x43, 0x35, // 80- 95 ascii, font 1 -0x24, 0x44, 0x44, 0x44, 0x43, 0x34, 0x35, 0x44, // 96-112 ascii, font 1 -0x44, 0x44, 0x34, 0x55, 0x54, 0x43, 0x13, 0x55, // 112-127 ascii, font 1 -0x32, 0x55, 0x55, 0x53, 0x44, 0x54, 0x35, 0x25, // 128-143 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x55, 0x23, 0x54, 0x55, // 144-159 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, // 160-175 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x65, 0x54, 0x54, 0x55, // 176-191 ascii, bold font -0x25, 0x55, 0x55, 0x55, 0x54, 0x45, 0x47, 0x55, // 192-207 ascii, bold font -0x55, 0x55, 0x55, 0x57, 0x55, 0x54, 0x24, 0x55, // 208-223 ascii, bold font -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, // 224-239 symbols -0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 240-255 symbols -0x33, 0x33, 0x33, 0x33, 0x33, 0x12, 0x33, 0x33, // 256-271 small numbers -0x55, 0x33, 0x68, 0x87, 0x84, 0x44, 0x44, 0x44 // 272-288 symbols -}; - -const unsigned char charset_dlines = 1; From 66cb742a67f48e01e9d9e01a2a26f0af29f79a3e Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sun, 2 Jul 2017 09:40:50 +0200 Subject: [PATCH 02/15] Adapt makefile --- .cproject | 78 ---------------------------------------- boop/Makefile | 44 +++++++++++++---------- boop/keyboard/keyboard.c | 2 +- boop/keyboard/keyboard.h | 2 +- boop/version.h | 2 ++ 5 files changed, 29 insertions(+), 99 deletions(-) delete mode 100644 .cproject create mode 100644 boop/version.h diff --git a/.cproject b/.cproject deleted file mode 100644 index 6a3b3ee..0000000 --- a/.cproject +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - make - - debug - true - true - true - - - make - - clean - true - true - true - - - make - - program - true - true - true - - - - diff --git a/boop/Makefile b/boop/Makefile index 39e0f13..8109d9a 100644 --- a/boop/Makefile +++ b/boop/Makefile @@ -18,14 +18,15 @@ ##### ############################################################### -ARMBASE = /opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH = $(ARMBASE)/include -#LIBGCCPATH = $(ARMBASE)/lib/gcc/arm-none-eabi/4.7.3/thumb/arm7tdmi-s -#LIBCPATH = $(ARMBASE)/arm-none-eabi/lib/thumb/arm7tdmi-s -ARMPATH = $(ARMBASE)/bin + +#ARMBASE = F:/Tools/GNU_Tools_ARM_Embedded/5.4 +#INCLUDEPATH = $(ARMBASE)/arm-none-eabi/include +#LIBPATH = $(ARMBASE)/arm-none-eabi/lib +#ARMPATH = $(ARMBASE)/bin/ TOOLPREFIX = arm-none-eabi- LPCTOOL = lpctool -OPENOCD = openocd -f betty.cfg -f interface/parport.cfg +OPENOCDPATH = F:\Tools\OpenOCD +OPENOCD = $(OPENOCDPATH)\openocd.exe -f betty.cfg -f $(OPENOCDPATH)\interface\uniprog.cfg ############################################################### ##### @@ -33,18 +34,18 @@ OPENOCD = openocd -f betty.cfg -f interface/parport.cfg ##### ############################################################### -CC = $(ARMPATH)/$(TOOLPREFIX)gcc -AS = $(ARMPATH)/$(TOOLPREFIX)as -#LD = $(ARMPATH)/$(TOOLPREFIX)ld -LD = $(ARMPATH)/$(TOOLPREFIX)gcc -OC = $(ARMPATH)/$(TOOLPREFIX)objcopy -OD = $(ARMPATH)/$(TOOLPREFIX)objdump +CC = $(ARMPATH)$(TOOLPREFIX)gcc +AS = $(ARMPATH)$(TOOLPREFIX)gcc +LD = $(ARMPATH)$(TOOLPREFIX)gcc +OC = $(ARMPATH)$(TOOLPREFIX)objcopy +OD = $(ARMPATH)$(TOOLPREFIX)objdump +SIZE = $(ARMPATH)$(TOOLPREFIX)size CPUFLAGS = -mcpu=arm7tdmi-s OPTFLAGS = -Os -CFLAGS = -Wall -mthumb-interwork -msoft-float -INC = -I$(INCLUDEPATH) -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc -Itools -ASFLAGS = -D --gstabs -mthumb-interwork -mfpu=softfpa +CFLAGS = -Wall -mthumb-interwork +INC = -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc -Itools +ASFLAGS = -g -I. -mthumb-interwork #LDFLAGS = -Tlpc2220_rom.ld -Map boop.map #LIBS = -lc -lgcc LDFLAGS = -mthumb-interwork -nostartfiles -Xlinker -Map -Xlinker boop.map -Tlpc2220_rom.ld @@ -91,9 +92,9 @@ $(eval $(call expand_dir,)) OBJS := $(patsubst %.s,%.o,$(ALLSRCS:.c=.o)) $(ALLTHUMBSRCS:.c=.thumb.o) $(ALLTHUMBSRCSUNOPT:.c=.thumbunopt.o) -all: version $(DEPS) boop_rom.bin boop_rom.hex +all: $(DEPS) boop_rom.bin boop_rom.hex -debug: version.h $(DEPS) boop_rom.bin boop_rom.hex +debug: $(DEPS) boop_rom.bin boop_rom.hex release: clean version $(DEPS) boop_rom.bin boop_rom.hex @echo -n '\n\nRelease erstellt SVN Version ++' @@ -120,9 +121,10 @@ test: boop_rom.elf boop_rom.elf: $(OBJS) $(LD) $(LDFLAGS) -L$(LIBGCCPATH) -L$(LIBCPATH) -o $@ $^ $(LIBS) + arm-none-eabi-size $@ %.o: %.s - $(AS) $(CPUFLAGS) $(ASFLAGS) -o $@ $< + $(CC) $(ASFLAGS) -c -o $@ $< %.o: %.c $(COMPILE) $(OPTFLAGS) -c -MMD -MF $(dir $<).deps/$(notdir $@) -o $@ $< @@ -145,6 +147,10 @@ program: boop_rom.bin clean: -rm -Rf $(DEPS) - -rm -f $(OBJS) *.elf *.bin *.hex *~ + -rm -f $(OBJS) *.elf *.bin *.hex *.map *~ +clean2: + -rm -Rf $(DEPS) + -rm -f $(OBJS) *.elf *.hex *.map *~ + -include $(DEPS:=/*) diff --git a/boop/keyboard/keyboard.c b/boop/keyboard/keyboard.c index 2be0baa..d01eceb 100644 --- a/boop/keyboard/keyboard.c +++ b/boop/keyboard/keyboard.c @@ -52,7 +52,7 @@ void waitKeyDown(void) setBacklight(BL_AUTO); // pwm value } -inline char isKeyPressed (void) +char isKeyPressed (void) { return ((keys[0] != 0) || (keys[1] != 0)); } diff --git a/boop/keyboard/keyboard.h b/boop/keyboard/keyboard.h index d589840..64772a9 100644 --- a/boop/keyboard/keyboard.h +++ b/boop/keyboard/keyboard.h @@ -188,7 +188,7 @@ void scanKeys(void); void waitKeyUp(void); void waitKeyDown(void); /// Return 1 if any key is pressed. -inline char isKeyPressed (void); +char isKeyPressed (void); signed char getNumKeyValue(void); unsigned char getKeynum(void); diff --git a/boop/version.h b/boop/version.h new file mode 100644 index 0000000..b2ffa08 --- /dev/null +++ b/boop/version.h @@ -0,0 +1,2 @@ +#define SVNVERSION 00 + From 0aeec3e680d22b2ca27f003a1e361526dfd47695 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sun, 2 Jul 2017 10:41:02 +0200 Subject: [PATCH 03/15] Fix compiler warnings --- boop/boop_rom.bin | Bin 268208 -> 256508 bytes boop/cc1100/cc1100.c | 6 +++++- boop/cc1100/fs20.c | 14 +++++++------- boop/display/lcd.c | 9 ++++----- boop/flash/bfs.c | 4 ++-- boop/gui/testmenu.c | 21 +++++++-------------- boop/rtc/rtc.c | 2 +- boop/serial/serial.c | 4 +++- 8 files changed, 29 insertions(+), 31 deletions(-) diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 07d71ad42b3fb39c52a7820db9c2a9ab487fb462..4e93cbe6f8c2bd8afabccf19e1b93bc17301cf6b 100644 GIT binary patch delta 98623 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 XTRKUB?;p2Y4oJAS)Px)Blga-EiObL^ delta 110637 zcmbTfdwdhunKypsqS4i|EZH!U#zxW@Fjfrm1wwExLZ%LuAR(A^0h6v1XjcizyCTVM zMUr*|BwZ8Iu5CdgOCmU-zit9)%QkU8*(Td1mu}M}Z6z+d5R&c~$4k?6w@S0E0b}d^ zo{p7WgNJm)#1OUEmZeAjm55k`4wlsifY30_)Uy57H$1cOKC zs1NcaVQD@v{_#zYafWe>*@8_U-9U)xQsBV26gWOkNcY%vgt!WLC*}9qc>hp)PipxN zyr055i+mR4D+zi0UA$ZIZXk{^Ga-uW=v58qQQ@Vl8sPB$T#y1dF>XTzD-cMP%hLv& z$bSOwPuLEO8$82fLC+iGOkjBIXyCQ++XL#@6SyA^>^e*DsQarT86InxARiOYiSc!) zw~i>NXhTKY8)#tX7>mlp^XB-`z|nF8N6QTy9k&Jl`ImLYMWe-^7jGg*iTdtR5_}Zb zBiEAPH*vj*=j(9=ago>Ns03W3Tq6K#$gMtG0l-`k?c<%o;R9bECyH%&blp)<82tM9 zX3y}L9@vtj+3`wscvJ$g>wzWX0sESFsXE*7ah@C>pZ+~4I7$&69_0hWqZWb-?U18i zAHRq^L+_mYaM7uOnGo&)2wUrFHD_^#{K(Sx{1;PvrgAX>c1GX6PG_GsW|W$yi~ z%)OtDKZ<-H45Z%}e}tC(Ys>h=Ut5&%NmQyr-_Qn?0C$!)M*D^~7Wy-dEk!U(*fmzXiPhejWu@nH$fM8akUloYKK^biWa#Mdn9a6hj2wMq{PQ2I zK07vt)!2O)Y^H4gCOG^pT+iV;gzE)d-@$c6!O!<_y@c!gxL(Hf16&L$y@LBc^ukCCF`ZpN-`q`zy6=!u2EFOS(lzSWb=j~eAQM`|t zd*2-YHUJ1HLlLIW@3;K1z*36;5}eSZ4f;I%Iyin7hK z1(X{P68qSLXtQ2xb3oH4!GQAm7{OSFW-sva}7wQ|dojz_)mqVS*g{ zXt{AVIPB=Z4U&!u9G>~+$1dxD&jS%c){KE`8sh8m&IErn{^4}-;}u?t+#opAtpVlB z&x=u(K{q#pOF;@Fm>gHupdwW^)foE$B=Vq&RUKyycrFdGUE}kCId^n;%!+>A2rlV7 zJGFeW=Ig)gK>ayrkj@L_X!5e+Ito28g9M!yW{}`K!yJaY$&NZu{YnX-&2bj}tpTB0 zi~?Z+Q12PWkOWdlTL3`WKLA1%N-s_G>>7VGcwqc?P*3Ly2Ho(bV$t+@w3D(8kKL;w zGd$)-8+14lNIy+q?}7ez(nM66)|Ahis?qnqVgm1p-IjHLXagV2e{2-|I*!stxZ5kf6A>ZI(&nj$S*Qj?k z8nH2FISen3>=>o<0BwjCw$X|=V0>2%kFu!rY~%3gGdJy0B~)g~E|r!g3AQxTp*u(r zWtoLyL{h%x1bou^6CJD*BGcluFjn#-Lt7`QhK88-r^we+)b55cE(4Y#)qs zfe#=bdvQN`jtRUDj($K@{n;YrP(b;qR-hTcFq9srnY17U{u=P8?1k?K-W+||^QNW^*8+i;11CnQp>hdzc_6+UX$+yre*J8qJSpvlOca(keZ)3k z%2p@^y~Crv`0(f(P_N$)o*X5Zc1dD*6vN8&^3ju{da`bmj}14!WW#gd36&w;m~!`x zGoE`@0YLOY^tbH^6{95&%HN~UH2qE}s+Y*g(U${g)3y)#U^B|}s)T$^-H5!Gk*8>l zl7xEbb^u2~F7Q|C_X9r~eVP1d)PP2w0#cNc!t#>!Q=sezz!XJx%?TiT`xqvjQC%-J zM1Zi3a%aa`jpgWb85h%g>>P(SUIw>bLVgcmF@evW1@{yHdJ_~5kA4LWQmhMQHWh9y zvj~kd!{E@%!=n$Q%u8$jef0Z*f5&`r`zYxj9&IBe{c`WWkJ5>X17&eEPRQrS2m}mB zF`ktWZu0q2aC8@Jz{hpAE#SaY<7RT(sCkWoJ|K?{n{30+m_5VKV0;~7DAs*ix{CBs z7?z`zU>B$!69QXQvnQ%G0E-q4Am8>l-X9${qb`TCcvd;edLU^8LEjJjc(jue7wA(t z)aPjX>roE^dO?B4(x?eM2DblLtI&?Z3^HL}e+&u7Bm%D7dKLQtv>0Q~E~VT+mragQo*#`;F8eeXu>U9^2%4rAXIQUUtwAUY znhwdQ{YE7nO7G*Dp-AmS7F1AKU;ub7o~y4aPkJAPy;!QJM|!N>t<%u1^dh8k6jrt} z#uXN53Ws=*K*-sn0Xik`8l~whFx3={Ryc9FEJct`Rt792sIITXSO$w-Y@p+;i4JAh z0wECgmX#z{Rgy%ae80DRr)i~2xl%yIL{bg&`kDWMc?^X@r^yp^a>0y9^#Kn6w9hbW z!R$JQwB&dO{rnszmuhN10+9)f`+AfKV$6RT?F`@o7k|}H>!3WHvLR!p?+0>_lkPG5 zEqL*xku4}-fq)V6#<+kA^N_{_R-7#cxw9*gSEM=tc~GmS6|^zU>Y>7QTx;mJ0E~Lc zhfPl9egK{6CW3`Z3=`H0D4hhZIG*{ge%Tc5;aweE#MJBYxq4$alOU&BaFLO^uDXc1 zH&HHO>XpKdDDh9e=ZLzx+hwwlo zv5W+Z#s4Vw;Vv#AK^Lw^@GRkeg9WqeC&l7YP;Dy|i+7_to9!e~7>PxQpcsWY(Y_%plpvd!#7w-s=-(QuyM9Ew{Av@t#2g z@e-NrW1iv)m6v)~`T9JcNz+~O^|kg58Zw4sF5Y9fT=v3bOW*Y#)K$urKbiFPt)~g) z_m3u9`+R){?=csOmDB!Xk{>e1-_r{xZw~Vwo0pRbz_wkasjSZt5^|xd(i^n&jVOJ? zRjIWXmqc8B%OdFzbBfHfsER6Q2wqNG<_YTJu5OVzsc-HUdvtYHA;Yw~g*jH8c6VF# zN$^6R8wRyWZm>GKRMHPwd^&LBKh85UNizF{6q&0VvikHgyN@YcoD@>JA#cPQV4KN4 zA{Yhm4}9i)K)mpy^JJkV$0}Yjz@?deOQq_leyByF&AoiyywG~e;^Q&}=b#(lP}#0k zwp;Z>w8TH0HykOvs!0KP4vSXW*L3kp`gH=L z%ObUjWq4MWt#b2qmg^$EXkCJnm#%aLZzG4@OpAG~uQ$}k^<_jizq8M6q4(Fz_mpK( zS0ExLXlIyCRyNE(t#v?$TX0*=F>`#{7f{XdwBCGjeq?`0L@w`hT+W^HRUmhx-g43# z*{_6*r#@SG(&q@8V?smKDQD#Ako8nempRUSraH|x$4lk5L1u~**=Yg2imO+TJBxd) z%$=DLK}Se6I72x^M+N0rJ?_dR*n|0&cy2!0Ssfu>XRJEn?8Sw<-skM)TV1{O@TYPQ zar9P2bVvyxh4WtD?(DVFVT$yX%ZzeWucO!8mGGIPYl)-7+-syr+)T(50Mw7`=g=pH zAft-7Jh)cjvJ{GnHYW8Ef>96L=@q+t58njsKpS}rm5<`0UXvWIpW>n(7260A#8srh znM-?Ims1?&yS?jCC@VKZ^Ad7pxWUahdMhJAfH$ZWT~w3N zOh)brnR?}zt<1((mnNUK&QV5;8lsdZ`iO|jSwcF@08z$MoH$gZLTLeQ6kUooMVF#Y zMhNoLMGjmA|H6dUD3_)AY}gSe{!4jEE`6t@8F^y0Sl9;PlrH=Ral4d^XtKH3*ESkpy36)N#~kee@J$Rd~V>U<{T{zI`6xy6aUFIqKjQodCdEnRyaHbBhx zJn+sVRNUWr(6F-F3xz)kg+Iw0p}bNEIfDsuH(W}T#S|ImEUczRgf3bsiAsAO_Gpb% z6uve|tCXml)io<(=yUaTNajR;$a1W@t9qqHvbJ$iSDa}z#h7NU_nA;l?)T>^!^apvn9vHnRcqGxES&4@*g`b=x4_JIC>d%7o%=~Tli7l z5Meb$D<*X+6;?hXD!}{wi-q!-n4ywV9l-VBW+p+Y4~*D_YHLES4!e0GIC?82Vzoon zZsaCUR7J#CRm2^CPnbMm#hrLX$*BHnlNrO_TuwLO&NQ2Ox8<48CwV<|jGK4#23}=f zWeqnc`yDkMvQ2B+h{oxJQc-T)g2pZ7MvP#5RZNsA)e5jB&XrMfj z1B#e^)ldRh6Orv@NW_YkG>*)`snFn5L|k#3TqQY!7xK`cacArb0s62QFY%&GK+PiA ze7QYixjh4z@W0flR>(+empNL*XfgLTcRfxO9*jFvFQ&Asv}cAZX~=8B8Q5V7nQw7( z^iI1X0h8fqC({l?FQ1TQpzzr=PbA^9^RC{6Z;*BM)|L^g={f{hnbpMA;esVewIJ)W zwYp-Kc2_LmgHEMf)_5|*ZF^*q&)yaExZ}l%?@S-{-Uv-`c6teZA1+>p-*_=;tEpEk zM|G+J7umujn6MxxF=tReyKQ7HouHuL>%&Ay#))-T=(=1oE=kEa=jTpy4a})E+Zt59 zVcsbzyo+SkySff^64|IS@}5|P+Em)49f{4t(A^VrsGK}`Zcp4Kaen3$j}-12CcjSE zrdPY;tcMG+IY#c@M%0zt43SJc8{%>aSs$hdP${POlFq1x8A=iC1;Qepsaa}Ar%=6T z?yaIa0|T56Q4G5lN8AxJEOW#!r(E@{59=ceos1TOoijjUH}gkXb>(Yw)W4ZS5(e15 zhO+I;meHUBM3JBaz{poy1*yV9u5sq9;i|YzGA|_yD)U4ZdLK)?dH-vPUH3CP$U<|T z+pU=~7?|7+UgaZ}mUQSp^YBWRWc&bT`R;bi4-FiqV{Ql6`^NngP;A6_i!qX@|B#{6 z)Z(boDq+|bCw?>48l4;TceIv`70LyQRAGeOZIN9;LAs&qM}2%FpEEStbEMIbbE$qw zXd*G9y-6Xb+mX-~t+kl7gwngq(i;7s?@)-Gs*y;&ABOCtWRAV~P$brX z!MZ2*=|jBlotOeKdSI$W1IRaW0Hp`0ro2~LCegevPR&|yXVm@BG1m`}fn=oKJk=KU?0%*%=)AtbT=eW{i5~CkaUV}C zMqb5q>u!D65p3Pjy4xkNC#iTrRe8!YTQydTQsYNm6k%fNGEzVM$=v`a%gG8bV-0|y@5KCpmqbVSg~yJ zu)gBNd()&r!WiIUZzQZ?ZnvZ3(fhd_mQ|Z!5j%psXLGDLv2^+^H1wn5SiFdNaWgFF z3n%Z2GqOz*gEmc9CK*B~05VdX*gqvigsz^4%rUGmd_AFX?D1H5+dG=&M29;q2aQHm z!k4Cghu_vIrr~0q&is^hrd1U8`-=4UmLfIk#$uacm@_9C4^df^|77Y4MS&52*Pi&U z`^|B#-OaPRYb{g^d8s6Vb&v~7ZlNkP38%T;L8=?Hksv5@`DTw~Rug@Xg@n`cN8a^flV&bTAK2WpEfAh~|^IJ$((Q{71NyH(mvpH8>aw^KXSXI6hq zb929pzvZG_i{V`4TJzIdrgZI7G$jrr?p^}hJZ>kF&S{|#19R~BFo zLI?I>PIIbJn2!lUoW%*gXvdQ5#gH-ILGD}S7Bj@{bnoUMw2c4b9PA;%(p+n;Z1{El zFQM3Ze<=Tjm1G{7%fV=CQF6Vj7C6nj9VqVb`}5}A@9DfJ&AT^YbenhdM4Vs!x$F#z zpyT1mR{U09qJla)Nd@(b-gOvgA5Dc<(V^zq=Gks3n5K2|!PvL9+0+>0Rk8^%GU!`8>sZ%${H|R|#>Lar}L&{fRzfW$y%;L?lr5-B^Y}D&d&hqH70wBnx z%hk=XWk6%!WE*}5Co90pSzWB3!va{-59k6q1D00NRWmbYgz<4lT(Qq;MmpEf1wY+7 zQRu!2oksT}u{cc#RSaKuk;E_xNJtN2Ce#)!4RdmI%ui0b!^t>{#g?lK#M!mT7evm3 z7Ymw^@!UnMx}%(CBUNjQ!X9lkIa{r~JWVh1Sz($KCpIbbl#e-dn*Do)I~ zMAtR{sx3mOmZCG;A|OVmW^xok0eGfs?!w5vBUl?1GLtNR@3})z459$W>gN8xlfN9|R zv){sWbA~xnDI}92l5aap{O0_#5&eD`Ywp7#MmcR7w5kVI+C)>oNzF#2s6KPnm4#1f zw$ylbX!Tz>=bz;kK*{*@$ysOh$&0EfwYRH7+~Q|XJ&a%dX;XS&b+>bizv9%x_%)p( z-cFzSu*t*BbH#Xg@)Nm`+LRnyv1%{zG4uEV&^q{S zm01wZoA%$g(hs!wQ|L{OL8c6QtQK;Aa$SCph1K%4pqz#Rxye=~oA~|7{j%hNt&Z^sI*!Rs* z^WpRzYl*2NeY+u}OHuFJ%Anh->o+8y9Ay{uW$7Yh!svPlipg!wo^BrLVOn0 zlnzDST9yux)98dDvH()@=!rR*OxB#nNOORL61_BbfH zy`-;TPAB_S4in5CRlk?tPnwqIOc~k<7Olg!_zkC+CUR=ds9&1loO9HavO_}N@_)Hp z=7CdunrV#X4Wop-3d2Q+``{ON7TX2yO%;o)VMKJ}ek<-Vq?z`A zW#z|CH=4ZZlrTgV=yEe|Os^HG0f1FwRJw zJ8p{Cw|2t=*HPydL@U$qTP43a{$=0V5b<;e$^6YR^jE*Be~x-}Z_>VW!%i|JO#_F} zS(MrTpu*dn|E5aj=~XH}LR!CfH+aM>WKId`UFErSO_+i2q&n)sTuMF9&!1o2_4xM4 z_KNMRx(reC^TxPxRL2e2UVw|$%I#m-#q@h5c3*qpKQ8f_+r>i-N0}*nG7Tf8piVP$ z&Cjj4`}4r!%NPH%;P)>=nGALhACx4$jl zGWWg}{&=fL@kLiSf^6K))+kbK2VLFNV!g8<;)hvOYoSf-p7wZbFPICDO*irt->&bn zSNr20slAZAG!~b)EtJP%6rt2~jl6jq@A1e7w*|bU-zO0dMK?VyuB2@UX(%KwU6p^J zBPafOoO+JxrfO!~zZhA{nelo5NjyB5PUZ_~&il)AREL?KyyG0>z5QIN|Ea*xd7=-h zI0wNY*c|>f?(dd`h^k_`Sh3Iz3}J&*)k_+L{0_Mn9qSfcv86tpx>vhSBwcq z>af69Zl*41I2-(a!HMr&2f5u>gc;`MK;2s>gO5;Z}Uk2g7DyYMJlBIqrr zHL>6~d8V!UnqTDE@B%~+&JK8r~Q17b%3>%Pa2z?(kk7FNOWP?@#uuXd}do6Ng9P~qQ;ayt;-m#Oo3c5>=&{a!;9JLTW)Qlj>^F%I4N&LnFW$hqBRTW z*%TDhQuqo1{Kn`^`iJLlQs;$r8E%kIV#451iF*U1p{_1y6z3X~36BGD?2$JPTBF?wK+~sKaK(0;~dQ z?!ogMI>vN_X?OIN3=zuBZ{otPf}&X>SmnY6Yq3^YXNT#KaYUI`tovo3q+nl zT%~SQ>{br_*o%H-(Sx)vnbuM-I(peO5$e&8R;%91>?QlY7rON{mp<-x3vAkL#f*-p zTI*7YWSY?p*hwe~nZuzu$FG-&?^=l;tWkx`-#VWTamRn}dKl6*$GRE6lGTG6*GWve zII&A9qSrM2#wYo-kV%Ke^V=|yTrcUh>K}?PpgOI*#XZMbniWa_Y4t5deYv(isZSq* zL!nz`GcShL9J_+1F8QL%EmTRhRxU*{v{qM9cNtCPTFC%Fx+{1>GygH3fuiB^L}fr< zQ#9+;8znBw9w0uW*23?_?*P@!sQjp{5(}bjM-?Co zeMcbo18!k$7xaD-zMWQcFAYMC*GcBGD8q{nxd4FUYll9%+Lz=9u%jOO}*7A zamkqq-qWT#0J_ujMQaP3J^uO4(a zN|d_&Vu?0gnhqSM1@_z^XghsC{mD6ABJO%(VwYTTlJ;vw)nbKWOS(R{*&I=nv3%>N21| z14n^SQ9#!M5S)fdK@w(|=qxi4OSQ6Qv2_sQ{`Yw z+==q{M*7_f*?WJvg563(3|N>Pr10}g54e|UL-2sO6?E5Hg%q89m;mOz{=*o8-&Ozl z98j6}oscz$7=-MG$bg#yFM+0j`4k0x=qk{&R4&D2Z;dQR$@{gEb_GC<0LrIGVc#DC zEzNh|32i_14h81X_v`?3i``*>p}P8 zQ$PF+)ly`@`KPE3Tm`s9wLP*NCCgM_AzCT8{|Mv^)$eL!^lA-W8lu#6DvUgKgiD$- zc0rGBu~~ayz##5sh#E0ejG0zu00vBhC&xB$r|3%hDYZf68f-Zp&jaWPeu$->_T$dA zBGb++!=ws-^si$sN9eVMUOjaN}ZL@921#kbn}nQUxJ3(FPEH! z^>7PHR*4BukY6j2CH++B+?i`t3MS#rIlBM`1Ps-oHUSt~4?_+$V^_eW zpA7xynOY4BqBK4OMJa*V_$R^esu0FboyXCO9UG`isw)|f4$CLHEqRp{i|$Aru?wC9 z04x|`Po53G+DTxf)Mo4U&w1JmCq!>2?U?fF03B41)d8_GO6wx4X+XbMcv9C-7YN2Y z+iw~&r;KSshU{gYgtO_wlcO}{ZKrYQ4d)8clrju;ih6iQ9?n;xp;-gEv@j%Mjvxcf z;H;r#5|L;37bonOs2cvj&D^j=(4}gUOAwPpC-VQHs;+<5Py@_!Mpl^XixX3m^@1>@ zOT%_S6SGrv|As}d!6%afTq(4;SE9u^q@A1mieN<9*-)md+=p((+9AMR-;T8pji0Eu zW;?4vfKL)I_FuZl+^9=oHPpYvTAiXcvXHqciU_2Ovxb;vqfluzC}?W6o4sM^7OZK2 zU0c+gx=w1;st;VOfj>wTbQ!E_kTaA1*hT9oHO4GS8YAVvQ$>>WGXs{C6G+k+ikqh> z?bhTOcgZVKnG|5O(q&F%ssbEhP-gK|E6OM~tq^U9%66%l<}&^DQ&+0dG)li~N}qZ; zwElF3MuE}l7%&VyEPaLOQZ8Y&TY%8AH&hLheHs7 zJ)#pGXCJ`&N*Ve$_d23WQ^s3TSchhq8{N?*U?vk-0(KH1+i6E=myF$YQmD8{5v54- zX?wIXwYPJoVRF%$q0`lRSBXwc)M?fapMKRPWHd8xE=gKaN(K6g z$jm-$5?>O)9O^`Pilrd&@$OeLb@_V25Dcy(SVfXB}1lS|09IT zkL0FH)P|Lmn3;8=5as$8NM@`lK|rPxITzBF68(cAYv$rSYjnQ&(t?rk#9Z>rIw|J-b zC0bd9Hvb@!yh!>hBt4)N|64rWuRX2Pez$4AOSE4id`Tu&IW|3!o?e7~c=i_;Pxb(})0o4`mMNwyj@z#f( zv3lgzM`ni|y&l9*`Bb}>Yu6gJtCiZ_8gYfimgqYYjxvyb>eG1wt~q`%Pp4}vWOETZ%{ZeNNA-Z+cD7ovf5+NpqqTY^PqW%0LaU??CoT(Gxp!0>axcDn>#leHapXsa&$0b&m0^5^*%Uy zImv<*glO&7bIM6h3TQ7i0LV!}m{_89eu&AFdS2zyoRkdGC8-$$>Gryp);)Opq@Fne zhb^plPCAG@(VBEp|JPysvUA1Q3oF>`%&A8|_rv2)hM$U5N5!~lh|ieQr10IT{)qW$ zH{!7We)SWb%#DU*P*rqULyF=li|I{yil-NNdP{hkH9VaZ&y!{iO{Wz{nLvSAL)2M9 z)T5)wxDArHoC7+oKy_W+bL$#PsCto`GRSV1bGaG*)o!5ajBVC_S??3d3id{Gdhh36 zIeu?MjQ>@{8NWMhfN4-2?R|$Ze02NFx%E8;^br@17 zO&V^k8WNoL`yxeUG5C^tEcBD(8^Ah*Bg8+i^|#SV1(b@X;nG@6wpe(zz9a5cjqxWs zAFOMZ^zs)wSFgM!%`)*er@`Oprdp$$iI{B{Oe>(M3-_$ zTf&mKK-$|mSCUi%ZFgyV(17SzII@!lIpZQ}*K!sH3t9yXA;+c^U!0Cj*K!k*5h&Eg zTnAewlW5(%BI6zky`Oi3?pn|-mgU@NbzMf80Ob<81n6Et)do~EVg{(f4how;gX*?P z1a2Wb_frvpd0~eVwOnNs%?Q+tfKg$i!bkP`qtNT@;MdA}{jrD(dW;+3)jgZI?1v(^ zmucP+I-gHKQP19FgQET~^{aT!c7CN!FMp}?k(FfMBjHC@)diU+_2>*P^_uvcC`T18 zeL{Q&J;LoLPk)4jBjT^c8p%S#DN5{r8XX}eT3)0b(~PcYBk9jOKLu_7mA@x^PnkA0 zgM~+dpS&x=W!=$n@h*sIK>AQ5^Q>5Q`r`)QT9;!v7n9?RlxTJ=2d9^S&r2Dl?T4ZN z&Qsy)zARjH69x+~^y~WE}y zMQC;bn!N_2GsgIDSeX=%0(W;5hB*cfB)cjS_Q?i7wR#en}po)sx z4>PhwZ3t>V#73;Qv_%!Bt*y6Wl_yrQl8IGx)kwxTpQh_Jw{V~6hVQOHa!PgtT)sEi z3L|YM+>#0<)qGSysnJqEpdlI5r|C*!0k*IR{NLCQq;422>+k8D8?kS9#pXuHTxYCR zH8oZu=ExH@jB5jVCnsv~Z1b;LZXvC)zjSBYLv{JO#qrl=3N17S&L zh}bH}s#F@~>*%ujg;R$3b&^eN!M?`sNrduVev3{si~Rx_a$DctL>hmTr`*Dd;qoS2 ziCfAH6;!vED483X6Q3KYi_Qgz9Y;t%lx;onkhu-2$&aBU4Ts1vS=%us^^9ut!&H%H zsdsj66s?Oar@C#QY&s6TUn!emIhl>%z#@IVhv-zgQ2%sOX|rn#2ZAIE5L7e_-`Pa` zxz9G;z~&GnfNfc(>~5K{3n`Me5ju-u2VepA0%2GgJj7=PdWJk=0niTRBPZEgwfZd- z@E9QccfJ%ONeFGLFf#iVyP)hmB1sM_lSJ>fw)Q$A`|XuSHnqp8 z*M=@W8zHrb44nA4i%hx_(Ty~3ChgseB>h z#^Sg|w-2%YtF;Xgh)liE-rF2&h}FZ@28YsKdNQUVuG`-v_^r)xm&7LFCD=#PpDwmX z1@viqd1JNIr&K6uw-!bmx9&J1Wb1_XDBX&teqq{ny|q=M3tPA#Eb#v#^08=&H1T5G z7-_ONK~bwz0@@yB{;2U8c?pczBF^aNLZqHmOS_s~&XBk>bpDtrVp{3yW#Xo=44big z9l3_h88jnbfJD6`aJ1Y}30*x9)fTH;NeQ99-z(PQ_q*Ef3q=Xf&uhQmDqi#?NO9uX z;ub7E4-{#5uaYfRUOs^IB>3P6JL5#|UbhrJ4|pu#;i#GZ(`$E%I4IB%CvT_Q$>{HN zi6>Je7^)=0Ut@@EJ|UDa8XZv>dE!X*0i*D0Cjt?&j;HPWbp!AV2-yEyqHToHO%((V zpik=IV7G(zMOOYvZoqgAa~kd$^>Y#T9meFt2grT>vbHrQqdres-;bq#o_#ou^?hbaZ zE_X;nJq+!0<(CD$Ts~VZ`e=fF*g{89#CqX%iq4-kUnM3vH=fJFl$XL zfFdQDv%J(q1#MzUlgKU{&0ES*EE9W}1YH%E*!(X?s8@#@?98r6-@Kn6_#E7N^Z+E4 z8o2kYv%z1#m05rT3 zOP(%8E7E$L2h$BQIpVRY`fRJTxx=OGCkPR%?XN|I+nmEg>t2r>7hRaqt76U=$Ga?+ z3=?2lQ=#AF_338mwhq^RB0C2RNkuhe$u&3TzK>AaM>}N|yT9;)(dZ$AoON-T4bDh> z&LMfZV;w8s)!7b5l{rq|uo;VYCv3l+BA4p8LrJtC8Nm~~M7l0xmRN>bp>)3y`nSB0 z9*&SfE5b$iAydWzTlbEOuB_kb=CKKCaYKXGTAo@(=GDTnc-TeXxXgN|F5MAN2Im~= zUiXS#can`GRv@@}lcQrZEPlQAZgeJ^(?M8{9k7CwC6-hx@3edkrlv6TD7^EQv=p_b zOc{7E3v(~J(uXxbI0OuB?zR}9`|t$D^GQR-oIQxi=%I6^NRh^zPFrZELv!E%;pqRy zk-Nh)98pRv`62>IW?1rv9Kk|i-V9ex46Sc+L%4=8WTU(_)=TuOKq|?WghAak>jD!Yp^YM z@*JP8hFH(;pEVeeYM$aC)^~Su^^Y`H?X?YX&;mrR8nh*q*;!ena;=wikn7n)B?+Em zot3W1I-E07ozbMaCRvrPlD2m^%SQODj5MJ4nuC=|1gO@Fdn?tdGy@@(o<^Y6!0+Kl zpdwv)l}L+O8A8ppJuHcPvoL(Clu`vqwR_hA0;|FPCE?WQtiLL8`{`($H3L%AGEqLaw#k z8zJ+uoswFW^}D$tg*Ld#`E0y0Gv|3oB_!3n?yk-qVrAy8xIsz;(m@WA%Ef%~%B(s5 zY>-N=h%v$}p`!%dm9}SXsr8X6C*9}5@to-FRJFDm_{sSa=vs@t+)4JNJzay?nLWpA z(t6krwYf?~Th*sS;`>qcY6{nB6do*5xGosp9N#J8aMAKafG#3HHRe1rPt2AO`Bq5H z+p@D#_B7pA-yu@Tp=eOm3qSe!WolK*U*_H#=g#(J{m10h}yyHQ}lhry^@PFe#G}6dY{GN1h+c7OAMRi_INs^ z!@=~DEo+X|;mjKsv*Qe@J>u-sVV{7DRpJd6QruXmn6|3)L?zCP=CJbBrf)1>R4yja zQ=!JfZ>CCq-#mcQgV{OUPvD|RP{aZVB+yxdO{TnUl?UbjeQL(d>WMnz73xh*wo^te z=j|y|#1O8<>K+dH2y*+3g`Z8)I^Uft8C|qp3Wv5!VJRg_O_~j44AVol#x7&T6n6H~ z^W(;q#=<>QI2PG!EPO*lbEYzl7p8S7vQ4*<1Z|iiD#9pZaI%r8J7pXI#bNl`Xf;Ce zTpiVs21)F=-Fv7W$6FIj!jZ7a)r$7e*yrzCfyvPvOo#Y9<0;6&kUybU{e6u{HwR6@ zB-ZxC6VNtZ2~h#;kO^P!(GgMv7%^BnQO*L)A$$%)7XcudOL*{115^LFJO`5cQ9{9C zI~1V>Vj}{~;yQI$HYZy9%n5U!sW0fMmbf4b@Rr;`;dduZedazk$Wb(NB{aUeFnIM0g43zCbURs9IeWG4hSQ zE>P`A7%js{L&$TV473b+Gdl6R=NqFXgdGW9E#*vtqsk0RDLW|_C`->Hu9t3)5rkw? zBm3(9tV3hF&)0uZX`$o+TSLbZ;06F~`Y#R^?-zF=l>e{L!m&*kdbVUyGePM;49em4deEvJyk# z2}C#Z_^L^w0=|iRsq_YMh6m?C0kANV?d0%LlO0eyF00`H88pR)D!B!wyncwD93pai zOc=VWQ|@&n%)M6&dt0FrFTPobElXfnXq&QCRIeMcxR_M!L$e&EVM3b$ifK1jbyIh z+*=6?K#Y8k91|V)&JOpG{i5zLN#5IOYQ4LYNzQ5G+Z&|XX8sVnSHWSTq72<6_&*LCk zku+4~C@51alLV-CF2yG201($+ocKZ!=GhTi&o;s!n8!p<4J)Gi-ktRuNxk534k3J0 zSXH{?*jU4V=ZhZOWk7^5J4rltbC8feI;IOFJFtvqWOxAvW?4kKV=~{Sl60zLv!RDL z`yBD2&&@hIoIxDln?@7~&$QK9nE530fzyV4AX;W?TxkS5T^$~&3dPnI|E1jS_;uku1Oc%33Io@6^^h-!+)(L#r>}?Dg|yhxr5n6M{A;Ci zp-+GKo)wMP-rIS1Cymfw)Ygt*o2F(XMrU#2$5V80R_73s-?!F%Or*U=qoZ)HvpAC` zWZWxRq4Vl9cl3mMX^j&FUle^axC)Q8xILCMhb}s31o65XW5~TPI7(#xLzdh@nGsGR|~LVZ;^Qc?5weNheNBka^9L zt(k!b=N~WWK^2vnI@J+=5lojf<-LWdqOFV4`QNaYz9~`(V<6z?rbyZ*8(wFYEJ~0; zg~hi%PUnjgA6}vZr9>k>yo0%5hB`_a4=q<1c^u${Bs`&D|I-jScYZ+`iN7uj?pAea z_;3jY?-pVddT~Cet*bck?Wr~m1p(YHPJC+$Ul?gR1HUP+Bp2PX=vJ(C<;HMpqP_RC zLekj9K}hCn5>k?nd2Q^V(Apr)ZPp!PARqsPgUQ5iL|8R?xn--%@MC_EUBcna|A}++ zy?3uLBUhi-XYTF{KhfjPh%J4`#FoU?&W%s#GbhFTImNz;Acg@WAjZlEV-Si<2jgZ< z)`=I}D5n`OBS*B+VY6lgmMC% z6%HF;&<18Jo75kYB}2-uKrYu`lKXf}J+rX5CSIltF1 zxkkuwL&XUr#A+RO$8W(D<;N6NQbmoLDl$L`UARPlParHwNFQ?<5Bs{@S1Y6X7In_8 zOXG8Hd5rLx=Qk+&*4pqpqG2Ez67e02!=gyFlCVb%l6yPnw;dIALtrgJ@ro0UDPNq% zJ|5nX5f9&1ocQS^skcQAU^kq(mRw^5!zqeX4}J&~@fn9}-o{)?$By|j=P0+X9znbU zZPul+jmW!?u!G!y89_Anbo#KC?T+D8hxE$!8{$8V$Kw~`%eFtVoloxVytrLA*#3}^ z^otoM<4XsbL7%KoZ(VVG6O(pykmTmhcSN_AiHPrY1a(8bD_k8xJPSj+f^AM$#}+&v41N)*_la;fd!G+}X@#ld_afu{$DpYL z0Ef1&cpD#W(GM7}Wf#1V_sLsVxUtXWz&lRTOCz#YH6BO?-jRi5#+)!yBC z*SdQ zJXtW27r;WgVl0e&{Roa6``CWV0QNhU!IEs8e4kBOGC$r#7P)e_Gpm?yi(ACH#dU2n z;du000u7Q^GGnbhHL>(O;=f7>1}!0Q{vZwzSyIMUH#SU2KC5;!`^A*6Nm#3UPK+>{ zL}Gmop;>%?kFLQwDsuh9@^c=eHKR-DbOXN^(AdDz@gl6*>^!5QU2T4d`Km-S1HZ4T^#AnZ=y&@>H5q-9J4 zw8X|K?rFcY0L@e{F_%ejin-G&1=h=Efs;a8csWs1z_>icHStv@wA z@w*FOy9KeoPuV<+qYJ&g)GJbOU6@I^wVYC=r7WbMGW7Mzi=zld&{A&ov_(s4q%e)u z(`m#xFwGcxEye{G@(9*N{P)jQ*unGe!$z!8E7y8b6A*6-`ja#r>o7q z*ekKmQG0gVlo#Ll;&MTRnUN%~`Z4kixf{cX{q`ihoIE|T{sIoKs>X%b2~1uGo|aNq zBb8Cf!dlEHZAk4yS+aL}V)+H7CG5HUy6nOtWcHUcTQ4*rZ|3cq3ucw}IV;a8A1dz0 z3fq9LS$&=?szk#+)J>J^)?DzQ?#!F@a$Q@wZmL{&k#b%r{9RFB`0;r&TxBUR^3(rx zL{IC46V2z|z|l-Wn44}wIed24 z7i{#Y$HpcfmU?Wkm=Lzb_47$xa=z+a`F7B|&dypAZuTcNr(oxm2SV6fB@lVaLpXQ?jXXTTTJ-Y@;w4j!{-ot#6I6z9etz6&+dtE zJ{^WD^(gDoI=S@CRh^F%8m9z&tf2X%KK-zyFfF3sK*S=kR^cQp)^t8&|D}mfvDxyn z#5Pk0GuazHlDF*jL_DD958*Jq{&fxvnAojSEX_slR*X{cAv}N8fsq$d5>JSi#Xa z6t9Wmy9a|5H#*s5fdB$#2XQP5Xw)Ka=EJjpe@UOk!n|!3j%(0*i-9z4nAX~Hi7Mq1 zu*EojT}u61oEWgbPf(FMfAtWqnf6HT#05SRQR8!~>OFTyYuYU^uoXRtakl!jgm`17Ir$g$O>vy}U;=ZR7F)uA{@q3$k zoEz8K%5~|u`e;4P?;-bex<#GR(&PNzrmXX>b=xq;ahzhBSwb>ThmM~48E`y|v3qze zU6xV~m8AbY%-WB_$uy+9|K!^!!wv3SPc_B6^A$q1$ZH#*EyQkoY{RL)^TY8lR*NI(ROFr3P7YCi)o7lO^)?oL#RdtR#wgw%yuLT0#(_H404Tbg0b**Z$ z&K1X3yh1nTIjxDurnsTlA2o4x3ywSZxwNGxu4=JyngXUYf3krpV&=Mxlag9TAt?aG zURPp>8yb*i*rz|;z_fpQ8|47BSL=&w_eXl78_M*)xSkz+5BiJJyB7CPHVonjTQ{h^ z3)D&{0ul?0s5r4`iv1JxYRF1g$W`8-VoUTQqHR#4_NIJ5;Pq z?wDdSg$wnufu3E49nV#({`- zSz}-q9@N_9gEg;Wg#2(d)5e2dkyWqsQQB5zT znBFGd<|t!CYN2Hsu5B4AmivdrYAqxF)0PoG@jhAWg(D~m9IE$YO@kKbOEJA=ydQ6w z2U4FLFn>S^)Y4`(>QAA3O*_h|eEBfLS9C~K?OVYQOU?95q6A@62DYbf>R{S4> z?q#5R$JB2pVIAcDA*@C!;rnEDZH4gG1k0hG_ye`?N35_MItlx_S>zW53>@vAtZa$z z#?9}bkQ^eO4~?n!CpX~OOPdPLZcRRhdm6=#vwM?A+isXRyE{3Edm4$3dtXQ%#yvU{ zJoM!4$-^#)rzKPmo|Gx|vBY64V+P5TIX{eZS-^#Y%!NK&fHYJp%AD^`d^tFXOXvYGU zbD-=%Mz>ff+FvUdyL^sAi zNj%aI60EXh_zv7h)RYTE*LPx-big{MbJaQk$~sCw+rJKx-YOHY_N%Y_3e^H1v6kMn zL8}~9EtvXMIsbk6Znm|9tFDab)$nEblilD?tk}~Zi80TzZ1W!&Q-6|Zo#2Rk zRj##A*=udWUYl{H6i{T+D#sPLAO-rtZOKQ$Ze0R6Qq7eiAoCtwq7$1nK)+fF_NgyJ zl%#NMdqwE2L~2B8LRyKGWyQ9EF#RM8wg<>r#C{QyCTt;h+hG~gxx2mPQvMzrftNZA zt8JV-V)C7_IsI7%BZe1#_Xg-_WazsX1Bc=umnwfLj4exj%xU*SgyeqAv)9HsH?oTx z9Cn-kApi__AP&I?kwemF+=J|ul?U-DudI9+zr6dERfqA<+^?+6htAuoQ4+kn`IdZ} z$-6cv4+Jj-OS{%~RaKrJ{@@B@8)31y4#|(S6iFFc2t~6kK;(4?+jZ&%*liaB|BsKD zYK@WgQSy8=)vg)-@QR+}uzNrD_;t7LTFo`=T6v4Rt%Z|jil1+Kk99a`>zdidT#wke zeQe*XsGBR2VMMi`|c zV#~!sz0+>dS_!huFy*_|$HV*eu&Xq%hqbRZ_HotauVF9_hwtO7ox>a;D@Zda_!;o; z_~CYWH9IW$mucP`f(u9u((G?&j;U3NYo>aaQsCZP#g~)WPEC=i?0k_MddA5hXSLgOXhSg;6O$ttb!PZtUON z{9nVf+l0dD}Yd2N}fO&4$-G_goR&JDlf)!Nbi35yN55Yk-6Kp>e1! za_1@Ef+mDTkmrC6ue1Gw*V%m5rGO>(1Mx31)yG};X!EfMtF>Ov_sx=l)C3oE<*sp{ z`v6R4lAi(J4ceSRn_m~6leCjMhq{KEng%BgQkos!T)uZDj+Y}Tm^s(s+(;EbNA#k< zd(m!ZY%D>1oy)L&5LulQy%7$?*}R)FziIVFDX+Vve1+{zq+cL)Jl0#df@!+ z@QNdab9DOm$8eoDA$+n{4I7=Vi6ROh zUbg!=X}(rQTMMWJt&D<98ShdV3t$OR{nue`z8U|<2t*n#=KQZKCP+t=(=ss@*-_7F zOHJ@bn)lZpLmLVct6Wo(6<99YA9Lk`$?mX~S>6QF>(efPu$lH4J0SVpd1|`FShewD zm^HQyt|l~al9A35&2C;ws5j2JOJD~AVD zDLQ5k*TS%hj&j^AJO_dqFq@!g^upgwapiQT6@D76o!ccWIPqceK)RXCy_X z>v_dPupWZzrxKiL!zq2`C(AijZZa)sD{~ftQj*!h zlzM*rx;DGBR41Hpes+8yLpYI}K@xD=0~x|eKR1rov=!>oP2~RZct5x$gS5)2-~DK; zU!$T{Yv=PUN%hZTuD07V`MH@Xb#Ppm$Kmw={go*U&q2UV9hhfIs*jG}rC-*r!e;^3 zlj?zS-XlnPPMZrJ@Hqb{37c4)f!i4uq%Tffe;3#34EFxxS$deU)!3#3NFk(NB=68v zc)(x8y6~9fFv?A)Gq(Fr@g4*(K=BxWc)@=s^$bl+D4(Hyx!DVP4tMs9v4dtGu;38R zC@aG)NoD=y8T$~65YYtQq4MR@#7pQMZUiI{>WfVG6Cx1al~!*XM-G`J7mRs6`J!9L zAUsB+GN=CH6*wo-)RZ~@40PHB83A)j{SZw~l&vpwcivb|+bt7!|2X#X3L?62({8jx zAChbxs>&>h=SkS2VHF#O)9Ox$>16r9KjcyLOO$V0Vz1-K(oVX3FHYZNT3^N zf}&-2QUZy`k4({w99c!Br+7tG$hpvIGDyJxA#f2mT;OHgyp&osmeXjO{TD2pgbH7Y z@3ZNwh~iFGhs+3s)IV6NW39!JWH@*lJJUFN}~m|KrN)laNFR@nPdzvU%uSu z0x(6XXuxzIP11h32RO3!fKjgKDutvklndvgw7PQaRPamOAptAscuJ7!ZURB_a3!=sMXovS0ub{rBzUO? z^2SPS=BL!lsj4 z;B@Bqr#Sv;oBsQ}PjcaGsadIw{nWS7W%HlL@ywWf8btAFAM=R*=X_cUKIaoE%7V<9 z1W+K4-~RN|;Btt=Wd~Afb86^j%>P550uP&q??o3Wwgg>a&V$-H?kI(cT(k=;r<~<3 z*?qSp9N-Tn)y5P$=)mGYo^!VAZg&TsOvv#g+QhQQzUdRnAHA8cnC{1nKeQOdTTomH zGQAV0E7Xv5l~hi@kMHx@LWJeohpLx`yx{5%6U&JT?jQRG+ziFwf4uPq%e6o4-fvuH z+GC?VFW2J5-icw}m{ixqO*MasaC2pIEgSyU8xLqZzu9TRA_HXWxKX(+VN@PY%3za5 z!KoDo1_bNKeG@AM*)nrLw1-L#qgfcwhMBv7n-f!(!AI zSZj2Q)Gybbt(bTgB8CxqRh#;`yN(KC%L(B7$`AZDEJ`EY|YIbtH8Ka^3+3_DoPyaHVCTf_dUsnlhB1-s+#X6Pz zw=UMZ8s~T5oOsHePrU!&*S0fl2L1g@td~|%nq4wYBU(ynO8LR%(sZM#M^lUFKw9C5 zK3r1I*otfVpGE%iHVpJ4@4byN0D%M>e*0}HFkmXW&>2``D#UMZc{ONUbg4Oqt_emO z6+CrsKhzIt%%p|n|J{#x4bap|?kGegIG%@9TEwv(#|w)-BX0EiWscxHL=0MEimnR7 zjy9S66O0&AYYf7O4WperwFpSqRL#B4078sjyrdU8J@uuxJJIt3zJU7gU*Ddjy(E7O z7$+G0Eb@i7rv^*k2B&L(%-vxsG7f@9W}Z*Ktur6glGL))+O&vikS%fsI++}Zv69bZ zVaH9}!$vVj!jkFSh&j)cSiE{W4>ts%+Kx##1EQL{1GKi&l1ot{XhnEC4hu3o!NL^A zB&9A&BAg2rqS3f98VCs33t^C?Z+leO#Q74!6KnT=rbN-QMjUFc&$p&%IAW- zpLrglVl%7XOYz^_O!^V-z_sh&6B<=OD;uqVKsiB$9*GP6ueKG2NSU3wuuy#P4I}8` zdxs4u_wU%AXxDfVAuKg~Zd&R79S=PaHy)W99R;teAb??!wsNfv90Qv%2+rtIfHq~Q zq9hI*)vmbic6z#5IA`qdEHzdC;dS6ZRpo-c)>Td0oRdMu8nJW!N6a{AZg{jg_w}py zz6^@VNc8^`G4q@$qdjGJI_D~o?ZIJWO$*$k_A~d9rQCiSG++*s0ghM>%Qj~&x}!dB z?B7~Sm5hRbTxNRNMul=xA7p2Q3&EUUau?xa%Hq_Ly(s~E#GYlOhU|40K*0A!k%zeg z))Hk>yiykPTyvF@G%tEV95N4ZFhNw|CRXx41Bi+4{?E96x5#3`9o)yg-^ZSUfL7=q zWP}^+3qVS+$vScOqnJUtFKxv3JW*A5kx`JAnYi*jHZ(ngM(S0S^}4={HYm=t!LP>a z#2d60u+>pU0o)2f5@f&ssn~5;<*S=>h6On3tq$ba;8II6fZ;c31u$|Kj7O(LVQ>vE zA0t#*-1+IE0I&{P7pGgEZ#JJd&*4XtGw5uGtYvG_^g9J3y6wk%(;tBux(=THJeiLn zSO|rlgwYVRmf&8(ENVJ54_DS0az+T2lfam-7HUv#OIzoY*-q~485f^#=Fd}}GE2Rw z+Egb3T=N`k&hT=x)Zvivs>@Glb%B-&Aw${&y&%c4S!iFh{cY1BQ@_tay-mFgk(E?r zZo`n`H$+X~X0IyHZv>}8w7(>*C)PjuxeGC=FU?=^E@t{$r%>d%Z zt#4;7JQ$-XNsEP!>2#*m3ZnxWN_!JDDc8d6&r)ptRrCn3x(#(H|lCBt?Yp?5ySFXDA@%W2|!zxo=f>hC|5QcsQZrfFCQ z7m8)51i^SxwdL4c<#j`84v!wckH1WUT8=RkW&4sF* zh^MhwF*1BEli_n|>ov`IbK24tpgUTNE!C=XFkw*6jv18vbXG~rn246}Al-tr4k>_i zFOo9!n8Zw%4TO+NJZB-$HchhSueD1qzGo`b^Z*^MY7*TgA%b(L%puHrc#O#hj=l{(6guJ9&hsT;{LPyUwEKZI4iuc zrS(Zz_woaaeEZJsd!guT(F+w%7~mn(1IfrDI1;UDmGiU66-`-97=yfMi56A(@eKkaCd3m?148Nj?W;SLV66T52+U^h~!6Fi4?<_Fv!0YdiUUge?gjyRDyFhbi*dZ zK|+7$Yf;YfckbGBX_Ej`B{PT&&SeF%{ay{xk1>jJ#)g_U5knnUZ;EryxVjIh_x0Ga zc?wto`dUPp)}dXS4C2L2oXg}jxZ`SJ+&U_$Eo_h$jmr!_hcWQ$zMz0&?ui*N z0qdQ-^3!V~msM(o8AK!QmEqnG5bJ_d9!l%tCB_=H`)79>#CjN>8zE+*iX72$ZOi0p zx>|;;74kLhc3`5A+} zWSX1FgD?IRIERKNSX5N!XQ+Y-jCvk|ZjvJAU|z`&$8+ZHu6-}U4;EgRgOU4(ITgch zC`+9pU{xB^Y9(M)x@$gyX4E{}J#3HGht9PW!8E4`xaM@<27`_6nhzq}r%KKll$VnR zC3lSU3DoeP7OmyaBc8?wEVpfjIOwolchtsvhOZdQK_fQL5Djhb!Dhn|y6zENK6izt zSnt6x?lQioyxPJJC` z+3n?})LxuvD@;fW+YjSVfbF(C4`qnsMUK7%Ieg; zxKF&p)@96T1YgkP%5Tma?!sA2y*{-`%bVB2c`n`iDDH~Lxdr!>E5!jDIE76(e)mdy zKwbxS;!d2rg&P;aPW%gwe}`k&YYc`FvS^K|rqo;%Dm2#*djZzN=FE=Rf<_6pZ4fwsLPC!7Ne<=2 z0O31xxk>8$(#)Ice03|f`g5gR_rC@)uEMAYsv-X;LT5E0_Ov zQiIE=Jdv)1bi}CqGR-`85Gtf6U2p}#HqpOf_`y?CPfiwU!H2^w{HeWL^>M!r)0YOb zAO8WQ5Yl}}yOF+%bQtMzq^9|-cp~O6MZ%@P#OvmVXFpUXe-nr~UgACR|3kznJ^~*T zn)WF*6{oqS41MPmuxCz+s6|3ejPdw=d3-KL;?;@Lm8}27L}8#|u1*x@Bw5YZv6Cm% zljB5IWGBikauTuHCuYiuq=d7|%CZ{V?U-=LyP_#|F0rNk^Y24Wa6u68Ezc3mOX5155%opO z$CU)NQubq_iF%SuYh$wsLxMZ7JZezZ%lM9?i5hhE_1F;dgPnm=DDOK-D^Kznh=e-9 z%r6*$t9!YGHI*HN2m;IvMlV>TKaS5>=ED=l5r-z(BMQAZ=+kuifDX-wNQ#5`D9Jbi zU3@4{!}Op$q|>*6FAwEqJmnGI7}6J#ywFrgs+Fl6@E@0qPmW~8+J;{Vy(LJMNaWN` zEk!M(DLc>}e+DH@h8?nPrC2eAcqfX*K%z12Tx%`?)QLXj=@EKj z5Kokevzz7&!(y-ex|`TO=wu)!s04#e!6Zw^`N8YjDqXY^kx2Q?xNtb8y2qhWlUjm;bbt4k5%&~P zPvK%qaVzDRT9qnTPGXx5Mj@TSGe$XdrVdRIP?PUs4!9^<}jUb!kxcW*`XNcw6qDYoL|0;r=fsT$Em2alB*jrG0 zv_sSrN9;9gg;`@Q{|j423``Oa-&R^Tv6i4!vNMFDziC8M1*A5I5^9ImLRG0XuuIk& zNGN9zT%U`5?q-rf>yw0JluS{fE=Z_TQUZ$qT$1iC4isYn{Q_8I$gH7M&0gW$J8|Xr zsS*zWFP&tSoYxpvHzW^%tSa#kkoX&jc~!Cy#$(vMN*ZY(%L@{Z)%-0&tC%M8z@@&} zb(w}_6}LniwfzXbDEss3@* zkmMyqD2I+Nu8t>kxy8oW46+KZSOS+JW}$nO^REfSH`kXdRPRgLc>2#omPBMMJCM(y zTWIi7tV^pR!@rjNw1=9&^v=`BcrU~Nf^ukFP=1r9tFXR92RxuHNA1ZR1U(}Gpf$4y zHODvO%$7M@6o2E2z9Nz+A)#*4o|+HCKrt%7_(Fh`KC9{OmEJIQ$VQkgph>FGFuAZM zPpD6(wfI7fz**4@1+BCHF#G{fTN=PHGS6FAh~3|P%G`(OB>MoW95$3E)OiU`noD}9 zgH2e3R=S+-DzxTnXuIsS5Uy3?+Brxys?phbnF`A{j?DrSvoUkpG$wc|+Ez`R&mS|x z5yWbOkt|qbCqx;vG}n$99xc1c`75B9!J8@9aaRZqLI-%yd=m#WGr@C0=}hk40EUhD3}+on=l$(bG1@r24nmHU1-5e3r{tWcGm7 zdk8GuZg5$BVEvJx21Fx2lvuPZ2cG7zzVzk=ibHR~O8JpycBxD>0IT%xkzS}8Q~K($EgCF78tzQK<$T&7FoLB1!V*<}IF#9{=T-AX>HkHMctVq8$hyH^H#W<4=wBcH~5PMoe?H%WE^_Ow;;e_f% zv3j8<5z7l@kF7YgDNng9@7dnO%!TG zp`M9~Zq*9imnpOgg_diDCe+`8lfzU+nRm5$Cd#ZC7jU&lEAus2GGxEr*jMY4vo+Pp zjXN`i8u9hBGlhN+QN7%OcidF`0S~z6cYI!uNGd6naK0^mm%>nUf%+ z4zJ4;>d^{~pimZ`it2Z0)$f_8{#sPNNLn1A>K~0$r#y$@`M0E?)Qw%8+AsY|khLxH zRjkPuk={a5kWxt2Ukkk=5)qf=Madv4`2`pxaveO3*I~yzkWib(7K&t_fr>yYixvcX z(Ug(TC)B#JdU5$RcV9-QF;oqE&BNRw{-AI`j$@A3V5UBfy1fN;)mp&T??60-8J4Cw z|24|ZeDMkq;N}r-4i{;fdHM>8xMx_N##JJ_^$qFz*{4Rok1GR4^9Y;GMXs+nenpqd zKYqoe(a^sdxk^!4@o_cyFm0cZ$xaAg){#b_ZjWIm)vuCP>W85aILIG}gVwWRJXB?_ zn=1sE3eoiosavvn4+)xO4~Q4g3RT(Xah39&0mo0zXRqs5hfU=vPNR!Vzv5~-jxL#b16nQz`In;Qus&Y+6wtlL%4Wa@ zd5sbNtaD*|ZQ?Ef?L7KnSt+(>I2DWtjbFqf_eFh?lP@vPL9BoWGbf~-b7lK>Z{s3x0R+k^S|4+lXLg>qcyA&E$;4iKl- z%>J<(`^Nz!4VP>f1r|U_t%IOhm+w5q;d|U-Qsu`>DvO2-pz@c_N-vPynXc2G@ORB8 z!HmgB{BA;(lUyc>31h@5Km8q{cWH!#tgq~TNosEqmI{7=frXOlS2el9MZ6R5m9c~E z?%@%*0xCT1235uj`6Bl{9)g`JRN~ASkkzXv4;O1+O4ksDJWLjAPid8~pc2F{CDczP z`9b*i`tyB(5S4ga{Jjt$;egS09Op4Lof0N0NngJ@0>UCw6YcA%6|xnIsqds{v!!dw z(5HNlpR#_RIQWL3U3w}wN%|m|D>Zb@_Z5fd`(`}(elOjVf^&fGQH-#`xsue?;B$u? zd|30#+03q;ckHwUUUGdg_{FZdJ4+5q2k#8t+4Tpxw|r-#@@lN~2?4_U&q#am@L4>Z z-^Ib1H-G0#l5eNvn;w>YQ%=0pYr`vwgB_5^7egMOD-}ZyU%b;KweJ*twy@}9NHCo6 z@kloZZ|*8Pcw6wcuHjz$K_P61WZn+R{Fc_7-`g&@inAZkxnB8(dQ3b zq-FczQ&YbW*nF3O(GpGNe9tb`g-)X4M_S(l4hnNu?-XX{%1&9@9NgSBCs^6FWoQ2W zg8l!~JL$n#?vg$uy+8`Gr zH28s5JW*bdc>=-Ia94ijo z1(rBWeH%h+LGQwNA_}nM8ql&*K@=`P2bgEl3hqEdPcZbu(EFj90H-_y)`QLfs;l|- z{s;>cvn+ytYeKyT@s4yd7TmG?iI<%E|M8Nq{6Ai@_}Z7?9emH1PYL_Y_?)I53qIz) z)S}Qj$g1(hhW+qGl?-9pxvB32PblsHV|vE(B3E5xYa z@X0He-%r>ngt|2eZIM6)p2@Vu+)P`%n&2T)Ygn34{}O}#3IFfLo(UPnPzVyVOpkMo z&u$0!CoDC1gh5NFE8-ptmGlKbiEv(Fz-!Y+25{-&{!Goc(9O+FsEcE@Cdvl%ka?A` zv+lL)18Dn1VF|S|{o9B)GXvz^bTabdh>iGGwL@_w2q*)j*w{`!~fMfpUt$+r_nlw{Wqgk z{4q`wQ5gG{<7`dl%+$AIJALBPPOG@UBs8}V4)C?sC&ejWu=ydXKB4aIVj8cWO;XMF#Xp*)<(+3U49-I?K(Lz<+r98hAWI_@d425TmKoF?7cN76 z3qs=K3(>a{|9l~`d}1N$iGO?{dVe>>+xT3NdJltnjmg=yNH+%|G|mULsJuq8sVA=9 z4cUc0H;mN#9^(O8?|9FRH(|0KY77KIPlVnLRrhepXJAsrRbprsIK` zmKs#)p|q#;35@HF)&jd>z+yk-=n0XpuQ+XuqM$VJS)1dr{g8ZO*x;XkZh^!LoJ4tV5 zt*0$q=Y;Ih$^WE$nJMq4^FH>1yCz-$98MJeh9>L&T|_T7Tc|ShT@VxxoidB?u^r*v zIoL(vj~hN6_|{SbHk~VD`r2pedvqz7*s=18dzLWJ&Zd6-dK+7T9kEEZRd{ArRNL-a za?g@gObXTqY0FvELklELw0)Rp+}y?h0!2clSPKa$#b*3=%6Kqmpd7$wd)Hyp@o?^E zv|SROI0$x4F-)sO#GFpQ1%uOGf=YvV?CplhBRPWt6goDG6ew=y5ch;dWu2@NTn)*z&z4XA?sJZ#OjtZ>>We{BH9kcux&73RG4 zq7zH7w_cxcG}$oa$}u($#$mHe>#Avx)=HYt+Nvs>KJSKLmBix6^79mrc)GlD3jYtF z5*C-iq04Fywlu9{O5W({N{KUK^V^~%g3bUAZ*I{ ziO%F7A>J8!FJ)+4@5G-c(Xuj{wgXLjO%EP~YsUcfAyXb3hoHF10^9S);E!?7c>eNU z$rb2e?ts0C1B&zH78WVILX_=msG{MK=V6n)cRY)9q7$~+ZCziGUi`$Mm9wMvd2Q5w zBb6Ps&tcT=PMIFzykFE@#A+?&u4-F11Jq-%!c&X^+kxS_-`)Z*+*NF5#W~wOOFlVx zPhK;47ma5J?{AaW3|{%4j$Uc}-T!s;ULCwYi|ZZ8E1S`k|J&gG^2FekY4rYe?0+A< zJ;{GCdOtRJ0~oj^30}Dc|COl3|Chl#L&oUkFe>j!F&9RqHhQ7Ev=m_UZcH&ZMs#NM zc50({E#y|QiP5VM-X)oD*9Wifn!zjn)4^L9$a%;4N1#c`XD z6gP=2mBY_%pIq&{m?tGaH_&AFl{Qa_e9mkeiEq!#4a0(=&^@`S0}kVYd%^Z%*x6Uk z${Vee%+Xo1Orx{#Ig7S?;aK677Io_%V*tK^q5m1ol4J%CNG44sZ4y~>i>Ap+p2su= zOy&z+eFc6BWbR*z;CBq6a83uNTRPWs z^<)IEUU?>fSa;<=>S-@KiUl|fx#@JveVA4C+B%D_y<_1WXAzfAxg}0k#8@mVD=*%+ z=`mPwJk`T5I@(-v>6w6UJzyP&b(L&EbkQbq7`bng!?LAq(H+OY9WU6_0RTlXZtjJ5 zd;vh$i#H9fekR~pzuD%ymBDr~bjR&zPx5oo%gniSI?#zS4Jb3uG_2o-S+rK)XJ88NyY;hef@ixw%iq$r#2q-&x+5S4z^*B)QpD*(Q$n0im{$I0 zVK9mX9fZ6&@pJ%mLjvWPme~!K9C3j^uKM-aQI!)}B%?vrXs7KWf^~sNcy1Hl5CjA| z(Q!^2tRXxo9K_g;KyN9JjipHA4?A12u_#lpPuw0`93W)Qs!Xd@TsnksVFJPlIJNCN zN87%QkxmFB!~zCouQ%ERV&*kC*%w7*y;)3|rsgwE{Vcw_{nk8b#~lQS@gGS9gToRl zU`HU2j0#w4T{0U+P6d9{^Gu*#*_uwPBgtgoXzNc~vqU_-;$-^Qnl_Zi*5Q4+Hhkkb zBE`t)tk?C>DcB|FV{jA)R>Nk2%)gAo@9%Ed1Bc#o?PVYIc58jdF1!|ffA>~gWfy-N zZ5Kc2y$}ud#MBe1Eh{QTa7%H6xEbyElQ=*|0ZWs&O7-Fw(QXh4c0r-2Q6)+AyijUDX1WQnL(Udo0AS41nrW-*i>mEyn@C;GsB0jwW z`p+N)CL}g#=wZqn0J}_y@}j?WWlJZ5plxZD8aB3;uGdHkP4=z3Q4(1}((fO~strK( zD`A?Awpmw+Ppx_ z3yqrRjLeXVoA~OYVZK^;jj+jo8s(#~$bJ2p=$jx%vC2U!%9MUo`)J|^Q4^?ULTi~5 zzxM7!xcl`4k>F2hBsjSRP%bfkC`#oEiwx+>uSR8GhUs{FHwX8S!b)M3Q>@vd(}oM9h~^ideD)?Bu(lyTIDxKx|h*lor%j3hF-_=CLx=WY~QR9JLU&xV;o#E&KXHuL2S8r z8v1})fnMik)VG&iW?U1|d-maK*kcM>rJKk2D7_>!roSBAo$K)GG^}XKw|#5VNp^TO zRsU?vgz%SCx&GBum6yj$;Fk_Rpo8gB$3m!~e&{<33gl2tE>I4f$9NKYE|5U|(KzZVi8NvAbZuQHJHT)MC<>k%I7nWq)lWWAf!&Ok+PiLm^nb5!Usp*uchJ~?=v1cS0|@-!XuTG~j6<{CE8uR3eb%-a!HrU} zzp!mG%nmx7-!SiA%Y|z*5 zWn5k9$|^uQTQg!64_-tujB=Jv!h+*l{}7{9qM@aDC5slX%eY-zY43&A2!1k!0a<4LX`x7oJz3+Ly~+_b={B^&)JZcd>i^-8x+eh zv1lz6r^1AaD}PLy+UDSj{Zr82tU5WIMz_HKlB=wz9<&AO#a#}Ey{x|9w#Y9;Ef}(U zn+q=HX}MJ`cMh(Jr6Ad%`}*w_P{{V_nIKD*O_*0m^O16pfgy$e7O(bZ!h>}^Iy+PpSXV%l;cy){JGB0u+cJE)Axy%)6Ks*?-esM7RyUVbMY-) zeIH<=gD}CL<9qB>X&Cz>Qc<|{By$%%VS~0af7?UbUfBk>>HQ`9r|h4)f7<@dt-fv6 zdb@_k>si4+33uZkNWM1-1`C5b58;#Qp`6|x+|ugk`S;#qLD@Txv`xY z80Ultb}2;o^O3|0NJoU;DL-Sqx;4E~7IR^KXv98!XNs>hA>M>@I@cIi|2t);Sn@qL$f$=YeR+)5W@NZeXLoCzyzyGxcGBmdD*IeH_9F{%;OGG{?gFx zA#QNc4qe;eVcU=7(jpUdeTcVlVw{_aWw+0`zbN|J`lM|wvh~}F97QIZodRPIj2j26 z5IODuDzU?4?3-Z`2DY^F3mpv)H@|)P@Hzn|mfRw4z!Cbb&4JK=qQz=kpv5Wrw{hr% z03<;(?Ea`QAXN2?8U~7Ov}_?RIbYR13@H%6zy#+Pqj2Gh{H5#Np6aeGU9-DScHPtc z1t3jTidEj$C|_NHC{>PsyQizV>n~mOHG`o+2XR1~d#bw;t)r`Y`+0=KxU2gM)oriU zAiw}9$o_hzD;DUf+U~URINlOF*|T~3TL=>aQ{SioaVe{=Lnw#2k$bu-uPL;;dlMen zYkQ(=GYa!)h55Ate6i}DcYCM+Dtbw*SYnTC2{r_5+?moz%j%UIV+~?uFx_won!Y-S zCs(mQ)zvFrm@t~7yc28~3^0vO$Uz2oB2)nM|FoDsoln;5%uNeMT77pMbZw;xj7FVE z2&8||e3Y~6L2&5K<#z%IW%CjPj4{@N91Fo1!zAWOolA?mN~CaCUwk-K<@UvZ!u2O$TTZeD+ zl45@cuG#%hI@kJ|kax=x&TsdxUb-6j_2b)?F4c|&zfqdJZQr)Yw)SoB>^6Ag>WzuJ zS~0vasROMyw$&*=Nb{gJJDR1SZyE6vb;?fwe^@znm^)6Fg&^lOoji;HfCiBWat zt@I^trry~-E%VS60HGKnWq5`(0V@+U+pCk`hmXY345%byP4A}DPfmdeKGJEVr;!dL z?ZzT>1pguY2aq100{F+(I5~6qJq+T9c7j+T4{2&xHqmT?%}v$wlLZW znFc+k7gxPqE3W2u6W2dp+{uqs?%L9V|Dd!j+0x`uL8=O^g`ZrGi)@nN$C0QJ^BQ5x zT|NuJOWeDms|^Eh3!qV4IA<;#;SzkKb+!`8D$z9OBbN~awjT0g9-)vJtVM-Eh4nht z*{P-CCU=i+ia>2OD-I(Cjo*TsPmiqc+#TAg&JTpKH|x!4L<{HyII95EO+&{HirUAW zFP;-Ym0_?C3E5g0s8N+)iZf4Pv`>m4X2Q$1b}%M?LL@)RMT+LNFjk8}I3=M|sHDr= zxyEqwm5Z81DB<$Z7nnqf60(*hM>uDlVj8c5z+e+_NNxU25X@M~4bU&v5vEQDSK5;2 z-?*$-$_qG*bR3m7Xe3*M_%5OxPieT=y?X2Ia41|4nZSDAKyzYry)TX3zXK(KF^{a$ z-lSewiGO)5yKki3$J}?dmijG?X(`_ik86bQN+)1|(zhCms%LjEMzl*j!|Grm-yr^} z!RxnUgy*w3qhqEu~$XTZi}1y}u{2cl4gyvX$qMr;8h$ z)z)tVe~&L=&b^3b#yQQRTdN9$Zgbw(2+|p-&Rj7)chiplp2Z_z%2UIJ=r0fy2-dby zpD?pTYi7Y+0B&ch)~wXT7GIt}?Y8+V!T;1LH;y&I%VqT#+!2)pW1%tzu9o_b_73vx zDFHRh!mb}lvNH6GQ+%JVP4jSc68XgrscK$&J_hKRreWr#CGdSQ!X=6PAbZ`{!!6@m zaaLPB%-7zFm==h0RVzdmxAD=%ZHy9fVJxAPD=>GYU@P-s#w|!H#Sm2fWsE7`9-oT_ zn6vznaj|@Xh8+Qgc{0Vq#`Sp|bGeED8(>_(-YE6rI^-K;n@Y zB~t%KE85sW{pBjC6A(t%y!u;sbtPUM7zg-Vz=~Jvp$CBTME--G0Daj!eA&EsHlEAX zD$(_-_}y1-oS+clYo{54KZgI8kUm5z_>FEOZNs|TgyR6x14u`Zo<^c+!@~_mRWHTp zqnUJ57Uw4GWEhLJVJxgM={|tHF!Q3eq2`AT9b}-)wb2bPO4tLa>O)u;h$6ZkU(H8_ zel6M!H9YRsz;0ZH2Lba?^K0D!F@_6pj?B51@*EHb-JeXvZC;yAP+m`vCZIVaZNh+q;~De1`*ee2CDJ6{hV`pOubXXY}C0hgV!28hTUX!pkU%j)45I# z@;UIDu?AZJmY7Su6P11ZI|BSEFkO_PeWw_dchB4bD6vp6XKKhQ@D|)bYP>D2Nq;-^ zhaJq+aE=Y;nCb`F{+yRf_p`6HKI7km9AJc8+x-hRER7~M-NK#=JdQXAZ`l@turqaIaNZMva^LrC@lEgftEaCEuIbH1G&os$56{^fPC{&1 z9lR^JJ#dyivU1RN+`rzxVDq%Ld~hAfI~MwjLR{T~4dLdK=co8~Y?vbZp4+ek!BRZl zWG9T6Ji@ki*0Sw^Z9m_Z+OW9uzRuH~Xei^XNaLwY;BhdxqU;22_! zdbQv)1lvepgN1cW%0+N$qAxi3VyS90DGXGDS_94-H}^>MmGfw3tWBZJ>mtcIoZX)} zdnI`t7LuD2O!-EVf8=jWkoMTQa;*07AGE;x64FG-PMNb8YvcUHBKXzMjVyu@2ymmY zcfdV*fDZ$>VPF7pgmsk`A1;Nj{aWk+GN=ZfxSGg>jac&?&0;%oQUMm=Prk^I$h~ySLI5Jc8z@#pyWyPb1MHr3^iIO6cSFUG(vx8G(z-E-oEi{%o`PT%H`{ zgM5E}ND7*(iY^+X3|93*<_fs${RPoq`GkH)C_ng19}ix+IQY;T=K)JaO1wq*1&0{^ zNPUR>gghUqKOXxz+AZ5@bCUCLY}6#xs>;x5&ug8Q=b94WCA1cton-9f=(Ww`gk`xo z)8NI)pWtk3=Byz36wdC;oEeipZ2K~fB{;pSaB-#4;~W1Ta(q3L+z?lVkf$a?gz~ETqaAxP*PYnj2n%=_XP$-k^Qe0c1dcsbJ4d4WZ`%BS)FdRsa3EVK4_^ zarRN>xpxIS5OU6j>ngeRFoi>iy&mUhA@~=h*$`gFW9-0oXH8%gr0I13uQAd}+7S)z z3z;X2^(STJEoAL+7EL_*TINy0sG~>E#a8$X7y%vHx8MpenpRvLklMHhs3;&=nQ{h+ zC2qLM(BJT}{5M?9kAA1Q!j$jChy<3`7_1}LEx&$+E94E$0?_LJj5&j8Aa~ZaHDIv) z`t52A%~uf%f$-Z5N9|Fx41|`Y7Qk}#vIfYl zFxQuvh87yV^wmqyu!e(0c!to@-grBU63ZA(#e1Ogx*O>(qzjp88O1*v1)YH89fd#5 z5*++1GSIvwtX_S-ezhlW#pBE@I;S_;E#gM|4cP0Q<9GBpu>;(aI^~}a!eVJs$;jAg z`PCH^XIce~oKNW<_Yj9tdAemH33G+$sz7^lF`@*JP=B3_n`NMIdZj^rpn1mdK(py$ zPSvzwClX&(7_mlsC5JH3JarhH6#fnPzl@xGBtL3$B9J&>=*^Hi8=R&n=QKo_laJ;) zA+C1j`ql<|tMan>hnuR55e||h$mDTfaDv{L8oW`a+F6ITqRy)+;-m9*4Xx&7mfuXZ z{SEwsMR*GH&IpbU<4AD6ilf(%*Wmm`wAWc2Xkr5L8l7jNy`JL0<4nSt$@z>1Rl^ON zoj*o?@;lCP{s2ehcbw}yfum8x*2|Nf-=>Q=%y&M9SGNb23H0g$XFm#{f+sl-;K&Ah zIg9ffIHKYUoe$xuBPi7B{4%al)h9c9aU|lX$hiY|Z78$Y`6X1bT?PHTFs`Fp8FV59oJI#4JZqRFO&NbTC^&+|@H*9yVLgDmisdI&ve;M$6xM7F0 z71yaEqVonEQM*icE=C!z;XBKm*WpM+)n_>CaaY6(oz7Yut;3PaSs87YwU@b_5-w7K zlCum)tMRbMX~&TrN99gJ0eTIOR5%N9bQni7(eLd*&frEWAtOY<6dcV$zg9VQT9CRG zx|pa}@s8_*Pq(@K2sXE>+NSwjQy!TO5#DyOzuj+b8<#o^P--nJY|9S-+{JHMTIk}G z-z7Q4kSf63&4JpRwx0Z8p2l|$YV5r3s6mC*^uiGwEt|Jut=Tb>--DnqK_4O(?(I1r%nucJ`9keo zdqd%_v!U}{If#cVg_2NUNI_|$N>b1n6#^Y08Q1f>guq}3aAo+vtl`w`#gU_j@M@5! z$BaBa91Zr&aLdI_dvSQV=Pc1}-N+Uyg-2}>$WQ=I0nw|-QW`8IXqxhB?c0lkh*R$= zSSI=rAGsS5PuzJ+i<_!jgkYY}=g))AFwf_7=lEakE)DA9v9)NKMx?utHX`lDTJg0J z*1H(TOg_U!ExK&PM6wZrj5R=QNzGgwG%PF*Wsl8mh*9A;`@E2hm?xT$p?Rs9M@HfD z_P2Dp;C(`gNT*5jz(Pf^)}LbGb43eT-{qPL-PWdDO9#ufbwCeaYH>`JPa={>r-MZC zbfFlw5XYJgm#XQCwo*?q)lMb2QLplD$^dhvT8Dm?PBG5V(wMaJ%D)Kz!0<<{gMqh#@%`!N!d6ggI8uW1p!LG9xjFD85^>HC?-_Fpr)`u^I=-Vfw zO~@QbE`$!PgLxMY;v%d8!K=&=XI#(M7)B|Y`-|!MwqKMPNaudNN&C&!e)F~8X>HSd z-?#nQw$X*xDqB)d<}})0a(POZF*@%|asB#>^Ta||2g_@scX+^dyk(n@h|$p5dCfAu z=eE>~q6yYL!VEURpK1?gHx+Lzot}dfgll3BqAc@b{n`2#n$I@BQ1rwUU!E8|8+^fg z*84&+EJ#a0;pT;lfMQq#6vHB)W#6Q}$>GWHK%DHGbONC%!U(4WBrsuH^R`{vUfjlq zg)jwPmB-Wv;8qya_Oa#Ph29H^Mr$ShZAdvttFc28LvdAkYk{s=aDS)*Ob-6GX6Z#h z^n_`K126D_Zeb^@H4O862&1R8h2Lp#eyDyWrq2c{o0waJ1>hM@K}I2YD8xFP5xS!& za~tq}TBsO$a7*kZXA}ESRpVBzl3|Vp+cclST^gK<4k-3d^R@ePq~dPGFYi9zU4mIs zf+<)UEb%#ZUou)Q6fc*03d^gTa^ZK7c7C9qNJu@^*g@%7&H+M>z8>W)EcWYlgg_os zDm!1lmz}Gas=Lq3h|(8`m}1J1Xj%uh-4WV-Dit;)z?Fx5Y=;8s%QpY6WT-M*C{ z91ZDDhqrpccty4r-%Am#7l7dY2nYkWMX#-ryg*!_)oC=Y*NJ)7t|vDZWIFJX`eBM6 zXb+v54x?Q=Gp!9Vpd0FUt|0gdun}RB55jxm>LtW(acDkd3&hz(zM_nCl(WAKS0B12 z=YJt*l^6Cj^l&!oPqjj8k@eCwSx+I{_D5>@H5eyY8U}+s*=gqzp!kmxg+A*Hj zSck~3Q)RfSF*n)&koC_(G}%Y$qSTGia!|fN%nAQpJ)xnB08$<_JcUTD6RWfi54)&#SxKMPdWTy8j)w%Dbtc_MrZFam?s5E-echmytBnkZC-| z=qq2v$R9>>LVgG^JeWH@)B>9cO>2^hAR>sSuTN0cC3tgNaXuB2DcXnXW{7bb_&75 zA@+NdtgX}qTGm@}t8}{*=-58c{HakK2b_VH?U8j{!`wEahb9MGy7Qv$!1d9(w)NVJ zyqOpM{>p6aD93&2iWI17vujTlgO#edlM=Kv`{Vt=g8hTC2rAsbEVL zZ35T_U)t^qTP^r&d0K2ByzK9L?%v%jXl?)h&*ul9le;r_?#!8U&YW}R%-p$_qCIcy zdG+oYPhV@MMYQsN;VaKKdbR~jel!&l#D99XU3zAS2d1UvEaH{S7;?y;wjH*e0{~;jmK9wu9#TV zZ^f(?8&@n}@!X0bt)*LrZnqk7 z)?JrXWw+hcP|!A{svnR8jQG*OXNEm(YtP!`+|0JsE&aC)XtO<=*EXTF-_wpOZZDsK zcVi=hn#-prFYlE@N#*F`YxiWCe${ClnvZ~^!1xI|XJ_(b4-f!a0YA_P)B+FT`Ap_* zfc0VJmm#NKShX~F+3G#FKWL@bxy$?|J06@@o;!{2@-^B@H$YkIy{Plj=6hegS9Vdx zIHS!53UW??h_DSbWWHo5DUM!t>kTe~BW-9tcGU4XMLs6pD^o2u=U--)E~(2}*#q{R zv&nYkj4nBlNjL8@HD3(3DhX=7#ZDkJwQ zGuKt}j}Jyv@kO`BIVINM@G7=QHV&5!p^Z~ZhK~F52c?xWjQUDgHqHrtp(HbSS=CLH zv5iwQ{)dhm+*lmEyoA@48VR}b*e#_4gIDmLRY8d}$hXMIm!j^*B0etSBtN}`07^-A zGQW@rvFLQW?8syuC}g%C>HQ$hUTAdAel05c2pev7YN=SydTE z1vJJq5~wu(R$XDFef-U&=gQ-56a&PXbZ|OC=?4n>aYi`fKF=KY(m>qJc5paCHrqZ< z$3!ZG|5kQe#wAB7T?9ceQdoVfSwN1r5v7s1M|!1v7BP`0<=)LW`?lmK@}v$~c4Ny9 zr(eGs^Q=^5i9M*^7cyoW9)C{RqFB%Kv7FK(U)dLAo2yqhe0nE``GT#@<{SzdL)ks{ zXJfG~Vy@gt#Y0(lAL@+toG|Wum|W8%fMKHJ;#yENW@Jv+n31-lSE07OBXfA^bL>cG zcV;kirZkvIgiHl5Cuq%9=in5NE}Qq48;7PRdixP$-t|Hz?-;8xM^|0()hC}nzqr`b zaP`SO=RFNeNI!QzK|UeB_l4<8!|T4ij8EznjT%FUt~-m@n^+Z}#E>JT8Cv(`(kB+H z5tnzVD~ELDu0NXYKB7t|UMc&y3-N#X_F`$#sBw(jk^T4z+pR7MW0@gjdv|#DJb=tUnepSqe zg-+Kk%c4==+mz>2BHPFznBIZiZ>-Zsj(JC~T$wQ<|LC(zcQkaYcvhDv&9e_=^G5i) z4Uax}*q_K563kl94qIPV(~w}@vH_J@>vMf2%d(n?95pUkR3a<&%idepc5lft zIW_3g>e7nh6|Ok*2&$M``rCAcYeR9)loFzz=T%|TMryK zz+dkH@2fxlL7wh;y76ZoziODCamAeBj-fx@bXUbyjrTN`m5y4G#*Qlca7)pN#viWu z8)ozQEtb|7wzxMP`0asL2XD&!ZRV>_@{;WA@GOHO!v#c>C7JXWu+~_RpUF#rI!rYj54YscPn|ivNCg%hqk1 zzw<*&Nk`j`$A>=qo%Zi;`Q8@$ur1H2;oon2s`cqj1?)0^X3N+I{{F!I52Tg6_`pBd z!la5vw5F8|fBGLirTiY*iUx%lLpV>cc$AqKbY{f%(XHyraa|*Ks!`sqQM@}anmwQ+ zyRz0hN^;tAr(JHF*X|7lqqOjO)n{Qb;z#Z4pEXOv`8uE;jr zS<+rY-jz+(^=T#PM&2-I>Eoq5o6+PgI@jaAU<A`myBy8LjGREhNU9nSw*U(AA_F##2XenuXQ)td7JF&ldZhSbM?uVvn9N6 zP*R1Q*XFL*BpS$YGNs-8U06x5ePw-lsTnDh0ledDgIM90H;UZn@(rmM5su4y=`@jc z5%&16xUlC=)1`n&dtCC?B}ZmZf}?vG0>j`z~KI#-2BHl%MUwuahfFP4Q=3FJ#TK z7I_*R6`ciFpPbyAS=pbd4KF$#V$GxcTo>k>)Y+ph7;L;xo!StV&*rGK6=gb=M<$MG z-EDqr>6Y4Ve{QWUsCk`ZJ!O93i?p0d1|WZ@mSj!#|R#vKk;&|7kF8s!8NY1p}2rAm>!b% zM;ZfzQ#D=+WV+WDfh&;HQ|(qIwGDFr|d{I(eLdkLFni;r8&A}e3F)81w+G^k3Z z*$ay7Rh+mn#<+LoN8JUJHY8sUy3dF@ILL&c&)%r@+XF4^`n?L zi_h_f^sjNT;?(gP4`iovtObwo8msxlcH@by9CP9%cXLc4=HHCv@OvZAe>e6`d`5rS zKf6*x@)kn6HGGGF zwC^({B@TGw0L~4c5CnJq@-`swVQhnkVQ@|A7A(`6(;)g z&ofee{6iEU_x$b56Qtr_)%dvQ!!zF^HPLK3bY>^1X=du(GuuhcH&cfp{%xSO{mj>e z0clxsJWRU%NDccd)A$>IRa$pvoM1wHs%Ii-{NzI8>=8-+sIC_yBY8v}na_7njZdht zJLKb@@3CVh)>C_-pRtE!vXOUxuSVXjW?r?CcUSMqO5^imMrtFc3deeGyf7%`sfE3b zdZkD3HHv)wjFlqeFL+XlRP-*byfRs0*%=wAr5CPDDKVk9u5xU$#BFCXDKX%}*pw2( zdlyz3Upg~dnR!N-qFvy;9b&|}{6&d7-W z)A`vcB~G20R%v|P!e}P{jOdZK&fl6+B64POS!8t4R$0w;k**awM;ZlbeB4ui=6@TVSv`hMb!}%4--hJFtbEd2E!DNy9PWPw(qt8E>Qlk9K zfy(A&i6y58P@?F3b4rOZXYOiPh}dR?{+scT7*%slv$=birSuo9BN+Rn8-}paSC>sR zf9id)l9xA2rISoX2{;b54xM6X#a&_gm+LK|2^b zFPuwg`?SlljIUxH=swl6xmO0Sfx_b-_hg@zopsi>Gzw!JY}t`_#mtI^}TzeHml z!T;wu3o*s@TT)SjbHrw4CJ+~?`pu^Wjux{;2*24&a0 zUM|(bp;J9RPR!<*t+wyN0 zq*FZuV`7%<9it4LP<&dbyY{TT!v%F$oi)b4es(aK51kc3`WjzjZabS0Bw6LR6y*f@ zvghMz++B7yeMgb;Ai<<*+BNB0Y@>0^N{E_m&*ZbLzbn`>Lk*i3RH~EVb^tgCbOGWc z9OW7WPBV##74nJ{zwi44W|@Cps5Hu4X_Og688K@gP=*|{%rRciP;FBymG0SyfSl^F zT{z#f;oSM2*Uw*PIuWs+p0g7xCmCLk8hWZ{#c4Jt_D)Es6Hq*UUOreA_j^wDM9#|& z;<(>)s^|Ul2%_otoa%Y|{8gmle$Oe4l6+Al?)K=XdVa$fMG}6`Dc&MH-!lV5)}GG? zk$3QBN@kW;X&if1QdL@6$iAq-)3n;+s*;Kl+_nL;3L7lGQlD(yxx6Zm7oPgkS?1R4 z3~Z4IT&kS8kgo!uK{uojBSa!$mAw2;7^PYKt_S>pSU9n2V!_0!#cECKly3PAV!S>ZiK$Sj@^PJzSU17qW8~=T&Bw)-2AQ_0bHybm`(5 zxwW2#x`rnkA`NGIz8%XAIxDj&nq?Ht%~@SIR3l9pyt0oZ{Z==`%i-!S?X zZ$K)SgB#*KQ$LDVm7lE2)$O3FoYI9pd)24cb}O~@)#ZOd{m5>hW9v%SO?-O0`KV@T zTm9Ld8J84JC8d1XUUj7hGg%3&VHX%Ds@J6j)7TkS!+{qrQhjuZvm~Y|6}!Mop%=-7 zd!@Xt(@}o)A-&M#2_FWACj|x)1LZF#DoBL}uj=>|TWMPgW3o-g6eSt+ET?jQQbr!W zkSZe++TyI5g`AkI(&1H}$*TbdQQTcgo*9f$EUac#UP1E?cC@mqwceh>ur!ll-!&SF z6FJ^$_>RvhB;D|ss*}UcSSTyeta#&Uq_R#yPs8;Y#MtWzbJHFbuEisAumCzhfh(bPfF!DqP1o zb0Yn`OHu2t(hJ!%T9_$gpHC7til(~V*uOKFRGvZD0itl03}i>Br!>Bbo6EgyQ#i9F z&;;Q#Q)D3B6v{82PnG^7DV<0j1S9*uC8X+q!SbU%kyA8^k$+;9grjj96T+w`uo5ILRT6?g zNBQtWgG`~y2aTHg1XZNhvUfODVLMH|kas@oQ%L{ya~YM;ur`G%y86ge3OnKJ#X7ve z)C;oBQgnEpF#s>`8i2Ybh@y3r5AMpToQ3js^U8j%PnalME<_y@UPT>u)Tam2jnaj< zV>Z(2WcKMk9T~h%kLz}6Jk}E@yUS>1FlTHfn#t|TG6|V58=tP{8_p%jn$Q{Xy5zjB zL|wLIUA^6zm9zAu=}E7ch3QGCi;84bac%bhl{GbW!kRW2A1j|TY-xfu3(lpoMo-xN zA8|A@`aYF6>hzYlzCQ2?)?}EhNv}kxV2wJNbrD(PRF&sMkjEGlUD$QCNyS^bM?;TM zXwH#()xzZ?dFT6zcgjA6lcn4p3MY$2MF%~kaLFz1X+uaCi73?-R`vsFFQNe z606!1+ArbXxmSv#+EHF|D9;?G;#k$-`N04B9Qn%6Jwn zO8||DB-?&{>ChZ#@;^Q#FY7`h8gk$=bR|2alDd+UI2#?NuC#U8lL|=;H#_KcoUN|j zl>Qlxq^L(}^j~SlEQ9RXUB zgzP6YWj2~r-@Y8bW*KKnp+ehy?=iQPq0v#F70jyIzTA;=k2}*)rua&qHRj{UBu2)+ z)town5Qn>qe)YLW|7vIn=`xIdB;0k;nP+=mOgg2h&Yvzhh8R z?`zcJ38>a>pB!EoABNYkL*fjq*0O3#*6sqGWi&vZdl)C(U8V0L2);7@mzN-$EIb*8Nw%B4JGVMQNnRb z$ViIUt9}$8H91`gufWlrQK^4Y-#L@SOjxnxY$Z9k5@zZg4fav+QpuMusCAT&JT%y( zinuW~^~UTX?nTt*iu_}%uze_l`F%6Lgta<-x=&a2sj53p^ES-Is!I8`$Eo=ACzMr^ zlAjm>>0P=^17#~^LbgAflu~)0aQ<8AHif(XA}Y!AaaP#6GW+I#pC;FHE_(1%^8WvK z&*mhls`t(PdwX7pWmJ}3Le}~nak6%Of~*M}pa@>tO8&QJ0p|(roUwQYE8k08tbdD0 zW`Ba@nb-iCil=oMj+tJX@XJ2UfsjVyWBE$sp^C2IrU*{&#xJ-FdBMYxNz0fnxfZUM z=$V`F9Gm%>oD{;`7#;%}&r!%3dX#U-Dr&noUq+9S)+Iy2ByP?TKI~6a;&$eWug{5i z@kesmv2e0y0ra_ay!7@wa7nB{_?u&(YwOBRju<{~cUM8t$)1xjdx`=}(^I^@UK;qU z;Uwp6c9f4eB$M=-dKpY@adpHD+KEmu>^^?qXcSRSQV}I$DGo#L_4drW$gY_FUvJM# zDKqs`=1@A8B)?3x`ljhJVhU|SVry5w$~>CR4q`J5=PaI^Nw7(jRfd6BIsuA*p`dgl zv=VRVKQ%Jz*UJsu(xn_n6%tK?|Hx+^Ls8&RsELf|E( z6*rXRp_+;-rxG~3ymBkiu*)hwS2BsbA)heNy*&djToD{-xTbm3W2e*rYUsz+B`Rxi z4n9`R;%r>iTgC6x=Vw=D^A1yXWk3G*`;-d*deJ0ORPv(Vu<}K$&&Acxbr#n~`TeP3 zx6)4wyBSe8FK|8h8f+W7}D_EZSdI&;riyq34@e~;;F7PA7mQO zr}L$mqp?fFF1HAXh32C5}7f1Tyv+k8Mjd86G?+l}CR>BBvhwgq)i7vgKBeBcj zM^=JIERwya+(p%6Cz)Kj|NNv+5t@VN;t`y}jqW1ZZy=*GlXv=Y9U8}o|Jpclh!=tT zaxf9=d2eYv+QX4T-4loCBe-dVg&L}u&M>QHCzd=`LgXR0aaOSJ-r$kxM+=R6g%U7s zydmXYG57L}dwDDgzTtjh+C8j8>PYq0-;$!CIk`;AhJa)s%F|BXAUkJb@GjvwWzcR-|VaHr#jW$XIA&)%EQf4M2`9)=(piH${W_M+cS!Vi0Wwue~2D8l8$~L16{lCq`eMbuJk5#>E z;=beIM=QoAaW724eKpk$GOJrvnQNd_{o`Rq6l77ve=$ zRJNJ@pK%f1%P12u%QRHhtcmx3=0#=dDAR40xudepC<8JnjJu5zol*jM`FzDhvrEGN zltR@M`k`59PQ|2Tzu#-=W5-RD*=d%!v0_59OkqkrH&AASS!Qy@^~o}~r_^%|Wmf8D zp>Y-0CJXIIDKv^gUoy*#sJJd!=Dif5Ev3wSvrKWt_+**FlzQBhDL2a$R9urRqq~nm?Cs#;fJXmM2a?FG(p^1b81MXM^u zn$7HRPb?Zg)?T!Y&5^ma4^?$A(#C_uo!DTz#6P5`|XO=#=tlRg};-4=onD+C<*DsUQnZ++Hn^ZaGV%q2?ajs!A zTmmOv{iz*e`qK-#uLj$zFw3J&{*O%Y%*zZ1@rtU#4Sm+{a~v3Ovgd*G#b&2GDV_2_ z{6eQ_fNalTeDtBG^+9H_ftMCz9>I4AjAH#y_cKdnUs{SXIh6TZPb_u~&2Ga9`V!OX zeisR*7_?7|`{!3o(T(YFu0dM)_)q`jJfdI9>>d7Uj$d#BzKRcdoobp|8LJ-edW zu0Uwj9f61|*b?1a{bopU{blEyp+&xy=oqC=DDSSQ@&qEvvyVz!!d~AiA3C{S7P~rh zbTkXYiAGZz)XWB@{&=G;Mmy5xD*azHHt=6GW;YwNdpCi2O~geHt)4(g^GUCo(kx23 zEh-RlftVn5Izx~agysI~s2%ucEOz|l&7=P^_m8u~d}d^JSXEbtZPhJN%^wI^sK^@N zs+41b_i>|<1N`3Gc{F5KMUmg|+vVM6hG z(s?lAfZVn~OK{Kr*F&l^5Sg{VB|7clmhdk-kLsbK>TS`XwcDbTgDqiO<0D~va8B5! zc11H_#ZP#kdVWiEL48Yf`mvVi%;_!B@mwc!eJd6_!Cv)9o@$Av(O`xOg#MnUPUN{@ z5&6m$%*}JrsgW(=J>w6Bd@47x*L$?T&)b~4*L$FU9&Oz8C%q-Cz1I>xd2^gxf?Wle z37^VN{_vNHz>os+_SNm zJF|9PP$-(s{d4m{?6qA{t$Iy3L){Wd@7x$vdg~)mTkRw92I#51@sUHtR`q%wf|l-W z4(54j+-wq<0#nOSfTzbBZ#KjJsr#s4j&*7dJ`2SDJVA)21V z=wB5~0)a&-2#mi%^M4N^9M2H5Bak`#7GZQTI%EV%{>_)Qgyo*y)fDc>@`_PloTeP3 z0wTE!BQo@41dKwG>(bQ;q}Gt$npn&s{1)M?rXm+I;_@~}T*!i}n%^p4o^`uAcSU^+ z)psn)ty~>ZTVO-j8xTb|H!|8A_$l)9LJ`kup1`+t<*NG$KYl9Xc8F5XXlh<$gGD)R z?$!V zKT~=r*fXAQ{$h*e<{xsedX2^F4diA7HVkl9x1{xqe>2}1XvueikRUqyi!I?a@A9A^ zTDGS-TzJhNq8{#LDSc5Wt26LpX?Q4DYn>YhaLu<#BRptP{Ubv?yYekGK9t6#;nm*U zupN?jY06zty(>C2uq&G8TgJp~e&h{Jz3bw-!=m1mu`Xl&=(D@22kQ8yhvgo+;$6`J zA_p$Lb7R;AIYc4Yyy$_zBhiF#pbNr=;z2L`Ef#xs^@X^s+z(X}m5H)SH1wBP>~*Qw zhGLQWq%NC}Iz@Szy5%VlOcg-=9<$O~DiyLAEHE*b%6HPs1SR?*n2}2)hUBYQDR4gKSqp5+Thj z$hK$MXOQbsYSsR0YF%%3Y{X|$OHUyem0e0MJBX!{Yp7Xiz6fRtm4q5jdY5IA-e!N~ z!z9@~j~x0g6cE|5A+-1rj-=e^rr=;Q4GI)M0TG&~zyF_7VHGm7s!wJ-t1gn6)92$d z^Op-LGILd*%;=vKnpIGNN=>0jzk~wE%nIM8LZN_|TSf>5X;;*$=7lV-rhwJO>Z4i| z5%c>RAbkPtM#U~yQ^Z9jE*fyD z0deg{Lt@K!A(*0AP+pOQhC9x4s-_+ zE3f`e)Mhp^ULMA-FGm;9U>XW3U-OJXDXgmNQI?I+I<(#eQB4u_77pzt3V8dmJL z*E`L47**L^DlN4VTF@kihf61M#boev(i=nX4HbMkbDpKpW!)E*XT6xPQJ(6Y@uKpztawb zsbLEs55vl^18+$lh`K;DR}>P+i3})j2hVimgR})0K!a&OeqLZ#S|03Efo9UXqI;_M z_1{Vz(?FJ9I}&xVEnhj(X0?Q!zSUvn3PkK8OxR{I7;`e!37IH}fTkIw?})Z*>V&2m zBVzd$(CY-Xl)62Vm3}@C9#tll-`ix2c+tkYAp$fLu+Yw@|=U?GFE$ zo~J!WXQ@jNx6vuxA)W}05>=mJjJBJIz_yD`w{9AdPpIKfF-F&1(!14WrT0^5 zYOh8@(G0H^_Cl#A`tM;Qp@Y-EwyNCn2@W*SH>v)C+i8)by7Z=XY{Aw#%kn{mlDH4r!k^pL9n) zHXzM9A<$pOKVT^>2=qt$X`%;!vT z4kZ~vc}TG+59Mi&uBS(GkA|4ZZV1yzNXonjB`(bu;goxoW_^igrkT%_nEBcsbd64B zGQ_&ZziEuyzfxh5G|D{SI);xZ9;ezBbujFHDsy=z6IOY42_P(o-u}2 zHA4!eGm8cus@olXLmD#WtKo^=(T7N&%uMJ5sx78`8L@}ldZz&#SgP`8K581IG; z;En5l(TrK%*FJy}`f=&qbq)%GkzhYWutwpC!Qq{7x2V%|<6ENpV1Y3cV#dS#J@ntg z5)er=E)BzUqv5$UoKVxeOYU$o#PhCciH0r_+!xO3rh+&Zb04F}sSSKb8mR67ky|1~ zAZBxkGjZrC%;^&v4#lW*I27JPQGSQS#1e3b6hYD}1X12%@EoxEUBJ`)-U7UN@ZiCt zTy4S8Q45F`5SZdvRHQw~!vvw6u0W`t2LTK2I=1_4?6?G!B!ZMr~BDgfl(df}kdaMH5 zqqfHF(cd!Z74}@tu{@4+Z*4FQ%cVSlaSWZ(bX6_COJ&|yEET&%7H~wW*94tLL)GYh zrdJFzhig?h+uQwt&HL&H8vM8LtPE%6TOCy19Z?$^PANg%RgrePaB8*pW?BFt)B~qR*mAkDy~m*wbTY8n&&r=?Ke!3)$!F-zK+T{ zUDBu=U2as)RNOIrJkDh>H#}bQe7}imJey93PMU%zNI)^SB3~#sfx3LuWsldTN01z& zGW312vXA(Ehxf5?%xevQ0X;x)u|vrHAr+jq?2g)~;53RydirOnoJMHa8ceAprflKq zQnwkzl>36P#1#vL-N7|c&8z?FSQ&gDZa5WS@BLNO(%2NXfvr-%i5{du-Sb%3Bgl9x z20}R?beWph{4NGc8u5F5M!wJE3qQoY8@P9vdj=J$Lj`{meVKZs>>XZzvQu=pL+SMD zr`)tmnjXF(t0r=@QWLca)5DkBYa*lJQ^s}h>3aBmLohUDge^Q}h%KDa83>hfe1hKreoJSBofdTvb$&3~PJ6}PIR<6*?}KSEJrFW~ zm){9;fqky9M#zO)jTAy9<%MLPUmYujTEh)>3&lKfils>-W^V~<9k*Odhtdt!jj)cV z6O#j>W{}PZBH+@Q;dI7r)5BA;1^c&-m0wA31_nYtD?Res!l}J!o*ZP@JQfz=O!Vs8 zRLjoDcuZ5ZxsCjQJHZf-+jbBUS2=|oHP!Hk!HowbDX~(5YX>Lo|JMG- z9tmllT*#vwdEPBlBK%$wE|5h7&uWAx5Nb5Xw1ue`Wzw)>=ow~BlwkqrxRkjU0~6)9 z%%T=p)d?B0GIeJMiS@4xPaD5!JS~TIysj-en9W6DD2LBW0pe?|+13VDECpd+?G)oj7Io(2GM+KUVWk=l&?KA1`=!^p~E_kcZzBa405_R-I7D z)fp=2^hbw!{LwP*DSq1kJKzHHfFk9O>f#)f&DH#;fi1vHK=M*S$T}ei`8;0?qedeb zD?_+`afcuCihh7X3E7ybc1NusFj=jR9(#3lG#Fluzpy3x;k?z+3AL-ET^P4?C}t?#0?=MmCI6@kX$Ix~{QO{K@Rm}}SSa1YO^ z&g!rVO5|f>Sk{NE3OCM_3tKH8stj(-w|h6{m#3-1H0~uRb%Zv&x=5_A4c;NyGG?iu z1ae+AXLZ;{o`mBKQZXSw5RXfG5i=Q$c#jO*bKWkfQWH0^jEtGWYrqcJ02h!46aZde zJTM)QIMFY?ogrOx`(A!{llEE=sm6Ch>V1LGAE1DY<%eO>JN%X&2>-EYhWX`_oKb|+ z?W7)IkJyM4Ce=>Txept0TBt`lR>nNS?ro3SJZ({H?W>V=Uw!*sPgn=bBs3xwqX%Ao zmK6^vWc98MTE!Q1)raMt6@>DPiAW%F(nK~u*>rDx(D3!CV|kFqI-8BU2;DNAzlHLW zy6S@l;+?DL`D0NF^=KfApK<(~=}JFgceP`u;hVQEDE3_nOGROHev!xm7|W3C=UE(- z`Jk<{NfsxLe}o#|$*#E5*We}JD6E_tR{lUpbjgP{Iue}D%;;Ou#(P1`)fvHv1>+Rh ziJn=68~17?BcKODD|tYxb+HV)5%LFe2a`_oZVU>kG*qVaM)Nj7Vpu~D`nj4u5Z_ML z3VugJCvP+tFu9-RYT~mfJK4a`Jkg8ONuC{~o!(VAI8DjtSyOPMhL78IPhPZNaB+~S-YnS|r=#LzvVCyE2w zsxbjgC}2Zai^l~vP4F~tCT|n&cSjz1w|iC@X^cn5eA0UHwSi4{n}zW4J8sFD7kT2k zz@`VxJd9GuEjOTea6BZiRD6A4(?i^Q*b`{JZOXJ&Qn{nEnGQ&A7llB^VME_rz5AFg z8#ZNxU5Wl*6cT6D+1VO(c0NWR;<2bR=+~q6;Kt~4^aQd+55i|@WDf;}T+SfjbwEfi zq_=x`2nbOAiTwk{Dt}eqge#CE= zX)>AoIbtQP>1b@p&)5^_zles#_rF4} z%<-i{k@`GLvE8+m^j4y(TbaasK9o@%7?V{UDAs%kv*;CXpbeHa+te+(Bo52NEW;2B zx+R2b^s-FHq$d(~zsR=xs>76f*S6>Opim*+oBCvL4&voxG)nsO5nJo};8E#ZE1hX% z5{isShZNI3EaCAq+Q@V<{{6U0c6I`h#n#Q?k=Y>iD)KF zX~G8-r?MU&P~q9i@A3Rj+#}dzkZ=L&*qD6y=7q)6(Q4yzV}%+*oi0qYjH>Z299P;% zV?>Pit%-VT*F=lFx)_{3$M7|?uqcag)L~GdMU~2|30eWV&WY$DV>6OeGEt6zMv)_1DD-1-&F@ceuQnBNCs3KD} zF;dU*+s{JRWQnjLOWGuv#xbSCf7J7sK#C&?soayX0SOoRzG{|VXn=-|Mr4L`K^+N+ zYbA|;*{BaVXRXdmy_J z+ry1x7eqdz$SsO&DRYH~b8eAo_z3mL?&wp+>@^&-F6i{>Z3sn8$Q}rU-hym4rr(C= z;$4kKWQN1c$j;1{2xr9Z@{?|g+VByi(p#w1u9z#NSk9+#!=BOtnjbf8IE`;vi?85n zrlC!=GuLP*jeJZe`e0t#v3S6nm;*$K2#z*{PXW**Vki`>Ft;udo6Vb*=cEtJZCL4#=^q`CZT zlv@)~Y877GYMd+(1_Z%!wdya<+EvjDgdBvJ-;=PgRY@=K6QR6aW@7Y4W>j`hlkt$# zwJQ2|^MM^SVsXxk1h6Mh=IseR**~B)C7s~8krL^xt9dhdrV~6ja=WX^NXMOE%1CF; zGETxW^mcCKN$IVb$>2!o?c7j_^p<-MyW+i-%B`L2l1?xqB*h74X9jZjNhg@-4g=5W zqhr2}uvykSz8KN11U&nB15ZpFgEA9;l4u#S61o!WsnmebSE>B5P3waFkXbQu3E2|4 zLQasYMG@90l47+YAv@xccZ%#R65aN$uteAspZ$Z3>v<@>QBMlG@JM(id~$ZK`e3HX zt1XaTH0kFcJ@F@2@Z*DM6vN&UTos;6eru@+?`E7K29$pvlc>1RGIIB!91q*$Bez*b zuB|l?5;wAb-0o=oPtnLSztVT8+h?i>(QSZiHn{DzvKkp{KZ~_-z+NkteI?)ktC#B@nVC5YoZO$^+8C zLVBujj;-`4jmkAoT#`kKZ3yFYCA$sk*b&H^O@TbkLf4b%7vZNdCBT&AYW~owV&sFN z=|ta2)Xt_hzR;s%*YmB2Zc(m~E!Z4h3pph-o_;KR7JDQGHP$Vy${o4Q z=y6k6LcUgzv&qCq^p!{W*v!0B^c7o*Q2WxE;U?RX}z3bAT~ z8zI|5>RiDwyVI=RRRr9c(-aYu46iF}cP$y91^g}ypO)_35VTGt7!GI?mxQfEXvF`J zhE!)ubSFy32n~3bxl|{67`)9cO*Q8}!~&=^jA67|l;2`S(OT4PA%~CWyfO;(4N-ew zl{h<&9JK(&5ooh{H$1)xg=6z>hkP@`8SsydF<}r4F$s#~pw%p%^-y3vQcRD535=GZ z{Y92&49bXIQl6$Yd6Jis{yNnAkm#KV>q>sxbY@7!7ft0hMA>t8ykBR0xLH}ox4Wi> zwa!^#R4{XpO^~fdCbte@mkd>(MDs!F2J&RcI)Z`zxvA`gg~CqqL)p~5va^pJc;p+S zJIPcgd1Z*;pSq_DmPBR*)3`=l9mRJ&Zg;K64UCh$^K9&d5j271BJIEAzQr31A<$4q z9H8dt+vFwYr7|a#0Ez@swgB6%Rl3hYPl=F3j4&TPin%m~q3W{tAs96Fk#|_UO-5i05{wZ3iolPnah~JP>Y~@17*2lFEJj6)0;X0GwiC?ZXWSP=(xtMs zy|EKaA&*--e-&{yt`26XFNV;buO~>F*2$!pRlYq^_vs z=`3Q&?Arz(HF24|YY6Gi5Q#PAU^*n58(CwJf389P^k5+LdD0>WHcxAuYMvCTq1~ht zM0$*dZUbp)a0ZlkMG!(B`e6kbmM`meZp3-t3g24|zAL{(ViLUfhrjs$hWFub%lJ2V z?}GQz8<#)HdxP(;&C$$81kPvNi;A|CZ6d}RM6IkrG)32wC#(|Luy*c409OZH%;JQC z*V01^k$z#L=3ze>g8DBx5c z6X9V_a4at6b0an!Ra?-Hl&=o&GJFMDKk3)=`EqjHBu8tlgU?NVc1|^b5L>0mNn~7L0Av%qp(=6YVVe(!1%{l zynr@w-%qQ(t4Z(waVoYfkQmMiNXZ(8Tl~0$drc(Y9UK4e-8p8*4)!-5cXl2k>aQ!e zt#eN_Hh$y9e&Eo3jNu8q%qp=&ai`$tA%kr!p1QGeIHP|z(i(Px zJSf$Tb6Rb<=~h)66elL0m-roD=eDvU8c{Cx2%5e5PkJB-;BdNa9zp!y_xO~Fv^bpN z#EQHL6~u$aAE=3(Lo+GNs$e-(h7|}YCF&Kyl6Vy}V{y?mwXY_pOJRbr{i`vvg4LQ zxjwL~rIKnU5LCciFLdkp0e_Q`kU?7c)}5^G`ldr`3W|{|5rYI7;L2nC#SMn3dZz0uKE0d(Bo1$ zjbUQZ-SZ9k;NWwE^x2Jp{vLkYLE=&F<10jp>7gJco9Pm=qxtR&BSYiz2!>-5teV$m zykvt69}}MwfB>XjBMV~3 zStyMJi#WSsRoQ`q%zsI!x(>g0+R$$Bu%6Gl!zeeqEbQ1%5SfU zge<598h1y9LRLSDhx^h~tyb2eIg0>_*_a=S7nJCzF50azKo5Nza17%QNMWH$YC$PC z3*noEeVC=Bd^4~L$^;_;4|6@dV+(57uq6bw0&J3%4h6i5$oi`2014*`#mxOHF4nnF zNP1Eu3E3Kj$6)CaM8H}oA=9PAP?9a(lIN^lldpVh@@-sk)$%TqaLAx?~$mg2E6d!%8G|lH0E8)qW9XQ@ClDB3j&cVSokcU5@|TqCP+F# z`p+tt;P-eRRHJdR6&8@OdW8SNBaFjqB8?aoYyflmKA$krz)`G~AT&xUk!Q?`1IKx)G(7+uswnp_os7Tu6w<&h2Hy^A*K2jQ$<+cA@49lQ25=% z?^GmzkJIul_gvI3Wp_}g*QLj?;)XlOO(BgPDMxbYMO*X*Gfzl=sZTFF6!KgCL)LvJ z|9La#KjQzVRwD8MBH#KC>JTHR{MBJ7o2LA2Y5L3+Y*xWcN<=fU{7-nTGM)7xyX?Y} zeF;dvhHSC)8+s2Rug3wp@PZ%I z<)5^N>{_m_dFF;kv2LiTY9`gPAkn{x;jS2xn{Z$vngxoexnr~efidil84L0gEm}OU z$;E~%GtcUoCxP*osRv!+^E|=z39iLjb*NY)&GiYc+>aCwV03!sJxRy)XROBVY_IJ0 z$AP&wLOl6p5FmPPRs>}}?YHO*=^IPF7xhi3K31sisw-EWdl)da<yZTgKfEJ|y?tDjcf zKC7SRY0v7XO|@ie?Ooa0_3eMk*3#Rb$<{7w|Jxnbf$dNB(+0Qi?Z^6pddsc+hk#?i zap13jrYY5xt$aoOaLu{O?*qWl9Oat`%md{2GQb~buglSY zS9>t6y)hd!Jf+%~HOq^SlxojA+i$v7yKTmub;^&BDUq~MzvX+rfOdCZ-b~Wfz&9T1 z%c~{59ANUHsyA|c%Wq%&^R?Qw4-OjoU&=oVxDW6H&j7#wFZD>_kF^&Ie{4CQ|KiTy zSU#*{Qptyec~B~Nh>H9Nt$xXy{>^x$t)zDXp0rPibw|mBw8JK*lP2CbkO?Zv=LTYrlwxZyw+Nyy*Oi>wFpYTxOlwvdtBQK zCR!)7hp)F@3t`%yGq3+;UVY}Z@jB~x{YX@T{v zeR-4LvicX1_x-lMyn50CEt~uDo~N8ZTAVn#!Mgh>^binwq_5yGAUKQk0$_GZxkl0}fiI*`Yc*+sF^~4Ov4!+bV79)qFY{?K_5gYC`S})PgWu(9 zVHpd@>IlED2T6;XVWi(DeT$JEYow2nt~1h?m0>&7M`rmZb$3}NLU4*S*{W%5j*;f8 z!bX}MGC5_aOl9kiH;_Jd>_jXi|Cq+{@9p);g-FPdW&+ywaEV5$V$a7E=vv<+G5;k!8w6%ZCitCN-=cS_X3RCx zLzC%AMtVXr9j{lz3bpL6<=0eJ z%~D^v`<`oO&$(GOuDJKB*HzD*SHm;+-Tz+`=HGIwdSK<(9=!hZ3vOFTo`(qa&2U0`WA)c*U~)>|$29csU7 z4p;x7_O)`|c&Po?v#bj(+YYst$o;^f_Lr+j?>W>ya2DykhuZJvnsyL6S=;NfwZitU z3TvzN{X^FFxdj-Ihbl=Oi>LD2hgMm)SUx(`{&0nLtmPDS&b0o}dMyXlc~p_MhBnU1*(f*r<6>`xP^+HwYeIn!(-ahui1eNS*T! zx39X$H)*amzD$ZUUelC?)r`t@Y%KP`J` z^mAN6;%7H--FvwGhf}!jKivLZAJ>D2+rKrH>(RsQTg$nAc)0zsY1V)0>Ik2gpFf`l z;QG92W3J;mZ`$Zy6V!Pk?(|Ym6V{)l|%zCS_`>r%t=^#yQ6C zc{7w^ORXAnR{7-{YuH`&;ddBU=agSQHNSkiLhidrzn!7^$&iO8Rx>zyI#L?!M=NyQMDWMNQ2B76NwzTL3{+IwKT`#p1wE zCHk^*>YN!jmd~EIaBB6u_9v^Y1ruv-o_+K5irE#@Z=Nx)W~w|jWvpP+@D9f54}yMN z$JCORS`yv4@16GJ)mC>}ni@PYvwhcG>!1bl$mhcH$b=c9V{QM%Tx&5~tj2l; z{l<5#{vm%BT;gr5BrSC{sd!tf&2;&Ul}7oEq}P7{u^sXB7Sdx*D8F@%$1p6AQ64w` z?d0BffaiecfxWQ_`Rp+S&Q_!=)mtYlrkAUvw<&LnA2a9caLUO_mcM@zzH74b+38-<0biX1}fh! zVD5S4e+f7btmgS&lJ{%i&nee}K}3$`4^qD8fV2YTTOU*Y+ZeV>f!ld#-ZbwRA zD_@u8ynD^O8(TKaJ9g#7E?EYcH)SRi) zaGjL8@!q)`Zxg5dguSG z>|3CtIIgs7rp4&VNN9MBW?Il_1PDD~^gu=ukI_g-Xc}xG$rvL!86geK7(FI>fWX8( zyt3F}|JaxnAZ&=^^Pgnb*=QX*IUD0$VeDjc@|v-n4F=n32`gkBZj9*E+e7+tHr?{ws)%m(QrTy(be;2RD zw)pn>x+>#`Zfoy8Uwxn>LM`L+Z)6sYu8mYut>}16i zmCm)5B{Yn~je~+6Kelgg?+f$}_Dci4{s9`rX7m76qU`YDLF^Ww);?hoUT1+_$qjjS1@`y{D%tR3 z`-K&F3dH0jfebI&CpaL1e$XcM_jdaR{CrkFAoFIVMtzR+`$6r35(y*e3+(fCqHlgZ z5a{;x4ss1g)B6HYLejdTPB)Rq_Pp<5&E4%?T~ZxnNH$||SC>z_a4Wq~f32LkS82DX zQUf^e!~BV>hejZGzlI&XPes7*1KTa2gF0^L=DB`97u&2+TQ>M$8;Y&h<2?Shw; z#Fv#Y;*Tn5c-qC5-aSNLi&ogBU6Ccl=<1#87r<)h>Kg11^zvBsf#5)(qrFQC#FbSK z4)jX9W=5I~|8YoIg5MQMw^#cEoj%+fkoL8A!6c!z;rs(a4o$k|-oYLkMQ-%E(L)Dg zWNiqi{eZC0j0_i)HV1~kx?gbCvaa@BzAgkRTLS$9fdOAPve7&kkLF9`@-!)D@Yk$a zGkoTNuwoko66g<-kp|B*^OCePdRf!e%O?g3B+|0go$UieT~m#;*LR?wwfFZ2_Vh?I zm%~K|h3tBIWNN4_lsf!)kbw1VXp&$o`nd46PzDMh!N7F4_jHmtAassb>)RLT@Ja2R zoqfLkel{Eijd+IR1K-}y)!W@iGpUDevuaf3cC%M<6j#LZWfg4rr;iC)j#@Y7IRsMQ z2Pp^kNG*-`m0;4ddS8#PFVG>iY-hvAALA~ysivGR!B@FdyS$%gkjco$K+*4)RMwiY!umKD<|F}Z!9 z&j*|KU|nsQ6SOpU_@`T6<(4e5%XFwV7?y2AU?Qc zU(ZH*7ZxRM7nER^531XP0XQVA8D4%!kcPj1NXQ*N@nvBj+W7R#!g4%#4d*;Ao1zz13AWY@uGOyShN<3?*#% zLq#b60?Ijwv2s?ebF!Ld97vNlJtuRRw-3e*CR_?YsdKjYb`Ru8FaUkN zfkCe3!}o`TMRVbSdwAg0Un#NS-jJ|(A*$w(TmB6C^C1C`2AT#9_&VWsq5)gYU|%2l z>^gvu|xTrwVqJmQA$`m$y^{}vt!X$((5LRaZj*MIVI*PvfDpPhMSc66l?Clc5WSf%-udnrV}*lQOQ6%_wU6eG_e>f;S&t6M%HTA73Er5P+X?n zDX!2kOV(-_rE9hF<_Ye9BrG{_!4d_+^v3rB?2 zIMHBNU;vQ;B2KBgXTL8%bIR9);B8aSz-~Twq~-w39@LZ!1Z=ys5B`&E0+%T;$#V_* zI`*OoLhXdTM8LfY1ZE#40-+6$`UVaTAj~^Bs0Vtu%UYm1n47%P!9n=*0jV?KgKs&C zmv^ZB!ck!%rQbd(l;i-PCUkR6byG`Gb!U4JAr{Q+ey%7Ol~rumcuern)GFoS@pfO| zo-VF=QcY70P>0)(3Hda>57yMx7ehhGIzb}_w(H~EJOIt@cOM`h(!8mLj}uaE-H;MG zm6IW(v`kO=i#%NO7kNnO{T|y|SC3$gJWVm6gl*AG4O5zZd%05S!FqSV*GDc3fj%i2 zV$vwt=!D}+F1pW&)>ES7A+k_?Qg>iLlXbi>dj@-?IDy6sdYd*pBxn3XXS)JDon%H2 z?hkNVsEsP_VXn=VHij(rgCSl~<6(~47`}X5n6K;_+yiqX?b{vf3qWxy5mIylDAZ+n zJ%e3cD>1K%9&D*AT8p&V)6h)Un;xw3G$Q4ftOmFZ%?}i&H)( zKdfM(nf$zUvHV=Ti9@-Zv%NJ+H@(bc{eiD~|>Z2IW%1>hXP=v3$h~vHTlx`K@iS@?|Zt{5M~Z<1^<#DGyx8=I^jFC|Rq94lw1Qu3)zU}5 zI18cfFZ%U2^z?UH#k!;<4R5YqKcrtTPSwii>FEdh{X=^CXFa`x)Ou&Q?>j<{`TAVE zg$Gc2eeUp!-w`~@36pkc&08&4`@w!bHCBt$lxTGemNL-NOj_jvOOx_4j*;dkvSNYC zG{cz%xX;*|*no;n@MXA%bt9)K#WH@u`OfVVgfG2=qXUns*PNFpB(#%&cCp5M>Q`94 zoq+lu;qAL^2P*CO2*?>&crteRRtq&U_9iO7z#B7WL~dgp#w2YnDdQbI4cu$^Fb1~S zViM+|qgxv@`B?_HHX5fyj-%e9&j_)xw*gO2VF~`!52@4nIA+QjK|RZ@x53mENr_DS z0UL*NXbbjbfOmZA*WV_}v4#&TR(^jP2cb4%jfRS4R?ZKn==g^Os)#yf=Qxf9v7n>N zmRF>)c^T4&H~{&>saLSP-{Jyp*-_O|a!S3Efm1+nwsB!Dq=5AsiPBG|97EbURz}!+ z9D29yRzAdthCg;8kA>+eA*9PtwghE~&JU&%r4Oc#LX06SD4EU>CJjz?9@5MNHlG%i zV5j8GsXT1S7M31Sf9HH>0>=3kaQ+cEuY{!PNsHc2g7g#))vTf2k{@S+U}YXCPR#f~ zqt>`>f)KDm?waCM$Bj5gm=F!gB9`hsm5EbW7r^0B@c1#frm{&vdi(Y$w(?Lu5li+3 z*UxX8o$nk6oW;JtqZ!U?XJE*0jfTQF0qo7GSAt^`@K83A=1?XKBYkVcEJdc^s8gEO z&~g~dtx7A8=m*o5=*FR%4;EO*WPKmfq$KGPCJ>|?q8us$hlKat&u?V8h8>z%G zG}W@^&4~pN5gMCH$IhjXiZ4wak+5)GdUj%zjskHutE1krYIp??h?q!Nhf~-v#&jCz zvx1<~=`A&7PpGd-VU@;Tz&VIU9FpQVhn14pe`FXvIr%8ISJ_&wV#;9yS~8I6Ak-S9 z5_ZK+(-uk)(qgzY)q-8kjVQ}<9yKx?3(A~V=g@g1NAoUE15Gt-=1>F$^8;`KP5{;Zjqo?@-v~eJWx#1v9-+-CGK+tCArQ_HkeRg`aFO>exiR>5xz z_u(b<8Y~9tFoYz4>mp;1LRK#1*_cuNDUg2*7z2TKu(s?L_wh%ie6{k_9!d$&`&K=f)@~yb> z+~uL;?_>8Oai({iFvA%Ly$2tJ8p>dz37^`AG@|&WF?=N|zWgJw{n$FGQ%ViCfyx9B zA%IA_CbP>j;Fk3=BHTq~{Mw*?ZK=ks^KJ%!H@)5_RbQ_^eB)TE$IO8ZMh+Heo1GesiKo}>?5?dSYoA@-lHr2v$uT3@T z=|-AGFyS-%zzk%32PzA| z$BI;JM7VsIIo~?YGJbkILpMHcy6K(%<-gGH?27v7FFxL=9RHK>=`RpguwQTd6!K)@ z=|pyC+Mqy2SY`n(T-G!gsCj@SKnB2thBA@TLginBcz!GtOe$GYiXlLBiqUJCgiE)* zN@rC;g5SY`S>%cx0E#DHb!NUbfj*v0(%1jbLCiPoy^5dOk1-M$tUNhkG(|p(2UQt0 zli(NI7D98#FehLg6>U4Db8Kw9-s$#YT(;cNQOK_*WbBlc_Pc*3yc`QSY79lHhC{$_-)-1N0 ztmf&w-$%CLOWiZgbfTGCv1X#Jn9j46`Qc4l^2AitG?Haa9m;95xTv*IY4VV5Xr3!8 z+Tw2`!fIuHWPKDlWysNXrpD1?%nFqx4_Ssz)>z_@lhuUP4_+_vyv{~;T&l|xJ!+v? zspg6KTMD&7CI{lm1Yj%Yw$HG(H8zAQm*DSEZ!_X;(lbwmS&eD z7_jCk)=+WCnL1<~qJq8PHQPL0^qa_1by357PwFEXj~uO;zq#Ei1Yab~lFXshp))l? zumhN)dAjg7ku)_$PHnKYU9+YHL#6hi)M$sli?ERdkD*Y^hE~7c^&M z^M4{zA*RYn#mOeopKKP+X&t2BO@JCEjFOgXI?fmk9SzqBXt-3*7!BJZvxFhb#*igr zhzzAiMlIe%M~bM}T!|MkJ_%=B%yg{U zLcq=7eK826RE&!E-y_L#r6~Fh=h#Sl9lK+`D}Xd(9BH3Jm|{9Qy3pJR+LA7kLeW&r zHPJN81(n9rhG*Dwm}09~SJoof|Yb${Loq6d_F03-eN?bV<-D8_(JOhVuwJ?zG)4wL{rn5Y0JisYuGW z*u0{F6=|B0%A0XCu+?+IDWbs<)ePQ_gX@E67I}NcBDGg`H>vQ(bym1Eya26`9%L$9 z5wxZ<&=j=5VYg4`*s5ofRV=3Pu}?PJ{l;_Dm?mD~bHsZJV{gSfxhJe4*ndNX5Hzec zRQ|7bf?OAtZC)lD{i1)Ijaah`N~_gSGQy^;bZPY33?tSNc6jt7D|4_jY`OTr<*aXH zRryUh>`wVzOdI$!Q+Z;+?;oZDRPY`JKgg z&pJlf$2%q)|5i_jDcw2QbWXpXBO8=aQPifQ6jN#?T$i?M9Tf0JZ=~V)vokS})ZHG3KGy@Y&37ZRKA;ufpf$QwrF7 zr_?I{1=b*sTkZZ!b(<-U3La7GJqCxxtJG2wtd9F2{09C(_&#-mhv818d?T<9ACq4j zhp~oZw5w}420k_aXc;h^aTrA$qfss57%SzSUFZdd8=kcwA-qi9`REGN5LAbP%FB>l zDz|p+Oj?3()GwAt{5!>L`GQxJFZk`UJ#fLD9Lb7nd?9Z#hD0kUf|+v)WwPQJ`m?=^?r{9UCLaVo8ySx#0d+jHM|XDfe@+jd=Z#N zwVG-u-i@5%s<*v7*}^CuiK!KI&+7M4wrL$ zqngX>FXi%G0{Je6e3fin!1lOCth|vG>O!rI3)sTTvQ>*FU@lrSM4Q3+PLp>AQsog0 zRoZwm7cz;ux!nX_&*-AQSJK|M1tlu#)2|`G`c_QThJuuEmETyf0e@Km3!hc*=X^Y) zZs9_fF(s{HinBo${hKk(HpwGh2|2CS5rpG5(G4!gt$8{2EEu#QdoszQmAz@L%C>o{ zvh9Atp;R#-w6Yt=tu}Ej)UYg03dNk`ovM>_?9{tkh3<;bUH+`@me1L9 zy=9}fEO|tMt}nt^ER@gr$ym&fHhXjEoZB*5;#ys!Yqgt;dY|gzyswLs zN(FB`pjPlfD37~S%I~zP#ZX&B6b6fn6$miFG(U`L5m&x^Qd*V=rCp)bTtp8+=3HKN zBQ#XgT2?Up4?o4Kx472lbCe}&rdGyvGM$$#P}4b;v!{E<=T7%~b#PRl?b=K~<;lR@ zJjwg0@+wvSWQZnlg6!wt=%V=wXXsP)7#Bdu<3)vdLJx7G{zE;)i5l`qxW7M+kpX`H z1GNusAqi?iLi&`~dKc>SCne_VARul~=fFDfb_vP-Y-<<;Bdn^3A& z`G)slUV8_w6AF?e+v8ek=BA-qLy*6fXkH(SR!*%a4^n^!oX zy7USzj%QRiaB?a+enlL9IpGhV4GX#P^3p6;ebiz>9xnG5w(u%iCezVRgG!knn3}^dXDiWIARe^tmFFj ze{#b#?db3nRIli-dy22n5}AqecSS z5-yeOIAUy^m;%+Rm2r((z{{4Z_(}{Sg$10<4DK1y;Tg=xr59wrm&V&7IXA-*lOan` z!ilI#mP}AJKRjF9Bx>vTKkJ5@qvAF}+~>KtAJE0E`G)_Y`v%exdhf`fC-+YvU7Tw0pGI2T7gVJW;0$jqoSffIxAr@0On~$-`X*H@gy7KBy zm^U)p38%+7Vd5?oPB=w(!lck=W)#}f^BE_sXz>n-xg}1_jmT?uuqi5P((J$GqP|}j z^;WLgr&O8C#p5YO*LCvFy_=vnwY=LIF~_7l2q{yXse6(ZjLbSu2o;TLrDrbE&vPWD zyo1%BiGo&nmh*aryj~t@cG7Zmy=?gQyI7@}%_%_W*kwndEp9v)abf2|TQLIq0A%tq z8@vi>Flp>gaV~T>oi~oqF_6p!nmm4Q=yPp@KemiQxr#TJ||69^EqiNxKq8!G=H(&vqC1><$B&gU5U@`#b7sE9{%gkg?S}$ z&HTRv%V=b{`roj6h|4ZMJieF5D{=aQb(BnFb3v3%a%WY31ETya?UikCfokR~%=XWR zKF2>RpEbKPk&D*JmS`swusq3?a2Y$UTg5B#C?+W`ikUUTb9ooJ9CHabw+OVoc%bo%daV85X{GXi zS4*P%|5q*V#toS!$vsg?k|n*$CD|d5EBpa*7Z>Gs)h~E9V4m2-FT&D2!lm+XoL+6` z>iLqoopakfOI``#2k?Zq4fO;>6Shb1N6y11Y6FyXGnYvnWU@&<@2~Z&}Ogmf&1&Q(&6g zQxJG0>v6}7J(&ZXnMcu+ElMopAk9DagO~?Agy;OzuRVb$q$)A3)ap$YE5#)I=um~% zw}%^SVybBQk>yRhA1+LEl#mMZ7n*pbkr*aSDxo_>(mvV#q)pUf&)s2a&+aGJR;74D zj+=AV`p>zSgeh0yKkpW<=R!2{NmtvjKIdeM zap?i?0hQ$(^unEU?ukrt``QGHwvrL>^x1>15+IhT<(jcf<+ahkp)d z`5-7iO3*S+#>1im9*|v2=nUx&1+4VUclx#C(3vs$ z##3XMNA?7J8U_h}U-yh3{~lM`DsQDfGoQWp&}5YY_w-%epne;HBhCI-K+?ClCf}a? z2c+Z2zbUsq$qL-zzn4dlZU}!vcIAw;v4RER|H*|t^X!)xc~NeCiWMY>FUuoH=Y(It zeRMvb6*z9Zz~{{cv}F^|qmN+_L-vpJ_#B@?-yPUPhHq>W^tWKGYu53MaS8H&3#H6)>yzQxIObk@F~{)F#SkIQn1_ zeXhuytmm?GqXxYVv3c+HhHSD5ohCtc6)?_L(V&3l$fx&)VxLSD%WYjwjzoO@%cn8E z@?n-&a`m)|D>!Fa;xc&4@wOjX&$*Lt@_1JtR?ViqJ)u8Wa27S2`uc=bF3C|yjaX#A zxZ|DpAH zPl+yvgqs)8QU#h>1yZ*pX4$)f%`V` z3GnxoI5LlNGHnw_xC|83wTU6%d^ry1Aje6X7}5!W7l2O93lH*k`*3Ab#C}u?##QR( zm42(LryPJ1jvrEF(pbE(HG@p_Uuuo&NP`cAX5r zf?=wZ?Jz^>;kBHg)NnZ`C=u^fH3Mc;!Unhym{l0pgMJHs&$pXj_ZH4rH6DDYg!4Qu z%;FV#++rLzIQ~p^a{lD~lV0b0eoGD2C7V|zW|oSc%%^Oj1o(u^(k#zAr);4`dYd=7 zj546;H=e2zmCRE6i8Jox_XyE;!Yto>YTRZM@dJWat86=wihL3$AWfIishS#JvTlZRl8(!v58X zBf@a>cnCmS@0S^W$61=6ukC76*tHb+92|m){6Ql%x&_Hqh1sQ^bG7Zv@63o{@ zL`smWLm^UvG9A_-C8*V53sQm>9omo*bn4KBlmOe)0a#UX2pNK7I-EjE@SF}8krKS5 z!^=nsUe)0WQi8X1_%Tv~cXfClDZxiNe1eqV4+IMS{6&WZEcqlz(_ubR0#S!tqy&XJ zU?ZT5V4V)NNC~#+(1MhpO@~gT1YJ4|AU(wYPzG>Jhf_!ip3~tXQi7Lsco`|dt2$gk aO7NBrKSoOMt`6@bCHP1OI?RQRL-^kh& diff --git a/boop/cc1100/cc1100.c b/boop/cc1100/cc1100.c index 4495d30..4874ca2 100644 --- a/boop/cc1100/cc1100.c +++ b/boop/cc1100/cc1100.c @@ -176,6 +176,8 @@ unsigned char cc1100_write(unsigned char addr,unsigned char* data, unsigned char unsigned short i; unsigned char status; unsigned char x; + + (void)(x); FIOCLR0 = CS1; while (FIOPIN0 & MISO1); @@ -197,8 +199,10 @@ unsigned char cc1100_write(unsigned char addr,unsigned char* data, unsigned char unsigned char cc1100_write1(unsigned char addr,unsigned char data) { unsigned char status; - unsigned char x; + volatile unsigned char x=0; + (void)(x); + FIOCLR0 = CS1; while (FIOPIN0 & MISO1); SSPDR = (addr | WRITE); diff --git a/boop/cc1100/fs20.c b/boop/cc1100/fs20.c index f029998..2f4de50 100644 --- a/boop/cc1100/fs20.c +++ b/boop/cc1100/fs20.c @@ -51,7 +51,7 @@ void fs20_decoder(void) { unsigned char FS20inbit = 0; unsigned char FS20protocol = PROTOCOL_UNKNOWN; unsigned short tempbyte = 0; - unsigned char finish = 0; +// unsigned char finish = 0; unsigned long pulse = 0; unsigned long space = 0; @@ -77,7 +77,7 @@ void fs20_decoder(void) { cc1100_strobe(SRX); serial_puts("\n\r"); - + while(KEY_Exit) {}; while(!KEY_Exit) { @@ -188,7 +188,7 @@ void fs20_decoder(void) { } if(FS20protocol == PROTOCOL_WEATHER) { - if(FS20_BETWEEN(pulse, 685, 1020) && FS20_BETWEEN(space, 200, 533)) + if(FS20_BETWEEN(pulse, 685, 1020) && FS20_BETWEEN(space, 200, 533)) FS20inbit = 0; else if(FS20_BETWEEN(pulse, 200, 533) && FS20_BETWEEN(space, 685, 1020)) FS20inbit = (1<<3); @@ -215,7 +215,9 @@ void fs20_decoder(void) { FS20bitcounter = 0; } else { - tempbyte = (tempbyte>>=1) | FS20inbit; + //tempbyte = (tempbyte>>=1) | FS20inbit; + tempbyte>>=1; + tempbyte |= FS20inbit; if(FS20bitcounter++ == 8) { FS20inbyte[FS20bytecounter] = tempbyte; tempbyte = 0; @@ -263,9 +265,7 @@ void fs20_decoder(void) { FS20bytecounter++; FS20parity = 0; if(FS20bytecounter == 0x0a) { //packet full received - unsigned char dec[8]; - dec[0] = FS20inbyte[1] ^ 0x89; for(x=9;x>1;x--) { FS20inbyte[x] = (FS20inbyte[x-1] + 0x24) ^ FS20inbyte[x]; } @@ -329,7 +329,7 @@ void fs20_decoder(void) { } serial_puts("\n\r"); - finish = 0; + //finish = 0; FS20bytecounter = 0; FS20protocol = PROTOCOL_UNKNOWN; } diff --git a/boop/display/lcd.c b/boop/display/lcd.c index 0b1a02c..c186d44 100644 --- a/boop/display/lcd.c +++ b/boop/display/lcd.c @@ -372,8 +372,9 @@ void __attribute__ ((section (".text.fastcode"))) _do_rcuAlpha ( void __attribute__ ((section (".text.fastcode"))) _do_rcuS ( unsigned char x, unsigned char y, unsigned char m) { - unsigned char q; + volatile unsigned char q=0; + (void)(q); if((x > BORDER_RIGHT))// | (x < BORDER_LEFT)) return; @@ -429,7 +430,7 @@ void __attribute__ ((section (".text.fastcode"))) _do_rcuS ( void __attribute__ ((section(".text.fastcode"))) _draw_block(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m) { unsigned char q,s; - unsigned char yy,ss,vv,ww,xx; + unsigned char yy,vv,ww,xx; unsigned char segm; is_drawing++; @@ -441,7 +442,6 @@ void __attribute__ ((section(".text.fastcode"))) _draw_block(unsigned char x, un if(h) { yy = h; - ss = y >> 3; vv = y & 0x07; ww = yy & 0x07; @@ -555,7 +555,7 @@ void __attribute__ ((section(".text.fastcode"))) _draw_hline(unsigned char x, un void __attribute__ ((section(".text.fastcode"))) _draw_vline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m) { unsigned char s; - unsigned char yy,ss,vv,ww,xx; + unsigned char yy,vv,ww,xx; unsigned char segm; is_drawing++; @@ -567,7 +567,6 @@ void __attribute__ ((section(".text.fastcode"))) _draw_vline(unsigned char x, un yy = l; - ss = y >> 3; vv = y & 0x07; ww = yy & 0x07; diff --git a/boop/flash/bfs.c b/boop/flash/bfs.c index 92e75fd..8a9e5c7 100644 --- a/boop/flash/bfs.c +++ b/boop/flash/bfs.c @@ -672,13 +672,13 @@ unsigned char readByte(unsigned long ByteAddr) unsigned short readWord(unsigned long WordAddr) { //addr = unsigned short address - int Offset; + //int Offset; unsigned short Word; //ASSERT((WordAddr * 2) >= FLASH1_BASE); //ASSERT((WordAddr * 2) < (FLASH1_BASE + FLASH_SIZE)); - Offset = (WordAddr * 2) - FLASH1_BASE; + //Offset = (WordAddr * 2) - FLASH1_BASE; Word = *((unsigned short *)(WordAddr<<1)); diff --git a/boop/gui/testmenu.c b/boop/gui/testmenu.c index 792d712..e5af164 100644 --- a/boop/gui/testmenu.c +++ b/boop/gui/testmenu.c @@ -907,10 +907,8 @@ void test_irrec(void) { } void erase_flash1(void) -{ int x; - - x = eraseFlash(1); - +{ + eraseFlash(1); } void test_sid(void) { @@ -1062,8 +1060,7 @@ void test_sid(void) { } void test_click(FORM* form, CONTROL* control) { - unsigned char x; - x=msgbox(45,BC_OKOnly | BC_DefaultButton1,control->caption); + msgbox(45,BC_OKOnly | BC_DefaultButton1,control->caption); form_draw(form); } @@ -1076,8 +1073,7 @@ void test3_click(FORM* form, CONTROL* control) { } void test_numbox(FORM* form, CONTROL* control) { - unsigned char x; - x=msgbox(30,BC_OKOnly | BC_DefaultButton1,"numbox click"); + msgbox(30,BC_OKOnly | BC_DefaultButton1,"numbox click"); form_draw(form); } @@ -1091,14 +1087,12 @@ void test_numchange(FORM* form, CONTROL* control) { } void test_change(FORM* form, CONTROL* control) { - unsigned short x; - x=msgbox(30,BC_OKOnly | BC_DefaultButton1,"geaendert"); + msgbox(30,BC_OKOnly | BC_DefaultButton1,"geaendert"); form_draw(form); } void formload (FORM* form) { - unsigned char x; struct RFendpoint_* cur_ep; cur_ep = openEP(&(form->controls[7])->tag1, 1, packet_RFenc); @@ -1110,12 +1104,11 @@ void formload (FORM* form) RF_changestate(RFrx); } - x=msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form open"); + msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form open"); } void formclose (FORM* form) { - unsigned char x; if (form->tag) { @@ -1123,7 +1116,7 @@ void formclose (FORM* form) RF_changestate(RFwor); } - x=msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form close"); + msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form close"); } diff --git a/boop/rtc/rtc.c b/boop/rtc/rtc.c index d176f96..271e201 100644 --- a/boop/rtc/rtc.c +++ b/boop/rtc/rtc.c @@ -160,7 +160,7 @@ void printTime (unsigned char x, unsigned char y, struct time_* t, unsigned char void printDate (unsigned char x, unsigned char y, struct date_* d, unsigned char format) { unsigned char f; - char s[16]; + char s[17]; f=activefont; set_font(SMALLFONT); diff --git a/boop/serial/serial.c b/boop/serial/serial.c index de8dc65..e67e5ef 100644 --- a/boop/serial/serial.c +++ b/boop/serial/serial.c @@ -52,7 +52,9 @@ extern void uart0_irq(void); */ int serial_flush_input(void) { - volatile unsigned int tmp; + volatile unsigned int tmp=0; + + (void)(tmp); /* keep on reading as long as the receiver is not empty */ while(RX_DATA(U0LSR)) { From ad448f1769281c428a9293dbe476f0646e517057 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Tue, 4 Jul 2017 19:01:44 +0200 Subject: [PATCH 04/15] Change LIRC to hardware PWM --- boop/betty.cfg | 10 +++++----- boop/boop_rom.bin | Bin 256508 -> 256316 bytes boop/infrared/infrared.c | 35 +++++++++++++++++++++++++++++++++++ boop/infrared/infraredirq.c | 17 ++++++++++++++++- boop/infrared/ir_lirc.c | 8 ++++++++ boop/main.c | 2 ++ 6 files changed, 66 insertions(+), 6 deletions(-) diff --git a/boop/betty.cfg b/boop/betty.cfg index 77e37d7..4632c1e 100644 --- a/boop/betty.cfg +++ b/boop/betty.cfg @@ -58,9 +58,9 @@ proc betty_init { } { # PLLCFG: 0x42 = psel = 10 (4) = msel= 00010 (3) = 240 mhz Fcco*/ mww 0xe01fc084 0x42 # Activate PLL settings - #mww 0xe01fc08c 0xaa - #mww 0xe01fc08c 0x55 - #sleep 100 + mww 0xe01fc08c 0xaa + mww 0xe01fc08c 0x55 + sleep 100 # Memory Bank Configuration # BCFG0: 16bit, rble, 2wst - 30 mhz : Betty: FLASH 0 @ 0x80000000 @@ -96,8 +96,8 @@ proc betty_init { } { proc flash_boop {IMAGE} { reset init flash erase_sector 0 0 last - flash write_bank 0 $IMAGE 0 - reset run + flash write_bank 0 $IMAGE 0 + reset run } proc start_debug {} { diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 4e93cbe6f8c2bd8afabccf19e1b93bc17301cf6b..e8c33d8d29cef20b24b74e818d10bf7aeee1d86f 100644 GIT binary patch delta 18154 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 delta 17959 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 diff --git a/boop/infrared/infrared.c b/boop/infrared/infrared.c index e0ac240..fcde7b7 100644 --- a/boop/infrared/infrared.c +++ b/boop/infrared/infrared.c @@ -109,11 +109,46 @@ void defStopper(void) void runIR(void) { T1TCR = 0x01; + + /* + PWMTC = 0; + PWMPR = 7; + PWMMR0 = 0x1E6; // pwm rate + PWMMR2 = 0x00; // pwm value + PWMLER = 0x05; + PWMMCR = 0x03; + PWMPCR = (1<<10); + PWMTCR = 0x03; + PWMTCR = 0x09; + */ + + PINSEL1 &= ~(3 << (10)); // IO + PINSEL1 |= (1 << (10)); // PWM5 + + PWMTC = 0; //Timer Counter + PWMPR = 0; //Prescale Register + PWMPC = 0; //Prescale Counter + + PWMMR0 = 416; // pwm rate + PWMMR5 = 0; // pwm value + + PWMLER = 0x21; //Latch Enable + PWMMCR = 0x02; //Match Control + PWMPCR |= (1<<13); + PWMTCR = 0x03; + PWMTCR = 0x09; + + //FIOSET0 = (1<<21); + + } void stopIR(void) { T1TCR = 0x03; + PWMMR5 = 0; // pwm value + PWMLER = 0x21; //Latch Enable + } void copyMapC(unsigned char *map) diff --git a/boop/infrared/infraredirq.c b/boop/infrared/infraredirq.c index 5fa7314..ea9d228 100644 --- a/boop/infrared/infraredirq.c +++ b/boop/infrared/infraredirq.c @@ -36,6 +36,21 @@ extern ir_fn irEncoder; void __attribute__ ((section(".text.fastcode"))) irIRQ(void) { c_cnt++; + + irEncoder(); + + if(mod_enable) { + PWMMR5 = 200; // pwm value + PWMLER = 0x20; //Latch Enable + } else { + PWMMR5 = 0; // pwm value + PWMLER = 0x20; //Latch Enable + } + + + + + /* if(c_cnt <= hi_border) { FIOSET0 = (mod_enable<<21); @@ -61,7 +76,7 @@ void __attribute__ ((section(".text.fastcode"))) irIRQ(void) } } } - +*/ T1IR = 1; // VICVectAddr = 0; } diff --git a/boop/infrared/ir_lirc.c b/boop/infrared/ir_lirc.c index 7e34d60..35f36ad 100644 --- a/boop/infrared/ir_lirc.c +++ b/boop/infrared/ir_lirc.c @@ -32,6 +32,8 @@ extern volatile unsigned char mod_enable; extern volatile unsigned int cycles; extern volatile unsigned long keyMap[42]; +volatile unsigned long act_freq; + /* #define RAW_IDLE 0x00 #define RAW_HI 0x01 @@ -290,6 +292,10 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { ir.state = LIRC_HEAD_P; } } + + + T1MR0 = (15000000 / (act_freq)) * cycles; + } void LIRC_Init(unsigned char map) @@ -340,6 +346,8 @@ void LIRC_Init(unsigned char map) } } + act_freq = freq; + T1MR0 = 15000000 / (freq * lo_border); diff --git a/boop/main.c b/boop/main.c index 5f8fba8..df5e8e4 100644 --- a/boop/main.c +++ b/boop/main.c @@ -198,6 +198,8 @@ void cpu_idle () if(U0SCR) return; + return; + /* only idle mode instead of power down when: * * backlight on * * IR transmission From 436b89bb03f8fe64a73c168058360ccc208cb8ef Mon Sep 17 00:00:00 2001 From: Telekatz Date: Wed, 5 Jul 2017 22:03:32 +0200 Subject: [PATCH 05/15] Add gdbinit --- boop/betty.gdbinit | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 boop/betty.gdbinit diff --git a/boop/betty.gdbinit b/boop/betty.gdbinit new file mode 100644 index 0000000..606ca2c --- /dev/null +++ b/boop/betty.gdbinit @@ -0,0 +1,47 @@ +monitor reset 100 +monitor halt +monitor endian little + +# BCFG0: 16bit, rble, 6wst - 60 mhz : Betty: FLASH 0 @ 0x80000000 +monitor memU32 0xFFE00000 = 0x100004A0 + +#BCFG2: 16bit, rble, 6wst - 60 mhz : Betty: FLASH 1 @ 0x82000000 +monitor memU32 0xFFE00008 = 0x100004A0 + +#PINSEL0 +monitor memU32 0xE002C000 = 0x00008005 + +#PINSEL1 +monitor memU32 0xE002C004 = 0x00000000 + +#PINSEL2 +monitor memU32 0xE002C014 = 0x0de049d4 + +#IO2SET +monitor memU32 0xE0028024 = 0x1FC0000 + +#IO2DIR +monitor memU32 0xe0028028 = 0x1FC0000 + +#IO0DIR +monitor memU32 0xE0028008 = 0x002018D0 + +#PLLCON: Enable PLL, connect PLL +monitor memU32 0xe01fc080 = 0xe01fc000 + +# VBPDIV: +monitor memU32 0xe01fc100 = 0x00000000 + +#PLLCFG: +monitor memU32 0xe01fc084 = 0x00000045 + +#Activate PLL settings +monitor memU32 0xe01fc08c = 0xaa +monitor memU32 0xe01fc08c = 0x55 + + +# Enable Flash Breakpoints and Download +monitor WorkRAM = 0x40000000 - 0x2000FBFF +monitor flash CFI = 0x80000000 - 0x800FFFFF +monitor flash breakpoints = 1 +monitor flash download = 1 \ No newline at end of file From 6202a9f8efc103a172caf4d78e4c335716ad87a8 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Wed, 5 Jul 2017 22:48:01 +0200 Subject: [PATCH 06/15] Reorganize repository structure --- Asixtool/{trunk => }/Kopie von Makefile | 0 Asixtool/{trunk => }/LICENSE | 0 Asixtool/{trunk => }/Makefile | 0 Asixtool/{trunk => }/asix_serial.c | 0 Asixtool/{trunk => }/asix_serial.h | 0 Asixtool/{trunk => }/bootcom.c | 0 Asixtool/{trunk => }/bootcom.h | 0 Asixtool/{trunk => }/infohelper.c | 0 Asixtool/{trunk => }/infohelper.h | 0 Asixtool/{trunk => }/main.c | 0 betty_TAE/MSP430/{trunk => }/Makefile | 0 betty_TAE/MSP430/{trunk => }/cc1100.c | 0 betty_TAE/MSP430/{trunk => }/cc1100.h | 0 betty_TAE/MSP430/{trunk => }/hardware.c | 0 betty_TAE/MSP430/{trunk => }/hardware.h | 0 betty_TAE/MSP430/{trunk => }/main.c | 0 betty_TAE/MSP430/{trunk => }/rf.c | 0 betty_TAE/MSP430/{trunk => }/rf.h | 0 betty_scart/{trunk => }/LICENSE | 0 betty_scart/{trunk => }/Makefile | 0 .../{trunk => }/Makefile.local.WinSDCC | 0 .../{trunk => }/Makefile.local.linuxSDCC | 0 betty_scart/{trunk => }/ScartProg.exe | Bin betty_scart/{trunk => }/betty_scart.bin | Bin betty_scart/{trunk => }/boop_icp.py | 0 betty_scart/{trunk => }/cc1100.c | 0 betty_scart/{trunk => }/cc1100.h | 0 betty_scart/{trunk => }/cmd.c | 0 betty_scart/{trunk => }/cmd.h | 0 betty_scart/{trunk => }/main.c | 0 betty_scart/{trunk => }/readme.txt | 0 betty_scart/{trunk => }/rf.c | 0 betty_scart/{trunk => }/rf.h | 0 betty_scart/{trunk => }/serial.c | 0 betty_scart/{trunk => }/serial.h | 0 betty_scart/{trunk => }/timer.c | 0 betty_scart/{trunk => }/timer.h | 0 bmp2b/{trunk => }/Makefile | 0 bmp2b/{trunk => }/README1ST | 0 bmp2b/{trunk => }/betty.bmp | Bin bmp2b/{trunk => }/betty2.bmp | Bin bmp2b/{trunk => }/bmp.c | 0 bmp2b/{trunk => }/bmp.h | 0 bmp2b/{trunk => }/bmp2b.c | 0 bmp2b/{trunk => }/bmp2b.tar.bz2 | Bin .../telekatz_soundtest => }/Boop.pnproj | 0 .../telekatz_soundtest => }/CHANGELOG | 0 .../telekatz_soundtest => }/LICENSE | 0 .../telekatz_soundtest => }/Make.conf | 0 .../telekatz_soundtest => }/Makefile | 0 .../telekatz_soundtest => }/Makefile.local | 0 .../Makefile.local.Telekatz | 0 .../Makefile.local.WinARM | 0 .../Makefile.local.linuxARM | 0 .../telekatz_soundtest => }/README | 0 .../ram_version/telekatz_soundtest => }/b.h | 0 .../telekatz_soundtest => }/batt.c | 0 .../telekatz_soundtest => }/batt.h | 0 .../telekatz_soundtest => }/boop.pnps | 0 .../telekatz_soundtest => }/boop_flash.ppg | 0 boop/branches/ram_version/readme.txt | 1 - .../telekatz_soundtest => }/cc1100.c | 0 .../telekatz_soundtest => }/cc1100.h | 0 .../ram_version/telekatz_soundtest => }/crt.s | 0 .../telekatz_soundtest => }/externs.h | 0 .../telekatz_soundtest => }/flash.c | 0 .../telekatz_soundtest => }/flash.h | 0 .../fonts/charset.bits | 0 .../fonts/charset.info | 0 .../telekatz_soundtest => }/fonts/smooth.bits | 0 .../telekatz_soundtest => }/fonts/smooth.info | 0 .../telekatz_soundtest => }/fonty.c | 0 .../telekatz_soundtest => }/fonty.h | 0 .../telekatz_soundtest => }/global.c | 0 .../telekatz_soundtest => }/global.h | 0 .../telekatz_soundtest => }/infrared.c | 0 .../telekatz_soundtest => }/infrared.h | 0 .../telekatz_soundtest => }/ir_itt.c | 0 .../telekatz_soundtest => }/ir_itt.h | 0 .../telekatz_soundtest => }/ir_nrc17.c | 0 .../telekatz_soundtest => }/ir_nrc17.h | 0 .../telekatz_soundtest => }/ir_rc5.c | 0 .../telekatz_soundtest => }/ir_rc5.h | 0 .../telekatz_soundtest => }/ir_rca.c | 0 .../telekatz_soundtest => }/ir_rca.h | 0 .../telekatz_soundtest => }/ir_rcmm.c | 0 .../telekatz_soundtest => }/ir_rcmm.h | 0 .../telekatz_soundtest => }/ir_rec80.c | 0 .../telekatz_soundtest => }/ir_rec80.h | 0 .../telekatz_soundtest => }/ir_recs80.c | 0 .../telekatz_soundtest => }/ir_recs80.h | 0 .../telekatz_soundtest => }/ir_sirc.c | 0 .../telekatz_soundtest => }/ir_sirc.h | 0 .../telekatz_soundtest => }/ir_spaceenc.c | 0 .../telekatz_soundtest => }/ir_spaceenc.h | 0 .../ram_version/telekatz_soundtest => }/irq.c | 0 .../ram_version/telekatz_soundtest => }/irq.h | 0 .../telekatz_soundtest => }/itt_codes.h | 0 .../telekatz_soundtest => }/keyboard.c | 0 .../telekatz_soundtest => }/keyboard.h | 0 .../ram_version/telekatz_soundtest => }/lcd.c | 0 .../ram_version/telekatz_soundtest => }/lcd.h | 0 .../telekatz_soundtest => }/lpc2220.h | 0 .../telekatz_soundtest => }/lpc2220.ld | 0 .../telekatz_soundtest => }/lpc2220_rom.ld | 0 .../telekatz_soundtest => }/main.c | 0 .../telekatz_soundtest => }/serial.c | 0 .../telekatz_soundtest => }/serial.h | 0 .../telekatz_soundtest => }/sirc_codes.h | 0 .../telekatz_soundtest => }/sound3.h | 0 .../telekatz_soundtest => }/soundcore.c | 0 .../telekatz_soundtest => }/soundcore.h | 0 .../telekatz_soundtest => }/sounds.h | 0 .../telekatz_soundtest => }/spaceenc_codes.h | 0 boop/trunk/CHANGELOG | 2 - boop/trunk/LICENSE | 674 --- boop/trunk/Make.conf | 5 - boop/trunk/Makefile | 150 - boop/trunk/Makefile.local.Telekatz | 23 - boop/trunk/Makefile.local.WinARM | 21 - boop/trunk/Makefile.local.linuxARM | 19 - boop/trunk/README | 17 - boop/trunk/adc/Make.conf | 1 - boop/trunk/adc/adc.c | 164 - boop/trunk/adc/adc.h | 32 - boop/trunk/adc/adcirq.c | 38 - boop/trunk/adc/adcirq.h | 24 - boop/trunk/audio/Make.conf | 2 - boop/trunk/audio/sid.c | 165 - boop/trunk/audio/sid.h | 118 - boop/trunk/audio/sidfiles.h | 1004 ---- boop/trunk/audio/sound.c | 114 - boop/trunk/audio/sound.h | 38 - boop/trunk/audio/soundirq.c | 226 - boop/trunk/audio/soundirq.h | 24 - boop/trunk/audio/sounds.h | 4417 --------------- boop/trunk/betty.cfg | 110 - boop/trunk/boop_rom.bin | Bin 268208 -> 0 bytes boop/trunk/buffer.c | 153 - boop/trunk/buffer.h | 35 - boop/trunk/cc1100/Make.conf | 1 - boop/trunk/cc1100/cc1100.c | 329 -- boop/trunk/cc1100/cc1100.h | 131 - boop/trunk/cc1100/fs20.c | 343 -- boop/trunk/cc1100/fs20.h | 29 - boop/trunk/cc1100/rf.c | 502 -- boop/trunk/cc1100/rf.h | 110 - boop/trunk/cc1100/scan.c | 151 - boop/trunk/cc1100/scan.h | 39 - boop/trunk/crt.s | 268 - boop/trunk/display/GrayScaler.exe | Bin 380928 -> 0 bytes boop/trunk/display/Hourglas_2bpp.bmp | Bin 758 -> 0 bytes boop/trunk/display/Hourglas_t_3bpp_t.bmp | Bin 2198 -> 0 bytes boop/trunk/display/Make.conf | 1 - boop/trunk/display/backlight.c | 113 - boop/trunk/display/backlight.h | 29 - boop/trunk/display/boop_logo | 2592 --------- boop/trunk/display/drawDigit.c | 127 - boop/trunk/display/drawDigit.h | 68 - boop/trunk/display/drawIcon.c | 363 -- boop/trunk/display/fonts/smooth.bits | 279 - boop/trunk/display/fonts/smooth.info | 17 - boop/trunk/display/fonty.c | 636 --- boop/trunk/display/fonty.h | 49 - boop/trunk/display/icon.h | 113 - boop/trunk/display/iconHourglas.h | 173 - boop/trunk/display/iconHourglas2.h | 173 - boop/trunk/display/iconHourglas2_t.h | 178 - boop/trunk/display/iconHourglas_t.h | 178 - boop/trunk/display/lcd.c | 1242 ----- boop/trunk/display/lcd.h | 153 - boop/trunk/flash/Make.conf | 1 - boop/trunk/flash/bfs.c | 730 --- boop/trunk/flash/bfs.h | 86 - boop/trunk/flash/flash.c | 195 - boop/trunk/flash/flash.h | 36 - boop/trunk/games/Make.conf | 1 - boop/trunk/games/c4_map.h | 64 - boop/trunk/games/connect4.c | 965 ---- boop/trunk/games/connect4.h | 39 - boop/trunk/games/gamesmenu.c | 35 - boop/trunk/games/gamesmenu.h | 24 - boop/trunk/games/sokoban.c | 614 -- boop/trunk/games/sokoban.h | 64 - boop/trunk/games/sokoban_levels.h | 4968 ----------------- boop/trunk/games/tic_tac_toe.c | 375 -- boop/trunk/games/tic_tac_toe.h | 29 - boop/trunk/global.c | 131 - boop/trunk/global.h | 94 - boop/trunk/gui/Cross_2bpp.bmp | Bin 2406 -> 0 bytes boop/trunk/gui/Cross_t_3bpp_t.bmp | Bin 2406 -> 0 bytes boop/trunk/gui/FF_2bpp.bmp | Bin 574 -> 0 bytes boop/trunk/gui/FR_2bpp.bmp | Bin 574 -> 0 bytes boop/trunk/gui/Leo_Gray_128_2bpp.bmp | Bin 25014 -> 0 bytes boop/trunk/gui/Make.conf | 1 - boop/trunk/gui/Pause_2bpp.bmp | Bin 574 -> 0 bytes boop/trunk/gui/Play_2bpp.bmp | Bin 574 -> 0 bytes boop/trunk/gui/Stop_2bpp.bmp | Bin 574 -> 0 bytes boop/trunk/gui/controls.c | 1017 ---- boop/trunk/gui/controls.h | 194 - boop/trunk/gui/iconCross.h | 144 - boop/trunk/gui/iconCross_t.h | 148 - boop/trunk/gui/iconFf.h | 56 - boop/trunk/gui/iconFr.h | 56 - boop/trunk/gui/iconHourglas.h | 173 - boop/trunk/gui/iconHourglas_t.h | 178 - boop/trunk/gui/iconLeo_gray_128.h | 1189 ---- boop/trunk/gui/iconPause.h | 56 - boop/trunk/gui/iconPlay.h | 56 - boop/trunk/gui/iconStop.h | 56 - boop/trunk/gui/mainmenu.c | 124 - boop/trunk/gui/mainmenu.h | 24 - boop/trunk/gui/menu.c | 250 - boop/trunk/gui/menu.h | 50 - boop/trunk/gui/settingsmenu.c | 196 - boop/trunk/gui/settingsmenu.h | 38 - boop/trunk/gui/testmenu.c | 1247 ----- boop/trunk/gui/testmenu.h | 26 - boop/trunk/infrared/Make.conf | 5 - boop/trunk/infrared/codes.c | 264 - boop/trunk/infrared/codes.h | 111 - boop/trunk/infrared/encoders.c | 52 - boop/trunk/infrared/encoders.h | 65 - boop/trunk/infrared/infrared.c | 177 - boop/trunk/infrared/infrared.h | 123 - boop/trunk/infrared/infrared_encoders.h | 34 - boop/trunk/infrared/infraredirq.c | 67 - boop/trunk/infrared/infraredirq.h | 25 - boop/trunk/infrared/ir_capture.c | 710 --- boop/trunk/infrared/ir_capture.h | 62 - boop/trunk/infrared/ir_codes/itt/seleco_019 | 62 - boop/trunk/infrared/ir_codes/itt/seleco_049 | 62 - boop/trunk/infrared/ir_codes/itt/seleco_108 | 62 - boop/trunk/infrared/ir_codes/itt/seleco_131 | 62 - .../infrared/ir_codes/lirc/apple_remote1 | 1 - boop/trunk/infrared/ir_codes/lirc/fs20 | 1 - boop/trunk/infrared/ir_codes/lirc/hx2262 | 1 - .../trunk/infrared/ir_codes/lirc/olympus_rm-1 | 1 - boop/trunk/infrared/ir_codes/lirc/rev008340 | 1 - .../infrared/ir_codes/lirc/samsung_ue46b6000 | 1 - boop/trunk/infrared/ir_codes/lirc/str_de545 | 1 - boop/trunk/infrared/ir_codes/lirc/ufs910 | 1 - boop/trunk/infrared/ir_codes/lirc/ufs922 | 1 - boop/trunk/infrared/ir_codes/nrc17/dbox2 | 64 - .../infrared/ir_codes/nrc17/grundig_tp720 | 64 - boop/trunk/infrared/ir_codes/rc5/HARMONY_655 | 62 - .../rc5/technisat_satreceiver_103TS103 | 1 - boop/trunk/infrared/ir_codes/rc5/tv | 1 - boop/trunk/infrared/ir_codes/rc6/dvd | 1 - boop/trunk/infrared/ir_codes/rc6/tv | 1 - boop/trunk/infrared/ir_codes/rc6/ufs922 | 1 - boop/trunk/infrared/ir_codes/rca/xbox | 62 - boop/trunk/infrared/ir_codes/rcmm/galaxis | 62 - boop/trunk/infrared/ir_codes/rcmm/ufs910 | 1 - .../trunk/infrared/ir_codes/rec80/rak_sc957wk | 62 - .../trunk/infrared/ir_codes/recs80/seleco_020 | 62 - .../trunk/infrared/ir_codes/recs80/seleco_157 | 62 - boop/trunk/infrared/ir_codes/rf/cc1100_a0 | 62 - boop/trunk/infrared/ir_codes/rf/cc1100_a1 | 62 - boop/trunk/infrared/ir_codes/sirc/UFD400 | 62 - boop/trunk/infrared/ir_codes/sirc/rm-pp411 | 64 - boop/trunk/infrared/ir_codes/sirc/tv | 64 - .../infrared/ir_codes/spaceenc/schneider_dtv3 | 62 - .../ir_codes/spaceenc/schneider_dtv3_xtra | 55 - .../infrared/ir_codes/spaceenc/seleco_027 | 62 - boop/trunk/infrared/ir_itt.c | 213 - boop/trunk/infrared/ir_itt.h | 29 - boop/trunk/infrared/ir_lirc.c | 451 -- boop/trunk/infrared/ir_lirc.h | 63 - boop/trunk/infrared/ir_nrc17.c | 211 - boop/trunk/infrared/ir_nrc17.h | 29 - boop/trunk/infrared/ir_raw.c | 164 - boop/trunk/infrared/ir_raw.h | 29 - boop/trunk/infrared/ir_rc5.c | 160 - boop/trunk/infrared/ir_rc5.h | 29 - boop/trunk/infrared/ir_rc6.c | 224 - boop/trunk/infrared/ir_rc6.h | 29 - boop/trunk/infrared/ir_rca.c | 189 - boop/trunk/infrared/ir_rca.h | 29 - boop/trunk/infrared/ir_rcmm.c | 197 - boop/trunk/infrared/ir_rcmm.h | 29 - boop/trunk/infrared/ir_rec80.c | 186 - boop/trunk/infrared/ir_rec80.h | 29 - boop/trunk/infrared/ir_recs80.c | 144 - boop/trunk/infrared/ir_recs80.h | 29 - boop/trunk/infrared/ir_rf.c | 127 - boop/trunk/infrared/ir_rf.h | 29 - boop/trunk/infrared/ir_selector.c | 311 -- boop/trunk/infrared/ir_selector.h | 41 - boop/trunk/infrared/ir_sirc.c | 161 - boop/trunk/infrared/ir_sirc.h | 29 - boop/trunk/infrared/ir_spaceenc.c | 254 - boop/trunk/infrared/ir_spaceenc.h | 32 - boop/trunk/interrupt/Make.conf | 1 - boop/trunk/interrupt/irq.c | 93 - boop/trunk/interrupt/irq.h | 71 - boop/trunk/keyboard/Make.conf | 2 - boop/trunk/keyboard/keyboard.c | 150 - boop/trunk/keyboard/keyboard.h | 197 - boop/trunk/keyboard/keyirq.c | 195 - boop/trunk/keyboard/keyirq.h | 35 - boop/trunk/lpc2220.h | 290 - boop/trunk/lpc2220_rom.ld | 144 - boop/trunk/main.c | 417 -- boop/trunk/rtc/Make.conf | 1 - boop/trunk/rtc/i2c.c | 131 - boop/trunk/rtc/i2c.h | 51 - boop/trunk/rtc/rtc.c | 432 -- boop/trunk/rtc/rtc.h | 106 - boop/trunk/rtc/rtctimer.c | 103 - boop/trunk/rtc/rtctimer.h | 42 - boop/trunk/serial/Make.conf | 2 - boop/trunk/serial/redirector.c | 306 - boop/trunk/serial/redirector.h | 41 - boop/trunk/serial/serial.c | 301 - boop/trunk/serial/serial.h | 60 - boop/trunk/serial/serirq.c | 71 - boop/trunk/sound3.h | 1571 ------ boop/trunk/syscalls.c | 22 - boop/trunk/timer/Make.conf | 2 - boop/trunk/timer/timerfuncs.c | 169 - boop/trunk/timer/timerfuncs.h | 53 - boop/trunk/timer/timerirq.c | 70 - boop/trunk/timer/timerirq.h | 41 - boop/trunk/tools/Make.conf | 1 - boop/trunk/tools/scart_icp.c | 715 --- boop/trunk/tools/scart_icp.h | 22 - boop/trunk/tools/scart_image.h | 27 - boop/trunk/tools/scart_image_data.h | 484 -- boop/trunk/tools/toolsmenu.c | 34 - boop/trunk/tools/toolsmenu.h | 21 - lpctool/{trunk => }/ChangeLog | 0 lpctool/{trunk => }/Makefile | 0 lpctool/{trunk => }/Makefile.local.WinARM | 0 lpctool/{trunk => }/Makefile.local.linuxARM | 0 lpctool/{trunk => }/bin2h.c | 0 lpctool/{trunk => }/bootcom.c | 0 lpctool/{trunk => }/bootcom.h | 0 .../display/fonts => lpctool}/charset.bits | 0 .../display/fonts => lpctool}/charset.info | 0 lpctool/{trunk => }/crt.s | 0 lpctool/{trunk => }/flash.c | 0 lpctool/{trunk => }/flash.h | 0 lpctool/{trunk => }/fonty.c | 0 lpctool/{trunk => }/fonty.h | 0 lpctool/{trunk => }/infohelper.c | 0 lpctool/{trunk => }/infohelper.h | 0 lpctool/{trunk => }/irq.c | 0 lpctool/{trunk => }/lcd.c | 0 lpctool/{trunk => }/lcd.h | 0 lpctool/{trunk => }/lpc2220.h | 0 lpctool/{trunk => }/lpc2220.ld | 0 lpctool/{trunk => }/lpc2220_rom.ld | 0 lpctool/{trunk => }/lpctool.c | 0 lpctool/{trunk => }/lpctool_serial.c | 0 lpctool/{trunk => }/lpctool_serial.h | 0 lpctool/{trunk => }/ramtool.c | 0 lpctool/{trunk => }/serial.c | 0 lpctool/{trunk => }/serial.h | 0 lpctool/{trunk => }/toolcmd.h | 0 lpctool/{trunk => }/toolcom.c | 0 lpctool/{trunk => }/toolcom.h | 0 lpctool/trunk/charset.bits | 118 - lpctool/trunk/charset.info | 22 - 364 files changed, 42706 deletions(-) rename Asixtool/{trunk => }/Kopie von Makefile (100%) rename Asixtool/{trunk => }/LICENSE (100%) rename Asixtool/{trunk => }/Makefile (100%) rename Asixtool/{trunk => }/asix_serial.c (100%) rename Asixtool/{trunk => }/asix_serial.h (100%) rename Asixtool/{trunk => }/bootcom.c (100%) rename Asixtool/{trunk => }/bootcom.h (100%) rename Asixtool/{trunk => }/infohelper.c (100%) rename Asixtool/{trunk => }/infohelper.h (100%) rename Asixtool/{trunk => }/main.c (100%) rename betty_TAE/MSP430/{trunk => }/Makefile (100%) rename betty_TAE/MSP430/{trunk => }/cc1100.c (100%) rename betty_TAE/MSP430/{trunk => }/cc1100.h (100%) rename betty_TAE/MSP430/{trunk => }/hardware.c (100%) rename betty_TAE/MSP430/{trunk => }/hardware.h (100%) rename betty_TAE/MSP430/{trunk => }/main.c (100%) rename betty_TAE/MSP430/{trunk => }/rf.c (100%) rename betty_TAE/MSP430/{trunk => }/rf.h (100%) rename betty_scart/{trunk => }/LICENSE (100%) rename betty_scart/{trunk => }/Makefile (100%) rename betty_scart/{trunk => }/Makefile.local.WinSDCC (100%) rename betty_scart/{trunk => }/Makefile.local.linuxSDCC (100%) rename betty_scart/{trunk => }/ScartProg.exe (100%) rename betty_scart/{trunk => }/betty_scart.bin (100%) rename betty_scart/{trunk => }/boop_icp.py (100%) rename betty_scart/{trunk => }/cc1100.c (100%) rename betty_scart/{trunk => }/cc1100.h (100%) rename betty_scart/{trunk => }/cmd.c (100%) rename betty_scart/{trunk => }/cmd.h (100%) rename betty_scart/{trunk => }/main.c (100%) rename betty_scart/{trunk => }/readme.txt (100%) rename betty_scart/{trunk => }/rf.c (100%) rename betty_scart/{trunk => }/rf.h (100%) rename betty_scart/{trunk => }/serial.c (100%) rename betty_scart/{trunk => }/serial.h (100%) rename betty_scart/{trunk => }/timer.c (100%) rename betty_scart/{trunk => }/timer.h (100%) rename bmp2b/{trunk => }/Makefile (100%) rename bmp2b/{trunk => }/README1ST (100%) rename bmp2b/{trunk => }/betty.bmp (100%) rename bmp2b/{trunk => }/betty2.bmp (100%) rename bmp2b/{trunk => }/bmp.c (100%) rename bmp2b/{trunk => }/bmp.h (100%) rename bmp2b/{trunk => }/bmp2b.c (100%) rename bmp2b/{trunk => }/bmp2b.tar.bz2 (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Boop.pnproj (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/CHANGELOG (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/LICENSE (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Make.conf (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile.local (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile.local.Telekatz (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile.local.WinARM (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/Makefile.local.linuxARM (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/README (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/b.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/batt.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/batt.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/boop.pnps (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/boop_flash.ppg (100%) delete mode 100644 boop/branches/ram_version/readme.txt rename boop/{branches/ram_version/telekatz_soundtest => }/cc1100.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/cc1100.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/crt.s (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/externs.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/flash.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/flash.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonts/charset.bits (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonts/charset.info (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonts/smooth.bits (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonts/smooth.info (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonty.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/fonty.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/global.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/global.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/infrared.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/infrared.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_itt.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_itt.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_nrc17.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_nrc17.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rc5.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rc5.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rca.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rca.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rcmm.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rcmm.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rec80.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_rec80.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_recs80.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_recs80.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_sirc.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_sirc.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_spaceenc.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/ir_spaceenc.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/irq.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/irq.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/itt_codes.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/keyboard.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/keyboard.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/lcd.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/lcd.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/lpc2220.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/lpc2220.ld (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/lpc2220_rom.ld (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/main.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/serial.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/serial.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/sirc_codes.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/sound3.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/soundcore.c (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/soundcore.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/sounds.h (100%) rename boop/{branches/ram_version/telekatz_soundtest => }/spaceenc_codes.h (100%) delete mode 100644 boop/trunk/CHANGELOG delete mode 100644 boop/trunk/LICENSE delete mode 100644 boop/trunk/Make.conf delete mode 100644 boop/trunk/Makefile delete mode 100644 boop/trunk/Makefile.local.Telekatz delete mode 100644 boop/trunk/Makefile.local.WinARM delete mode 100644 boop/trunk/Makefile.local.linuxARM delete mode 100644 boop/trunk/README delete mode 100644 boop/trunk/adc/Make.conf delete mode 100644 boop/trunk/adc/adc.c delete mode 100644 boop/trunk/adc/adc.h delete mode 100644 boop/trunk/adc/adcirq.c delete mode 100644 boop/trunk/adc/adcirq.h delete mode 100644 boop/trunk/audio/Make.conf delete mode 100644 boop/trunk/audio/sid.c delete mode 100644 boop/trunk/audio/sid.h delete mode 100644 boop/trunk/audio/sidfiles.h delete mode 100644 boop/trunk/audio/sound.c delete mode 100644 boop/trunk/audio/sound.h delete mode 100644 boop/trunk/audio/soundirq.c delete mode 100644 boop/trunk/audio/soundirq.h delete mode 100644 boop/trunk/audio/sounds.h delete mode 100644 boop/trunk/betty.cfg delete mode 100644 boop/trunk/boop_rom.bin delete mode 100644 boop/trunk/buffer.c delete mode 100644 boop/trunk/buffer.h delete mode 100644 boop/trunk/cc1100/Make.conf delete mode 100644 boop/trunk/cc1100/cc1100.c delete mode 100644 boop/trunk/cc1100/cc1100.h delete mode 100644 boop/trunk/cc1100/fs20.c delete mode 100644 boop/trunk/cc1100/fs20.h delete mode 100644 boop/trunk/cc1100/rf.c delete mode 100644 boop/trunk/cc1100/rf.h delete mode 100644 boop/trunk/cc1100/scan.c delete mode 100644 boop/trunk/cc1100/scan.h delete mode 100644 boop/trunk/crt.s delete mode 100644 boop/trunk/display/GrayScaler.exe delete mode 100644 boop/trunk/display/Hourglas_2bpp.bmp delete mode 100644 boop/trunk/display/Hourglas_t_3bpp_t.bmp delete mode 100644 boop/trunk/display/Make.conf delete mode 100644 boop/trunk/display/backlight.c delete mode 100644 boop/trunk/display/backlight.h delete mode 100644 boop/trunk/display/boop_logo delete mode 100644 boop/trunk/display/drawDigit.c delete mode 100644 boop/trunk/display/drawDigit.h delete mode 100644 boop/trunk/display/drawIcon.c delete mode 100644 boop/trunk/display/fonts/smooth.bits delete mode 100644 boop/trunk/display/fonts/smooth.info delete mode 100644 boop/trunk/display/fonty.c delete mode 100644 boop/trunk/display/fonty.h delete mode 100644 boop/trunk/display/icon.h delete mode 100644 boop/trunk/display/iconHourglas.h delete mode 100644 boop/trunk/display/iconHourglas2.h delete mode 100644 boop/trunk/display/iconHourglas2_t.h delete mode 100644 boop/trunk/display/iconHourglas_t.h delete mode 100644 boop/trunk/display/lcd.c delete mode 100644 boop/trunk/display/lcd.h delete mode 100644 boop/trunk/flash/Make.conf delete mode 100644 boop/trunk/flash/bfs.c delete mode 100644 boop/trunk/flash/bfs.h delete mode 100644 boop/trunk/flash/flash.c delete mode 100644 boop/trunk/flash/flash.h delete mode 100644 boop/trunk/games/Make.conf delete mode 100644 boop/trunk/games/c4_map.h delete mode 100644 boop/trunk/games/connect4.c delete mode 100644 boop/trunk/games/connect4.h delete mode 100644 boop/trunk/games/gamesmenu.c delete mode 100644 boop/trunk/games/gamesmenu.h delete mode 100644 boop/trunk/games/sokoban.c delete mode 100644 boop/trunk/games/sokoban.h delete mode 100644 boop/trunk/games/sokoban_levels.h delete mode 100644 boop/trunk/games/tic_tac_toe.c delete mode 100644 boop/trunk/games/tic_tac_toe.h delete mode 100644 boop/trunk/global.c delete mode 100644 boop/trunk/global.h delete mode 100644 boop/trunk/gui/Cross_2bpp.bmp delete mode 100644 boop/trunk/gui/Cross_t_3bpp_t.bmp delete mode 100644 boop/trunk/gui/FF_2bpp.bmp delete mode 100644 boop/trunk/gui/FR_2bpp.bmp delete mode 100644 boop/trunk/gui/Leo_Gray_128_2bpp.bmp delete mode 100644 boop/trunk/gui/Make.conf delete mode 100644 boop/trunk/gui/Pause_2bpp.bmp delete mode 100644 boop/trunk/gui/Play_2bpp.bmp delete mode 100644 boop/trunk/gui/Stop_2bpp.bmp delete mode 100644 boop/trunk/gui/controls.c delete mode 100644 boop/trunk/gui/controls.h delete mode 100644 boop/trunk/gui/iconCross.h delete mode 100644 boop/trunk/gui/iconCross_t.h delete mode 100644 boop/trunk/gui/iconFf.h delete mode 100644 boop/trunk/gui/iconFr.h delete mode 100644 boop/trunk/gui/iconHourglas.h delete mode 100644 boop/trunk/gui/iconHourglas_t.h delete mode 100644 boop/trunk/gui/iconLeo_gray_128.h delete mode 100644 boop/trunk/gui/iconPause.h delete mode 100644 boop/trunk/gui/iconPlay.h delete mode 100644 boop/trunk/gui/iconStop.h delete mode 100644 boop/trunk/gui/mainmenu.c delete mode 100644 boop/trunk/gui/mainmenu.h delete mode 100644 boop/trunk/gui/menu.c delete mode 100644 boop/trunk/gui/menu.h delete mode 100644 boop/trunk/gui/settingsmenu.c delete mode 100644 boop/trunk/gui/settingsmenu.h delete mode 100644 boop/trunk/gui/testmenu.c delete mode 100644 boop/trunk/gui/testmenu.h delete mode 100644 boop/trunk/infrared/Make.conf delete mode 100644 boop/trunk/infrared/codes.c delete mode 100644 boop/trunk/infrared/codes.h delete mode 100644 boop/trunk/infrared/encoders.c delete mode 100644 boop/trunk/infrared/encoders.h delete mode 100644 boop/trunk/infrared/infrared.c delete mode 100644 boop/trunk/infrared/infrared.h delete mode 100644 boop/trunk/infrared/infrared_encoders.h delete mode 100644 boop/trunk/infrared/infraredirq.c delete mode 100644 boop/trunk/infrared/infraredirq.h delete mode 100644 boop/trunk/infrared/ir_capture.c delete mode 100644 boop/trunk/infrared/ir_capture.h delete mode 100644 boop/trunk/infrared/ir_codes/itt/seleco_019 delete mode 100644 boop/trunk/infrared/ir_codes/itt/seleco_049 delete mode 100644 boop/trunk/infrared/ir_codes/itt/seleco_108 delete mode 100644 boop/trunk/infrared/ir_codes/itt/seleco_131 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/apple_remote1 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/fs20 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/hx2262 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/rev008340 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/str_de545 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/ufs910 delete mode 100644 boop/trunk/infrared/ir_codes/lirc/ufs922 delete mode 100644 boop/trunk/infrared/ir_codes/nrc17/dbox2 delete mode 100644 boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 delete mode 100644 boop/trunk/infrared/ir_codes/rc5/HARMONY_655 delete mode 100644 boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 delete mode 100644 boop/trunk/infrared/ir_codes/rc5/tv delete mode 100644 boop/trunk/infrared/ir_codes/rc6/dvd delete mode 100644 boop/trunk/infrared/ir_codes/rc6/tv delete mode 100644 boop/trunk/infrared/ir_codes/rc6/ufs922 delete mode 100644 boop/trunk/infrared/ir_codes/rca/xbox delete mode 100644 boop/trunk/infrared/ir_codes/rcmm/galaxis delete mode 100644 boop/trunk/infrared/ir_codes/rcmm/ufs910 delete mode 100644 boop/trunk/infrared/ir_codes/rec80/rak_sc957wk delete mode 100644 boop/trunk/infrared/ir_codes/recs80/seleco_020 delete mode 100644 boop/trunk/infrared/ir_codes/recs80/seleco_157 delete mode 100644 boop/trunk/infrared/ir_codes/rf/cc1100_a0 delete mode 100644 boop/trunk/infrared/ir_codes/rf/cc1100_a1 delete mode 100644 boop/trunk/infrared/ir_codes/sirc/UFD400 delete mode 100644 boop/trunk/infrared/ir_codes/sirc/rm-pp411 delete mode 100644 boop/trunk/infrared/ir_codes/sirc/tv delete mode 100644 boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 delete mode 100644 boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra delete mode 100644 boop/trunk/infrared/ir_codes/spaceenc/seleco_027 delete mode 100644 boop/trunk/infrared/ir_itt.c delete mode 100644 boop/trunk/infrared/ir_itt.h delete mode 100644 boop/trunk/infrared/ir_lirc.c delete mode 100644 boop/trunk/infrared/ir_lirc.h delete mode 100644 boop/trunk/infrared/ir_nrc17.c delete mode 100644 boop/trunk/infrared/ir_nrc17.h delete mode 100644 boop/trunk/infrared/ir_raw.c delete mode 100644 boop/trunk/infrared/ir_raw.h delete mode 100644 boop/trunk/infrared/ir_rc5.c delete mode 100644 boop/trunk/infrared/ir_rc5.h delete mode 100644 boop/trunk/infrared/ir_rc6.c delete mode 100644 boop/trunk/infrared/ir_rc6.h delete mode 100644 boop/trunk/infrared/ir_rca.c delete mode 100644 boop/trunk/infrared/ir_rca.h delete mode 100644 boop/trunk/infrared/ir_rcmm.c delete mode 100644 boop/trunk/infrared/ir_rcmm.h delete mode 100644 boop/trunk/infrared/ir_rec80.c delete mode 100644 boop/trunk/infrared/ir_rec80.h delete mode 100644 boop/trunk/infrared/ir_recs80.c delete mode 100644 boop/trunk/infrared/ir_recs80.h delete mode 100644 boop/trunk/infrared/ir_rf.c delete mode 100644 boop/trunk/infrared/ir_rf.h delete mode 100644 boop/trunk/infrared/ir_selector.c delete mode 100644 boop/trunk/infrared/ir_selector.h delete mode 100644 boop/trunk/infrared/ir_sirc.c delete mode 100644 boop/trunk/infrared/ir_sirc.h delete mode 100644 boop/trunk/infrared/ir_spaceenc.c delete mode 100644 boop/trunk/infrared/ir_spaceenc.h delete mode 100644 boop/trunk/interrupt/Make.conf delete mode 100644 boop/trunk/interrupt/irq.c delete mode 100644 boop/trunk/interrupt/irq.h delete mode 100644 boop/trunk/keyboard/Make.conf delete mode 100644 boop/trunk/keyboard/keyboard.c delete mode 100644 boop/trunk/keyboard/keyboard.h delete mode 100644 boop/trunk/keyboard/keyirq.c delete mode 100644 boop/trunk/keyboard/keyirq.h delete mode 100644 boop/trunk/lpc2220.h delete mode 100644 boop/trunk/lpc2220_rom.ld delete mode 100644 boop/trunk/main.c delete mode 100644 boop/trunk/rtc/Make.conf delete mode 100644 boop/trunk/rtc/i2c.c delete mode 100644 boop/trunk/rtc/i2c.h delete mode 100644 boop/trunk/rtc/rtc.c delete mode 100644 boop/trunk/rtc/rtc.h delete mode 100644 boop/trunk/rtc/rtctimer.c delete mode 100644 boop/trunk/rtc/rtctimer.h delete mode 100644 boop/trunk/serial/Make.conf delete mode 100644 boop/trunk/serial/redirector.c delete mode 100644 boop/trunk/serial/redirector.h delete mode 100644 boop/trunk/serial/serial.c delete mode 100644 boop/trunk/serial/serial.h delete mode 100644 boop/trunk/serial/serirq.c delete mode 100644 boop/trunk/sound3.h delete mode 100644 boop/trunk/syscalls.c delete mode 100644 boop/trunk/timer/Make.conf delete mode 100644 boop/trunk/timer/timerfuncs.c delete mode 100644 boop/trunk/timer/timerfuncs.h delete mode 100644 boop/trunk/timer/timerirq.c delete mode 100644 boop/trunk/timer/timerirq.h delete mode 100644 boop/trunk/tools/Make.conf delete mode 100644 boop/trunk/tools/scart_icp.c delete mode 100644 boop/trunk/tools/scart_icp.h delete mode 100644 boop/trunk/tools/scart_image.h delete mode 100644 boop/trunk/tools/scart_image_data.h delete mode 100644 boop/trunk/tools/toolsmenu.c delete mode 100644 boop/trunk/tools/toolsmenu.h rename lpctool/{trunk => }/ChangeLog (100%) rename lpctool/{trunk => }/Makefile (100%) rename lpctool/{trunk => }/Makefile.local.WinARM (100%) rename lpctool/{trunk => }/Makefile.local.linuxARM (100%) rename lpctool/{trunk => }/bin2h.c (100%) rename lpctool/{trunk => }/bootcom.c (100%) rename lpctool/{trunk => }/bootcom.h (100%) rename {boop/trunk/display/fonts => lpctool}/charset.bits (100%) rename {boop/trunk/display/fonts => lpctool}/charset.info (100%) rename lpctool/{trunk => }/crt.s (100%) rename lpctool/{trunk => }/flash.c (100%) rename lpctool/{trunk => }/flash.h (100%) rename lpctool/{trunk => }/fonty.c (100%) rename lpctool/{trunk => }/fonty.h (100%) rename lpctool/{trunk => }/infohelper.c (100%) rename lpctool/{trunk => }/infohelper.h (100%) rename lpctool/{trunk => }/irq.c (100%) rename lpctool/{trunk => }/lcd.c (100%) rename lpctool/{trunk => }/lcd.h (100%) rename lpctool/{trunk => }/lpc2220.h (100%) rename lpctool/{trunk => }/lpc2220.ld (100%) rename lpctool/{trunk => }/lpc2220_rom.ld (100%) rename lpctool/{trunk => }/lpctool.c (100%) rename lpctool/{trunk => }/lpctool_serial.c (100%) rename lpctool/{trunk => }/lpctool_serial.h (100%) rename lpctool/{trunk => }/ramtool.c (100%) rename lpctool/{trunk => }/serial.c (100%) rename lpctool/{trunk => }/serial.h (100%) rename lpctool/{trunk => }/toolcmd.h (100%) rename lpctool/{trunk => }/toolcom.c (100%) rename lpctool/{trunk => }/toolcom.h (100%) delete mode 100644 lpctool/trunk/charset.bits delete mode 100644 lpctool/trunk/charset.info diff --git a/Asixtool/trunk/Kopie von Makefile b/Asixtool/Kopie von Makefile similarity index 100% rename from Asixtool/trunk/Kopie von Makefile rename to Asixtool/Kopie von Makefile diff --git a/Asixtool/trunk/LICENSE b/Asixtool/LICENSE similarity index 100% rename from Asixtool/trunk/LICENSE rename to Asixtool/LICENSE diff --git a/Asixtool/trunk/Makefile b/Asixtool/Makefile similarity index 100% rename from Asixtool/trunk/Makefile rename to Asixtool/Makefile diff --git a/Asixtool/trunk/asix_serial.c b/Asixtool/asix_serial.c similarity index 100% rename from Asixtool/trunk/asix_serial.c rename to Asixtool/asix_serial.c diff --git a/Asixtool/trunk/asix_serial.h b/Asixtool/asix_serial.h similarity index 100% rename from Asixtool/trunk/asix_serial.h rename to Asixtool/asix_serial.h diff --git a/Asixtool/trunk/bootcom.c b/Asixtool/bootcom.c similarity index 100% rename from Asixtool/trunk/bootcom.c rename to Asixtool/bootcom.c diff --git a/Asixtool/trunk/bootcom.h b/Asixtool/bootcom.h similarity index 100% rename from Asixtool/trunk/bootcom.h rename to Asixtool/bootcom.h diff --git a/Asixtool/trunk/infohelper.c b/Asixtool/infohelper.c similarity index 100% rename from Asixtool/trunk/infohelper.c rename to Asixtool/infohelper.c diff --git a/Asixtool/trunk/infohelper.h b/Asixtool/infohelper.h similarity index 100% rename from Asixtool/trunk/infohelper.h rename to Asixtool/infohelper.h diff --git a/Asixtool/trunk/main.c b/Asixtool/main.c similarity index 100% rename from Asixtool/trunk/main.c rename to Asixtool/main.c diff --git a/betty_TAE/MSP430/trunk/Makefile b/betty_TAE/MSP430/Makefile similarity index 100% rename from betty_TAE/MSP430/trunk/Makefile rename to betty_TAE/MSP430/Makefile diff --git a/betty_TAE/MSP430/trunk/cc1100.c b/betty_TAE/MSP430/cc1100.c similarity index 100% rename from betty_TAE/MSP430/trunk/cc1100.c rename to betty_TAE/MSP430/cc1100.c diff --git a/betty_TAE/MSP430/trunk/cc1100.h b/betty_TAE/MSP430/cc1100.h similarity index 100% rename from betty_TAE/MSP430/trunk/cc1100.h rename to betty_TAE/MSP430/cc1100.h diff --git a/betty_TAE/MSP430/trunk/hardware.c b/betty_TAE/MSP430/hardware.c similarity index 100% rename from betty_TAE/MSP430/trunk/hardware.c rename to betty_TAE/MSP430/hardware.c diff --git a/betty_TAE/MSP430/trunk/hardware.h b/betty_TAE/MSP430/hardware.h similarity index 100% rename from betty_TAE/MSP430/trunk/hardware.h rename to betty_TAE/MSP430/hardware.h diff --git a/betty_TAE/MSP430/trunk/main.c b/betty_TAE/MSP430/main.c similarity index 100% rename from betty_TAE/MSP430/trunk/main.c rename to betty_TAE/MSP430/main.c diff --git a/betty_TAE/MSP430/trunk/rf.c b/betty_TAE/MSP430/rf.c similarity index 100% rename from betty_TAE/MSP430/trunk/rf.c rename to betty_TAE/MSP430/rf.c diff --git a/betty_TAE/MSP430/trunk/rf.h b/betty_TAE/MSP430/rf.h similarity index 100% rename from betty_TAE/MSP430/trunk/rf.h rename to betty_TAE/MSP430/rf.h diff --git a/betty_scart/trunk/LICENSE b/betty_scart/LICENSE similarity index 100% rename from betty_scart/trunk/LICENSE rename to betty_scart/LICENSE diff --git a/betty_scart/trunk/Makefile b/betty_scart/Makefile similarity index 100% rename from betty_scart/trunk/Makefile rename to betty_scart/Makefile diff --git a/betty_scart/trunk/Makefile.local.WinSDCC b/betty_scart/Makefile.local.WinSDCC similarity index 100% rename from betty_scart/trunk/Makefile.local.WinSDCC rename to betty_scart/Makefile.local.WinSDCC diff --git a/betty_scart/trunk/Makefile.local.linuxSDCC b/betty_scart/Makefile.local.linuxSDCC similarity index 100% rename from betty_scart/trunk/Makefile.local.linuxSDCC rename to betty_scart/Makefile.local.linuxSDCC diff --git a/betty_scart/trunk/ScartProg.exe b/betty_scart/ScartProg.exe similarity index 100% rename from betty_scart/trunk/ScartProg.exe rename to betty_scart/ScartProg.exe diff --git a/betty_scart/trunk/betty_scart.bin b/betty_scart/betty_scart.bin similarity index 100% rename from betty_scart/trunk/betty_scart.bin rename to betty_scart/betty_scart.bin diff --git a/betty_scart/trunk/boop_icp.py b/betty_scart/boop_icp.py similarity index 100% rename from betty_scart/trunk/boop_icp.py rename to betty_scart/boop_icp.py diff --git a/betty_scart/trunk/cc1100.c b/betty_scart/cc1100.c similarity index 100% rename from betty_scart/trunk/cc1100.c rename to betty_scart/cc1100.c diff --git a/betty_scart/trunk/cc1100.h b/betty_scart/cc1100.h similarity index 100% rename from betty_scart/trunk/cc1100.h rename to betty_scart/cc1100.h diff --git a/betty_scart/trunk/cmd.c b/betty_scart/cmd.c similarity index 100% rename from betty_scart/trunk/cmd.c rename to betty_scart/cmd.c diff --git a/betty_scart/trunk/cmd.h b/betty_scart/cmd.h similarity index 100% rename from betty_scart/trunk/cmd.h rename to betty_scart/cmd.h diff --git a/betty_scart/trunk/main.c b/betty_scart/main.c similarity index 100% rename from betty_scart/trunk/main.c rename to betty_scart/main.c diff --git a/betty_scart/trunk/readme.txt b/betty_scart/readme.txt similarity index 100% rename from betty_scart/trunk/readme.txt rename to betty_scart/readme.txt diff --git a/betty_scart/trunk/rf.c b/betty_scart/rf.c similarity index 100% rename from betty_scart/trunk/rf.c rename to betty_scart/rf.c diff --git a/betty_scart/trunk/rf.h b/betty_scart/rf.h similarity index 100% rename from betty_scart/trunk/rf.h rename to betty_scart/rf.h diff --git a/betty_scart/trunk/serial.c b/betty_scart/serial.c similarity index 100% rename from betty_scart/trunk/serial.c rename to betty_scart/serial.c diff --git a/betty_scart/trunk/serial.h b/betty_scart/serial.h similarity index 100% rename from betty_scart/trunk/serial.h rename to betty_scart/serial.h diff --git a/betty_scart/trunk/timer.c b/betty_scart/timer.c similarity index 100% rename from betty_scart/trunk/timer.c rename to betty_scart/timer.c diff --git a/betty_scart/trunk/timer.h b/betty_scart/timer.h similarity index 100% rename from betty_scart/trunk/timer.h rename to betty_scart/timer.h diff --git a/bmp2b/trunk/Makefile b/bmp2b/Makefile similarity index 100% rename from bmp2b/trunk/Makefile rename to bmp2b/Makefile diff --git a/bmp2b/trunk/README1ST b/bmp2b/README1ST similarity index 100% rename from bmp2b/trunk/README1ST rename to bmp2b/README1ST diff --git a/bmp2b/trunk/betty.bmp b/bmp2b/betty.bmp similarity index 100% rename from bmp2b/trunk/betty.bmp rename to bmp2b/betty.bmp diff --git a/bmp2b/trunk/betty2.bmp b/bmp2b/betty2.bmp similarity index 100% rename from bmp2b/trunk/betty2.bmp rename to bmp2b/betty2.bmp diff --git a/bmp2b/trunk/bmp.c b/bmp2b/bmp.c similarity index 100% rename from bmp2b/trunk/bmp.c rename to bmp2b/bmp.c diff --git a/bmp2b/trunk/bmp.h b/bmp2b/bmp.h similarity index 100% rename from bmp2b/trunk/bmp.h rename to bmp2b/bmp.h diff --git a/bmp2b/trunk/bmp2b.c b/bmp2b/bmp2b.c similarity index 100% rename from bmp2b/trunk/bmp2b.c rename to bmp2b/bmp2b.c diff --git a/bmp2b/trunk/bmp2b.tar.bz2 b/bmp2b/bmp2b.tar.bz2 similarity index 100% rename from bmp2b/trunk/bmp2b.tar.bz2 rename to bmp2b/bmp2b.tar.bz2 diff --git a/boop/branches/ram_version/telekatz_soundtest/Boop.pnproj b/boop/Boop.pnproj similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Boop.pnproj rename to boop/Boop.pnproj diff --git a/boop/branches/ram_version/telekatz_soundtest/CHANGELOG b/boop/CHANGELOG similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/CHANGELOG rename to boop/CHANGELOG diff --git a/boop/branches/ram_version/telekatz_soundtest/LICENSE b/boop/LICENSE similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/LICENSE rename to boop/LICENSE diff --git a/boop/branches/ram_version/telekatz_soundtest/Make.conf b/boop/Make.conf similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Make.conf rename to boop/Make.conf diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile b/boop/Makefile similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile rename to boop/Makefile diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local b/boop/Makefile.local similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile.local rename to boop/Makefile.local diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.Telekatz b/boop/Makefile.local.Telekatz similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile.local.Telekatz rename to boop/Makefile.local.Telekatz diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM b/boop/Makefile.local.WinARM similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile.local.WinARM rename to boop/Makefile.local.WinARM diff --git a/boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM b/boop/Makefile.local.linuxARM similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/Makefile.local.linuxARM rename to boop/Makefile.local.linuxARM diff --git a/boop/branches/ram_version/telekatz_soundtest/README b/boop/README similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/README rename to boop/README diff --git a/boop/branches/ram_version/telekatz_soundtest/b.h b/boop/b.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/b.h rename to boop/b.h diff --git a/boop/branches/ram_version/telekatz_soundtest/batt.c b/boop/batt.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/batt.c rename to boop/batt.c diff --git a/boop/branches/ram_version/telekatz_soundtest/batt.h b/boop/batt.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/batt.h rename to boop/batt.h diff --git a/boop/branches/ram_version/telekatz_soundtest/boop.pnps b/boop/boop.pnps similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/boop.pnps rename to boop/boop.pnps diff --git a/boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg b/boop/boop_flash.ppg similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/boop_flash.ppg rename to boop/boop_flash.ppg diff --git a/boop/branches/ram_version/readme.txt b/boop/branches/ram_version/readme.txt deleted file mode 100644 index b2d7001..0000000 --- a/boop/branches/ram_version/readme.txt +++ /dev/null @@ -1 +0,0 @@ -In this directory you find mini boop versions running from RAM. See README in each directory. \ No newline at end of file diff --git a/boop/branches/ram_version/telekatz_soundtest/cc1100.c b/boop/cc1100.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/cc1100.c rename to boop/cc1100.c diff --git a/boop/branches/ram_version/telekatz_soundtest/cc1100.h b/boop/cc1100.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/cc1100.h rename to boop/cc1100.h diff --git a/boop/branches/ram_version/telekatz_soundtest/crt.s b/boop/crt.s similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/crt.s rename to boop/crt.s diff --git a/boop/branches/ram_version/telekatz_soundtest/externs.h b/boop/externs.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/externs.h rename to boop/externs.h diff --git a/boop/branches/ram_version/telekatz_soundtest/flash.c b/boop/flash.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/flash.c rename to boop/flash.c diff --git a/boop/branches/ram_version/telekatz_soundtest/flash.h b/boop/flash.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/flash.h rename to boop/flash.h diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/charset.bits b/boop/fonts/charset.bits similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/charset.bits rename to boop/fonts/charset.bits diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/charset.info b/boop/fonts/charset.info similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/charset.info rename to boop/fonts/charset.info diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/smooth.bits b/boop/fonts/smooth.bits similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/smooth.bits rename to boop/fonts/smooth.bits diff --git a/boop/branches/ram_version/telekatz_soundtest/fonts/smooth.info b/boop/fonts/smooth.info similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonts/smooth.info rename to boop/fonts/smooth.info diff --git a/boop/branches/ram_version/telekatz_soundtest/fonty.c b/boop/fonty.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonty.c rename to boop/fonty.c diff --git a/boop/branches/ram_version/telekatz_soundtest/fonty.h b/boop/fonty.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/fonty.h rename to boop/fonty.h diff --git a/boop/branches/ram_version/telekatz_soundtest/global.c b/boop/global.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/global.c rename to boop/global.c diff --git a/boop/branches/ram_version/telekatz_soundtest/global.h b/boop/global.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/global.h rename to boop/global.h diff --git a/boop/branches/ram_version/telekatz_soundtest/infrared.c b/boop/infrared.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/infrared.c rename to boop/infrared.c diff --git a/boop/branches/ram_version/telekatz_soundtest/infrared.h b/boop/infrared.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/infrared.h rename to boop/infrared.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_itt.c b/boop/ir_itt.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_itt.c rename to boop/ir_itt.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_itt.h b/boop/ir_itt.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_itt.h rename to boop/ir_itt.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c b/boop/ir_nrc17.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_nrc17.c rename to boop/ir_nrc17.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h b/boop/ir_nrc17.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_nrc17.h rename to boop/ir_nrc17.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.c b/boop/ir_rc5.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rc5.c rename to boop/ir_rc5.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rc5.h b/boop/ir_rc5.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rc5.h rename to boop/ir_rc5.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rca.c b/boop/ir_rca.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rca.c rename to boop/ir_rca.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rca.h b/boop/ir_rca.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rca.h rename to boop/ir_rca.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c b/boop/ir_rcmm.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rcmm.c rename to boop/ir_rcmm.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h b/boop/ir_rcmm.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rcmm.h rename to boop/ir_rcmm.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.c b/boop/ir_rec80.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rec80.c rename to boop/ir_rec80.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_rec80.h b/boop/ir_rec80.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_rec80.h rename to boop/ir_rec80.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.c b/boop/ir_recs80.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_recs80.c rename to boop/ir_recs80.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_recs80.h b/boop/ir_recs80.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_recs80.h rename to boop/ir_recs80.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.c b/boop/ir_sirc.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_sirc.c rename to boop/ir_sirc.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_sirc.h b/boop/ir_sirc.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_sirc.h rename to boop/ir_sirc.h diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c b/boop/ir_spaceenc.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.c rename to boop/ir_spaceenc.c diff --git a/boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h b/boop/ir_spaceenc.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/ir_spaceenc.h rename to boop/ir_spaceenc.h diff --git a/boop/branches/ram_version/telekatz_soundtest/irq.c b/boop/irq.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/irq.c rename to boop/irq.c diff --git a/boop/branches/ram_version/telekatz_soundtest/irq.h b/boop/irq.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/irq.h rename to boop/irq.h diff --git a/boop/branches/ram_version/telekatz_soundtest/itt_codes.h b/boop/itt_codes.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/itt_codes.h rename to boop/itt_codes.h diff --git a/boop/branches/ram_version/telekatz_soundtest/keyboard.c b/boop/keyboard.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/keyboard.c rename to boop/keyboard.c diff --git a/boop/branches/ram_version/telekatz_soundtest/keyboard.h b/boop/keyboard.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/keyboard.h rename to boop/keyboard.h diff --git a/boop/branches/ram_version/telekatz_soundtest/lcd.c b/boop/lcd.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/lcd.c rename to boop/lcd.c diff --git a/boop/branches/ram_version/telekatz_soundtest/lcd.h b/boop/lcd.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/lcd.h rename to boop/lcd.h diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220.h b/boop/lpc2220.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/lpc2220.h rename to boop/lpc2220.h diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220.ld b/boop/lpc2220.ld similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/lpc2220.ld rename to boop/lpc2220.ld diff --git a/boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld b/boop/lpc2220_rom.ld similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/lpc2220_rom.ld rename to boop/lpc2220_rom.ld diff --git a/boop/branches/ram_version/telekatz_soundtest/main.c b/boop/main.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/main.c rename to boop/main.c diff --git a/boop/branches/ram_version/telekatz_soundtest/serial.c b/boop/serial.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/serial.c rename to boop/serial.c diff --git a/boop/branches/ram_version/telekatz_soundtest/serial.h b/boop/serial.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/serial.h rename to boop/serial.h diff --git a/boop/branches/ram_version/telekatz_soundtest/sirc_codes.h b/boop/sirc_codes.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/sirc_codes.h rename to boop/sirc_codes.h diff --git a/boop/branches/ram_version/telekatz_soundtest/sound3.h b/boop/sound3.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/sound3.h rename to boop/sound3.h diff --git a/boop/branches/ram_version/telekatz_soundtest/soundcore.c b/boop/soundcore.c similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/soundcore.c rename to boop/soundcore.c diff --git a/boop/branches/ram_version/telekatz_soundtest/soundcore.h b/boop/soundcore.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/soundcore.h rename to boop/soundcore.h diff --git a/boop/branches/ram_version/telekatz_soundtest/sounds.h b/boop/sounds.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/sounds.h rename to boop/sounds.h diff --git a/boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h b/boop/spaceenc_codes.h similarity index 100% rename from boop/branches/ram_version/telekatz_soundtest/spaceenc_codes.h rename to boop/spaceenc_codes.h diff --git a/boop/trunk/CHANGELOG b/boop/trunk/CHANGELOG deleted file mode 100644 index d267b83..0000000 --- a/boop/trunk/CHANGELOG +++ /dev/null @@ -1,2 +0,0 @@ -06.12.2007 : -- starting complete code rework diff --git a/boop/trunk/LICENSE b/boop/trunk/LICENSE deleted file mode 100644 index 94a9ed0..0000000 --- a/boop/trunk/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 of the License, 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/boop/trunk/Make.conf b/boop/trunk/Make.conf deleted file mode 100644 index c8d471a..0000000 --- a/boop/trunk/Make.conf +++ /dev/null @@ -1,5 +0,0 @@ -SUBDIRS := adc audio cc1100 display flash games gui infrared interrupt \ - keyboard rtc serial timer tools - -SRCS := crt.s main.c global.c buffer.c syscalls.c - diff --git a/boop/trunk/Makefile b/boop/trunk/Makefile deleted file mode 100644 index 39e0f13..0000000 --- a/boop/trunk/Makefile +++ /dev/null @@ -1,150 +0,0 @@ -############################################################### -##### -##### Makefile for boop - OpenSource firmware for Betty -##### Created at 30.8.2007 02:26 am -##### -##### boop V0.1 by netguy - ck@mamalala.net -##### Makefile V0.1 by alterego - alteregon@gmx.net -##### Makefile v0.2 by Tobias - tobias-betty@23.gs -##### -############################################################### - -############################################################### -##### -##### PATHS (default installation) -##### -##### You can put your path-config into Makefile.local -##### to override these defaults -##### -############################################################### - -ARMBASE = /opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH = $(ARMBASE)/include -#LIBGCCPATH = $(ARMBASE)/lib/gcc/arm-none-eabi/4.7.3/thumb/arm7tdmi-s -#LIBCPATH = $(ARMBASE)/arm-none-eabi/lib/thumb/arm7tdmi-s -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-none-eabi- -LPCTOOL = lpctool -OPENOCD = openocd -f betty.cfg -f interface/parport.cfg - -############################################################### -##### -##### Compiler, Linker and Tools -##### -############################################################### - -CC = $(ARMPATH)/$(TOOLPREFIX)gcc -AS = $(ARMPATH)/$(TOOLPREFIX)as -#LD = $(ARMPATH)/$(TOOLPREFIX)ld -LD = $(ARMPATH)/$(TOOLPREFIX)gcc -OC = $(ARMPATH)/$(TOOLPREFIX)objcopy -OD = $(ARMPATH)/$(TOOLPREFIX)objdump - -CPUFLAGS = -mcpu=arm7tdmi-s -OPTFLAGS = -Os -CFLAGS = -Wall -mthumb-interwork -msoft-float -INC = -I$(INCLUDEPATH) -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc -Itools -ASFLAGS = -D --gstabs -mthumb-interwork -mfpu=softfpa -#LDFLAGS = -Tlpc2220_rom.ld -Map boop.map -#LIBS = -lc -lgcc -LDFLAGS = -mthumb-interwork -nostartfiles -Xlinker -Map -Xlinker boop.map -Tlpc2220_rom.ld -THUMBFLAGS = -mthumb - -COMPILE = $(CC) $(CPUFLAGS) $(CFLAGS) $(INC) - -ifeq ($(MAKECMDGOALS),debug) - COMPILE += -D DEBUGMODE -endif - -ifeq ($(MAKECMDGOALS),release) - COMPILE += -D RELEASE -endif - --include Makefile.local - -############################################################### -##### -##### Do the boop -##### -############################################################### - -# Recursive expansion of Makefile rules. -define expand_dir - # Reset vars for subdir for the case that Make.conf does not exist - SUBDIRS := - SRCS := - THUMBSRCS := - THUMBSRCSUNOPT := - -include $(1)Make.conf - ALLSRCS += $$(SRCS:%=$(1)%) - ALLTHUMBSRCS += $$(THUMBSRCS:%=$(1)%) - ALLTHUMBSRCSUNOPT += $$(THUMBSRCSUNOPT:%=$(1)%) - DEPS += $(1).deps - $$(foreach adir,$$(SUBDIRS),$$(eval $$(call expand_dir,$(1)$$(adir)/))) -endef - -ALLSRCS := -ALLTHUMBSRCS := -ALLTHUMBSRCSUNOPT := - -$(eval $(call expand_dir,)) - -OBJS := $(patsubst %.s,%.o,$(ALLSRCS:.c=.o)) $(ALLTHUMBSRCS:.c=.thumb.o) $(ALLTHUMBSRCSUNOPT:.c=.thumbunopt.o) - -all: version $(DEPS) boop_rom.bin boop_rom.hex - -debug: version.h $(DEPS) boop_rom.bin boop_rom.hex - -release: clean version $(DEPS) boop_rom.bin boop_rom.hex - @echo -n '\n\nRelease erstellt SVN Version ++' - @cat .svn/entries | sed -n '4p' - -version: - echo -n '#define SVNVERSION ' > version.h - svnversion -n |cut -f1 -d M -n >> version.h - echo >> version.h - -version.h: - echo -n '#define SVNVERSION ' > version.h - svnversion -n|cut -f1 -d M >> version.h - echo >> version.h - -test: boop_rom.elf - $(OD) -h $< - -%.bin: %.elf - $(OC) -O binary $< $@ - -%.hex: %.elf - $(OC) -O ihex $< $@ - -boop_rom.elf: $(OBJS) - $(LD) $(LDFLAGS) -L$(LIBGCCPATH) -L$(LIBCPATH) -o $@ $^ $(LIBS) - -%.o: %.s - $(AS) $(CPUFLAGS) $(ASFLAGS) -o $@ $< - -%.o: %.c - $(COMPILE) $(OPTFLAGS) -c -MMD -MF $(dir $<).deps/$(notdir $@) -o $@ $< - -%.thumb.o: %.c - $(COMPILE) $(THUMBFLAGS) $(OPTFLAGS) -c -MMD -MF $(dir $<).deps/$(notdir $@) -o $@ $< - -%.thumbunopt.o: %.c - $(COMPILE) $(THUMBFLAGS) -c -MMD -MF $(dir $<).deps/$(notdir $@) -o $@ $< - -$(DEPS): - mkdir -p $@ - -uresident: resident -resident: boop_rom.bin - $(LPCTOOL) -i -v -e -a $< - -program: boop_rom.bin - $(OPENOCD) -c init -c 'flash_boop $<' -c shutdown - -clean: - -rm -Rf $(DEPS) - -rm -f $(OBJS) *.elf *.bin *.hex *~ - --include $(DEPS:=/*) diff --git a/boop/trunk/Makefile.local.Telekatz b/boop/trunk/Makefile.local.Telekatz deleted file mode 100644 index 2a8c536..0000000 --- a/boop/trunk/Makefile.local.Telekatz +++ /dev/null @@ -1,23 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -##### Copy this file to Makefile.local for your Windows -##### installation -##### -############################################################### - -ARMBASE = F:/Tools/WinARM -INCLUDEPATH = $(ARMBASE)/include -LIBPATH = $(ARMBASE)/arm-elf/lib/interwork -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-elf- -LPCTOOL = lpctool.exe - -CFLAGS = -Wall -mthumb-interwork -msoft-float -ggdb - -######################## EOF ################################## - diff --git a/boop/trunk/Makefile.local.WinARM b/boop/trunk/Makefile.local.WinARM deleted file mode 100644 index efcfb9d..0000000 --- a/boop/trunk/Makefile.local.WinARM +++ /dev/null @@ -1,21 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -##### Copy this file to Makefile.local for your Windows -##### installation -##### -############################################################### - -ARMBASE = c:/WinARM/ -INCLUDEPATH = $(ARMBASE)/include -LIBPATH = $(ARMBASE)/arm-elf/lib/interwork -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-elf- -LPCTOOL = lpctool.exe -OPENOCD = C:\OpenOCD\openocd.exe -f betty.cfg -f C:\OpenOCD\OpenOCD\interface\parport.cfg - -######################## EOF ################################## diff --git a/boop/trunk/Makefile.local.linuxARM b/boop/trunk/Makefile.local.linuxARM deleted file mode 100644 index e87b3b7..0000000 --- a/boop/trunk/Makefile.local.linuxARM +++ /dev/null @@ -1,19 +0,0 @@ -############################################################### -##### -##### Makefile.local.linuxARM for boop -##### Created in the early morninghours -##### -##### Copy this to Makefile.local and modify for your Linux -##### installation -##### -############################################################### - -ARMBASE = /opt/arm-elf -INCLUDEPATH = $(ARMBASE)/include -LIBPATH = $(ARMBASE)/lib/gcc/arm-elf/4.1.1/interwork -ARMPATH = $(ARMBASE)/bin -TOOLPREFIX = arm-elf- -LPCTOOL = lpctool -d /dev/ttyUSB0 -OPENOCD = openocd -f betty.cfg -f interface/parport.cfg - -######################## EOF ################################## diff --git a/boop/trunk/README b/boop/trunk/README deleted file mode 100644 index 109a0c2..0000000 --- a/boop/trunk/README +++ /dev/null @@ -1,17 +0,0 @@ -9.11.2007: - -- serial console: - 115200 baud, 8N1, no handshake - -- serial commands: - 0 - backlight off - 1 - dimmed backlight - 2 - full backlight - . - prints "HELO" - S - prints RCA_Encode status (hex value) - I - prints irIRQ status (hex value) - K - prints keyIRQ status (hex value) - all other inputs are echoed - -- flash boop_rom.bin: - lpctool -i -e -a ./boop_rom.bin -d /dev/ diff --git a/boop/trunk/adc/Make.conf b/boop/trunk/adc/Make.conf deleted file mode 100644 index 26f9a6d..0000000 --- a/boop/trunk/adc/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := adc.c adcirq.c diff --git a/boop/trunk/adc/adc.c b/boop/trunk/adc/adc.c deleted file mode 100644 index 1b1a838..0000000 --- a/boop/trunk/adc/adc.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - adc.c - adc readout for battery status - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "timerfuncs.h" -#include "adc.h" -#include "adcirq.h" -#include "lcd.h" -#include "fonty.h" -#include "lpc2220.h" - -extern volatile unsigned int bat_adc; -extern volatile unsigned int bmax, bmin; -extern unsigned int is_drawing; - -static unsigned short bat_max, bat_min; -static unsigned short diffs[4]; -static unsigned short diff; -volatile unsigned char bat_state; - - - -void draw_b(unsigned char x, unsigned char y) -{ - unsigned char w; - - if(!(is_drawing)) - { - if(bat_state & BAT_DEBUG) - { - draw_block(4,0,108,24,3,DRAW_ERASE); - draw_numU(4,0,bat_min>>2,0,3,DRAW_PUT); - draw_numU(32,0,bat_max>>2,0,3,DRAW_PUT); - draw_numU(4,8,(bat_max>>2)-(bat_min>>2),0,3,DRAW_PUT); - - draw_numU(60,0,bat_min,0,3,DRAW_PUT); - draw_numU(88,0,bat_max,0,3,DRAW_PUT); - draw_numU(60,8,bat_max-bat_min,0,3,DRAW_PUT); - if((bat_state & BAT_NORMAL)) - draw_string(4,16,"Bat.Operation",3,DRAW_PUT); - if((bat_state & BAT_CHARGE)) - draw_string(4,16,"Charging",3,DRAW_PUT); - if((bat_state & BAT_CHARGE_DONE)) - draw_string(4,16,"Done Charging",3,DRAW_PUT); - } - - if (bat_min<0x320) - w = 0; - else if (bat_min>0x380) - w = 12; - else - w = (bat_min-0x320)/8; - - draw_block(x+1,y+1,12,5,3,DRAW_ERASE); - draw_rect(x,y,14,7,1,3,DRAW_PUT); - draw_vline(x+14,y+2,3,3,DRAW_PUT); - - if(w>0) - draw_block(x+1,y+1,w,5,2,DRAW_PUT); - - if(w<12) - draw_block(x+1+w,y+1,12-w,5,0,DRAW_PUT); - } -} - -void calcBat(unsigned int cb) -{ - ADCR |= ((1<<21) | (1<<24)); -// ADCR |= (1<<24); /* Start A/D Conversion (START:0=1) */ - ADINTEN = 1<<5; -} - -void showBat(unsigned int cb) -{ - static int cnt; - unsigned char x; - - bat_max = bmax; - bat_min = bmin; - - cnt &= 0x03; - diffs[cnt++] = bat_max - bat_min; - - diff = 0; - for(x=0;x<4;x++) - diff += diffs[x]; - diff >>= 2; - - if(bat_state & BAT_NORMAL) - { - if(diff > 15) - { - bat_state |= BAT_CHARGE; - bat_state &= ~BAT_NORMAL; - } - } - else if(bat_state & BAT_CHARGE) - { - if(bat_max >= 1020) - { - bat_state |= BAT_CHARGE_DONE; - bat_state &= ~BAT_CHARGE; - } - } - else if(bat_state & BAT_CHARGE_DONE) - { - if(bat_max < 1000) - { - bat_state |= BAT_CHARGE; - bat_state &= ~BAT_CHARGE_DONE; - } - } - - if((diff < 7) && (bat_min < 1000)) - { - bat_state |= BAT_NORMAL; - bat_state &= ~BAT_CHARGE; - bat_state &= ~BAT_CHARGE_DONE; - } - - draw_b(113,0); - bmin = bat_max; - bmax = bat_min; -} - -void startADC(void) -{ - ADCR = ( 1<<5 | ((15-1)<<8) /*| (1UL<<16)*/ | (1UL<<21) ); - ADCR |= (1UL<<24); /* Start A/D Conversion (START:0=1) */ - while ((ADDR & (1UL<<31)) == 0); /* Wait for the conversion to complete (DONE=1)*/ - bmin = ((ADDR >> 6) & 0x03FF); /* Extract the A/D result */ - ADCR &=~(1UL<<21); - bmax = bmin; - bat_max = bmin; - bat_min = bmin; - bat_state = BAT_NORMAL; - - diffs[0] = 0; - diffs[0] = 1; - diffs[0] = 2; - diffs[0] = 3; - - VICVectAddr14 = (unsigned long)&(adcIRQ); - VICVectCntl14 = VIC_SLOT_EN | INT_SRC_ADC; - VICIntEnable = INT_ADC; - - startCB(addTimerCB(calcBat, 6)); - startCB(addTimerCB(showBat, 220)); -} diff --git a/boop/trunk/adc/adc.h b/boop/trunk/adc/adc.h deleted file mode 100644 index 1f3fe81..0000000 --- a/boop/trunk/adc/adc.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - adc.h - adc readout for battery status - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef ADC_H -#define ADC_H - -#define BAT_NORMAL 0x01 -#define BAT_CHARGE 0x02 -#define BAT_CHARGE_DONE 0x04 -#define BAT_DEBUG 0x80 - - -void startADC(void); -void calcBat(unsigned int cb); -void showBat(unsigned int cb); - -#endif diff --git a/boop/trunk/adc/adcirq.c b/boop/trunk/adc/adcirq.c deleted file mode 100644 index 099b461..0000000 --- a/boop/trunk/adc/adcirq.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - adcirq.c - adc iinterrupt handler - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "adcirq.h" -#include "adc.h" -#include "lpc2220.h" - -volatile unsigned int bat_adc; -volatile unsigned int bmax, bmin; - -void __attribute__ ((section(".text.fastcode"))) adcIRQ (void) -{ - ADINTEN = 0; - bat_adc = ADDR; - bat_adc >>= 6; - bat_adc &= 0x03FF; - if(bmax < bat_adc) - bmax = bat_adc; - if(bmin > bat_adc) - bmin = bat_adc; - ADCR &=~(1UL<<21); -} diff --git a/boop/trunk/adc/adcirq.h b/boop/trunk/adc/adcirq.h deleted file mode 100644 index c2e1027..0000000 --- a/boop/trunk/adc/adcirq.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - adcirq.c - adc iinterrupt handler - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef ADCIRQ_H -#define ADCIRQ_H - -void __attribute__ ((section(".text.fastcode"))) adcIRQ (void); - -#endif diff --git a/boop/trunk/audio/Make.conf b/boop/trunk/audio/Make.conf deleted file mode 100644 index ca8a4d0..0000000 --- a/boop/trunk/audio/Make.conf +++ /dev/null @@ -1,2 +0,0 @@ -THUMBSRCS := sound.c sid.c -SRCS := soundirq.c diff --git a/boop/trunk/audio/sid.c b/boop/trunk/audio/sid.c deleted file mode 100644 index 0128d39..0000000 --- a/boop/trunk/audio/sid.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - sid.c - tone encoder routines - Copyright (C) 2008 Telekatz - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "sid.h" -#include "sound.h" -#include "soundirq.h" -#include "lpc2220.h" -#include "timerfuncs.h" - -unsigned int playtone_cb; -unsigned char *playtone[3]; -unsigned char playstate; -unsigned char tonelen[3]; -unsigned short playcounter; -unsigned short playcountermax; - -const unsigned short AttackRate[16] = {19531,9766,2441,1628,1028,673,574,488,391,156,78,49,39,13,8,5}; -const unsigned short DecayReleaseRate[16] = {6510,1628,814,543,343,233,191,163,130,52,16,13,4,3,2}; - -const unsigned char song2[] = { note_d,2, note_e,2, note_f,2, note_e,2, note_d,2, note_g,2, note_f,2, note_e,2, - note_d,2, note_e,2, note_f,2, note_g,2, note_a,2, note_g,2, note_f,2, note_e,2, - note_d,2, note_e,2, note_f,2, note_e,2, note_d,2, note_g,2, note_f,2, note_e,2, - note_cis,2, note_d,2, note_e,2, note_f,2, note_g,2, note_a,2, note_f,2, note_e,2,0}; - -const unsigned char song3[] = { note_0,1, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, - note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, - note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, - note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,2, note_c,1,0}; - -const unsigned short notes[] = {0,4455,4720,5001,5298,5613,5947,6301,6676,7072,7493,7939,8411,0}; - - -void SIDsetfrq(unsigned char voice, unsigned short frq) { - - if (voice < voices) { - SID.reg[(voice * 7) + REG_FREQhi] = frq>>8; - SID.reg[(voice * 7) + REG_FREQlo] = frq & 0xFF; - } -} - -void SIDsetadsr(unsigned char voice,unsigned char attack, unsigned char decay, unsigned char sustain, unsigned char release) { - - if (voice < voices) { - SID.reg[(voice * 7) + REG_AttackDecay] = (attack<<4) + (decay&0x0f); - SID.reg[(voice * 7) + REG_SustainRelease] = (sustain<<4) + (release&0x0f); - } -} - -void SIDsetwave(unsigned char voice,unsigned char wave) { - - if (voice < voices) { - SID.reg[(voice * 7)+REG_Control] &= 0x0f; - SID.reg[(voice * 7)+REG_Control] |= wave; - } -} - -void SIDplaytone(unsigned int cb) { - unsigned char tone; - unsigned char x; - - switch (playstate) { - case 0x01: - playstate++; - setCBIntervall(playtone_cb,48); - for (x=0; x<3; x++) { - if (playtone[x]) { - if (!tonelen[x]) { - tone = *playtone[x]; - if (tone) { - playtone[x]++; - tonelen[x] = *playtone[x]; - playtone[x]++; - SIDsetfrq(x,notes[tone]); - SID.reg[(x*7)+REG_Control] |= GATE; - } - else { - playstate = 0x00; - playtone[0] = 0; - playtone[1] = 0; - playtone[2] = 0; - removeTimerCB(playtone_cb); - } - } - } - } - break; - case 0x02: - playstate = 0x01; - for (x=0; x<3; x++) { - if (playtone[x]) { - tonelen[x]--; - if (!tonelen[x]) - SID.reg[(x*7)+REG_Control] &= ~GATE; - } - } - setCBIntervall(playtone_cb,2); - break; - default: - playstate = 0x00; - removeTimerCB(playtone_cb); - } -} - -void SIDplaydump(unsigned int cb) { - unsigned char x; - - if (playcounter++ < playcountermax) { - for (x=0;x<14;x++) { - SID.reg[x] = *playtone[0]; - playtone[0]++; - } - } - else { - SID.reg[REG_Control] &= ~GATE; - SID.reg[7+REG_Control] &= ~GATE; - SID.reg[14+REG_Control] &= ~GATE; - playstate = 0x00; - playtone[0] =0; - removeTimerCB(playtone_cb); - } -} - -void beepEnd(unsigned int cb) { - SID.reg[REG_Control] &= ~GATE; - SID.flags |= SID_AUTO_OFF; - removeTimerCB(cb); -} - -void beep(unsigned char n) { - - - switch(n) { - case 1: - SIDsetwave(0,TRIANGLE); - SIDsetadsr(0,0,10,0,10); - SIDsetfrq(0,8411); - break; - default: - SIDsetwave(0,SAWTOOTH); - SIDsetadsr(0,1,5,10,5); - SIDsetfrq(0,5001); - break; - } - PWMPR = 0; - switchSound(SOUND_ON); - SID.flags |= SIDenable; - SID.reg[REG_Control] |= GATE; - startCB(addTimerCB(beepEnd, 20)); -} diff --git a/boop/trunk/audio/sid.h b/boop/trunk/audio/sid.h deleted file mode 100644 index e67980f..0000000 --- a/boop/trunk/audio/sid.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - sid.h - tone encoder routines - Copyright (C) 2008 Telekatz - - 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 3 of the License, 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, see . -*/ - -#ifndef SID_H -#define SID_H - -// SID voice controll register bits -#define GATE (1<<0) -#define SYNC (1<<1) -#define RINGMOD (1<<2) -#define TEST (1<<3) -#define TRIANGLE (1<<4) -#define SAWTOOTH (1<<5) -#define RECTANGLE (1<<6) -#define NOISE (1<<7) - -// SID RES/FILT ( reg.23 ) -#define FILT1 (1<<0) -#define FILT2 (1<<1) -#define FILT3 (1<<2) -// SID MODE/VOL ( reg.24 ) -#define VOICE3OFF (1<<7) - -// SID registers -#define REG_FREQlo 00 -#define REG_FREQhi 01 -#define REG_PWlo 02 -#define REG_PWhi 03 -#define REG_Control 04 -#define REG_AttackDecay 05 -#define REG_SustainRelease 06 - -#define REG_FClo 21 -#define REG_FChi 22 -#define REG_ResFilt 23 -#define REG_ModeVol 24 - -#define max_sid_registers 25 -#define max_level 40000 -#define voices 3 -#define sustainstep 2666 - -//SID.flags -#define ATTACK 1 -#define SIDenable (1<<3) -#define phaseoverflow (1<<4) -#define SID_AUTO_OFF (1<<5) - - -#define note_c 1 -#define note_cis 2 -#define note_d 3 -#define note_dis 4 -#define note_e 5 -#define note_f 6 -#define note_fis 7 -#define note_g 8 -#define note_gis 9 -#define note_a 10 -#define note_ais 11 -#define note_h 12 -#define note_0 13 - -extern const unsigned char song2[]; -extern const unsigned char song3[]; -extern const unsigned char song4[]; - -extern const unsigned short notes[]; - - -const unsigned short AttackRate[16]; -const unsigned short DecayReleaseRate[16]; - -struct voice_ { - unsigned short envelope; - unsigned short phase; -}; - -struct SID_ { - struct voice_ voice[3]; - unsigned short noise; - unsigned char flags; - unsigned char reg[max_sid_registers]; - -}; - -struct SID_ SID; - -unsigned int playtone_cb; -unsigned char *playtone[3]; -unsigned char playstate; -unsigned char tonelen[3]; -unsigned short playcounter; -unsigned short playcountermax; - -void SIDsetfrq(unsigned char voice, unsigned short frq); -void SIDsetadsr(unsigned char voice,unsigned char attack, unsigned char decay, unsigned char sustain, unsigned char release); -void SIDsetwave(unsigned char voice,unsigned char wave); -void SIDplaytone(unsigned int cb); -void SIDplaydump(unsigned int cb); -void beep(unsigned char n); - -#endif diff --git a/boop/trunk/audio/sidfiles.h b/boop/trunk/audio/sidfiles.h deleted file mode 100644 index 0a4dccb..0000000 --- a/boop/trunk/audio/sidfiles.h +++ /dev/null @@ -1,1004 +0,0 @@ - -const unsigned char song1[] = { -0x00,0x00,0x00,0x00,0x20,0x11,0x70,0x00,0x00,0x00,0x00,0x20,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa2,0x25,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xa5,0x1f,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa5,0x1f,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0x1e,0x19,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0x87,0x21,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xdf,0x1d,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xef,0x13,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x3e,0x2a,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x18,0x0e,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x87,0x21,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0xd1,0x12,0x00,0x00,0x21,0x11,0x70,0x30,0x0b,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0x8f,0x0c,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x60,0x16,0x00,0x00,0x21,0x11,0x70,0xd1,0x12,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x1e,0x19,0x00,0x00,0x21,0x11,0x70,0x1f,0x15,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0x31,0x1c,0x00,0x00,0x21,0x11,0x70,0x60,0x16,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, -0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70 -}; diff --git a/boop/trunk/audio/sound.c b/boop/trunk/audio/sound.c deleted file mode 100644 index 310ecbc..0000000 --- a/boop/trunk/audio/sound.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - sound.c - sound core routines - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "sound.h" -#include "soundirq.h" -#include "lpc2220.h" - -#define AUTO_OFF_TIME 0x4000 - - -extern unsigned int tval; -extern unsigned char bl_val, cmp_val; -extern unsigned int slen; -extern unsigned char *sdata; -extern volatile unsigned char sact; -extern char out1; -extern char last_sample; -extern unsigned char sound_shutdown; - -unsigned char timeout; -unsigned int auto_timeout; - -void startSoundIRQ(void) -{ - timeout = 0; - auto_timeout = 0; - out1 = 0; - - PWMTC = 0; -// PWMPR = 0; - PWMPR = 7; - PWMMR0 = 0x1E6; // pwm rate - PWMMR2 = 0x00; // pwm value - PWMLER = 0x05; - PWMMCR = 0x03; - PWMPCR = (1<<10); - PWMTCR = 0x03; - PWMTCR = 0x09; - - //VICVectAddr0 = (unsigned long)&(soundIRQ); - //VICVectCntl0 = VIC_SLOT_EN | INT_SRC_PWM; - VICIntSelect |= INT_PWM; - VICIntEnable = INT_PWM; -} - -void initSound(void) -{ - slen = 0; - sdata = 0; - sact = 0; - tval = 0; - last_sample = 0; - bl_val = 0x3F; -} - -void switchSound(unsigned char onoff) -{ - if(onoff) - { - sound_shutdown = 0; - PINSEL0 &= ~(3 << (2 * SND_PWM)); // IO - PINSEL0 |= (2 << (2 * SND_PWM)); // PWM - PINSEL0 &= ~(3 << (2 * SND_EN)); // IO - PINSEL0 &= ~(3 << (2 * SND_ON)); // IO - FIODIR0 |= (1< - - 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 3 of the License, 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, see . -*/ - -#ifndef SOUND_H -#define SOUND_H - -#define SOUND_OFF 0x00 -#define SOUND_ON 0x01 - -//IO PINS on P0 -#define SND_ON 6 -#define SND_EN 11 -#define SND_PWM 7 - -void startSoundIRQ(void); - -void initSound(void); -void switchSound(unsigned char onoff); -void playSound(unsigned char *sound, unsigned long len); -void stopSound(void); -void waitSound(void); - -#endif diff --git a/boop/trunk/audio/soundirq.c b/boop/trunk/audio/soundirq.c deleted file mode 100644 index d034c08..0000000 --- a/boop/trunk/audio/soundirq.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - soundcore.c - sound core routines (output, ipol, mixing, ...) - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "irq.h" -#include "soundirq.h" -#include "sound.h" -#include "sid.h" -#include "lpc2220.h" - -#define AUTO_OFF_TIME 0x4000 - -/* -extern volatile unsigned int tval; -extern volatile unsigned char bl_val, cmp_val; -extern volatile unsigned int slen; -extern volatile unsigned char *sdata; -extern volatile unsigned char sact; -extern volatile char out1; -extern volatile char last_sample; -*/ - -unsigned int tval; -unsigned char bl_val, cmp_val; // backlight PWM -unsigned int slen; -unsigned char *sdata; -unsigned char sact; -unsigned char out1; -unsigned char last_sample; -unsigned char sound_shutdown; - -const unsigned char prevvoice[3] = {2,0,1}; - -void __attribute__ ((section(".text.fastcode"))) soundIRQ (void) -{ - PWMIR = 0x01; - - // play sample - if(sact != 0) - { - out1++; - if(out1 == 2) // quik & dirty anti-aliasing filter - { // (2 point linear interpolated 2x upsampling) - - PWMMR2 = (sdata[tval] + last_sample) >> 1; - PWMLER = 0x04; - } - else - if(out1 == 4) // prepare next sample - { - out1 = 0; - last_sample = sdata[tval]; - PWMMR2 = last_sample; - tval++; - if(tval >= slen) - { - tval = 0; - FIOCLR0 |= (1<>6; - for (x=0; x<3; x++) { - volatile unsigned char phase8; - unsigned char tempwave; - - if ((SID.reg[(x * 7) + REG_Control] & SYNC) && (SID.flags & phaseoverflow)) - SID.voice[x].phase = 0; - - - tempphase=SID.voice[x].phase + ((SID.reg[(x * 7) + REG_FREQlo] + (SID.reg[(x * 7) + REG_FREQhi]<<8))>>4); - phase8 = (SID.voice[x].phase)>>8; - - switch (SID.reg[(x * 7) + REG_Control] & 0xf0) { - case TRIANGLE: - - tempwave = phase8<<1; - if (phase8 & 0x80) - tempwave ^= 0xff; - - if ((SID.reg[(x * 7) + REG_Control] & RINGMOD) && (SID.voice[prevvoice[x]].phase & 0x8000)) - tempwave ^= 0xff; - - wave[x] = tempwave - 128; - break; - - - case SAWTOOTH: - wave[x] = phase8 - 0x80; - break; - - case RECTANGLE: - if(phase8 > ((SID.reg[(x * 7) + REG_PWlo] + (SID.reg[(x * 7) + REG_PWhi]<<8)) >> 4)) - wave[x] = 127; - else - wave[x] = -128; - break; - - case NOISE: - if(SID.voice[x].phase & 0x4000) - wave[x]=noise8; - break; - - default: - wave[x] = 0; - } - sig[x]=((SID.voice[x].envelope)>>8) * (wave[x]); - - if (SID.voice[x].phase > tempphase) - SID.flags |= phaseoverflow; - else - SID.flags &= ~phaseoverflow; - - SID.voice[x].phase=tempphase; - - if (!PWMcounter) { - signed int envelope; - if (SID.reg[(x * 7) + REG_Control] & GATE) { - if (!(SID.flags & (ATTACK<>4]; - if (envelope > max_level) { - SID.voice[x].envelope = max_level; - SID.flags |= (ATTACK<>4))) - SID.voice[x].envelope = sustainstep * (SID.reg[(x * 7) + REG_SustainRelease]>>4); - else - SID.voice[x].envelope = envelope; - } - } - else { - SID.flags &= ~(ATTACK<>8); - - autooff |= SID.voice[x].envelope; - } - - PWMMR2 = temp; - PWMLER = 0x04; - - if (!(PWMcounter--)) - PWMcounter = 29; - - temp = SID.noise; - SID.noise=SID.noise << 1; - - temp ^= SID.noise; - if ( ( temp & 0x4000 ) == 0x4000 ) - { - SID.noise |= 1; - } - - if((SID.flags & SID_AUTO_OFF) && !autooff) { - FIOCLR0 |= (1<= 63) - { - FIODIR0 |= (1<<4); // sck0/P0.4 - cmp_val -= 63; - } - else - { - FIODIR0 &= ~(1<<4); // sck0/P0.4 - } - -} diff --git a/boop/trunk/audio/soundirq.h b/boop/trunk/audio/soundirq.h deleted file mode 100644 index e988d29..0000000 --- a/boop/trunk/audio/soundirq.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - soundirq.h - sound interrupt handler - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef SOUNDIRQ_H -#define SOUNDIRQ_H - -void __attribute__ ((section(".text.fastcode"))) soundIRQ (void); - -#endif diff --git a/boop/trunk/audio/sounds.h b/boop/trunk/audio/sounds.h deleted file mode 100644 index 2fd1f10..0000000 --- a/boop/trunk/audio/sounds.h +++ /dev/null @@ -1,4417 +0,0 @@ -#define sound1_len 0x0000371C -const unsigned char sound1_data[] = { - 0x80,0x7D,0x7B,0x7A,0x7A,0x7D,0x7F,0x80,0x7E,0x7D,0x7F,0x7D,0x7C,0x7F,0x80,0x81, - 0x83,0x83,0x82,0x80,0x7F,0x7D,0x7D,0x7E,0x87,0x8D,0x90,0x92,0x81,0x77,0x6D,0x6B, - 0x72,0x7A,0x77,0x76,0x6B,0x5A,0x80,0x7F,0x73,0x8A,0x8A,0x83,0x7B,0x86,0x80,0x77, - 0x7B,0x75,0x79,0x7C,0x7F,0x7A,0x7A,0x7D,0x7F,0x7D,0x7A,0x88,0x89,0x86,0x88,0x7A, - 0x7E,0x8F,0x8B,0x8B,0xA2,0xA3,0x9A,0x9A,0x82,0x7F,0x93,0x8E,0x98,0xA7,0x97,0x94, - 0x9D,0x95,0x77,0x78,0x8A,0x8F,0x94,0x89,0x79,0x6D,0x6C,0x6B,0x66,0x75,0x7A,0x6E, - 0x6A,0x62,0x5B,0x57,0x5C,0x5E,0x5D,0x61,0x5A,0x59,0x57,0x54,0x61,0x6F,0x70,0x69, - 0x6B,0x73,0x6F,0x63,0x64,0x74,0x7F,0x7D,0x76,0x74,0x71,0x71,0x6E,0x70,0x78,0x77, - 0x79,0x78,0x77,0x7D,0x86,0xA1,0xA9,0x9A,0x8F,0x8C,0x8F,0x8E,0x8F,0x8D,0x8C,0x8D, - 0x90,0x97,0x8C,0x78,0x7B,0x89,0x8C,0x8E,0x96,0x9E,0x97,0x8F,0x89,0x84,0x8C,0x92, - 0x94,0x8D,0x88,0x81,0x7C,0x86,0x8C,0x91,0x99,0x9A,0x95,0x8E,0x8C,0x8B,0x88,0x8D, - 0x94,0x95,0x8F,0x8C,0x88,0x8C,0x93,0x99,0x9A,0x99,0x95,0x8D,0x8E,0x88,0x90,0xA3, - 0xA8,0xA3,0x93,0x87,0x84,0x80,0x80,0x86,0x84,0x7A,0x6E,0x65,0x60,0x5F,0x68,0x6E, - 0x68,0x5C,0x52,0x4B,0x4A,0x57,0x62,0x69,0x70,0x6A,0x5D,0x5C,0x5F,0x63,0x68,0x70, - 0x70,0x67,0x68,0x67,0x6B,0x77,0x78,0x70,0x6C,0x61,0x5D,0x61,0x67,0x76,0x78,0x78, - 0x73,0x70,0x74,0x7D,0x88,0x97,0x9E,0x96,0x95,0x90,0x89,0x92,0x98,0x96,0x95,0x87, - 0x7A,0x79,0x7D,0x87,0x95,0xA1,0xA1,0x96,0x8F,0x8C,0x89,0x8E,0x93,0x8D,0x89,0x86, - 0x7E,0x83,0x93,0x96,0x94,0x91,0x84,0x7D,0x7F,0x8B,0x98,0x9E,0xA2,0x99,0x8C,0x89, - 0x8C,0x90,0x9B,0x95,0x8F,0x8F,0x8C,0x92,0x9E,0xA6,0xA7,0x9E,0x8D,0x82,0x82,0x8C, - 0x98,0xA2,0xA0,0x9B,0x91,0x85,0x85,0x82,0x80,0x7C,0x6F,0x63,0x60,0x62,0x68,0x70, - 0x6C,0x66,0x5B,0x4F,0x50,0x57,0x5F,0x66,0x69,0x68,0x5F,0x5E,0x62,0x62,0x69,0x6A, - 0x66,0x63,0x6A,0x72,0x76,0x7B,0x75,0x6A,0x60,0x5A,0x5A,0x61,0x6C,0x70,0x73,0x74, - 0x73,0x7A,0x80,0x86,0x8F,0x93,0x94,0x95,0x99,0x9C,0x9E,0x9E,0x95,0x8A,0x80,0x7D, - 0x7E,0x87,0x8E,0x92,0x97,0x97,0x95,0x8E,0x8A,0x88,0x83,0x82,0x84,0x87,0x8E,0x94, - 0x99,0x9C,0x96,0x8C,0x82,0x7F,0x85,0x8D,0x9B,0xA5,0xA5,0xA4,0x9D,0x98,0x93,0x8D, - 0x8D,0x8D,0x93,0x9A,0x9F,0xA4,0xA4,0xA1,0x96,0x8D,0x89,0x8A,0x8D,0x93,0x99,0x9C, - 0xA1,0x9E,0x95,0x85,0x7C,0x76,0x78,0x7F,0x7B,0x7A,0x78,0x71,0x6D,0x65,0x5C,0x52, - 0x50,0x55,0x59,0x65,0x6A,0x6B,0x6C,0x64,0x59,0x50,0x4E,0x54,0x59,0x65,0x71,0x71, - 0x74,0x71,0x6C,0x63,0x5B,0x60,0x62,0x65,0x6C,0x71,0x75,0x70,0x6A,0x61,0x5B,0x62, - 0x6B,0x7C,0x8D,0x93,0x9D,0x9E,0x9F,0x9E,0x94,0x92,0x90,0x92,0x95,0x9B,0x9F,0x98, - 0x95,0x89,0x7F,0x7C,0x7B,0x85,0x8D,0x90,0x90,0x8C,0x88,0x82,0x7A,0x7B,0x7B,0x7D, - 0x82,0x88,0x92,0x9B,0xA0,0x98,0x8B,0x81,0x7F,0x8B,0x9B,0xA0,0xA0,0x9A,0x95,0x94, - 0x90,0x92,0x8E,0x8A,0x96,0x99,0xA0,0xA9,0xAB,0xA2,0x94,0x87,0x7D,0x83,0x8F,0x96, - 0x9B,0x96,0x8E,0x88,0x7B,0x74,0x72,0x6E,0x70,0x6B,0x6D,0x74,0x73,0x77,0x68,0x52, - 0x4D,0x4C,0x57,0x67,0x6B,0x69,0x61,0x5C,0x5A,0x54,0x55,0x55,0x5C,0x62,0x68,0x72, - 0x73,0x78,0x6A,0x5A,0x56,0x50,0x5D,0x67,0x69,0x6D,0x66,0x63,0x60,0x5B,0x5F,0x63, - 0x6D,0x7E,0x89,0x99,0xA6,0xA9,0xA5,0x93,0x88,0x85,0x8D,0x9D,0x9F,0xA4,0x99,0x8F, - 0x8C,0x7F,0x7E,0x7B,0x7C,0x85,0x84,0x8E,0x92,0x93,0x8D,0x79,0x73,0x6F,0x7B,0x88, - 0x90,0x95,0x8C,0x8D,0x8E,0x89,0x87,0x87,0x8B,0x97,0x9B,0x9E,0xA2,0x9C,0x99,0x8E, - 0x87,0x87,0x8E,0x9C,0xA3,0xA4,0xA1,0x9C,0x93,0x8A,0x88,0x84,0x8A,0x8F,0x8B,0x96, - 0x99,0x97,0x8D,0x78,0x6E,0x6A,0x73,0x7F,0x7E,0x79,0x72,0x6C,0x63,0x60,0x5A,0x58, - 0x60,0x63,0x68,0x71,0x70,0x6D,0x62,0x51,0x50,0x57,0x63,0x70,0x71,0x74,0x73,0x6C, - 0x67,0x60,0x5C,0x60,0x66,0x65,0x69,0x72,0x72,0x6F,0x5E,0x4E,0x56,0x59,0x6C,0x7B, - 0x7D,0x89,0x8A,0x8D,0x8B,0x8C,0x8E,0x94,0x9C,0x9B,0xA3,0xA6,0xA3,0x9A,0x84,0x7F, - 0x84,0x85,0x93,0x91,0x8F,0x8D,0x85,0x81,0x7A,0x7D,0x7F,0x87,0x89,0x8C,0x95,0x95, - 0x95,0x88,0x7A,0x7E,0x89,0x94,0x9E,0x9D,0x9B,0x95,0x91,0x8C,0x88,0x8B,0x91,0x99, - 0x97,0xA1,0xA6,0xA4,0x9E,0x8F,0x86,0x8B,0x97,0xA0,0x9F,0x9B,0x95,0x8C,0x88,0x83, - 0x81,0x82,0x8C,0x8C,0x8A,0x8D,0x84,0x80,0x6D,0x60,0x60,0x65,0x72,0x75,0x74,0x70, - 0x69,0x62,0x5F,0x5A,0x5B,0x60,0x66,0x66,0x6D,0x73,0x71,0x67,0x59,0x58,0x5E,0x6B, - 0x76,0x77,0x70,0x6A,0x62,0x5A,0x5D,0x5D,0x5F,0x65,0x62,0x6A,0x78,0x81,0x7C,0x6D, - 0x68,0x73,0x85,0x99,0xA5,0xA3,0xA2,0x9E,0x98,0x93,0x94,0x98,0x99,0x96,0x9A,0x9E, - 0x9F,0x96,0x86,0x79,0x74,0x81,0x86,0x8F,0x92,0x8B,0x88,0x81,0x7C,0x78,0x7E,0x88, - 0x93,0x95,0x99,0x9B,0x92,0x8B,0x83,0x81,0x85,0x93,0x9F,0xA4,0xA0,0x94,0x8B,0x82, - 0x88,0x8D,0x95,0x97,0x94,0xA1,0xA4,0xA5,0x90,0x80,0x81,0x84,0x93,0x9B,0x99,0x92, - 0x8B,0x85,0x7E,0x79,0x7C,0x7E,0x7A,0x7E,0x85,0x83,0x7E,0x6C,0x59,0x57,0x5F,0x6A, - 0x70,0x75,0x73,0x6C,0x64,0x5C,0x56,0x59,0x64,0x69,0x6C,0x76,0x7B,0x76,0x68,0x5B, - 0x57,0x60,0x6C,0x71,0x70,0x71,0x69,0x61,0x5A,0x56,0x5A,0x68,0x73,0x75,0x7F,0x84, - 0x83,0x7D,0x79,0x7D,0x8C,0x9D,0xAA,0xAF,0xA9,0x9F,0x91,0x8B,0x8D,0x92,0x98,0x8C, - 0x91,0x9B,0x9E,0x97,0x7A,0x6D,0x6E,0x7A,0x8B,0x8E,0x8A,0x8A,0x89,0x81,0x79,0x75, - 0x7B,0x89,0x8C,0x94,0x9B,0x99,0x90,0x81,0x7C,0x7E,0x8E,0x98,0xA0,0xA0,0x99,0x91, - 0x84,0x85,0x86,0x93,0x91,0x8E,0x9E,0xA3,0xA9,0x97,0x7F,0x79,0x7F,0x90,0x94,0x91, - 0x8E,0x88,0x82,0x79,0x71,0x71,0x7A,0x79,0x7C,0x82,0x7D,0x78,0x66,0x5D,0x5A,0x60, - 0x70,0x77,0x7D,0x73,0x67,0x5E,0x5B,0x5C,0x66,0x67,0x60,0x72,0x78,0x81,0x70,0x59, - 0x54,0x52,0x67,0x71,0x72,0x70,0x6B,0x62,0x5B,0x57,0x5D,0x6A,0x6A,0x77,0x7C,0x83, - 0x88,0x7B,0x79,0x7B,0x8A,0x9B,0xA6,0xAB,0xA5,0x9D,0x8A,0x84,0x85,0x90,0x99,0x91, - 0x99,0x97,0x92,0x84,0x6F,0x6C,0x70,0x83,0x8C,0x90,0x8C,0x82,0x7C,0x71,0x74,0x7B, - 0x84,0x82,0x8D,0x99,0x9A,0x93,0x7C,0x76,0x77,0x87,0x96,0x9A,0x9C,0x98,0x90,0x80, - 0x7B,0x81,0x8F,0x9B,0x9F,0xA0,0x9C,0x97,0x8D,0x80,0x7C,0x83,0x8C,0x99,0x9B,0x8F, - 0x83,0x73,0x6E,0x76,0x7B,0x7F,0x78,0x7D,0x86,0x83,0x78,0x60,0x5A,0x5D,0x6D,0x79, - 0x79,0x78,0x6F,0x68,0x61,0x5C,0x63,0x6F,0x65,0x70,0x7A,0x7B,0x7B,0x65,0x5B,0x59, - 0x62,0x6D,0x70,0x72,0x72,0x6E,0x5C,0x57,0x57,0x62,0x71,0x72,0x7B,0x7E,0x80,0x7A, - 0x73,0x75,0x7D,0x93,0x9F,0xA7,0xA9,0x9D,0x93,0x8C,0x8B,0x96,0x97,0x91,0x9C,0xA0, - 0xA0,0x8B,0x72,0x6F,0x72,0x80,0x8A,0x8C,0x8A,0x85,0x7C,0x71,0x6F,0x79,0x81,0x80, - 0x8E,0x8F,0x90,0x89,0x76,0x75,0x76,0x86,0x92,0x97,0x99,0x95,0x8B,0x7F,0x7E,0x84, - 0x94,0x97,0x9C,0xA4,0x9F,0x9A,0x86,0x7F,0x81,0x8C,0x99,0x9B,0x9A,0x92,0x87,0x7C, - 0x78,0x80,0x85,0x80,0x8A,0x8D,0x8D,0x84,0x6D,0x64,0x64,0x73,0x7C,0x7E,0x81,0x7C, - 0x70,0x65,0x60,0x63,0x73,0x79,0x7A,0x7E,0x78,0x72,0x65,0x5C,0x61,0x6A,0x77,0x7D, - 0x7B,0x77,0x69,0x5B,0x58,0x5D,0x6B,0x70,0x72,0x7C,0x7E,0x7A,0x69,0x64,0x6D,0x7A, - 0x90,0x97,0x9D,0x9F,0x96,0x8F,0x88,0x92,0x9C,0x94,0x9D,0xA5,0xA8,0xA0,0x85,0x7A, - 0x75,0x80,0x89,0x8A,0x8D,0x8C,0x83,0x70,0x6A,0x70,0x7E,0x86,0x85,0x8A,0x88,0x84, - 0x76,0x6F,0x72,0x7A,0x8D,0x92,0x96,0x96,0x89,0x81,0x79,0x81,0x8E,0x8A,0x97,0x9D, - 0xA3,0x9F,0x87,0x81,0x7E,0x8C,0x9A,0x9D,0x9F,0x9A,0x8F,0x7F,0x79,0x82,0x87,0x87, - 0x8E,0x8F,0x94,0x8E,0x75,0x6C,0x69,0x73,0x7F,0x83,0x86,0x82,0x74,0x65,0x5E,0x67, - 0x77,0x7A,0x7B,0x80,0x7D,0x78,0x6A,0x5E,0x60,0x6C,0x79,0x7D,0x80,0x7B,0x6D,0x63, - 0x5C,0x64,0x71,0x70,0x75,0x7A,0x7A,0x77,0x63,0x5F,0x67,0x70,0x81,0x85,0x8C,0x92, - 0x86,0x7C,0x7D,0x89,0x98,0x9C,0x9C,0xA1,0xA3,0x9D,0x8D,0x82,0x85,0x8D,0x93,0x8E, - 0x8C,0x8D,0x84,0x78,0x6E,0x70,0x7D,0x7D,0x7C,0x84,0x85,0x85,0x78,0x6A,0x6E,0x73, - 0x7F,0x81,0x81,0x8B,0x89,0x80,0x78,0x79,0x84,0x88,0x86,0x90,0x96,0x96,0x8F,0x7F, - 0x81,0x85,0x8E,0x96,0x93,0x99,0x99,0x8D,0x83,0x7C,0x86,0x8F,0x88,0x8E,0x92,0x91, - 0x8E,0x79,0x75,0x74,0x79,0x84,0x7D,0x82,0x83,0x7C,0x71,0x66,0x6D,0x79,0x78,0x76, - 0x7C,0x7D,0x81,0x72,0x66,0x67,0x6B,0x78,0x77,0x78,0x7A,0x79,0x70,0x64,0x65,0x70, - 0x75,0x71,0x79,0x7B,0x7E,0x76,0x64,0x66,0x69,0x76,0x7D,0x7D,0x88,0x8A,0x86,0x7B, - 0x78,0x84,0x92,0x8E,0x8F,0x98,0x99,0x9D,0x88,0x80,0x82,0x84,0x91,0x8B,0x8C,0x90, - 0x8B,0x7F,0x73,0x73,0x80,0x83,0x7D,0x87,0x89,0x8D,0x81,0x6F,0x73,0x72,0x7C,0x82, - 0x81,0x89,0x89,0x81,0x72,0x70,0x7C,0x86,0x82,0x83,0x8B,0x8F,0x8F,0x7B,0x75,0x7A, - 0x7E,0x88,0x88,0x8A,0x8E,0x8C,0x81,0x74,0x76,0x82,0x84,0x81,0x8B,0x8B,0x8E,0x85, - 0x72,0x75,0x74,0x7C,0x82,0x81,0x89,0x87,0x7F,0x72,0x6C,0x76,0x82,0x80,0x80,0x87, - 0x87,0x87,0x79,0x6F,0x72,0x77,0x81,0x80,0x83,0x88,0x84,0x7B,0x70,0x6F,0x7A,0x81, - 0x7E,0x86,0x8B,0x8B,0x84,0x73,0x74,0x75,0x7E,0x86,0x84,0x8E,0x8D,0x85,0x7B,0x74, - 0x7C,0x87,0x89,0x87,0x8D,0x8E,0x8E,0x81,0x75,0x78,0x7B,0x85,0x86,0x84,0x8A,0x86, - 0x7C,0x71,0x6D,0x76,0x80,0x7C,0x81,0x84,0x85,0x82,0x6E,0x6D,0x6F,0x76,0x7E,0x7C, - 0x83,0x85,0x80,0x74,0x6D,0x75,0x7F,0x81,0x7E,0x85,0x88,0x8A,0x81,0x72,0x77,0x79, - 0x82,0x86,0x83,0x8A,0x8A,0x84,0x78,0x73,0x7C,0x86,0x85,0x84,0x8B,0x8A,0x8C,0x7F, - 0x75,0x79,0x7B,0x85,0x85,0x86,0x8C,0x8A,0x81,0x75,0x75,0x82,0x88,0x81,0x86,0x8B, - 0x8C,0x89,0x78,0x77,0x78,0x7F,0x86,0x81,0x87,0x88,0x85,0x7B,0x71,0x76,0x81,0x84, - 0x7E,0x87,0x8B,0x8A,0x84,0x75,0x76,0x7A,0x82,0x86,0x84,0x8B,0x8C,0x86,0x7B,0x74, - 0x7A,0x88,0x86,0x85,0x8E,0x8C,0x90,0x80,0x77,0x78,0x79,0x86,0x83,0x84,0x8A,0x88, - 0x82,0x72,0x71,0x79,0x80,0x80,0x7C,0x84,0x86,0x85,0x7A,0x6F,0x72,0x75,0x80,0x81, - 0x7F,0x85,0x85,0x7C,0x73,0x70,0x7A,0x82,0x7E,0x88,0x88,0x8A,0x89,0x77,0x77,0x72, - 0x7A,0x86,0x82,0x88,0x8A,0x88,0x7D,0x72,0x79,0x81,0x88,0x85,0x87,0x8B,0x8D,0x8A, - 0x7C,0x76,0x89,0x86,0x88,0x8F,0x6D,0x80,0x8B,0x6D,0x5E,0x6A,0x7E,0x84,0x8C,0x96, - 0x95,0x94,0x92,0x92,0x92,0x8D,0x95,0x93,0x91,0x94,0x91,0x89,0x71,0x62,0x60,0x61, - 0x60,0x5D,0x62,0x63,0x6A,0x65,0x5C,0x64,0x68,0x76,0x81,0x7F,0x88,0x8D,0x8B,0x80, - 0x7D,0x86,0x91,0x9A,0xA8,0xB5,0xBB,0xBE,0xB1,0xA7,0xA1,0x9C,0xA1,0x9D,0x9B,0x9A, - 0x98,0x8A,0x76,0x71,0x71,0x7C,0x78,0x73,0x7B,0x7A,0x77,0x63,0x58,0x56,0x54,0x57, - 0x4B,0x4C,0x54,0x57,0x54,0x4D,0x50,0x5C,0x6C,0x6F,0x78,0x80,0x80,0x84,0x7B,0x79, - 0x73,0x6F,0x7A,0x82,0x8E,0x92,0x98,0x9B,0x9C,0xA8,0xAB,0xAF,0xAC,0xAC,0xB5,0xB2, - 0xB0,0xA4,0x98,0x93,0x91,0x96,0x95,0x93,0x91,0x8F,0x8E,0x87,0x7D,0x77,0x70,0x6A, - 0x63,0x5B,0x56,0x51,0x49,0x46,0x47,0x4D,0x54,0x58,0x60,0x63,0x66,0x61,0x5E,0x63, - 0x6A,0x7A,0x7D,0x84,0x8F,0x97,0x9F,0x9C,0xA0,0xA8,0xB2,0xBD,0xC3,0xC6,0xC6,0xC6, - 0xBD,0xB1,0xAA,0xA6,0xA2,0x9E,0x9A,0x94,0x90,0x85,0x7C,0x74,0x69,0x68,0x66,0x64, - 0x64,0x5F,0x59,0x4A,0x3E,0x39,0x3A,0x3E,0x3A,0x40,0x42,0x45,0x48,0x45,0x4C,0x52, - 0x5F,0x69,0x6E,0x78,0x7C,0x7C,0x7A,0x79,0x7D,0x83,0x8B,0x92,0x9C,0xA5,0xAB,0xA7, - 0xA5,0xA7,0xA7,0xAF,0xB5,0xB9,0xC2,0xC4,0xC0,0xB9,0xB2,0xB1,0xAE,0xA9,0xA4,0xA2, - 0xA1,0x9E,0x97,0x8F,0x88,0x80,0x7D,0x7A,0x71,0x6E,0x6C,0x66,0x5B,0x52,0x50,0x51, - 0x4F,0x50,0x52,0x51,0x55,0x4B,0x46,0x44,0x45,0x50,0x55,0x60,0x69,0x70,0x76,0x6F, - 0x6E,0x75,0x80,0x85,0x88,0x92,0x96,0x9D,0x9D,0x97,0x9B,0x9F,0xA7,0xAB,0xAC,0xB2, - 0xB2,0xB0,0xA5,0x9D,0xA0,0xA2,0xA2,0xA1,0xA3,0xA2,0xA2,0x98,0x8B,0x85,0x7F,0x80, - 0x7E,0x7D,0x7D,0x7F,0x7B,0x6C,0x65,0x63,0x6B,0x6B,0x6A,0x70,0x6E,0x71,0x69,0x5B, - 0x56,0x53,0x5E,0x62,0x65,0x6D,0x6F,0x70,0x67,0x62,0x63,0x6B,0x73,0x74,0x7C,0x81, - 0x85,0x83,0x7C,0x7B,0x7C,0x85,0x8D,0x90,0x97,0x9C,0x9A,0x90,0x8A,0x8B,0x92,0x96, - 0x97,0x9E,0x9F,0xA2,0x9C,0x91,0x8D,0x88,0x90,0x94,0x94,0x99,0x99,0x98,0x8D,0x84, - 0x81,0x81,0x87,0x85,0x88,0x8A,0x89,0x87,0x76,0x6F,0x69,0x6A,0x73,0x71,0x73,0x75, - 0x73,0x68,0x59,0x55,0x5A,0x61,0x65,0x6B,0x6F,0x74,0x73,0x67,0x63,0x61,0x6A,0x76, - 0x7B,0x82,0x89,0x8D,0x86,0x7A,0x76,0x7A,0x86,0x88,0x8E,0x95,0x95,0x9B,0x8F,0x87, - 0x84,0x83,0x8D,0x8F,0x95,0x98,0x9B,0x9A,0x8C,0x86,0x88,0x91,0x95,0x99,0xA0,0xA3, - 0xA8,0xA0,0x95,0x8E,0x8C,0x95,0x98,0x9A,0x9D,0x9E,0x9A,0x8B,0x81,0x79,0x7B,0x7E, - 0x7B,0x81,0x80,0x80,0x7A,0x6B,0x63,0x5C,0x60,0x62,0x63,0x66,0x67,0x6A,0x60,0x56, - 0x51,0x53,0x5A,0x5A,0x63,0x69,0x6F,0x71,0x65,0x5E,0x58,0x5A,0x61,0x65,0x6D,0x73, - 0x7C,0x79,0x6F,0x6B,0x6C,0x76,0x7A,0x80,0x8A,0x8F,0x96,0x8E,0x86,0x81,0x7F,0x88, - 0x8C,0x94,0x9A,0xA1,0xA5,0x9A,0x90,0x8B,0x91,0x96,0x98,0xA1,0xA4,0xAA,0xA6,0x9A, - 0x94,0x8E,0x91,0x95,0x99,0xA0,0xA3,0xA8,0x9F,0x93,0x8C,0x8A,0x8F,0x8F,0x96,0x9B, - 0x9C,0x9D,0x91,0x8A,0x80,0x7B,0x7E,0x7D,0x83,0x83,0x87,0x86,0x78,0x6F,0x67,0x6A, - 0x6A,0x6D,0x77,0x77,0x7C,0x75,0x6C,0x64,0x5A,0x5E,0x5E,0x64,0x69,0x6B,0x71,0x69, - 0x5F,0x56,0x56,0x5C,0x5C,0x66,0x6B,0x70,0x72,0x69,0x66,0x5E,0x5E,0x65,0x69,0x72, - 0x74,0x7D,0x7F,0x76,0x70,0x6B,0x73,0x76,0x7D,0x88,0x8B,0x94,0x8D,0x87,0x83,0x7D, - 0x85,0x87,0x91,0x97,0x9B,0xA6,0xA1,0x9A,0x90,0x90,0x97,0x97,0xA3,0xA7,0xAC,0xAF, - 0xA4,0x9E,0x91,0x90,0x94,0x95,0x9E,0x9D,0xA4,0xA6,0x9B,0x92,0x86,0x8A,0x8B,0x8E, - 0x98,0x96,0x9C,0x96,0x8C,0x86,0x79,0x7D,0x7A,0x7D,0x82,0x81,0x89,0x81,0x77,0x6D, - 0x64,0x68,0x64,0x6D,0x72,0x71,0x76,0x69,0x64,0x5A,0x54,0x5A,0x57,0x61,0x62,0x68, - 0x6E,0x66,0x61,0x55,0x56,0x5B,0x5B,0x69,0x6A,0x6F,0x70,0x67,0x67,0x5B,0x5D,0x60, - 0x62,0x6F,0x6F,0x7A,0x7A,0x74,0x6F,0x66,0x6D,0x6D,0x73,0x82,0x83,0x8E,0x89,0x86, - 0x84,0x7A,0x82,0x80,0x89,0x8F,0x91,0x9D,0x99,0x95,0x89,0x82,0x89,0x87,0x94,0x9B, - 0x9E,0xA5,0x9B,0x9D,0x94,0x8E,0x91,0x8E,0x9B,0x9B,0xA3,0xAA,0xA4,0x9F,0x91,0x90, - 0x92,0x92,0xA0,0xA1,0xA7,0xA8,0x9D,0x9D,0x8F,0x8F,0x8E,0x8D,0x97,0x94,0x9D,0x9D, - 0x96,0x8C,0x7B,0x7C,0x78,0x7B,0x86,0x83,0x8A,0x82,0x79,0x73,0x65,0x67,0x60,0x65, - 0x6C,0x6C,0x76,0x74,0x71,0x64,0x58,0x5C,0x59,0x64,0x6E,0x6F,0x78,0x6E,0x6D,0x65, - 0x5C,0x5F,0x59,0x64,0x67,0x6C,0x76,0x72,0x6F,0x60,0x59,0x5C,0x5A,0x6A,0x70,0x76, - 0x7C,0x73,0x75,0x6A,0x67,0x68,0x65,0x72,0x74,0x7E,0x85,0x85,0x83,0x74,0x73,0x74, - 0x78,0x88,0x8D,0x97,0x98,0x92,0x93,0x87,0x88,0x84,0x87,0x91,0x94,0x9F,0xA2,0xA3, - 0x9B,0x8D,0x8C,0x89,0x91,0x9F,0xA3,0xAE,0xA9,0xA5,0xA2,0x96,0x97,0x90,0x94,0x9A, - 0x9D,0xA8,0xA9,0xA8,0x9D,0x8F,0x8E,0x8B,0x94,0x9F,0xA2,0xA9,0xA2,0x9F,0x98,0x8E, - 0x8D,0x84,0x89,0x8C,0x90,0x98,0x98,0x97,0x89,0x7E,0x7C,0x77,0x80,0x86,0x8A,0x8F, - 0x86,0x83,0x7B,0x75,0x73,0x6A,0x6D,0x6D,0x73,0x7A,0x7B,0x79,0x6B,0x62,0x5E,0x5A, - 0x64,0x6B,0x70,0x73,0x6B,0x69,0x61,0x5E,0x59,0x51,0x56,0x57,0x60,0x68,0x6C,0x6B, - 0x5F,0x58,0x54,0x53,0x5F,0x66,0x6F,0x71,0x6D,0x6E,0x67,0x66,0x60,0x5B,0x61,0x64, - 0x6F,0x77,0x7E,0x7E,0x71,0x69,0x64,0x66,0x73,0x7C,0x86,0x89,0x86,0x87,0x80,0x7F, - 0x7B,0x77,0x7D,0x7F,0x8A,0x93,0x9A,0x99,0x8C,0x83,0x7E,0x7F,0x8C,0x94,0x9F,0xA0, - 0x9D,0x9D,0x96,0x96,0x91,0x8F,0x92,0x95,0xA0,0xA9,0xAF,0xAD,0xA0,0x98,0x92,0x95, - 0xA1,0xA8,0xB2,0xB0,0xAC,0xA9,0xA2,0xA0,0x98,0x96,0x95,0x96,0x9F,0xA4,0xA9,0xA3, - 0x95,0x8B,0x83,0x85,0x8F,0x96,0x9D,0x98,0x92,0x8E,0x88,0x87,0x7F,0x7C,0x7A,0x7B, - 0x84,0x89,0x8F,0x8A,0x7E,0x74,0x6B,0x6D,0x77,0x7E,0x84,0x81,0x7C,0x77,0x73,0x72, - 0x6B,0x67,0x64,0x65,0x6D,0x72,0x79,0x76,0x6B,0x60,0x56,0x56,0x60,0x68,0x6F,0x6D, - 0x69,0x66,0x62,0x63,0x5E,0x5B,0x58,0x59,0x61,0x68,0x70,0x70,0x67,0x5D,0x54,0x54, - 0x5F,0x6A,0x72,0x73,0x6F,0x6D,0x6B,0x6C,0x6A,0x67,0x65,0x65,0x6C,0x75,0x7E,0x82, - 0x7D,0x73,0x6B,0x68,0x72,0x7E,0x88,0x8B,0x85,0x83,0x80,0x83,0x82,0x7E,0x7D,0x7C, - 0x83,0x8C,0x95,0x9B,0x97,0x8E,0x84,0x80,0x89,0x95,0x9F,0xA3,0x9E,0x9C,0x97,0x9A, - 0x99,0x95,0x92,0x8E,0x92,0x98,0xA0,0xA6,0xA3,0x99,0x8E,0x86,0x8B,0x94,0x9C,0xA1, - 0x9B,0x97,0x92,0x92,0x92,0x8D,0x8A,0x83,0x84,0x89,0x90,0x98,0x97,0x90,0x85,0x7A, - 0x7C,0x85,0x8F,0x96,0x91,0x8E,0x89,0x89,0x8B,0x88,0x86,0x7F,0x7D,0x81,0x87,0x90, - 0x91,0x8B,0x81,0x74,0x72,0x7A,0x83,0x8C,0x87,0x83,0x7D,0x79,0x7D,0x7B,0x7B,0x74, - 0x6F,0x72,0x76,0x7F,0x82,0x7E,0x78,0x6B,0x67,0x6D,0x74,0x7F,0x7E,0x79,0x75,0x6F, - 0x74,0x76,0x76,0x73,0x6B,0x6B,0x6C,0x73,0x7A,0x7A,0x77,0x6D,0x64,0x6A,0x70,0x7A, - 0x7D,0x77,0x76,0x6F,0x73,0x78,0x78,0x79,0x71,0x6E,0x70,0x74,0x7E,0x82,0x80,0x7C, - 0x70,0x71,0x77,0x7C,0x86,0x81,0x80,0x7D,0x7A,0x82,0x82,0x81,0x7D,0x75,0x77,0x7B, - 0x82,0x8A,0x87,0x84,0x7A,0x73,0x7A,0x7D,0x86,0x88,0x83,0x82,0x7D,0x7F,0x83,0x80, - 0x7E,0x7A,0x76,0x7C,0x80,0x85,0x88,0x83,0x7D,0x77,0x79,0x80,0x86,0x8B,0x89,0x85, - 0x82,0x82,0x83,0x85,0x84,0x82,0x81,0x81,0x84,0x88,0x8A,0x87,0x83,0x7F,0x7F,0x85, - 0x88,0x8C,0x8B,0x89,0x87,0x85,0x84,0x85,0x85,0x84,0x83,0x81,0x82,0x84,0x84,0x83, - 0x81,0x80,0x80,0x82,0x83,0x85,0x86,0x85,0x83,0x81,0x80,0x82,0x84,0x84,0x84,0x84, - 0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x85,0x86,0x87,0x86,0x85,0x85,0x85, - 0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,0x84,0x84,0x84,0x84,0x83,0x83,0x82,0x82, - 0x81,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x81,0x80,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F,0x7E, - 0x7E,0x7E,0x7E,0x7D,0x7D,0x7D,0x7D,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80, - 0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7E, - 0x7D,0x7D,0x7D,0x7F,0x81,0x81,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x80,0x80,0x7F,0x7E,0x7D,0x7D, - 0x7F,0x7F,0x7E,0x7D,0x7C,0x7C,0x7B,0x7B,0x7B,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7D, - 0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E, - 0x7E,0x7E,0x7E,0x7E,0x7D,0x7E,0x80,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x80,0x81, - 0x81,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x81,0x81,0x81,0x82,0x82,0x81,0x80,0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x82,0x81, - 0x81,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81, - 0x80,0x80,0x7F,0x7E,0x7E,0x7F,0x7F,0x7E,0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x81, - 0x81,0x81,0x81,0x82,0x81,0x80,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x81,0x80,0x7F, - 0x7F,0x80,0x81,0x82,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x82, - 0x82,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81, - 0x82,0x82,0x82,0x81,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7E,0x7E,0x7E, - 0x7F,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x80,0x80,0x80,0x81,0x80,0x80, - 0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x82,0x82, - 0x82,0x82,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x80, - 0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80, - 0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x81,0x82,0x82,0x82,0x81,0x82,0x81,0x81, - 0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x80,0x80, - 0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7E,0x7E,0x7E, - 0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x82,0x82,0x81,0x81,0x80, - 0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x81,0x81,0x82, - 0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x80,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x81,0x80,0x80,0x7F,0x7E, - 0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7E,0x80,0x88,0x88,0x68,0x6C,0x85,0x8E,0x7D,0x7A, - 0x95,0x75,0x6D,0x83,0x7F,0x80,0x84,0x94,0x84,0x79,0x86,0x88,0x81,0x77,0x87,0x85, - 0x76,0x73,0x77,0x7F,0x80,0x81,0x87,0x86,0x78,0x7F,0x86,0x8C,0x86,0x86,0x87,0x74, - 0x7C,0x75,0x7C,0x87,0x8B,0x8B,0x75,0x7E,0x73,0x6C,0x90,0x81,0x68,0x82,0x7A,0x6A, - 0x6A,0x72,0x82,0x76,0x77,0x79,0x77,0x7A,0x75,0x7B,0x7A,0x7A,0x82,0x8B,0x8C,0x87, - 0x8B,0x8F,0x85,0x7F,0x88,0x83,0x77,0x84,0x92,0x8F,0x90,0x99,0xA5,0x9C,0x94,0x91, - 0x81,0x7D,0x89,0x8F,0x91,0x98,0x96,0x90,0x8F,0x8F,0x8E,0x7E,0x79,0x81,0x83,0x85, - 0x86,0x84,0x80,0x76,0x6F,0x73,0x6D,0x65,0x67,0x71,0x75,0x78,0x7C,0x71,0x6B,0x6C, - 0x6E,0x77,0x6F,0x64,0x67,0x6E,0x6A,0x66,0x6E,0x6F,0x6D,0x72,0x77,0x70,0x72,0x76, - 0x67,0x5C,0x6D,0x7C,0x7A,0x77,0x7D,0x81,0x76,0x74,0x73,0x74,0x7D,0x7D,0x75,0x77, - 0x85,0x86,0x8A,0x93,0xA2,0xAE,0x9F,0x9C,0xA8,0x98,0x90,0x9A,0x97,0x9C,0x97,0x8D, - 0x8A,0x91,0x88,0x78,0x7E,0x7D,0x86,0x87,0x7E,0x86,0x86,0x80,0x79,0x83,0x91,0x86, - 0x8B,0x88,0x8A,0x97,0x86,0x89,0x93,0x99,0x95,0x90,0x8F,0x89,0x95,0x8E,0x8B,0x8C, - 0x84,0x85,0x7D,0x8F,0x90,0x87,0x91,0x87,0x9A,0x94,0x8A,0x92,0x85,0x8D,0x80,0x79, - 0x7D,0x83,0x8E,0x89,0x90,0x8F,0x8B,0x7A,0x7D,0x8C,0x83,0x86,0x7A,0x7C,0x87,0x79, - 0x78,0x70,0x6D,0x70,0x63,0x5D,0x5F,0x65,0x6A,0x65,0x69,0x66,0x5E,0x55,0x56,0x67, - 0x60,0x5F,0x62,0x66,0x73,0x61,0x5F,0x64,0x63,0x6B,0x60,0x63,0x70,0x72,0x79,0x79, - 0x7C,0x74,0x66,0x5D,0x5E,0x6E,0x6B,0x70,0x79,0x7A,0x83,0x79,0x75,0x7A,0x7C,0x7F, - 0x7D,0x89,0x9F,0xA2,0xA6,0xA6,0xA1,0x9D,0x8E,0x87,0x88,0x96,0x9C,0x97,0x9C,0x99, - 0x9B,0x94,0x80,0x7F,0x84,0x84,0x87,0x86,0x93,0x9A,0x94,0x93,0x88,0x85,0x81,0x7F, - 0x85,0x8D,0xA1,0xA7,0x9F,0x9B,0x97,0x95,0x88,0x82,0x8D,0x8C,0x94,0x94,0x91,0x9C, - 0x95,0x8B,0x84,0x88,0x8C,0x89,0x85,0x88,0x9E,0xA2,0x9B,0x8C,0x87,0x90,0x84,0x7C, - 0x88,0x8E,0x95,0x90,0x8B,0x8F,0x82,0x7A,0x73,0x76,0x7B,0x70,0x67,0x6F,0x84,0x7B, - 0x6B,0x69,0x6C,0x6A,0x59,0x59,0x6A,0x6C,0x67,0x62,0x60,0x63,0x59,0x54,0x5B,0x65, - 0x63,0x5A,0x52,0x65,0x74,0x67,0x64,0x66,0x72,0x70,0x5F,0x6A,0x79,0x78,0x6D,0x63, - 0x6D,0x6D,0x66,0x6C,0x70,0x76,0x73,0x6E,0x6B,0x7A,0x8C,0x84,0x84,0x8A,0x93,0x92, - 0x88,0x94,0xA1,0xA5,0xA3,0xA0,0xA0,0x9C,0x96,0x97,0x96,0x93,0x8E,0x8A,0x83,0x89, - 0x9A,0x8F,0x88,0x88,0x89,0x89,0x79,0x80,0x8F,0x94,0x8E,0x87,0x8C,0x89,0x82,0x8E, - 0x97,0x9B,0x98,0x91,0x90,0x83,0x94,0x9E,0x92,0x98,0x8E,0x8E,0x8D,0x82,0x8B,0x91, - 0x94,0x91,0x86,0x8E,0x88,0x82,0x8F,0x96,0x95,0x87,0x85,0x85,0x8B,0x9C,0x95,0x90, - 0x8A,0x85,0x82,0x76,0x7C,0x87,0x86,0x82,0x77,0x74,0x6D,0x62,0x6B,0x71,0x73,0x6B, - 0x66,0x5F,0x54,0x67,0x70,0x68,0x65,0x5E,0x5C,0x5B,0x54,0x5E,0x64,0x66,0x67,0x60, - 0x63,0x5D,0x5B,0x64,0x68,0x6A,0x68,0x63,0x61,0x6B,0x7E,0x79,0x6A,0x6F,0x69,0x66, - 0x60,0x68,0x78,0x78,0x75,0x72,0x75,0x73,0x76,0x7B,0x89,0x92,0x8B,0x8A,0x8B,0x8A, - 0x9E,0xB2,0xAB,0xA9,0xA2,0x9A,0x94,0x89,0x8F,0x9A,0x9A,0x97,0x91,0x8A,0x89,0x81, - 0x82,0x8C,0x8E,0x86,0x7C,0x78,0x80,0x99,0x97,0x91,0x93,0x8C,0x8C,0x85,0x84,0x98, - 0x9F,0x96,0x95,0x8E,0x92,0x89,0x86,0x98,0x99,0x96,0x8C,0x89,0x82,0x90,0xA3,0x9C, - 0x9A,0x8F,0x8B,0x8D,0x7D,0x8A,0x98,0x93,0x96,0x8C,0x88,0x88,0x7B,0x7F,0x8C,0x8C, - 0x82,0x7A,0x71,0x77,0x8D,0x86,0x7D,0x7B,0x70,0x6D,0x63,0x5D,0x6F,0x75,0x6F,0x6B, - 0x65,0x62,0x58,0x55,0x65,0x69,0x5E,0x5C,0x5A,0x4D,0x5D,0x72,0x69,0x69,0x64,0x5A, - 0x5F,0x5A,0x5C,0x6E,0x73,0x75,0x70,0x6B,0x69,0x61,0x60,0x71,0x6E,0x67,0x6A,0x60, - 0x67,0x80,0x82,0x79,0x80,0x7D,0x7A,0x73,0x77,0x90,0x9C,0x9D,0x9E,0x9E,0x9C,0x9C, - 0x99,0xA8,0xAD,0xA4,0xA0,0x9A,0x8D,0x91,0xA8,0xA3,0x9B,0x94,0x8D,0x89,0x7A,0x7B, - 0x8E,0x8F,0x88,0x8A,0x83,0x84,0x83,0x81,0x8E,0x94,0x8F,0x8B,0x85,0x83,0x98,0xA2, - 0x99,0x96,0x94,0x8E,0x8A,0x82,0x91,0xA3,0x98,0x98,0x97,0x92,0x8E,0x86,0x8E,0x9A, - 0x98,0x90,0x8D,0x86,0x84,0x9A,0x9F,0x91,0x93,0x8A,0x82,0x7E,0x75,0x85,0x8D,0x83, - 0x82,0x7B,0x78,0x77,0x6D,0x74,0x7C,0x75,0x6D,0x67,0x5C,0x65,0x7D,0x71,0x67,0x6C, - 0x64,0x5F,0x53,0x59,0x6E,0x65,0x5D,0x66,0x62,0x5F,0x5A,0x5B,0x69,0x66,0x5F,0x60, - 0x5F,0x58,0x69,0x7B,0x70,0x70,0x6C,0x68,0x67,0x61,0x67,0x77,0x71,0x6D,0x74,0x73, - 0x74,0x70,0x78,0x81,0x82,0x7D,0x82,0x82,0x83,0xA3,0xAB,0xA4,0xAA,0xA4,0x9C,0x9A, - 0x95,0xA1,0xAA,0xA1,0x9F,0x9F,0x97,0x8F,0x8A,0x8B,0x92,0x8B,0x87,0x8A,0x7D,0x7E, - 0x97,0x91,0x8B,0x92,0x88,0x86,0x83,0x81,0x8F,0x91,0x8B,0x8F,0x92,0x8F,0x8B,0x8A, - 0x95,0x98,0x92,0x95,0x93,0x85,0x8F,0xA6,0xA0,0x99,0x9F,0x94,0x8D,0x88,0x84,0x91, - 0x92,0x8F,0x94,0x92,0x8C,0x85,0x83,0x85,0x86,0x7F,0x7D,0x84,0x72,0x74,0x8C,0x82, - 0x77,0x80,0x77,0x6D,0x68,0x63,0x6E,0x70,0x66,0x68,0x71,0x68,0x5D,0x61,0x61,0x63, - 0x5F,0x5A,0x60,0x59,0x59,0x6E,0x71,0x64,0x6C,0x6E,0x5B,0x5A,0x5D,0x5C,0x65,0x63, - 0x64,0x70,0x6D,0x66,0x68,0x6B,0x6A,0x68,0x66,0x6D,0x69,0x5F,0x77,0x8A,0x74,0x78, - 0x8C,0x7F,0x79,0x7F,0x82,0x8C,0x91,0x8E,0xA0,0xAB,0x9F,0xA1,0xAD,0xA7,0x9B,0x9C, - 0x9D,0x9C,0x91,0x8E,0xA4,0xA0,0x8C,0x93,0x9A,0x86,0x7C,0x84,0x84,0x83,0x7E,0x7E, - 0x8B,0x8D,0x80,0x8A,0x95,0x8C,0x85,0x85,0x86,0x89,0x82,0x84,0x9A,0x9A,0x8A,0x97, - 0xA4,0x91,0x8C,0x98,0x95,0x92,0x8E,0x90,0x95,0x94,0x90,0x93,0x9A,0x95,0x91,0x8C, - 0x89,0x89,0x8A,0x86,0x87,0x8A,0x83,0x85,0x87,0x83,0x7E,0x80,0x81,0x77,0x76,0x7A, - 0x73,0x72,0x75,0x72,0x6F,0x6C,0x6D,0x6B,0x69,0x69,0x67,0x68,0x67,0x66,0x64,0x61, - 0x61,0x63,0x63,0x63,0x61,0x64,0x64,0x62,0x64,0x65,0x63,0x61,0x65,0x66,0x67,0x68, - 0x6A,0x6C,0x69,0x6C,0x6D,0x6E,0x70,0x72,0x74,0x77,0x7C,0x7B,0x7C,0x81,0x83,0x84, - 0x87,0x8B,0x8C,0x8E,0x91,0x92,0x93,0x93,0x95,0x96,0x95,0x95,0x95,0x98,0x96,0x94, - 0x96,0x94,0x92,0x90,0x90,0x91,0x91,0x8E,0x91,0x8D,0x8A,0x8B,0x8A,0x8B,0x89,0x89, - 0x88,0x8A,0x88,0x86,0x87,0x86,0x88,0x88,0x86,0x8A,0x89,0x86,0x8B,0x8B,0x89,0x8A, - 0x8B,0x8A,0x8A,0x8B,0x8A,0x8B,0x8A,0x8A,0x8A,0x88,0x86,0x85,0x86,0x84,0x83,0x81, - 0x7F,0x80,0x7F,0x7D,0x7F,0x80,0x7D,0x7D,0x7C,0x7A,0x7A,0x7A,0x7A,0x7A,0x79,0x79, - 0x79,0x77,0x78,0x77,0x77,0x75,0x73,0x72,0x71,0x72,0x71,0x70,0x70,0x72,0x71,0x6F, - 0x71,0x72,0x70,0x71,0x72,0x71,0x72,0x73,0x74,0x75,0x76,0x75,0x77,0x75,0x75,0x77, - 0x76,0x78,0x78,0x77,0x77,0x79,0x79,0x79,0x7B,0x7D,0x7E,0x80,0x80,0x81,0x83,0x82, - 0x86,0x87,0x88,0x8B,0x89,0x8A,0x8B,0x8C,0x8D,0x8C,0x8B,0x8B,0x89,0x88,0x88,0x86, - 0x85,0x84,0x82,0x80,0x81,0x7F,0x81,0x81,0x7E,0x7F,0x7E,0x7D,0x7D,0x7F,0x7E,0x80, - 0x80,0x80,0x80,0x7F,0x80,0x80,0x82,0x82,0x82,0x81,0x82,0x80,0x80,0x80,0x80,0x82, - 0x81,0x80,0x81,0x81,0x82,0x84,0x83,0x83,0x84,0x84,0x84,0x86,0x86,0x86,0x87,0x85, - 0x85,0x85,0x85,0x85,0x85,0x86,0x83,0x81,0x81,0x7F,0x7E,0x80,0x7E,0x7F,0x7F,0x7F, - 0x80,0x7E,0x7D,0x7F,0x7F,0x7C,0x7D,0x7C,0x7E,0x7F,0x7D,0x7F,0x80,0x7F,0x7C,0x7C, - 0x7C,0x7D,0x7D,0x7D,0x7D,0x7B,0x7A,0x7C,0x78,0x78,0x7C,0x79,0x7A,0x7A,0x7B,0x7C, - 0x7D,0x7E,0x80,0x80,0x80,0x81,0x80,0x83,0x83,0x83,0x87,0x87,0x85,0x87,0x87,0x86, - 0x86,0x87,0x87,0x86,0x84,0x84,0x84,0x82,0x84,0x85,0x84,0x84,0x83,0x83,0x84,0x83, - 0x82,0x83,0x82,0x82,0x81,0x82,0x83,0x81,0x81,0x82,0x81,0x7E,0x7F,0x7F,0x7E,0x80, - 0x7F,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7E,0x7E,0x7F,0x80,0x7F,0x82,0x81,0x81,0x81, - 0x81,0x82,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x81,0x81,0x81,0x81,0x81,0x80,0x80, - 0x80,0x7E,0x7F,0x7D,0x7D,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7F,0x80,0x81, - 0x81,0x82,0x82,0x83,0x80,0x7F,0x81,0x7D,0x7E,0x80,0x7F,0x7E,0x7E,0x7C,0x7B,0x7C, - 0x7A,0x7A,0x7C,0x7D,0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x7F,0x81,0x83,0x83,0x84, - 0x84,0x83,0x84,0x83,0x82,0x83,0x83,0x83,0x84,0x84,0x82,0x82,0x81,0x81,0x81,0x81, - 0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x83,0x82,0x83,0x84,0x84,0x83,0x82, - 0x82,0x81,0x81,0x81,0x81,0x81,0x7F,0x80,0x7E,0x7E,0x7B,0x7B,0x7D,0x7B,0x7C,0x7C, - 0x7D,0x7D,0x7E,0x7D,0x7D,0x7E,0x7F,0x80,0x80,0x82,0x83,0x83,0x84,0x83,0x83,0x84, - 0x83,0x82,0x83,0x83,0x82,0x83,0x82,0x81,0x81,0x80,0x7F,0x7F,0x7D,0x7E,0x7F,0x7F, - 0x7F,0x7E,0x7F,0x7F,0x7F,0x80,0x80,0x80,0x82,0x82,0x82,0x81,0x83,0x82,0x83,0x83, - 0x81,0x81,0x80,0x80,0x80,0x80,0x7F,0x7E,0x7E,0x7D,0x7C,0x7C,0x7C,0x7B,0x7C,0x7D, - 0x7C,0x7C,0x7D,0x7C,0x7C,0x7E,0x7E,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x81, - 0x82,0x82,0x82,0x81,0x82,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x7F, - 0x7E,0x7F,0x7F,0x7F,0x81,0x80,0x7F,0x80,0x81,0x7F,0x80,0x81,0x80,0x81,0x81,0x80, - 0x80,0x82,0x80,0x80,0x7F,0x7E,0x7E,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7B,0x7B,0x7B, - 0x7B,0x7C,0x7C,0x7C,0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82, - 0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x7F,0x7E,0x7E,0x7E,0x7E, - 0x7D,0x7E,0x7E,0x7D,0x7E,0x7D,0x7D,0x7E,0x7E,0x7D,0x7F,0x80,0x7F,0x80,0x82,0x80, - 0x81,0x82,0x80,0x81,0x81,0x81,0x81,0x82,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7D, - 0x7D,0x7E,0x7D,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x81,0x81,0x81, - 0x82,0x81,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x82,0x81,0x81, - 0x80,0x80,0x7F,0x7F,0x7F,0x7E,0x7E,0x7D,0x7D,0x7D,0x7E,0x7E,0x7D,0x7D,0x7E,0x7E, - 0x7E,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x7F,0x80,0x81,0x80,0x80,0x81,0x81,0x80, - 0x80,0x80,0x7F,0x7F,0x7F,0x7E,0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7E,0x7F,0x7E,0x7F, - 0x81,0x81,0x81,0x82,0x83,0x82,0x83,0x83,0x82,0x83,0x83,0x83,0x82,0x83,0x82,0x81, - 0x82,0x82,0x81,0x82,0x82,0x81,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x7F,0x80,0x7F,0x81,0x80,0x81,0x82,0x82,0x93,0x85,0x86,0x85,0x64,0x7E,0x82,0x6B, - 0x69,0x76,0x7F,0x85,0x8A,0x8B,0x8C,0x88,0x95,0xA1,0xA0,0xA8,0x9F,0x91,0x88,0x75, - 0x88,0x91,0x6D,0x6B,0x75,0x68,0x59,0x59,0x54,0x51,0x5F,0x5E,0x5D,0x54,0x64,0x6F, - 0x6D,0x79,0x6F,0x97,0xAB,0x8C,0x95,0xA2,0x93,0xA7,0xA2,0x91,0xC3,0xA0,0xA1,0xB7, - 0x99,0xB5,0xAC,0x90,0x8E,0x8B,0x93,0x8F,0x7A,0x80,0x73,0x6C,0x7A,0x6B,0x86,0x91, - 0x6A,0x7C,0x87,0x77,0x87,0x67,0x44,0x68,0x6D,0x66,0x6C,0x59,0x50,0x59,0x60,0x62, - 0x64,0x7D,0x87,0x92,0x9D,0x92,0x89,0x8A,0x89,0x80,0x8F,0xA3,0xB3,0xB7,0x9D,0x99, - 0xB2,0xA4,0xA7,0xA4,0x8F,0x97,0x8D,0x88,0x7E,0x7E,0x81,0x6A,0x65,0x64,0x6C,0x6D, - 0x59,0x55,0x4B,0x4B,0x51,0x44,0x3D,0x40,0x47,0x3B,0x37,0x49,0x58,0x5A,0x5D,0x74, - 0x81,0x85,0xA2,0xB2,0xA0,0x9C,0x8C,0x8E,0x9F,0x9A,0x9E,0xA0,0xA2,0xBD,0xCC,0xD2, - 0xD2,0xC1,0xC5,0xC7,0xB1,0xB2,0xAA,0x89,0x81,0x7C,0x7A,0x8A,0x7F,0x6F,0x69,0x5E, - 0x5D,0x68,0x66,0x60,0x56,0x4B,0x67,0x69,0x5D,0x63,0x62,0x6E,0x6B,0x66,0x64,0x60, - 0x73,0x78,0x81,0x86,0x82,0x96,0xA0,0x9A,0xA4,0x96,0x8A,0x94,0x8B,0x9C,0x9D,0x8F, - 0x8F,0x8B,0x92,0x8E,0x91,0x94,0x87,0x97,0x94,0x91,0xA7,0x9C,0x91,0x96,0x97,0x95, - 0x91,0x8D,0x75,0x68,0x71,0x72,0x7C,0x6F,0x6B,0x81,0x82,0x7C,0x64,0x4C,0x51,0x57, - 0x63,0x6C,0x59,0x49,0x47,0x44,0x46,0x54,0x5A,0x4C,0x49,0x47,0x4A,0x4A,0x4E,0x5B, - 0x63,0x7F,0x92,0x94,0x88,0x72,0x7E,0x93,0x8E,0x9B,0xA2,0xA0,0xA9,0x8F,0x7E,0x84, - 0x80,0x7F,0xA2,0xBB,0xA8,0xA6,0xB1,0xB7,0xBC,0xB1,0xB7,0xBC,0xB9,0xB9,0xAD,0xA2, - 0x99,0x8D,0x94,0xAC,0xAF,0x9F,0x8C,0x80,0x80,0x82,0x8A,0x83,0x7D,0x83,0x92,0x7D, - 0x6E,0x6C,0x5C,0x6B,0x65,0x61,0x64,0x5E,0x5F,0x61,0x65,0x5E,0x60,0x6B,0x66,0x67, - 0x79,0x60,0x52,0x60,0x51,0x59,0x5E,0x59,0x66,0x70,0x72,0x70,0x72,0x70,0x78,0x73, - 0x79,0x81,0x83,0x87,0x8D,0x98,0x9A,0xA1,0x99,0x91,0x9D,0x9E,0x8F,0x8B,0x90,0x8D, - 0x8B,0x7C,0x80,0x95,0x8D,0x87,0x84,0x7F,0x76,0x73,0x71,0x65,0x73,0x78,0x78,0x8C, - 0x90,0x8F,0x97,0x95,0x88,0x83,0x78,0x6A,0x6C,0x69,0x6C,0x79,0x81,0x70,0x69,0x70, - 0x6A,0x73,0x79,0x6B,0x6B,0x74,0x78,0x78,0x7B,0x7C,0x76,0x7E,0x7A,0x77,0x8C,0x8B, - 0x8C,0x84,0x80,0x92,0x8F,0x90,0x93,0x8F,0x8B,0x87,0x91,0x91,0x91,0xAB,0xAD,0x9B, - 0x9F,0xAC,0xA7,0xA0,0x99,0x93,0xAF,0xBC,0xB2,0xB7,0xAA,0xA4,0xA9,0xAC,0xAA,0x97, - 0x8E,0x96,0x99,0x91,0x84,0x90,0x95,0x84,0x7D,0x74,0x6D,0x53,0x43,0x45,0x41,0x49, - 0x49,0x51,0x60,0x67,0x60,0x59,0x58,0x49,0x4F,0x55,0x53,0x51,0x50,0x57,0x51,0x46, - 0x43,0x4F,0x54,0x52,0x5E,0x5C,0x5A,0x63,0x5A,0x64,0x71,0x6B,0x7B,0x90,0x9E,0xA7, - 0xA2,0xA6,0x9F,0x9D,0xA9,0xAE,0xB2,0xAC,0xAB,0xAD,0xA4,0x9B,0x99,0xA0,0xA4,0x8E, - 0x8E,0x93,0x7F,0x88,0x8E,0x83,0x87,0x84,0x89,0xA2,0x9E,0x86,0x8B,0x8E,0x8C,0xA1, - 0x9F,0x96,0x99,0x90,0x9F,0xAC,0x9E,0x94,0x8E,0x95,0x95,0x87,0x88,0x89,0x81,0x80, - 0x81,0x86,0x85,0x83,0x81,0x88,0x89,0x82,0x86,0x85,0x82,0x76,0x6F,0x76,0x6D,0x77, - 0x91,0x87,0x7A,0x64,0x70,0x8A,0x75,0x6B,0x5E,0x4D,0x49,0x54,0x5F,0x5C,0x5F,0x58, - 0x59,0x69,0x67,0x5B,0x5B,0x58,0x5E,0x5F,0x5C,0x6C,0x6D,0x69,0x6C,0x72,0x74,0x70, - 0x81,0x8C,0x7A,0x75,0x7E,0x7A,0x7B,0x82,0x84,0x84,0x89,0x90,0x99,0xA9,0xA5,0xAB, - 0xB8,0xB6,0xB6,0xAF,0xA8,0xAB,0xA7,0xA5,0xA5,0x99,0x8B,0x87,0x9D,0xAC,0x99,0x93, - 0x98,0x89,0x80,0x83,0x82,0x7B,0x79,0x7C,0x88,0x86,0x75,0x75,0x7B,0x80,0x7C,0x73, - 0x7B,0x8D,0x89,0x87,0x81,0x6E,0x72,0x70,0x78,0x7D,0x63,0x6A,0x77,0x72,0x6F,0x68, - 0x63,0x6C,0x72,0x6D,0x7E,0x7C,0x64,0x69,0x73,0x78,0x7C,0x74,0x7B,0x86,0x7C,0x83, - 0x84,0x72,0x6A,0x6D,0x7C,0x78,0x6D,0x73,0x70,0x6A,0x69,0x69,0x6C,0x74,0x72,0x71, - 0x75,0x6C,0x65,0x6D,0x7B,0x7D,0x6E,0x6C,0x77,0x79,0x7E,0x83,0x7D,0x76,0x73,0x78, - 0x89,0x80,0x6F,0x78,0x80,0x83,0x84,0x84,0x89,0x8D,0x94,0x9D,0xAC,0xAD,0xA6,0xAE, - 0xB3,0xB8,0xAB,0xA3,0xB5,0xB5,0xA9,0xAB,0xAA,0xA5,0x9A,0x95,0xA0,0x90,0x7F,0x88, - 0x85,0x7A,0x74,0x72,0x7C,0x7E,0x77,0x80,0x87,0x80,0x79,0x73,0x75,0x77,0x6F,0x67, - 0x76,0x7B,0x6F,0x74,0x74,0x79,0x7B,0x7C,0x89,0x7E,0x74,0x7D,0x82,0x6E,0x65,0x6A, - 0x6E,0x74,0x70,0x73,0x7F,0x7B,0x7B,0x85,0x81,0x7A,0x6D,0x67,0x72,0x72,0x6C,0x67, - 0x61,0x63,0x67,0x70,0x7C,0x71,0x6B,0x7C,0x79,0x66,0x59,0x5F,0x67,0x64,0x69,0x75, - 0x7D,0x76,0x7A,0x7C,0x6E,0x69,0x60,0x66,0x71,0x68,0x6C,0x69,0x61,0x6B,0x6F,0x82, - 0x8C,0x76,0x7B,0x8D,0x85,0x77,0x76,0x7D,0x87,0x8F,0x90,0x9E,0xA5,0xA8,0xB6,0xBB, - 0xB7,0xAF,0xAE,0xB6,0xBE,0xB4,0xAA,0xAE,0xAB,0xA2,0xA5,0xBA,0xAC,0x9D,0xA6,0xA1, - 0x9A,0x8C,0x8B,0x91,0x84,0x82,0x90,0x90,0x8B,0x8B,0x89,0x87,0x83,0x7C,0x7C,0x88, - 0x86,0x81,0x87,0x8A,0x87,0x7B,0x89,0x96,0x81,0x88,0x92,0x86,0x79,0x73,0x83,0x80, - 0x77,0x83,0x88,0x85,0x7B,0x7B,0x78,0x70,0x6C,0x5F,0x6B,0x70,0x66,0x68,0x68,0x68, - 0x5C,0x6D,0x7E,0x70,0x5F,0x5B,0x66,0x67,0x4C,0x43,0x6E,0x51,0x3A,0x5C,0x57,0x55, - 0x5A,0x6B,0x63,0x45,0x49,0x59,0x58,0x49,0x54,0x53,0x44,0x42,0x57,0x71,0x68,0x6A, - 0x7B,0x7A,0x62,0x5D,0x68,0x6E,0x6E,0x77,0x8A,0x8B,0x8F,0x94,0x9C,0xA9,0xAB,0xAC, - 0xAC,0xB2,0xBC,0xB9,0xB7,0xB4,0xA9,0xB2,0xC8,0xBC,0xB0,0xBA,0xAF,0xA6,0xA1,0x94, - 0x9D,0x98,0x86,0x94,0xA1,0x97,0x8D,0x8C,0x90,0x97,0x95,0x8A,0x8A,0x90,0x96,0x99, - 0x9C,0x9C,0x98,0xB1,0xB4,0xAD,0xB4,0xAE,0xA8,0x9B,0x95,0x9A,0x95,0x8B,0x98,0xA1, - 0x95,0x96,0x93,0x90,0x93,0x84,0x81,0x85,0x7D,0x7D,0x75,0x77,0x75,0x68,0x80,0x84, - 0x77,0x7E,0x7F,0x79,0x6E,0x65,0x62,0x61,0x55,0x56,0x64,0x60,0x56,0x51,0x54,0x60, - 0x58,0x4C,0x4C,0x49,0x46,0x40,0x40,0x42,0x3A,0x51,0x60,0x4D,0x54,0x54,0x4F,0x57, - 0x4B,0x4C,0x57,0x48,0x48,0x59,0x5C,0x64,0x68,0x66,0x72,0x84,0x89,0x83,0x82,0x8A, - 0x90,0x8E,0x96,0x93,0x90,0xA1,0x9C,0x94,0x99,0x97,0x92,0x96,0x92,0x90,0x96,0x8A, - 0x83,0x8D,0x8D,0x8D,0x8C,0x83,0x87,0x88,0x89,0x8A,0x85,0x8B,0x8D,0x8F,0x99,0x92, - 0x98,0xA9,0xA0,0xA2,0xAB,0xA7,0xA7,0xA8,0xA2,0xAA,0xA8,0x96,0x9D,0xA1,0xA2,0xB0, - 0xA6,0xA3,0xAA,0xA0,0xA4,0xA3,0x99,0x9A,0x8E,0x92,0x98,0x87,0x95,0x9A,0x8D,0x96, - 0x94,0x93,0x92,0x83,0x82,0x83,0x72,0x70,0x76,0x74,0x78,0x74,0x71,0x76,0x6D,0x66, - 0x67,0x60,0x5E,0x56,0x51,0x58,0x4A,0x53,0x6E,0x64,0x65,0x6F,0x6B,0x70,0x64,0x60, - 0x70,0x67,0x5D,0x6C,0x72,0x73,0x75,0x76,0x86,0x8B,0x83,0x8B,0x8D,0x87,0x88,0x8B, - 0x90,0x86,0x86,0x9B,0x95,0x94,0x9D,0x8F,0x87,0x79,0x72,0x7F,0x6F,0x60,0x6A,0x70, - 0x72,0x72,0x70,0x7D,0x7B,0x6F,0x79,0x74,0x6C,0x6D,0x70,0x7A,0x71,0x76,0x8C,0x81, - 0x84,0x96,0x92,0x8D,0x83,0x81,0x8D,0x82,0x7A,0x87,0x84,0x87,0x91,0x92,0x95,0x8D, - 0x88,0x8F,0x88,0x81,0x7E,0x80,0x84,0x77,0x82,0x94,0x84,0x87,0x95,0x90,0x8A,0x7E, - 0x79,0x7B,0x6E,0x6D,0x7B,0x78,0x71,0x73,0x7B,0x7E,0x74,0x71,0x73,0x68,0x62,0x61, - 0x60,0x60,0x55,0x61,0x78,0x66,0x68,0x78,0x6F,0x66,0x5F,0x67,0x6A,0x5B,0x65,0x76, - 0x6F,0x71,0x80,0x88,0x8C,0x84,0x8B,0x93,0x8A,0x8E,0x94,0x93,0x98,0x93,0xA2,0xBB, - 0xA6,0xA2,0xB7,0xAB,0xA1,0x9D,0x9A,0x96,0x82,0x83,0x90,0x81,0x7B,0x84,0x89,0x88, - 0x7F,0x80,0x7E,0x70,0x73,0x79,0x74,0x74,0x6E,0x76,0x93,0x83,0x7F,0x9C,0x90,0x86, - 0x8D,0x8C,0x85,0x79,0x7F,0x8D,0x87,0x82,0x91,0x96,0x91,0x97,0x9B,0x96,0x86,0x85, - 0x8B,0x82,0x82,0x82,0x77,0x8E,0x92,0x7F,0x95,0x92,0x83,0x85,0x7D,0x7A,0x70,0x6C, - 0x7A,0x76,0x6B,0x78,0x80,0x7B,0x7D,0x7F,0x7A,0x71,0x6B,0x6F,0x68,0x64,0x6D,0x62, - 0x67,0x7E,0x6C,0x72,0x85,0x74,0x72,0x75,0x6F,0x6D,0x62,0x66,0x76,0x70,0x71,0x82, - 0x88,0x85,0x8C,0x92,0x8C,0x8A,0x8B,0x89,0x84,0x89,0x90,0x84,0x92,0xA0,0x8B,0x99, - 0xA5,0x90,0x8C,0x91,0x89,0x7E,0x79,0x80,0x80,0x76,0x7A,0x82,0x7D,0x80,0x89,0x82, - 0x79,0x79,0x79,0x72,0x6C,0x75,0x76,0x6A,0x7E,0x8B,0x76,0x83,0x95,0x82,0x7D,0x88, - 0x82,0x75,0x74,0x7E,0x7D,0x73,0x7E,0x8C,0x84,0x89,0x94,0x8C,0x85,0x86,0x85,0x7F, - 0x7D,0x7D,0x80,0x77,0x7F,0x97,0x7D,0x7C,0x99,0x88,0x7A,0x8A,0x85,0x72,0x74,0x7C, - 0x79,0x72,0x7B,0x82,0x7B,0x7D,0x89,0x83,0x7C,0x84,0x82,0x77,0x78,0x79,0x7A,0x75, - 0x73,0x8B,0x81,0x71,0x8F,0x88,0x70,0x7F,0x81,0x6F,0x73,0x7A,0x75,0x71,0x78,0x7F, - 0x7B,0x7E,0x8A,0x87,0x80,0x8C,0x8C,0x83,0x85,0x88,0x86,0x8A,0x84,0x85,0x9A,0x89, - 0x87,0x9E,0x8A,0x82,0x96,0x88,0x7A,0x82,0x7D,0x78,0x7B,0x7C,0x7E,0x7C,0x7F,0x83, - 0x7E,0x7F,0x83,0x7A,0x77,0x7C,0x7C,0x79,0x7B,0x76,0x6F,0x87,0x83,0x74,0x8A,0x86, - 0x76,0x86,0x85,0x74,0x7C,0x7E,0x78,0x79,0x7D,0x81,0x7D,0x7D,0x88,0x86,0x81,0x8A, - 0x8A,0x82,0x85,0x84,0x80,0x83,0x84,0x7D,0x77,0x89,0x84,0x77,0x8D,0x88,0x75,0x80, - 0x84,0x72,0x76,0x7E,0x71,0x6F,0x7A,0x79,0x75,0x7A,0x7E,0x7D,0x7C,0x82,0x81,0x7E, - 0x80,0x7F,0x7D,0x7F,0x7E,0x7C,0x77,0x80,0x86,0x7A,0x86,0x8D,0x7E,0x7F,0x88,0x7A, - 0x78,0x81,0x7B,0x78,0x80,0x7F,0x7C,0x82,0x86,0x86,0x88,0x8B,0x89,0x8A,0x8D,0x8A, - 0x87,0x87,0x84,0x83,0x86,0x80,0x80,0x8A,0x84,0x83,0x8E,0x85,0x81,0x86,0x7E,0x79, - 0x7B,0x79,0x76,0x7A,0x7C,0x78,0x7C,0x80,0x7E,0x7E,0x84,0x82,0x80,0x83,0x81,0x7D, - 0x7E,0x7F,0x79,0x7B,0x85,0x7E,0x7F,0x8B,0x84,0x7F,0x87,0x81,0x76,0x7B,0x7C,0x79, - 0x7C,0x7F,0x7D,0x81,0x84,0x83,0x86,0x87,0x86,0x88,0x8A,0x87,0x85,0x85,0x83,0x82, - 0x82,0x83,0x82,0x7F,0x81,0x82,0x7F,0x7F,0x7C,0x79,0x7A,0x7B,0x79,0x79,0x7A,0x7B, - 0x7E,0x7F,0x7F,0x80,0x82,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x85,0x83,0x81, - 0x85,0x86,0x83,0x84,0x85,0x82,0x82,0x83,0x7F,0x7D,0x7E,0x7F,0x7F,0x81,0x80,0x7F, - 0x82,0x82,0x82,0x82,0x82,0x81,0x83,0x83,0x82,0x81,0x81,0x80,0x81,0x81,0x7F,0x7E, - 0x7E,0x7D,0x7D,0x7E,0x7E,0x7D,0x7B,0x7B,0x7A,0x77,0x77,0x7A,0x79,0x7A,0x7B,0x7B, - 0x7B,0x7C,0x7F,0x80,0x7F,0x80,0x82,0x81,0x81,0x82,0x81,0x81,0x80,0x82,0x80,0x80, - 0x82,0x81,0x81,0x81,0x81,0x81,0x80,0x7F,0x80,0x80,0x7F,0x7E,0x7F,0x80,0x80,0x80, - 0x80,0x80,0x81,0x81,0x80,0x80,0x82,0x82,0x82,0x82,0x7F,0x7F,0x7F,0x81,0x80,0x7E, - 0x7F,0x7F,0x7D,0x7C,0x7D,0x7E,0x7E,0x7E,0x80,0x7F,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F, - 0x80,0x7F,0x7D,0x80,0x82,0x81,0x7F,0x7F,0x7F,0x80,0x84,0x83,0x7F,0x80,0x85,0x84, - 0x82,0x81,0x7F,0x81,0x83,0x80,0x7C,0x7A,0x7B,0x7F,0x7F,0x7D,0x7E,0x7F,0x80,0x7C, - 0x7B,0x7D,0x7E,0x7F,0x7F,0x82,0x82,0x7D,0x80,0x83,0x82,0x83,0x7F,0x80,0x83,0x80, - 0x7D,0x7F,0x80,0x7D,0x7F,0x7D,0x7F,0x7F,0x80,0x82,0x83,0x80,0x7D,0x7B,0x77,0x79, - 0x7A,0x7D,0x7D,0x7E,0x7F,0x7C,0x7F,0x82,0x7F,0x82,0x86,0x84,0x82,0x84,0x8B,0x85, - 0x83,0x86,0x89,0x81,0x7F,0x85,0x81,0x80,0x82,0x82,0x82,0x83,0x81,0x80,0x83,0x7F, - 0x7C,0x7C,0x7C,0x7B,0x74,0x7B,0x81,0x7B,0x7F,0x80,0x7D,0x7E,0x7E,0x7F,0x81,0x80, - 0x7B,0x82,0x82,0x83,0x85,0x84,0x87,0x84,0x84,0x84,0x83,0x7F,0x84,0x88,0x83,0x86, - 0x85,0x81,0x85,0x86,0x82,0x80,0x83,0x82,0x7D,0x81,0x85,0x7F,0x83,0x86,0x7E,0x7F, - 0x81,0x7D,0x7E,0x82,0x7D,0x7F,0x81,0x7B,0x7A,0x7F,0x80,0x7E,0x80,0x7F,0x7F,0x7E, - 0x7C,0x81,0x80,0x82,0x84,0x83,0x80,0x80,0x81,0x80,0x82,0x81,0x7D,0x7E,0x80,0x81, - 0x82,0x87,0x83,0x7D,0x81,0x7C,0x7D,0x7F,0x81,0x7F,0x80,0x80,0x81,0x86,0x81,0x83, - 0x82,0x7F,0x7E,0x7D,0x82,0x82,0x82,0x82,0x81,0x81,0x82,0x84,0x80,0x82,0x81,0x7E, - 0x81,0x7D,0x7E,0x7F,0x7F,0x82,0x7E,0x7F,0x80,0x7E,0x7C,0x7E,0x7E,0x7E,0x7E,0x80, - 0x83,0x82,0x81,0x81,0x80,0x7F,0x83,0x81,0x84,0x85,0x81,0x83,0x86,0x82,0x83,0x85, - 0x83,0x83,0x83,0x83,0x81,0x85,0x85,0x81,0x83,0x83,0x7D,0x7D,0x80,0x7D,0x7E,0x80, - 0x7C,0x7D,0x7F,0x80,0x7F,0x7B,0x7C,0x7F,0x7C,0x7D,0x7D,0x7E,0x7E,0x80,0x7E,0x80, - 0x7F,0x7E,0x81,0x82,0x83,0x80,0x80,0x80,0x7E,0x7C,0x7F,0x7F,0x7D,0x82,0x81,0x7D, - 0x82,0x81,0x80,0x83,0x7F,0x81,0x80,0x82,0x80,0x7F,0x81,0x7F,0x83,0x80,0x82,0x86, - 0x80,0x83,0x83,0x81,0x84,0x85,0x84,0x82,0x81,0x81,0x7F,0x82,0x80,0x82,0x83,0x83, - 0x84,0x80,0x84,0x83,0x7D,0x80,0x7D,0x7C,0x7E,0x80,0x81,0x7D,0x7D,0x82,0x7F,0x7C, - 0x80,0x80,0x7E,0x80,0x7E,0x7C,0x7E,0x7E,0x7E,0x7E,0x80,0x81,0x81,0x81,0x81,0x83, - 0x84,0x86,0x83,0x81,0x85,0x83,0x81,0x80,0x82,0x84,0x7F,0x82,0x81,0x7E,0x82,0x80, - 0x7E,0x7C,0x7C,0x80,0x7E,0x7E,0x7F,0x7E,0x80,0x81,0x7C,0x7D,0x80,0x7C,0x7F,0x7F, - 0x7F,0x82,0x83,0x85,0x82,0x82,0x84,0x84,0x82,0x80,0x84,0x80,0x80,0x83,0x80,0x80, - 0x80,0x81,0x80,0x7F,0x81,0x7E,0x7E,0x80,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x7C,0x7A, - 0x7F,0x80,0x80,0x7F,0x81,0x81,0x80,0x80,0x7D,0x80,0x81,0x82,0x82,0x81,0x81,0x83, - 0x81,0x81,0x82,0x80,0x80,0x80,0x81,0x82,0x81,0x81,0x82,0x80,0x80,0x80,0x7E,0x81, - 0x7F,0x7C,0x7D,0x7B,0x7D,0x7C,0x7F,0x7F,0x7D,0x81,0x81,0x80,0x82,0x7F,0x7E,0x7F, - 0x7F,0x7F,0x80,0x82,0x7F,0x82,0x82,0x82,0x83,0x81,0x81,0x80,0x80,0x81,0x7F,0x7E, - 0x80,0x80,0x83,0x82,0x81,0x82,0x81,0x7D,0x7E,0x7E,0x7D,0x7E,0x7E,0x7F,0x7E,0x7F, - 0x80,0x7F,0x7E,0x7B,0x7F,0x80,0x7E,0x7F,0x80,0x81,0x7E,0x7F,0x7F,0x7F,0x81,0x82, - 0x81,0x7F,0x81,0x84,0x82,0x82,0x81,0x81,0x83,0x80,0x7F,0x7D,0x7F,0x80,0x7C,0x7E, - 0x7E,0x7F,0x82,0x80,0x7F,0x80,0x7E,0x80,0x7F,0x7D,0x7D,0x80,0x80,0x7E,0x80,0x82, - 0x81,0x80,0x83,0x82,0x7F,0x81,0x83,0x7E,0x80,0x83,0x7D,0x81,0x83,0x7F,0x81,0x82, - 0x81,0x82,0x82,0x81,0x7F,0x82,0x83,0x80,0x7E,0x80,0x80,0x7D,0x80,0x7F,0x7E,0x7F, - 0x80,0x81,0x81,0x81,0x81,0x80,0x7E,0x7E,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7F, - 0x81,0x81,0x81,0x81,0x80,0x81,0x81,0x7E,0x81,0x81,0x7D,0x7E,0x7F,0x7C,0x7C,0x7F, - 0x7E,0x7D,0x7E,0x7D,0x7D,0x80,0x7E,0x7F,0x81,0x7F,0x81,0x81,0x81,0x7E,0x81,0x82, - 0x7F,0x83,0x80,0x81,0x83,0x80,0x81,0x84,0x83,0x83,0x81,0x82,0x82,0x80,0x81,0x80, - 0x80,0x82,0x80,0x80,0x83,0x81,0x7D,0x7F,0x7F,0x7D,0x80,0x82,0x7C,0x7F,0x80,0x7B, - 0x7E,0x81,0x7F,0x7E,0x7F,0x7F,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x82,0x82,0x81, - 0x7F,0x81,0x80,0x7D,0x7F,0x81,0x80,0x7F,0x82,0x7F,0x7F,0x82,0x81,0x7E,0x80,0x81, - 0x7C,0x81,0x7E,0x7F,0x80,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x80,0x7D,0x80,0x7F, - 0x7F,0x7F,0x80,0x82,0x81,0x80,0x7F,0x81,0x7F,0x7F,0x81,0x7F,0x7E,0x80,0x7F,0x7E, - 0x7F,0x7F,0x81,0x80,0x7E,0x81,0x81,0x7F,0x81,0x80,0x7F,0x81,0x81,0x7F,0x82,0x81, - 0x81,0x83,0x80,0x81,0x82,0x81,0x81,0x81,0x80,0x80,0x81,0x81,0x80,0x7F,0x82,0x81, - 0x81,0x83,0x81,0x82,0x82,0x81,0x7F,0x81,0x81,0x81,0x81,0x80,0x81,0x7F,0x80,0x7F, - 0x7F,0x7F,0x7F,0x7E,0x80,0x80,0x7F,0x81,0x81,0x82,0x82,0x7E,0x7E,0x80,0x7E,0x80, - 0x81,0x81,0x81,0x80,0x83,0x81,0x80,0x81,0x82,0x7F,0x82,0x82,0x7E,0x81,0x7F,0x7F, - 0x80,0x81,0x7E,0x7E,0x81,0x7F,0x83,0x81,0x81,0x81,0x80,0x82,0x80,0x80,0x81,0x7E, - 0x80,0x85,0x7F,0x80,0x84,0x81,0x82,0x83,0x82,0x81,0x82,0x81,0x81,0x83,0x82,0x81, - 0x83,0x87,0x8F,0x80,0x68,0x7A,0x8B,0x8B,0x76,0x87,0x8C,0x6C,0x7C,0x82,0x7D,0x81, - 0x8B,0x90,0x7E,0x81,0x89,0x86,0x79,0x7B,0x8B,0x7C,0x71,0x75,0x7D,0x83,0x81,0x82, - 0x89,0x7C,0x72,0x7C,0x76,0x79,0x7C,0x7F,0x81,0x84,0x85,0x81,0x88,0x89,0x8C,0x89, - 0x81,0x85,0x86,0x85,0x87,0x81,0x81,0x85,0x7E,0x7F,0x85,0x81,0x7C,0x81,0x7A,0x7A, - 0x83,0x7B,0x7A,0x7B,0x7A,0x78,0x77,0x7B,0x81,0x88,0x86,0x7B,0x7B,0x85,0x84,0x82, - 0x8D,0x89,0x81,0x84,0x86,0x83,0x80,0x85,0x85,0x81,0x80,0x7F,0x7F,0x83,0x86,0x7E, - 0x78,0x7B,0x7E,0x7A,0x7A,0x80,0x7A,0x79,0x7C,0x7F,0x80,0x7C,0x78,0x7C,0x80,0x79, - 0x7D,0x7E,0x84,0x89,0x84,0x82,0x7E,0x7F,0x83,0x86,0x88,0x86,0x7F,0x80,0x86,0x85, - 0x85,0x84,0x81,0x7E,0x79,0x7C,0x7D,0x7C,0x80,0x7F,0x7A,0x7A,0x7D,0x7E,0x81,0x80, - 0x7F,0x7F,0x7A,0x7E,0x83,0x81,0x81,0x7F,0x80,0x81,0x82,0x83,0x7F,0x7F,0x82,0x81, - 0x80,0x84,0x82,0x84,0x83,0x81,0x80,0x7E,0x80,0x80,0x80,0x7C,0x7C,0x7F,0x81,0x80, - 0x7F,0x82,0x83,0x82,0x7F,0x7C,0x7B,0x7A,0x7C,0x7F,0x7F,0x7D,0x7C,0x7F,0x80,0x80, - 0x7E,0x82,0x84,0x7E,0x7C,0x7E,0x81,0x7F,0x7C,0x7F,0x81,0x81,0x81,0x80,0x84,0x86, - 0x82,0x80,0x7C,0x7C,0x7D,0x7C,0x7D,0x7B,0x7B,0x7B,0x7E,0x7F,0x7F,0x82,0x83,0x81, - 0x82,0x83,0x81,0x81,0x81,0x7F,0x80,0x81,0x83,0x81,0x84,0x86,0x82,0x81,0x7F,0x80, - 0x81,0x7F,0x7E,0x7E,0x7E,0x7C,0x7C,0x80,0x81,0x82,0x81,0x81,0x83,0x7E,0x7E,0x80, - 0x81,0x80,0x80,0x82,0x82,0x80,0x81,0x80,0x81,0x80,0x80,0x7E,0x7F,0x7F,0x7D,0x7E, - 0x7E,0x7E,0x7F,0x7F,0x80,0x82,0x80,0x7D,0x7D,0x7E,0x7F,0x7F,0x7E,0x7E,0x80,0x80, - 0x7F,0x7F,0x81,0x83,0x7F,0x7F,0x7F,0x7D,0x7E,0x7F,0x82,0x82,0x83,0x82,0x80,0x80, - 0x82,0x82,0x80,0x81,0x82,0x7F,0x7E,0x80,0x80,0x80,0x81,0x82,0x80,0x80,0x81,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x82,0x80,0x7E,0x81,0x81,0x80,0x80,0x81,0x7F, - 0x7E,0x80,0x7E,0x80,0x82,0x82,0x82,0x80,0x7E,0x7F,0x82,0x80,0x7C,0x7F,0x7E,0x7F, - 0x80,0x7E,0x7E,0x7F,0x81,0x81,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x7F,0x80,0x81,0x81, - 0x81,0x83,0x80,0x7F,0x80,0x7E,0x81,0x80,0x81,0x7F,0x7D,0x80,0x7F,0x81,0x82,0x81, - 0x82,0x81,0x7F,0x80,0x82,0x81,0x83,0x82,0x80,0x82,0x82,0x81,0x83,0x82,0x82,0x83, - 0x81,0x83,0x81,0x7F,0x82,0x83,0x81,0x81,0x81,0x82,0x81,0x80,0x83,0x81,0x7F,0x80, - 0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x81,0x7F,0x81,0x83,0x80,0x80,0x80,0x82, - 0x81,0x81,0x82,0x80,0x7F,0x82,0x82,0x82,0x84,0x82,0x7F,0x80,0x80,0x7F,0x80,0x81, - 0x81,0x81,0x7F,0x80,0x81,0x81,0x81,0x81,0x81,0x7F,0x7F,0x80,0x7F,0x7E,0x82,0x80, - 0x7E,0x7F,0x7F,0x81,0x82,0x83,0x80,0x82,0x83,0x80,0x81,0x82,0x82,0x81,0x81,0x82, - 0x81,0x80,0x82,0x82,0x83,0x84,0x81,0x81,0x82,0x7F,0x80,0x81,0x7D,0x7D,0x7F,0x81, - 0x81,0x80,0x81,0x80,0x7E,0x80,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x7F,0x82,0x81, - 0x81,0x81,0x80,0x80,0x80,0x81,0x80,0x7F,0x7F,0x80,0x7E,0x7D,0x7F,0x80,0x7F,0x7D, - 0x7F,0x7F,0x7E,0x7E,0x80,0x80,0x7C,0x7F,0x80,0x7F,0x80,0x81,0x82,0x81,0x81,0x80, - 0x7F,0x7F,0x7F,0x7F,0x80,0x7E,0x7C,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x81,0x80,0x7F, - 0x82,0x81,0x81,0x80,0x80,0x7F,0x80,0x80,0x81,0x80,0x81,0x80,0x7D,0x7E,0x7F,0x7E, - 0x7F,0x80,0x7D,0x7D,0x7F,0x7E,0x7E,0x7F,0x80,0x81,0x80,0x80,0x81,0x7F,0x7F,0x80, - 0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7E,0x7F,0x80,0x7E,0x7F,0x80,0x7F,0x7F, - 0x7E,0x7D,0x7D,0x7D,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x81,0x80, - 0x7F,0x7F,0x7E,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x81,0x7F,0x80,0x80,0x7E,0x7E, - 0x7F,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x7F,0x7E, - 0x80,0x7F,0x7E,0x80,0x80,0x7F,0x80,0x81,0x80,0x80,0x81,0x7F,0x80,0x81,0x80,0x80, - 0x7F,0x7F,0x80,0x7F,0x80,0x80,0x80,0x81,0x80,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F, - 0x80,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x80,0x80,0x81,0x80,0x80,0x82,0x81,0x80, - 0x82,0x82,0x80,0x7F,0x81,0x81,0x7F,0x80,0x81,0x80,0x7E,0x7F,0x80,0x7F,0x80,0x80, - 0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x81,0x80,0x81,0x7F,0x80,0x82,0x81,0x81,0x81, - 0x80,0x81,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x81,0x80,0x82,0x81,0x80,0x80, - 0x7F,0x7F,0x7F,0x80,0x7F,0x80,0x81,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82, - 0x81,0x82,0x83,0x82,0x82,0x82,0x83,0x82,0x81,0x82,0x81,0x80,0x80,0x80,0x80,0x80, - 0x7F,0x80,0x81,0x80,0x7F,0x80,0x81,0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x82, - 0x82,0x81,0x81,0x81,0x82,0x83,0x82,0x82,0x83,0x83,0x82,0x81,0x82,0x81,0x81,0x82, - 0x81,0x81,0x82,0x82,0x81,0x82,0x81,0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x80,0x80, - 0x80,0x80,0x81,0x81,0x80,0x82,0x81,0x81,0x81,0x82,0x81,0x81,0x82,0x81,0x82,0x82, - 0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x81,0x7F,0x7F,0x81, - 0x80,0x80,0x81,0x80,0x7F,0x80,0x80,0x7F,0x80,0x80,0x80,0x81,0x81,0x80,0x80,0x80, - 0x81,0x81,0x81,0x81,0x81,0x80,0x82,0x7F,0x91,0x88,0x83,0x89,0x66,0x78,0x84,0x6D, - 0x67,0x75,0x7F,0x83,0x8A,0x8A,0x8C,0x87,0x92,0xA2,0x9F,0x9A,0x95,0x91,0x8D,0x89, - 0x87,0x82,0x76,0x6A,0x61,0x5D,0x5F,0x63,0x6A,0x60,0x5F,0x6B,0x69,0x6A,0x70,0x6E, - 0x74,0x81,0x7E,0x8C,0x86,0x7C,0x92,0x83,0x7C,0x9A,0xB1,0xA3,0xA1,0xBA,0xB3,0xA7, - 0xA1,0x91,0x95,0x9D,0x8F,0x84,0x84,0x7D,0x77,0x7B,0x78,0x77,0x76,0x6C,0x6A,0x6D, - 0x70,0x73,0x73,0x67,0x5D,0x57,0x59,0x52,0x51,0x57,0x4E,0x56,0x60,0x6A,0x6F,0x69, - 0x6E,0x7E,0x8E,0x92,0x98,0x9B,0x9B,0x98,0x9C,0xA7,0xAC,0xAB,0xB0,0xBF,0xC5,0xB8, - 0xA8,0xAC,0xB2,0xB3,0xAC,0xAD,0xB0,0xA3,0x9E,0x9B,0x91,0x85,0x78,0x79,0x77,0x6E, - 0x6D,0x66,0x58,0x4E,0x4C,0x4A,0x45,0x3F,0x40,0x40,0x40,0x4A,0x4D,0x54,0x5F,0x5D, - 0x5F,0x60,0x62,0x61,0x5E,0x62,0x65,0x6E,0x71,0x70,0x78,0x78,0x7A,0x86,0x8F,0x93, - 0x91,0x97,0x9B,0xA0,0xA4,0xA0,0x9D,0x97,0x9D,0x9B,0x91,0x8D,0x8B,0x93,0x95,0x94, - 0x95,0x90,0x8E,0x8D,0x8E,0x91,0x90,0x8D,0x92,0x93,0x89,0x7B,0x73,0x6D,0x69,0x67, - 0x67,0x6D,0x6F,0x71,0x70,0x6E,0x6E,0x73,0x78,0x7D,0x7F,0x7D,0x7D,0x7C,0x79,0x7A, - 0x7E,0x80,0x86,0x8C,0x8E,0x95,0x9A,0x9C,0x9E,0xA2,0xA7,0xA9,0xAB,0xA9,0xA7,0xA4, - 0xA3,0xA1,0x9C,0x9C,0x9B,0x99,0x97,0x91,0x8E,0x8B,0x87,0x85,0x82,0x7F,0x7A,0x74, - 0x6E,0x69,0x6C,0x66,0x60,0x5D,0x5D,0x5D,0x5A,0x57,0x53,0x55,0x58,0x5C,0x62,0x67, - 0x6D,0x72,0x74,0x76,0x7B,0x7F,0x83,0x88,0x88,0x85,0x83,0x8B,0x90,0x8D,0x8E,0x8E, - 0x8B,0x90,0x92,0x85,0x81,0x87,0x80,0x7C,0x7E,0x77,0x78,0x7D,0x74,0x71,0x77,0x75, - 0x70,0x6C,0x66,0x66,0x64,0x5A,0x56,0x55,0x56,0x63,0x69,0x64,0x62,0x5E,0x56,0x54, - 0x4C,0x44,0x4C,0x56,0x57,0x5A,0x60,0x65,0x6A,0x6A,0x67,0x6E,0x76,0x78,0x7F,0x89, - 0x90,0x94,0x94,0x93,0x98,0xA8,0xB2,0xB2,0xB3,0xBA,0xC0,0xC2,0xC2,0xC1,0xCB,0xD1, - 0xCB,0xC6,0xC7,0xCB,0xC7,0xBE,0xB7,0xB6,0xB6,0xAC,0xA7,0xA8,0xA6,0x9F,0x94,0x8B, - 0x84,0x87,0x90,0x88,0x7E,0x81,0x7E,0x78,0x75,0x70,0x76,0x7F,0x7B,0x77,0x7E,0x80, - 0x77,0x70,0x6D,0x6F,0x73,0x6F,0x6E,0x79,0x7C,0x71,0x68,0x6A,0x6A,0x6A,0x79,0x7D, - 0x76,0x79,0x74,0x6A,0x6A,0x66,0x68,0x76,0x7B,0x7A,0x83,0x88,0x83,0x7F,0x7F,0x85, - 0x8F,0x90,0x8F,0x9B,0x9E,0x95,0x8C,0x8F,0x91,0x8F,0xA0,0xAD,0xA5,0xA2,0xA0,0x97, - 0x91,0x8B,0x87,0x91,0x96,0x8E,0x90,0x92,0x86,0x79,0x72,0x72,0x78,0x78,0x73,0x78, - 0x7B,0x70,0x62,0x5E,0x62,0x58,0x5D,0x6C,0x67,0x5F,0x5C,0x54,0x4C,0x4A,0x47,0x4D, - 0x54,0x50,0x50,0x52,0x4C,0x47,0x45,0x47,0x4F,0x56,0x55,0x5A,0x5D,0x56,0x4E,0x4E, - 0x54,0x53,0x5C,0x6E,0x70,0x6F,0x72,0x71,0x73,0x78,0x7C,0x8B,0x9A,0x9E,0xA7,0xB2, - 0xB1,0xB1,0xB5,0xBC,0xCA,0xD1,0xD1,0xD7,0xD9,0xD1,0xC9,0xC9,0xCA,0xC2,0xC7,0xD3, - 0xCB,0xBE,0xB8,0xAE,0xA5,0x9F,0x9B,0xA1,0xA6,0x9E,0x98,0x99,0x91,0x88,0x85,0x87, - 0x8F,0x90,0x8B,0x8E,0x8B,0x7F,0x7C,0x80,0x83,0x7D,0x89,0x9A,0x92,0x87,0x87,0x80, - 0x7A,0x78,0x77,0x7F,0x82,0x77,0x73,0x71,0x68,0x5F,0x5E,0x62,0x67,0x67,0x65,0x69, - 0x64,0x5A,0x5B,0x61,0x65,0x5E,0x66,0x7B,0x75,0x68,0x6B,0x6C,0x67,0x67,0x6B,0x76, - 0x7B,0x74,0x71,0x73,0x6E,0x68,0x6A,0x6F,0x74,0x74,0x71,0x71,0x6E,0x66,0x65,0x6A, - 0x6B,0x64,0x6E,0x81,0x77,0x6C,0x71,0x70,0x6B,0x6C,0x71,0x7E,0x82,0x79,0x7B,0x82, - 0x7B,0x77,0x7C,0x83,0x89,0x88,0x84,0x88,0x85,0x7D,0x7F,0x86,0x88,0x80,0x87,0x9A, - 0x90,0x80,0x85,0x86,0x7F,0x7E,0x85,0x8F,0x93,0x8B,0x89,0x8E,0x87,0x82,0x87,0x8E, - 0x93,0x94,0x92,0x95,0x93,0x8D,0x91,0x98,0x9A,0x93,0x9B,0xAD,0xA3,0x92,0x96,0x95, - 0x8A,0x84,0x86,0x8C,0x8A,0x7C,0x76,0x77,0x6C,0x62,0x65,0x68,0x68,0x66,0x62,0x63, - 0x61,0x58,0x5C,0x62,0x62,0x5D,0x61,0x75,0x72,0x63,0x6A,0x70,0x6B,0x6B,0x73,0x7F, - 0x86,0x7F,0x7F,0x87,0x84,0x7F,0x86,0x8D,0x91,0x92,0x90,0x94,0x93,0x8C,0x8F,0x95, - 0x95,0x8E,0x92,0xA6,0xA1,0x91,0x97,0x99,0x91,0x90,0x95,0x9E,0xA3,0x98,0x95,0x9C, - 0x94,0x8C,0x90,0x95,0x96,0x94,0x90,0x90,0x8D,0x83,0x84,0x88,0x86,0x7E,0x7E,0x8E, - 0x89,0x74,0x75,0x76,0x6A,0x64,0x67,0x6E,0x70,0x66,0x5F,0x64,0x5C,0x51,0x55,0x5A, - 0x5B,0x5A,0x57,0x59,0x56,0x4D,0x4C,0x50,0x50,0x49,0x4D,0x61,0x5D,0x4D,0x52,0x56, - 0x4E,0x4D,0x54,0x5F,0x64,0x5D,0x5C,0x64,0x5F,0x59,0x61,0x6B,0x70,0x71,0x72,0x77, - 0x78,0x73,0x78,0x81,0x84,0x81,0x8C,0xA3,0xA0,0x95,0x9F,0xA4,0x9F,0xA1,0xA9,0xB6, - 0xBB,0xB0,0xB1,0xB7,0xAC,0xA3,0xA8,0xAC,0xAB,0xA6,0xA2,0xA3,0x9A,0x91,0x93,0x95, - 0x90,0x89,0x93,0xA3,0x95,0x8A,0x93,0x90,0x88,0x88,0x8F,0x99,0x97,0x8F,0x93,0x96, - 0x8D,0x8C,0x92,0x98,0x9B,0x9A,0x9B,0x9E,0x96,0x91,0x97,0x99,0x95,0x91,0x9F,0xAC, - 0x9B,0x93,0x9B,0x95,0x8C,0x8E,0x95,0x9B,0x98,0x8F,0x93,0x92,0x88,0x86,0x8B,0x8E, - 0x8D,0x89,0x89,0x88,0x7E,0x7A,0x7D,0x7C,0x74,0x74,0x84,0x82,0x6F,0x6D,0x6E,0x63, - 0x5E,0x5F,0x66,0x69,0x5F,0x59,0x5B,0x53,0x4A,0x4B,0x50,0x54,0x53,0x4F,0x50,0x4D, - 0x44,0x45,0x49,0x48,0x43,0x4D,0x5E,0x56,0x4A,0x51,0x50,0x49,0x4B,0x52,0x5E,0x61, - 0x59,0x5D,0x63,0x5C,0x5A,0x60,0x67,0x6E,0x6D,0x6F,0x74,0x72,0x6F,0x74,0x79,0x79, - 0x7A,0x8E,0x98,0x8B,0x8D,0x93,0x8F,0x8E,0x95,0xA1,0xAC,0xAA,0xA9,0xB4,0xB4,0xB0, - 0xB7,0xBF,0xC8,0xCD,0xCC,0xCF,0xCE,0xC5,0xC2,0xC3,0xC1,0xB9,0xBD,0xCD,0xC3,0xB1, - 0xB2,0xAC,0xA0,0x9B,0x9C,0xA3,0xA4,0x99,0x96,0x98,0x8E,0x88,0x8C,0x8E,0x91,0x91, - 0x8F,0x91,0x8D,0x87,0x87,0x8A,0x86,0x83,0x94,0x9D,0x8C,0x88,0x8C,0x84,0x81,0x81, - 0x88,0x8F,0x8A,0x83,0x87,0x85,0x7C,0x7D,0x80,0x83,0x84,0x81,0x82,0x82,0x7B,0x78, - 0x79,0x7A,0x74,0x79,0x8B,0x84,0x76,0x78,0x74,0x6D,0x6A,0x6C,0x73,0x75,0x6C,0x6A, - 0x6B,0x63,0x5D,0x5E,0x61,0x63,0x60,0x5D,0x5E,0x59,0x52,0x50,0x51,0x4C,0x48,0x5A, - 0x62,0x51,0x4F,0x52,0x4A,0x47,0x48,0x4F,0x59,0x56,0x51,0x55,0x54,0x4F,0x50,0x55, - 0x5C,0x5F,0x5E,0x62,0x65,0x61,0x5F,0x62,0x66,0x62,0x6A,0x81,0x7E,0x72,0x79,0x78, - 0x73,0x75,0x7B,0x86,0x8B,0x86,0x8A,0x90,0x8D,0x8B,0x90,0x98,0xA0,0xA3,0xA5,0xAC, - 0xAE,0xAD,0xAE,0xB5,0xB8,0xB8,0xCD,0xDA,0xCC,0xCB,0xCD,0xC4,0xBE,0xBD,0xC2,0xC7, - 0xBE,0xB6,0xB5,0xAE,0xA4,0x9D,0x9B,0x9B,0x98,0x91,0x8D,0x8B,0x83,0x7A,0x77,0x75, - 0x6E,0x77,0x88,0x7E,0x73,0x76,0x70,0x6A,0x6A,0x6E,0x7A,0x7B,0x75,0x78,0x7A,0x77, - 0x74,0x77,0x7E,0x83,0x82,0x83,0x86,0x84,0x80,0x7D,0x7F,0x7C,0x7F,0x95,0x95,0x86, - 0x87,0x82,0x7B,0x7A,0x7A,0x84,0x89,0x82,0x7F,0x81,0x7E,0x79,0x76,0x7A,0x7F,0x7F, - 0x7B,0x7B,0x7A,0x75,0x6F,0x6E,0x6D,0x68,0x7A,0x85,0x74,0x70,0x70,0x67,0x61,0x5F, - 0x66,0x6E,0x68,0x61,0x62,0x60,0x5B,0x58,0x59,0x5F,0x61,0x5E,0x5E,0x5F,0x5C,0x57, - 0x55,0x58,0x52,0x5B,0x73,0x6A,0x5E,0x63,0x60,0x5B,0x5A,0x5D,0x6B,0x6E,0x68,0x69, - 0x6C,0x6B,0x69,0x69,0x71,0x78,0x78,0x79,0x7C,0x7E,0x7C,0x79,0x7E,0x7F,0x7F,0x97, - 0xA0,0x91,0x93,0x96,0x92,0x92,0x93,0xA0,0xAC,0xA9,0xA8,0xAC,0xAE,0xAC,0xA8,0xAA, - 0xB0,0xB1,0xAD,0xAB,0xA9,0xA3,0x9A,0x96,0x94,0x8C,0x97,0xA3,0x92,0x87,0x85,0x7B, - 0x74,0x6E,0x71,0x7B,0x76,0x6E,0x6F,0x70,0x6F,0x68,0x68,0x6F,0x73,0x71,0x71,0x73, - 0x74,0x6F,0x6D,0x72,0x70,0x7B,0x92,0x8D,0x83,0x86,0x83,0x81,0x7E,0x81,0x8F,0x94, - 0x8E,0x8C,0x8F,0x91,0x8D,0x89,0x8D,0x94,0x95,0x92,0x91,0x93,0x90,0x88,0x89,0x85, - 0x8A,0xA0,0x9D,0x90,0x91,0x8C,0x87,0x81,0x7F,0x89,0x8D,0x87,0x83,0x83,0x84,0x80, - 0x79,0x7B,0x7F,0x7F,0x7B,0x77,0x79,0x76,0x6D,0x6B,0x68,0x6C,0x80,0x80,0x71,0x70, - 0x6C,0x68,0x62,0x5E,0x67,0x6F,0x6B,0x65,0x65,0x68,0x66,0x61,0x62,0x68,0x6D,0x6B, - 0x68,0x6B,0x6D,0x67,0x65,0x65,0x69,0x82,0x87,0x7A,0x7B,0x7B,0x7A,0x77,0x74,0x7F, - 0x8B,0x8B,0x87,0x88,0x90,0x93,0x8E,0x8F,0x98,0xA1,0xA2,0x9F,0xA1,0xA7,0xA4,0xA2, - 0xA1,0xA3,0xBA,0xC4,0xB5,0xAE,0xAC,0xA8,0xA1,0x96,0x98,0xA0,0x9F,0x96,0x8C,0x8C, - 0x8B,0x81,0x78,0x77,0x7C,0x7B,0x72,0x6C,0x6C,0x69,0x62,0x5D,0x5A,0x6D,0x7E,0x73, - 0x68,0x68,0x68,0x66,0x5F,0x60,0x6C,0x76,0x78,0x73,0x75,0x7C,0x7C,0x78,0x79,0x82, - 0x8A,0x8A,0x86,0x87,0x89,0x87,0x84,0x81,0x8F,0xA5,0xA2,0x96,0x91,0x90,0x91,0x8A, - 0x84,0x8A,0x94,0x97,0x92,0x8C,0x8C,0x8E,0x8B,0x84,0x85,0x8B,0x8D,0x89,0x83,0x80, - 0x7F,0x7C,0x74,0x76,0x8B,0x92,0x89,0x7F,0x77,0x77,0x74,0x6C,0x6A,0x72,0x78,0x79, - 0x73,0x6F,0x70,0x71,0x6E,0x6A,0x6B,0x6F,0x70,0x6E,0x6B,0x68,0x66,0x63,0x60,0x6F, - 0x7D,0x79,0x73,0x6D,0x68,0x69,0x65,0x61,0x65,0x6C,0x72,0x75,0x74,0x74,0x76,0x78, - 0x79,0x7A,0x7C,0x81,0x86,0x89,0x88,0x87,0x88,0x85,0x8E,0xA3,0xA9,0xA5,0xA1,0x9B, - 0x9B,0x9D,0x98,0x96,0x99,0x9C,0xA2,0xA3,0x9E,0x9B,0x9A,0x99,0x96,0x94,0x91,0x90, - 0x90,0x8D,0x88,0x85,0x80,0x7A,0x83,0x8C,0x89,0x85,0x7F,0x76,0x77,0x77,0x70,0x6F, - 0x6E,0x6D,0x72,0x73,0x71,0x72,0x72,0x71,0x74,0x76,0x75,0x74,0x74,0x75,0x76,0x76, - 0x76,0x74,0x7D,0x86,0x82,0x80,0x81,0x7D,0x81,0x84,0x80,0x81,0x82,0x81,0x85,0x84, - 0x83,0x85,0x83,0x83,0x85,0x86,0x87,0x87,0x87,0x88,0x88,0x87,0x86,0x85,0x88,0x8C, - 0x88,0x88,0x88,0x84,0x87,0x88,0x83,0x84,0x84,0x82,0x82,0x7F,0x7C,0x7C,0x78,0x77, - 0x78,0x79,0x79,0x78,0x77,0x78,0x79,0x79,0x79,0x78,0x7B,0x80,0x7D,0x7C,0x7D,0x7A, - 0x7D,0x80,0x7C,0x7D,0x7E,0x7B,0x7B,0x79,0x77,0x78,0x75,0x75,0x77,0x78,0x79,0x79, - 0x79,0x7A,0x7C,0x7D,0x7E,0x7D,0x7F,0x86,0x84,0x81,0x84,0x81,0x84,0x8A,0x86,0x87, - 0x89,0x84,0x84,0x85,0x82,0x83,0x82,0x80,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x86, - 0x87,0x85,0x83,0x87,0x88,0x82,0x82,0x82,0x7E,0x83,0x83,0x7D,0x7E,0x7A,0x76,0x77, - 0x74,0x72,0x72,0x6F,0x70,0x71,0x72,0x73,0x73,0x73,0x75,0x77,0x79,0x79,0x78,0x79, - 0x80,0x7F,0x7B,0x7F,0x7E,0x80,0x86,0x82,0x81,0x82,0x7E,0x7F,0x81,0x7E,0x7E,0x7D, - 0x7C,0x7E,0x80,0x81,0x81,0x82,0x83,0x85,0x88,0x88,0x87,0x86,0x89,0x8E,0x8B,0x89, - 0x8C,0x89,0x8C,0x8F,0x8A,0x8A,0x89,0x84,0x86,0x85,0x81,0x81,0x7E,0x7D,0x7F,0x7F, - 0x80,0x80,0x81,0x81,0x84,0x85,0x83,0x82,0x81,0x85,0x89,0x84,0x84,0x85,0x81,0x86, - 0x87,0x83,0x86,0x8E,0x78,0x61,0x75,0x85,0x82,0x68,0x80,0x83,0x5F,0x72,0x7C,0x7B, - 0x7C,0x8B,0x91,0x7A,0x80,0x88,0x8B,0x82,0x80,0x8E,0x7D,0x71,0x78,0x81,0x81,0x80, - 0x81,0x85,0x7C,0x73,0x78,0x71,0x73,0x73,0x7A,0x7B,0x76,0x7D,0x7B,0x83,0x87,0x91, - 0x92,0x88,0x8C,0x90,0x8F,0x8D,0x89,0x89,0x88,0x8B,0x85,0x84,0x8A,0x80,0x7F,0x7F, - 0x7A,0x7C,0x73,0x6C,0x69,0x6A,0x6A,0x68,0x6D,0x71,0x7E,0x84,0x77,0x75,0x7C,0x7B, - 0x7B,0x87,0x85,0x7A,0x7F,0x7E,0x81,0x83,0x7F,0x87,0x7E,0x78,0x80,0x79,0x76,0x80, - 0x78,0x6F,0x77,0x7C,0x7A,0x79,0x79,0x7E,0x80,0x83,0x85,0x83,0x83,0x85,0x85,0x87, - 0x86,0x81,0x81,0x88,0x92,0x91,0x8A,0x88,0x85,0x88,0x83,0x80,0x83,0x7A,0x7B,0x82, - 0x82,0x81,0x81,0x86,0x84,0x80,0x86,0x89,0x88,0x87,0x85,0x88,0x82,0x84,0x85,0x82, - 0x84,0x87,0x87,0x84,0x84,0x85,0x82,0x80,0x7A,0x76,0x7A,0x76,0x7A,0x7F,0x7B,0x7B, - 0x7D,0x7E,0x81,0x87,0x80,0x82,0x87,0x7F,0x7C,0x84,0x85,0x80,0x83,0x7A,0x7D,0x88, - 0x89,0x84,0x82,0x85,0x7F,0x7C,0x79,0x77,0x72,0x70,0x7C,0x7D,0x79,0x7F,0x7C,0x7D, - 0x84,0x85,0x88,0x87,0x8B,0x82,0x85,0x89,0x83,0x87,0x80,0x85,0x8C,0x8C,0x89,0x88, - 0x8F,0x84,0x80,0x80,0x7C,0x7C,0x78,0x77,0x7A,0x7D,0x7A,0x77,0x7C,0x80,0x82,0x84, - 0x84,0x82,0x7E,0x80,0x84,0x83,0x7F,0x7E,0x7D,0x7D,0x85,0x81,0x7A,0x7C,0x7C,0x78, - 0x75,0x7D,0x78,0x77,0x76,0x75,0x7B,0x74,0x7A,0x7D,0x7A,0x83,0x82,0x85,0x88,0x7F, - 0x7D,0x83,0x94,0x93,0x8C,0x8E,0x89,0x85,0x89,0x88,0x7C,0x76,0x7D,0x7F,0x7B,0x7F, - 0x7D,0x78,0x81,0x84,0x82,0x84,0x83,0x86,0x83,0x7F,0x80,0x79,0x7E,0x83,0x7C,0x7C, - 0x91,0x9B,0x8E,0x8D,0x87,0x85,0x8A,0x82,0x7B,0x74,0x76,0x81,0x7E,0x80,0x81,0x7A, - 0x80,0x8A,0x84,0x80,0x81,0x88,0x8A,0x7D,0x7B,0x7E,0x7E,0x7D,0x76,0x7D,0x90,0x8F, - 0x89,0x87,0x81,0x81,0x83,0x7B,0x75,0x72,0x78,0x81,0x79,0x7B,0x7C,0x7E,0x86,0x87, - 0x82,0x80,0x7F,0x84,0x83,0x7A,0x82,0x85,0x82,0x7E,0x76,0x84,0x95,0x91,0x87,0x84, - 0x87,0x8A,0x83,0x77,0x73,0x71,0x79,0x7F,0x74,0x78,0x7E,0x80,0x8C,0x80,0x80,0x85, - 0x84,0x84,0x7A,0x7D,0x83,0x7F,0x7C,0x77,0x74,0x89,0x98,0x8B,0x87,0x85,0x83,0x88, - 0x7C,0x6F,0x74,0x74,0x7B,0x77,0x73,0x7F,0x80,0x84,0x89,0x7B,0x7E,0x83,0x79,0x7B, - 0x7D,0x7E,0x83,0x80,0x7A,0x75,0x7B,0x8E,0x91,0x84,0x8A,0x89,0x84,0x8A,0x7A,0x74, - 0x7B,0x7D,0x7E,0x78,0x77,0x82,0x87,0x84,0x7F,0x81,0x88,0x83,0x78,0x80,0x82,0x7E, - 0x80,0x7C,0x7A,0x76,0x7A,0x8F,0x8C,0x82,0x8C,0x86,0x85,0x8B,0x7B,0x75,0x7C,0x7B, - 0x7D,0x78,0x7A,0x82,0x8A,0x86,0x7E,0x81,0x87,0x82,0x7E,0x82,0x7C,0x7E,0x80,0x7A, - 0x7B,0x7A,0x7C,0x8D,0x89,0x7F,0x8B,0x85,0x87,0x89,0x76,0x79,0x7F,0x78,0x78,0x76, - 0x77,0x81,0x81,0x83,0x81,0x7E,0x8A,0x89,0x7B,0x82,0x82,0x7A,0x7A,0x77,0x7F,0x7B, - 0x75,0x8C,0x8E,0x80,0x8A,0x85,0x83,0x89,0x74,0x76,0x84,0x72,0x79,0x7A,0x72,0x82, - 0x82,0x7D,0x7F,0x85,0x86,0x87,0x7E,0x7C,0x80,0x7C,0x79,0x79,0x7C,0x78,0x74,0x86, - 0x8E,0x7F,0x8B,0x89,0x7F,0x89,0x7A,0x72,0x80,0x75,0x76,0x7A,0x70,0x81,0x85,0x7E, - 0x88,0x85,0x82,0x87,0x80,0x7D,0x80,0x82,0x7D,0x76,0x7E,0x7B,0x73,0x82,0x90,0x86, - 0x87,0x8C,0x82,0x8B,0x83,0x73,0x81,0x7A,0x71,0x7C,0x76,0x7B,0x85,0x7F,0x86,0x86, - 0x82,0x86,0x83,0x80,0x84,0x81,0x7D,0x7C,0x7C,0x80,0x75,0x76,0x8B,0x87,0x83,0x8B, - 0x83,0x84,0x8A,0x7B,0x7C,0x7F,0x71,0x7C,0x78,0x72,0x83,0x7F,0x7D,0x84,0x83,0x85, - 0x86,0x82,0x83,0x83,0x7F,0x78,0x7A,0x80,0x7B,0x75,0x7E,0x8D,0x83,0x86,0x8A,0x7E, - 0x8C,0x88,0x76,0x80,0x77,0x74,0x7E,0x71,0x75,0x81,0x79,0x7E,0x84,0x81,0x8A,0x85, - 0x81,0x87,0x81,0x7C,0x79,0x7A,0x82,0x7B,0x72,0x87,0x8B,0x82,0x8C,0x86,0x7F,0x8D, - 0x82,0x74,0x7D,0x76,0x78,0x7B,0x71,0x7D,0x7D,0x7E,0x87,0x7E,0x84,0x89,0x7F,0x82, - 0x84,0x7C,0x7A,0x7C,0x76,0x79,0x77,0x72,0x81,0x85,0x83,0x86,0x80,0x85,0x8B,0x7B, - 0x77,0x7B,0x76,0x78,0x77,0x70,0x7B,0x80,0x7D,0x84,0x81,0x84,0x8A,0x85,0x83,0x86, - 0x80,0x7D,0x7C,0x7D,0x7F,0x7A,0x7B,0x88,0x87,0x82,0x88,0x84,0x83,0x8C,0x81,0x76, - 0x81,0x7C,0x78,0x7D,0x76,0x7B,0x7F,0x7E,0x7E,0x7C,0x84,0x8C,0x82,0x82,0x87,0x7F, - 0x81,0x81,0x7F,0x81,0x7C,0x78,0x83,0x87,0x80,0x85,0x88,0x86,0x88,0x83,0x7E,0x82, - 0x7E,0x7B,0x7C,0x75,0x79,0x7F,0x7C,0x7E,0x7F,0x80,0x87,0x82,0x82,0x86,0x82,0x85, - 0x80,0x7C,0x80,0x7D,0x7B,0x81,0x87,0x7F,0x84,0x85,0x83,0x89,0x86,0x81,0x83,0x80, - 0x7D,0x7D,0x79,0x7B,0x81,0x7B,0x7D,0x80,0x7F,0x87,0x84,0x81,0x89,0x84,0x82,0x82, - 0x7E,0x84,0x82,0x7D,0x83,0x86,0x82,0x86,0x84,0x81,0x89,0x85,0x81,0x85,0x82,0x80, - 0x81,0x7A,0x7A,0x7F,0x7A,0x7D,0x80,0x80,0x84,0x83,0x81,0x86,0x84,0x82,0x83,0x81, - 0x81,0x81,0x79,0x7F,0x85,0x80,0x82,0x81,0x81,0x84,0x82,0x80,0x82,0x80,0x7F,0x81, - 0x7A,0x7B,0x81,0x7E,0x7D,0x81,0x7E,0x83,0x82,0x82,0x87,0x84,0x84,0x83,0x80,0x81, - 0x82,0x7D,0x83,0x88,0x81,0x83,0x83,0x82,0x87,0x82,0x80,0x85,0x82,0x82,0x83,0x7D, - 0x7F,0x81,0x7C,0x80,0x81,0x7B,0x84,0x88,0x82,0x86,0x83,0x82,0x87,0x82,0x85,0x84, - 0x7B,0x86,0x86,0x7D,0x85,0x82,0x82,0x8A,0x82,0x7E,0x84,0x7F,0x80,0x7F,0x79,0x80, - 0x7D,0x7B,0x80,0x7D,0x7B,0x84,0x86,0x81,0x83,0x82,0x84,0x84,0x7D,0x83,0x85,0x88, - 0x94,0x87,0x85,0x81,0x75,0x79,0x76,0x7B,0x7B,0x7E,0x71,0x75,0x7C,0x5F,0x76,0x92, - 0x75,0x79,0x89,0x7F,0x84,0x76,0x82,0x93,0x82,0x85,0x83,0x7D,0x82,0x82,0x88,0x89, - 0x82,0x87,0x8A,0x87,0x88,0x87,0x8C,0x8E,0x88,0x86,0x7F,0x79,0x7F,0x86,0x7C,0x77, - 0x82,0x88,0x86,0x89,0x86,0x7B,0x7E,0x88,0x8A,0x88,0x90,0x8D,0x87,0x89,0x86,0x7F, - 0x79,0x7C,0x85,0x8A,0x91,0x91,0x83,0x79,0x76,0x74,0x75,0x75,0x71,0x74,0x76,0x70, - 0x6D,0x6A,0x69,0x6D,0x72,0x70,0x6A,0x6A,0x68,0x64,0x6D,0x6E,0x63,0x6D,0x75,0x79, - 0x7C,0x75,0x74,0x79,0x72,0x6C,0x68,0x69,0x76,0x7C,0x72,0x70,0x77,0x79,0x7A,0x74, - 0x74,0x7F,0x80,0x7C,0x7B,0x7E,0x7C,0x89,0xA7,0xAF,0xB5,0xB6,0xA4,0xA4,0x9C,0x88, - 0x8B,0x90,0x8A,0x86,0x7E,0x82,0x92,0x89,0x7E,0x86,0x88,0x89,0x88,0x82,0x89,0x89, - 0x84,0x86,0x84,0x79,0x8C,0xA6,0x9A,0x98,0x9A,0x93,0x97,0x85,0x75,0x86,0x8C,0x89, - 0x8E,0x8B,0x94,0x97,0x82,0x82,0x88,0x82,0x80,0x79,0x7F,0x87,0x7F,0x77,0x7B,0x78, - 0x76,0x8F,0x92,0x85,0x8A,0x87,0x83,0x7D,0x69,0x6C,0x7A,0x77,0x7C,0x80,0x81,0x8B, - 0x80,0x73,0x7A,0x75,0x71,0x73,0x72,0x79,0x7A,0x6A,0x64,0x61,0x56,0x66,0x76,0x69, - 0x6A,0x6D,0x5E,0x5A,0x4D,0x48,0x5A,0x5D,0x5B,0x65,0x67,0x6C,0x68,0x5B,0x5F,0x67, - 0x69,0x6A,0x70,0x77,0x76,0x69,0x64,0x66,0x5E,0x6E,0x81,0x7A,0x7B,0x7B,0x6D,0x6E, - 0x67,0x65,0x7B,0x86,0x8C,0x99,0x9D,0xA2,0xA0,0x91,0x94,0x9E,0x9F,0xA2,0xA3,0xA0, - 0x99,0x86,0x83,0x86,0x7B,0x90,0xA6,0x99,0x97,0x93,0x86,0x81,0x7B,0x7B,0x8F,0x96, - 0x94,0x9B,0x99,0x93,0x8C,0x82,0x8B,0x99,0x97,0x9A,0x9E,0x9B,0x93,0x87,0x8A,0x8C, - 0x8B,0xA4,0xAB,0x9B,0x9B,0x90,0x82,0x7C,0x72,0x7C,0x8F,0x8F,0x8D,0x93,0x8D,0x84, - 0x78,0x74,0x85,0x8D,0x89,0x8B,0x8D,0x83,0x78,0x77,0x7D,0x7C,0x89,0x9F,0x97,0x8C, - 0x88,0x7B,0x73,0x6D,0x6A,0x78,0x7D,0x74,0x76,0x70,0x67,0x5D,0x52,0x59,0x66,0x63, - 0x61,0x63,0x5F,0x55,0x4D,0x56,0x56,0x5B,0x75,0x76,0x69,0x69,0x63,0x5D,0x5C,0x5B, - 0x67,0x73,0x6E,0x6C,0x6C,0x67,0x64,0x5D,0x60,0x70,0x73,0x72,0x77,0x78,0x76,0x71, - 0x77,0x81,0x7F,0x9B,0xB4,0xA8,0xA7,0xAA,0xA1,0x9E,0x98,0x98,0xA8,0xA4,0x97,0x9A, - 0x93,0x8B,0x86,0x83,0x90,0x96,0x8D,0x8E,0x90,0x89,0x83,0x83,0x8D,0x89,0x93,0xAE, - 0xA6,0x97,0x94,0x90,0x8D,0x8B,0x89,0x9B,0xA6,0x98,0x97,0x97,0x91,0x8C,0x88,0x8F, - 0x9A,0x96,0x92,0x90,0x85,0x83,0x81,0x87,0x8B,0x82,0x95,0xA8,0x91,0x85,0x8A,0x82, - 0x80,0x7C,0x80,0x94,0x92,0x81,0x83,0x84,0x7F,0x7C,0x7B,0x88,0x8E,0x87,0x85,0x82, - 0x7A,0x74,0x74,0x74,0x68,0x6E,0x87,0x7B,0x67,0x65,0x5F,0x5B,0x56,0x54,0x65,0x6F, - 0x60,0x5B,0x5E,0x59,0x55,0x54,0x5C,0x69,0x67,0x62,0x68,0x63,0x5B,0x5E,0x64,0x69, - 0x60,0x66,0x7E,0x72,0x5F,0x65,0x62,0x62,0x66,0x67,0x77,0x84,0x76,0x73,0x7F,0x7F, - 0x82,0x8A,0x95,0xA5,0xA7,0xA1,0xA2,0x9F,0x97,0x94,0x97,0x92,0x8C,0xA4,0xA9,0x8F, - 0x8D,0x8C,0x83,0x80,0x7F,0x89,0x94,0x90,0x87,0x8C,0x89,0x86,0x84,0x88,0x97,0x9A, - 0x92,0x93,0x93,0x89,0x8A,0x90,0x90,0x95,0x8F,0x91,0xA6,0x99,0x85,0x8D,0x89,0x83, - 0x86,0x87,0x91,0x95,0x86,0x86,0x89,0x86,0x83,0x81,0x8B,0x91,0x8A,0x84,0x85,0x83, - 0x80,0x7F,0x83,0x7F,0x7B,0x94,0x97,0x82,0x84,0x82,0x7C,0x79,0x76,0x81,0x8B,0x80, - 0x78,0x78,0x72,0x6A,0x65,0x68,0x70,0x73,0x69,0x68,0x68,0x5E,0x58,0x5D,0x62,0x64, - 0x63,0x5C,0x6D,0x74,0x5B,0x59,0x63,0x5F,0x60,0x5E,0x64,0x72,0x67,0x5C,0x63,0x63, - 0x60,0x62,0x64,0x6F,0x72,0x6A,0x6D,0x6F,0x6E,0x70,0x76,0x7E,0x7B,0x7F,0x9B,0x9E, - 0x91,0x97,0x97,0x97,0x98,0x93,0xA0,0xA9,0x98,0x94,0x97,0x8F,0x8C,0x8A,0x8E,0x97, - 0x93,0x89,0x8C,0x8C,0x85,0x82,0x89,0x90,0x91,0x8C,0x87,0x9B,0xA3,0x8A,0x89,0x90, - 0x8B,0x8A,0x88,0x8F,0x9B,0x92,0x86,0x8E,0x90,0x89,0x88,0x8C,0x91,0x92,0x89,0x88, - 0x8D,0x89,0x87,0x87,0x8C,0x85,0x7C,0x98,0x9E,0x88,0x87,0x88,0x83,0x81,0x7A,0x86, - 0x93,0x88,0x82,0x84,0x81,0x7F,0x7B,0x7F,0x8A,0x8A,0x80,0x80,0x82,0x7C,0x75,0x75, - 0x78,0x73,0x6F,0x6A,0x72,0x81,0x6C,0x60,0x69,0x65,0x60,0x5D,0x63,0x71,0x6A,0x5B, - 0x61,0x65,0x5F,0x5E,0x63,0x69,0x6C,0x66,0x64,0x6A,0x68,0x64,0x64,0x68,0x68,0x5E, - 0x6E,0x84,0x75,0x6A,0x71,0x70,0x6E,0x6F,0x76,0x87,0x8A,0x80,0x85,0x8E,0x8E,0x8C, - 0x90,0x9D,0xA2,0x9C,0x97,0x9B,0x9B,0x92,0x8F,0x95,0x98,0x91,0x8A,0x8E,0xA0,0x9A, - 0x84,0x88,0x8D,0x86,0x83,0x84,0x8F,0x95,0x87,0x82,0x8A,0x88,0x84,0x86,0x8C,0x91, - 0x8C,0x87,0x8B,0x8C,0x88,0x87,0x89,0x8D,0x87,0x81,0x98,0xA0,0x89,0x86,0x8B,0x86, - 0x85,0x7E,0x86,0x97,0x8F,0x83,0x86,0x88,0x85,0x81,0x85,0x8D,0x8D,0x86,0x83,0x87, - 0x89,0x81,0x80,0x89,0x8A,0x81,0x7A,0x8B,0x9A,0x85,0x79,0x81,0x80,0x77,0x6E,0x73, - 0x7F,0x78,0x6C,0x6C,0x71,0x6C,0x65,0x64,0x6C,0x70,0x67,0x66,0x67,0x66,0x64,0x63, - 0x67,0x69,0x5F,0x61,0x7B,0x76,0x62,0x68,0x69,0x69,0x60,0x67,0x76,0x6F,0x75,0x54, - 0x58,0x72,0x61,0x53,0x60,0x79,0x7F,0x83,0x87,0x90,0x8F,0x92,0xAA,0xB4,0xB5,0xB6, - 0xB2,0xBB,0xB0,0x8C,0xA0,0xA4,0x7E,0x79,0x7D,0x78,0x6E,0x66,0x50,0x5C,0x74,0x72, - 0x69,0x5D,0x74,0x7D,0x72,0x7D,0x8B,0x98,0xA0,0x9F,0xA2,0xB1,0xAD,0xC9,0xD0,0xB0, - 0xD6,0xBF,0xB4,0xC5,0xA8,0xB1,0xAC,0x98,0x8E,0x8D,0x94,0x93,0x71,0x68,0x71,0x62, - 0x71,0x68,0x6A,0x88,0x6C,0x6A,0x7B,0x76,0x7C,0x67,0x56,0x69,0x68,0x60,0x67,0x67, - 0x5C,0x5D,0x5F,0x74,0x7F,0x80,0x8B,0x82,0x8E,0x8D,0x7C,0x7D,0x81,0x7B,0x78,0x82, - 0x93,0x96,0x8B,0x80,0x91,0x8C,0x84,0x9A,0x8C,0x82,0x81,0x81,0x7D,0x72,0x77,0x74, - 0x72,0x6F,0x74,0x80,0x74,0x67,0x5B,0x50,0x5B,0x5F,0x4D,0x42,0x50,0x4C,0x43,0x49, - 0x55,0x66,0x5A,0x69,0x7D,0x71,0x76,0x86,0x83,0x85,0x83,0x7E,0x97,0x9B,0x98,0x9E, - 0x94,0xA5,0xB6,0xB3,0xC1,0xBE,0xB2,0xB4,0xAB,0x99,0x9E,0x89,0x78,0x8B,0x7A,0x87, - 0x9E,0x88,0x7B,0x71,0x6A,0x75,0x80,0x74,0x73,0x6B,0x6F,0x81,0x70,0x6F,0x73,0x76, - 0x81,0x78,0x7B,0x71,0x71,0x83,0x82,0x84,0x7B,0x82,0x96,0x8D,0x8D,0xA1,0x8C,0x8D, - 0x91,0x8A,0x9B,0x91,0x90,0x98,0x99,0x99,0x9B,0xA4,0xA4,0x9F,0xAB,0xAB,0xB1,0xB8, - 0xA5,0xA0,0xA1,0xA1,0x9E,0x93,0x89,0x6E,0x68,0x74,0x74,0x71,0x5C,0x5C,0x6D,0x67, - 0x58,0x45,0x34,0x36,0x3E,0x49,0x4C,0x3E,0x3B,0x44,0x42,0x44,0x4B,0x45,0x46,0x43, - 0x3D,0x47,0x4A,0x55,0x56,0x61,0x85,0x87,0x84,0x79,0x6B,0x7D,0x88,0x93,0xA8,0xA6, - 0xAF,0xBD,0xAD,0xA2,0xA8,0xAD,0xB0,0xCA,0xD7,0xBF,0xC2,0xCD,0xCF,0xCE,0xC7,0xC9, - 0xC3,0xC5,0xC8,0xB4,0xA0,0x8E,0x7A,0x79,0x8D,0x8E,0x7E,0x6C,0x5B,0x59,0x5D,0x5C, - 0x54,0x51,0x4E,0x5F,0x5A,0x43,0x3B,0x2F,0x46,0x49,0x47,0x55,0x4C,0x59,0x6C,0x69, - 0x5E,0x5C,0x68,0x6B,0x6C,0x85,0x7B,0x73,0x86,0x73,0x7B,0x91,0x8D,0x98,0x9E,0xAB, - 0xB3,0xAD,0xA9,0xB2,0xB4,0xB6,0xBB,0xB5,0xB8,0xBF,0xC7,0xBD,0xBD,0xBC,0xAE,0xB1, - 0xAB,0xA3,0xA1,0x9F,0x99,0x91,0x86,0x83,0x8E,0x81,0x7E,0x7F,0x74,0x6A,0x61,0x68, - 0x60,0x57,0x55,0x53,0x5F,0x68,0x62,0x58,0x56,0x52,0x51,0x50,0x44,0x43,0x45,0x4C, - 0x58,0x5F,0x5E,0x50,0x49,0x4D,0x56,0x61,0x58,0x51,0x5B,0x64,0x68,0x63,0x6B,0x6B, - 0x64,0x7E,0x80,0x84,0x90,0x89,0x8F,0x89,0x89,0x97,0x9F,0xAD,0xAB,0x9F,0x9E,0x97, - 0x98,0x98,0x9B,0xAF,0xA9,0x9C,0xA2,0xA5,0x95,0x8C,0x85,0x79,0x9A,0xB3,0xA9,0xA1, - 0x8C,0x8F,0x9B,0x9D,0x94,0x86,0x91,0xA1,0x9E,0x95,0x94,0x9B,0x9B,0x93,0x8F,0x89, - 0x8D,0x7B,0x6B,0x6D,0x66,0x6D,0x6E,0x69,0x7D,0x95,0x86,0x77,0x77,0x6E,0x76,0x74, - 0x6C,0x6D,0x71,0x79,0x6B,0x64,0x65,0x60,0x66,0x6B,0x73,0x7D,0x7E,0x84,0x7A,0x7E, - 0x88,0x81,0x80,0x7D,0x98,0xA9,0x92,0x83,0x73,0x76,0x84,0x7D,0x7E,0x84,0x87,0x87, - 0x7D,0x74,0x74,0x6E,0x76,0x70,0x6A,0x79,0x72,0x76,0x81,0x73,0x70,0x75,0x6D,0x7B, - 0x98,0x8E,0x80,0x80,0x74,0x89,0x96,0x7D,0x7B,0x7F,0x8D,0xA0,0x8F,0x86,0x83,0x79, - 0x81,0x80,0x7B,0x83,0x88,0x86,0x85,0x87,0x82,0x84,0x7C,0x75,0x8D,0x8C,0x81,0x7A, - 0x71,0x6F,0x66,0x62,0x5D,0x60,0x82,0x8B,0x7C,0x6D,0x5E,0x79,0x7D,0x74,0x6F,0x5C, - 0x64,0x6C,0x75,0x79,0x75,0x7C,0x78,0x7C,0x98,0x98,0x8A,0x86,0x82,0x92,0x90,0x8A, - 0x8E,0x95,0x9A,0x96,0x9B,0x95,0x92,0x99,0x97,0x92,0x8E,0x8F,0x92,0x94,0x96,0x94, - 0x88,0x94,0x95,0x97,0xAF,0xAF,0xAD,0xAE,0xA5,0xA2,0x9F,0x94,0x90,0x98,0x9F,0x9B, - 0x8E,0x7C,0x7C,0x8A,0x95,0x91,0x87,0x88,0x82,0x7A,0x7C,0x72,0x63,0x69,0x65,0x6C, - 0x79,0x71,0x6A,0x6A,0x6C,0x68,0x63,0x66,0x70,0x77,0x79,0x70,0x5F,0x5F,0x5B,0x57, - 0x56,0x4D,0x53,0x58,0x63,0x65,0x5E,0x5A,0x58,0x63,0x5D,0x67,0x77,0x68,0x66,0x69, - 0x69,0x6F,0x6F,0x6E,0x70,0x77,0x83,0x80,0x73,0x6E,0x6F,0x6F,0x6D,0x6F,0x70,0x6C, - 0x73,0x79,0x7C,0x7A,0x7D,0x85,0x7B,0x79,0x86,0x89,0x8A,0x93,0x94,0x8D,0x8E,0x91, - 0x8D,0x9B,0xA6,0xA1,0x9E,0x97,0x97,0x9B,0x8C,0x87,0x8C,0x8B,0x97,0xA0,0x9B,0x9B, - 0x93,0x9A,0xA0,0x9D,0xAE,0xB0,0xAA,0xA4,0x9E,0x96,0x90,0x98,0x9B,0x96,0x9D,0xA1, - 0xA3,0xA4,0x97,0x8E,0x87,0x7F,0x83,0x84,0x80,0x84,0x83,0x83,0x88,0x86,0x81,0x85, - 0x8F,0x97,0x8E,0x82,0x79,0x74,0x70,0x6B,0x71,0x6C,0x66,0x66,0x69,0x75,0x73,0x69, - 0x5A,0x57,0x5B,0x5F,0x63,0x55,0x53,0x59,0x58,0x5F,0x5D,0x56,0x67,0x74,0x7C,0x80, - 0x6F,0x66,0x62,0x60,0x65,0x6A,0x64,0x5A,0x5B,0x69,0x72,0x6F,0x71,0x6E,0x6F,0x7D, - 0x80,0x77,0x6E,0x75,0x77,0x7C,0x83,0x7F,0x8D,0x97,0x9A,0x98,0x88,0x83,0x82,0x88, - 0x8C,0x89,0x8B,0x7F,0x7B,0x8A,0x91,0x96,0x96,0x8C,0x8E,0x99,0x99,0x91,0x91,0x93, - 0x94,0xA0,0x9C,0x92,0x93,0xA0,0xA8,0xA4,0x9F,0x96,0x9C,0x9F,0xA0,0xA1,0x95,0x95, - 0x95,0x91,0x92,0x95,0x93,0x8F,0x8F,0x90,0x99,0x94,0x93,0x94,0x8B,0x8F,0x96,0x8D, - 0x89,0x92,0x92,0x8E,0x8C,0x89,0x88,0x8F,0x90,0x8C,0x8A,0x8A,0x8A,0x80,0x74,0x74, - 0x6F,0x6C,0x6D,0x6C,0x6A,0x64,0x6E,0x6C,0x62,0x6F,0x6A,0x64,0x62,0x5E,0x66,0x59, - 0x5C,0x59,0x4E,0x5E,0x5E,0x5D,0x5E,0x5E,0x5F,0x5B,0x5E,0x58,0x5C,0x64,0x5F,0x5F, - 0x5D,0x59,0x63,0x69,0x66,0x6A,0x64,0x63,0x6C,0x6F,0x7B,0x78,0x6E,0x75,0x76,0x77, - 0x7C,0x76,0x74,0x7A,0x7F,0x81,0x82,0x86,0x87,0x8D,0x8F,0x8A,0x8A,0x8F,0x8D,0x90, - 0x95,0x90,0x8C,0x8A,0x8B,0x8D,0x90,0x93,0x92,0x8E,0x8D,0x94,0x99,0x93,0x93,0x99, - 0x97,0x9A,0x9C,0x93,0x93,0x98,0x9D,0x9E,0x9C,0x9A,0x9B,0x9E,0xA0,0xA4,0x9F,0x9A, - 0x9A,0x95,0x9A,0xA5,0x9D,0x9D,0x9D,0x9A,0x9E,0x9D,0x9F,0x9B,0x9D,0xA0,0x97,0x95, - 0x91,0x8D,0x8E,0x8B,0x85,0x84,0x82,0x82,0x86,0x84,0x7F,0x7F,0x7D,0x7D,0x7A,0x7C, - 0x82,0x7A,0x7A,0x76,0x6D,0x77,0x75,0x74,0x79,0x79,0x78,0x76,0x75,0x6F,0x70,0x71, - 0x6A,0x69,0x68,0x67,0x68,0x61,0x5E,0x5F,0x66,0x69,0x61,0x5E,0x66,0x68,0x63,0x5F, - 0x58,0x57,0x63,0x69,0x68,0x6C,0x63,0x5C,0x61,0x63,0x63,0x6B,0x66,0x5E,0x65,0x69, - 0x6E,0x70,0x6B,0x6D,0x73,0x7A,0x7D,0x72,0x73,0x7A,0x79,0x7C,0x79,0x75,0x7C,0x81, - 0x84,0x85,0x80,0x7E,0x7D,0x87,0x8A,0x85,0x88,0x82,0x7E,0x87,0x86,0x85,0x85,0x83, - 0x87,0x8D,0x8E,0x87,0x86,0x8F,0x96,0x99,0x98,0x94,0x96,0x9A,0x9E,0xA0,0xA0,0x9F, - 0x99,0x9F,0xA0,0x9D,0x9D,0x93,0x91,0x94,0x96,0x9C,0x99,0x97,0x99,0x96,0x9A,0x97, - 0x8F,0x93,0x98,0x97,0x97,0x90,0x8B,0x8C,0x90,0x8F,0x8F,0x8F,0x8B,0x8B,0x89,0x87, - 0x86,0x83,0x82,0x84,0x82,0x82,0x83,0x7F,0x80,0x81,0x7D,0x7C,0x7B,0x79,0x80,0x80, - 0x79,0x7A,0x78,0x78,0x7A,0x79,0x7B,0x7E,0x7B,0x77,0x77,0x77,0x73,0x73,0x75,0x6E, - 0x6C,0x6E,0x6E,0x71,0x74,0x73,0x74,0x72,0x74,0x75,0x76,0x7D,0x76,0x77,0x7B,0x7A, - 0x80,0x7B,0x77,0x79,0x7A,0x7B,0x77,0x72,0x73,0x74,0x79,0x76,0x71,0x72,0x70,0x74, - 0x77,0x73,0x73,0x74,0x74,0x74,0x72,0x78,0x77,0x71,0x75,0x77,0x79,0x7C,0x78,0x7B, - 0x7E,0x80,0x7D,0x78,0x77,0x77,0x7E,0x7F,0x78,0x77,0x78,0x7D,0x80,0x7E,0x7C,0x7C, - 0x7E,0x7E,0x7D,0x82,0x86,0x82,0x85,0x84,0x82,0x88,0x84,0x80,0x85,0x85,0x80,0x7F, - 0x7D,0x7B,0x7E,0x82,0x7E,0x7D,0x7C,0x7E,0x81,0x80,0x7F,0x80,0x81,0x83,0x83,0x85, - 0x8D,0x8C,0x89,0x8A,0x82,0x87,0x8B,0x89,0x8F,0x8D,0x87,0x87,0x87,0x8A,0x89,0x87, - 0x83,0x80,0x82,0x85,0x85,0x84,0x81,0x83,0x87,0x86,0x84,0x81,0x87,0x8B,0x88,0x8A, - 0x85,0x84,0x8C,0x89,0x8A,0x88,0x82,0x83,0x81,0x86,0x86,0x81,0x80,0x7D,0x7F,0x82, - 0x80,0x82,0x7E,0x7E,0x83,0x81,0x7F,0x7C,0x80,0x85,0x83,0x83,0x7F,0x7B,0x83,0x82, - 0x82,0x86,0x7D,0x7C,0x7F,0x7E,0x85,0x84,0x80,0x7F,0x7E,0x82,0x83,0x80,0x81,0x80, - 0x82,0x85,0x82,0x7F,0x83,0x8A,0x86,0x81,0x82,0x82,0x85,0x89,0x85,0x85,0x83,0x7E, - 0x80,0x80,0x7F,0x7F,0x7B,0x78,0x7A,0x7B,0x7B,0x7D,0x7D,0x7D,0x80,0x83,0x84,0x7E, - 0x81,0x89,0x85,0x84,0x82,0x7F,0x83,0x86,0x86,0x82,0x80,0x7F,0x7E,0x81,0x7E,0x7B, - 0x7C,0x7B,0x7C,0x7A,0x79,0x7C,0x7B,0x7B,0x7C,0x7D,0x7D,0x7B,0x7D,0x81,0x7F,0x7F, - 0x7E,0x7E,0x82,0x85,0x85,0x7F,0x7D,0x7F,0x80,0x81,0x7F,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7D,0x7E,0x7E,0x81,0x80,0x82,0x82,0x7E,0x84,0x84,0x82,0x85,0x80,0x81,0x84,0x82, - 0x83,0x7F,0x7D,0x7F,0x7E,0x7F,0x7D,0x7A,0x7B,0x7B,0x7D,0x7C,0x7B,0x7D,0x7D,0x80, - 0x82,0x81,0x80,0x80,0x86,0x85,0x82,0x85,0x80,0x82,0x87,0x85,0x87,0x83,0x80,0x81, - 0x7E,0x7D,0x7C,0x79,0x7B,0x7A,0x7A,0x79,0x79,0x7B,0x7A,0x7C,0x7E,0x7E,0x7E,0x7E, - 0x83,0x82,0x80,0x81,0x7E,0x83,0x86,0x83,0x85,0x81,0x80,0x81,0x7F,0x80,0x7D,0x7B, - 0x7C,0x7B,0x7D,0x7D,0x7C,0x7D,0x7E,0x80,0x80,0x81,0x80,0x81,0x85,0x82,0x83,0x83, - 0x80,0x84,0x85,0x84,0x86,0x84,0x83,0x83,0x7F,0x81,0x7F,0x7D,0x80,0x7D,0x7C,0x7E, - 0x7E,0x80,0x81,0x81,0x81,0x81,0x81,0x84,0x86,0x84,0x84,0x82,0x80,0x84,0x83,0x82, - 0x85,0x81,0x81,0x80,0x7D,0x7F,0x7B,0x78,0x7B,0x78,0x7A,0x7D,0x7D,0x7E,0x7C,0x7D, - 0x7F,0x80,0x81,0x82,0x84,0x83,0x83,0x84,0x83,0x84,0x84,0x83,0x86,0x85,0x84,0x84, - 0x7F,0x7E,0x7E,0x7C,0x7D,0x7C,0x7B,0x7C,0x7B,0x7C,0x7C,0x7C,0x7C,0x7D,0x7F,0x80, - 0x82,0x82,0x80,0x82,0x80,0x81,0x83,0x82,0x86,0x85,0x83,0x84,0x80,0x7F,0x81,0x80, - 0x80,0x7F,0x7E,0x80,0x80,0x81,0x81,0x80,0x80,0x80,0x82,0x83,0x82,0x84,0x82,0x83, - 0x84,0x81,0x82,0x83,0x83,0x84,0x82,0x81,0x80,0x7D,0x7E,0x7D,0x7B,0x7C,0x7B,0x7B, - 0x7B,0x7B,0x7C,0x7B,0x7B,0x7E,0x7E,0x7E,0x80,0x81,0x81,0x80,0x82,0x82,0x82,0x83, - 0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x80,0x7F,0x7E,0x7E,0x7D,0x7C,0x7B,0x7C,0x7D, - 0x7D,0x7E,0x7E,0x7E,0x7F,0x80,0x82,0x82,0x82,0x83,0x83,0x84,0x85,0x85,0x86,0x86, - 0x85,0x85,0x85,0x82,0x81,0x80,0x80,0x80,0x7F,0x7C,0x7C,0x7C,0x7D,0x7C,0x7C,0x7C, - 0x7D,0x7E,0x7D,0x7E,0x7E,0x7E,0x7F,0x81,0x82,0x82,0x82,0x81,0x82,0x84,0x84,0x83, - 0x81,0x81,0x80,0x80,0x7F,0x7C,0x7B,0x7C,0x7D,0x7D,0x7D,0x7B,0x7D,0x7E,0x7E,0x7F, - 0x7F,0x7E,0x7F,0x81,0x82,0x81,0x80,0x81,0x82,0x84,0x85,0x84,0x83,0x82,0x81,0x80, - 0x7F,0x7D,0x7D,0x7B,0x7B,0x7B,0x79,0x7B,0x7D,0x7D,0x7E,0x7F,0x80,0x80,0x80,0x82, - 0x82,0x83,0x84,0x83,0x84,0x86,0x86,0x87,0x85,0x85,0x86,0x83, -}; -#define sound2_len 0x0000DC8C -const unsigned char sound2_data[] = { - 0x80,0x84,0x8C,0x88,0x7F,0x85,0x8E,0x8B,0x87,0x8B,0x88,0x7C,0x7C,0x81,0x7D,0x75, - 0x77,0x80,0x81,0x86,0x95,0x86,0x78,0x75,0x6A,0x71,0x78,0x75,0x76,0x95,0x7C,0x7C, - 0xA1,0x7D,0x82,0x8D,0x77,0x66,0x6A,0x79,0x70,0x72,0x75,0x76,0x7C,0x8B,0x90,0x86, - 0x87,0x89,0x81,0x6B,0x6D,0x6E,0x62,0x80,0x94,0x81,0x8C,0x95,0x82,0x8D,0x94,0x7C, - 0x80,0x7F,0x73,0x86,0x8B,0x8D,0x9D,0x9E,0x9D,0xA2,0xA0,0x96,0x83,0x8A,0x96,0x91, - 0x97,0x88,0x86,0x96,0x92,0x8B,0x7B,0x7C,0x87,0x72,0x67,0x69,0x6B,0x7C,0x7E,0x72, - 0x72,0x6C,0x69,0x68,0x5B,0x5B,0x60,0x5E,0x67,0x63,0x62,0x63,0x63,0x77,0x7B,0x7A, - 0x70,0x5A,0x59,0x64,0x5F,0x5D,0x5F,0x70,0x7B,0x6E,0x73,0x7A,0x7C,0x83,0x99,0xB1, - 0xB1,0xA1,0x99,0x98,0x89,0x89,0x8B,0x91,0xA7,0xAE,0xAA,0xA3,0x95,0x87,0x85,0x85, - 0x86,0x88,0x94,0x9F,0x94,0x88,0x81,0x7E,0x80,0x81,0x8A,0x92,0x8D,0x8B,0x85,0x7F, - 0x84,0x7F,0x79,0x88,0x93,0x8E,0x8B,0x7F,0x7B,0x7D,0x7D,0x88,0x87,0x8D,0x9D,0x8F, - 0x87,0x84,0x7B,0x8C,0x93,0x97,0xA0,0x95,0x8B,0x8D,0x89,0x88,0x8C,0x88,0x9B,0xA6, - 0x96,0x8A,0x76,0x6E,0x77,0x74,0x73,0x72,0x74,0x7B,0x6C,0x5D,0x62,0x64,0x66,0x6C, - 0x67,0x6A,0x65,0x52,0x48,0x4A,0x58,0x58,0x5B,0x6D,0x77,0x70,0x61,0x54,0x52,0x60, - 0x5F,0x5C,0x64,0x6B,0x6C,0x60,0x58,0x5C,0x66,0x6F,0x75,0x7A,0x84,0x88,0x8E,0x93, - 0x98,0x9E,0x9B,0x99,0x9B,0xAD,0xAA,0x98,0x90,0x8C,0x99,0xA3,0x99,0x94,0x97,0x94, - 0x8B,0x82,0x85,0x90,0x97,0x93,0x8F,0x90,0x8F,0x87,0x86,0x8F,0x93,0x91,0x84,0x85, - 0x99,0x9B,0x89,0x7A,0x78,0x86,0x87,0x81,0x87,0x8F,0x90,0x81,0x78,0x80,0x8F,0x99, - 0x9A,0x98,0x99,0x9A,0x8C,0x91,0x94,0x91,0x97,0x94,0x97,0x9B,0xA3,0xA1,0x90,0x8B, - 0x84,0x86,0x8B,0x83,0x7E,0x7C,0x78,0x6C,0x65,0x68,0x6D,0x71,0x6D,0x66,0x64,0x62, - 0x59,0x57,0x5F,0x5B,0x57,0x52,0x4F,0x64,0x6E,0x63,0x5B,0x57,0x5D,0x5F,0x58,0x5F, - 0x66,0x67,0x61,0x57,0x54,0x5F,0x67,0x66,0x71,0x78,0x77,0x75,0x78,0x87,0x95,0x9A, - 0x99,0x9C,0x9A,0xA3,0xAD,0xA4,0x9A,0x96,0x94,0x97,0x97,0x95,0x98,0x8F,0x89,0x8E, - 0x88,0x8B,0x93,0x8F,0x93,0x95,0x8E,0x87,0x86,0x8C,0x92,0x8F,0x88,0x89,0x85,0x8F, - 0x97,0x8B,0x81,0x7B,0x82,0x88,0x84,0x87,0x90,0x91,0x88,0x7E,0x7C,0x85,0x8E,0x8D, - 0x94,0x9E,0x9D,0x94,0x8A,0x92,0x9B,0x96,0x90,0x90,0x93,0x98,0xA3,0x99,0x8B,0x8B, - 0x86,0x86,0x89,0x7D,0x81,0x81,0x73,0x6D,0x64,0x67,0x70,0x6B,0x6B,0x6D,0x63,0x59, - 0x55,0x52,0x5A,0x59,0x51,0x59,0x55,0x58,0x71,0x6A,0x58,0x5A,0x56,0x5D,0x5D,0x59, - 0x64,0x67,0x60,0x59,0x56,0x5E,0x68,0x66,0x72,0x7C,0x7D,0x78,0x76,0x86,0x94,0x99, - 0x99,0x9B,0x99,0x95,0xA5,0xAD,0x9D,0x94,0x94,0x8E,0x92,0x8C,0x8E,0x96,0x8F,0x84, - 0x83,0x82,0x89,0x92,0x8F,0x97,0x97,0x8B,0x86,0x86,0x8B,0x92,0x88,0x87,0x82,0x7C, - 0x95,0x9D,0x8A,0x85,0x84,0x81,0x81,0x7F,0x87,0x92,0x8F,0x86,0x86,0x8B,0x8B,0x8E, - 0x92,0x9E,0x9E,0x96,0x8F,0x8B,0x97,0x9B,0x96,0x96,0x95,0x89,0x9A,0xA9,0x96,0x8D, - 0x85,0x82,0x7D,0x78,0x7B,0x7F,0x7C,0x6F,0x68,0x65,0x67,0x62,0x5D,0x67,0x68,0x5F, - 0x55,0x4E,0x52,0x57,0x52,0x51,0x55,0x4E,0x57,0x6F,0x62,0x5A,0x59,0x56,0x5A,0x54, - 0x5A,0x67,0x6C,0x62,0x5E,0x63,0x66,0x6F,0x6C,0x7B,0x89,0x89,0x88,0x88,0x92,0x9C, - 0x99,0x9C,0xA2,0x96,0x9E,0xB4,0xAC,0x99,0x96,0x90,0x8E,0x89,0x85,0x93,0x93,0x88, - 0x7F,0x83,0x87,0x85,0x87,0x8E,0x95,0x94,0x8E,0x84,0x83,0x84,0x86,0x86,0x88,0x83, - 0x81,0x9A,0x9A,0x88,0x83,0x85,0x82,0x7E,0x82,0x8E,0x96,0x8F,0x87,0x8F,0x8E,0x85, - 0x8F,0x92,0x98,0x9E,0x97,0x90,0x8F,0x8E,0x8A,0x8E,0x95,0x8F,0x86,0x9A,0xA8,0x8F, - 0x85,0x85,0x7B,0x77,0x76,0x78,0x83,0x7F,0x6C,0x6B,0x6B,0x61,0x5D,0x5F,0x62,0x68, - 0x60,0x56,0x58,0x53,0x4D,0x4F,0x58,0x59,0x4F,0x60,0x75,0x64,0x56,0x5C,0x59,0x55, - 0x56,0x5F,0x6A,0x71,0x67,0x66,0x6D,0x68,0x69,0x74,0x7F,0x8A,0x93,0x90,0x98,0x9A, - 0x95,0x9D,0xA5,0xA6,0x9C,0xA6,0xBA,0xA9,0x91,0x97,0x93,0x86,0x81,0x89,0x92,0x95, - 0x8E,0x85,0x8D,0x88,0x80,0x83,0x8A,0x8E,0x8C,0x88,0x89,0x85,0x7A,0x7D,0x84,0x87, - 0x7B,0x84,0x9D,0x93,0x82,0x88,0x8C,0x7F,0x81,0x87,0x92,0x9B,0x93,0x90,0x9A,0x95, - 0x8A,0x8E,0x94,0x95,0x95,0x95,0x96,0x97,0x8C,0x8D,0x97,0x94,0x89,0x8B,0x9F,0x99, - 0x81,0x85,0x86,0x74,0x6C,0x73,0x78,0x7B,0x76,0x6F,0x73,0x6D,0x5D,0x5B,0x60,0x5D, - 0x5D,0x5C,0x5C,0x5F,0x57,0x51,0x5A,0x5C,0x53,0x5D,0x6B,0x60,0x5B,0x65,0x5B,0x51, - 0x58,0x5A,0x5C,0x67,0x65,0x68,0x76,0x70,0x71,0x7C,0x7F,0x85,0x90,0x97,0x9E,0xA4, - 0xA0,0xA3,0xA6,0xA3,0xA8,0xB0,0xA5,0x9F,0xA5,0x99,0x8B,0x90,0x8F,0x86,0x8C,0x8D, - 0x88,0x8E,0x8D,0x83,0x89,0x89,0x7F,0x81,0x84,0x82,0x81,0x80,0x80,0x83,0x7C,0x80, - 0x90,0x8D,0x84,0x8C,0x93,0x85,0x80,0x89,0x88,0x86,0x8C,0x8D,0x91,0x99,0x93,0x93, - 0x9D,0x98,0x90,0x96,0x98,0x94,0x92,0x90,0x94,0x94,0x8E,0x94,0x9E,0x95,0x8C,0x8F, - 0x8E,0x80,0x79,0x7E,0x77,0x70,0x72,0x6E,0x6E,0x71,0x69,0x64,0x69,0x65,0x60,0x5F, - 0x5D,0x5A,0x59,0x57,0x5A,0x5E,0x5B,0x5D,0x65,0x65,0x5D,0x5C,0x65,0x64,0x5C,0x60, - 0x66,0x63,0x66,0x68,0x69,0x6F,0x72,0x74,0x79,0x80,0x86,0x8B,0x92,0x9E,0x9F,0xA1, - 0xA6,0xA8,0xA6,0xA5,0xA6,0xA4,0xA2,0x9D,0x99,0x94,0x95,0x92,0x8F,0x8D,0x8A,0x88, - 0x86,0x86,0x86,0x84,0x82,0x83,0x82,0x80,0x7E,0x7E,0x7D,0x7E,0x7E,0x7D,0x81,0x82, - 0x82,0x84,0x82,0x84,0x85,0x85,0x86,0x88,0x89,0x8C,0x8E,0x91,0x94,0x93,0x93,0x93, - 0x93,0x93,0x94,0x96,0x95,0x95,0x95,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x8D,0x88, - 0x85,0x81,0x7F,0x7C,0x7B,0x77,0x74,0x73,0x71,0x6C,0x69,0x68,0x63,0x62,0x62,0x61, - 0x5F,0x5E,0x5C,0x5B,0x59,0x5B,0x5C,0x5E,0x5F,0x60,0x61,0x60,0x61,0x60,0x63,0x63, - 0x64,0x67,0x69,0x6D,0x6F,0x72,0x76,0x7B,0x7E,0x86,0x8E,0x93,0x9A,0x9F,0xA2,0xA5, - 0xA4,0xA3,0xA5,0xA1,0xA0,0x9E,0x9A,0x97,0x94,0x92,0x8E,0x8C,0x88,0x87,0x84,0x84, - 0x83,0x81,0x80,0x7C,0x7B,0x7B,0x7B,0x7A,0x7B,0x7B,0x7A,0x7B,0x7C,0x7C,0x7C,0x7E, - 0x7F,0x7F,0x7F,0x81,0x81,0x82,0x85,0x86,0x87,0x8A,0x8C,0x8D,0x8E,0x92,0x91,0x90, - 0x93,0x92,0x93,0x96,0x96,0x95,0x98,0x96,0x93,0x91,0x91,0x8F,0x8E,0x8D,0x8B,0x88, - 0x85,0x81,0x7E,0x7A,0x78,0x75,0x72,0x72,0x6E,0x6B,0x69,0x67,0x65,0x64,0x63,0x62, - 0x5F,0x5E,0x60,0x5D,0x5D,0x5D,0x5C,0x5D,0x5E,0x5C,0x5E,0x60,0x60,0x60,0x62,0x63, - 0x66,0x69,0x6B,0x6F,0x72,0x76,0x7A,0x7F,0x83,0x8B,0x91,0x96,0x9B,0x9E,0xA2,0xA2, - 0xA3,0xA3,0xA2,0xA0,0x9E,0x9B,0x97,0x94,0x90,0x8D,0x8B,0x87,0x84,0x82,0x81,0x7F, - 0x7D,0x7C,0x7D,0x7B,0x79,0x7A,0x79,0x78,0x78,0x78,0x78,0x79,0x7A,0x7D,0x7C,0x7E, - 0x80,0x81,0x83,0x83,0x84,0x86,0x89,0x8A,0x8C,0x8C,0x8F,0x8E,0x8D,0x8F,0x8F,0x8E, - 0x90,0x91,0x90,0x90,0x8F,0x8E,0x8E,0x8D,0x8B,0x8B,0x89,0x88,0x86,0x85,0x82,0x7F, - 0x7F,0x7D,0x7A,0x79,0x7B,0x77,0x77,0x74,0x72,0x73,0x6E,0x6D,0x6C,0x6B,0x6A,0x69, - 0x68,0x6A,0x6A,0x69,0x6B,0x6C,0x6C,0x6B,0x6D,0x6E,0x6E,0x6E,0x71,0x73,0x72,0x76, - 0x79,0x79,0x7D,0x7E,0x7F,0x84,0x84,0x86,0x8A,0x8B,0x8E,0x8E,0x8F,0x91,0x8F,0x8F, - 0x91,0x8F,0x8D,0x8C,0x8B,0x8A,0x89,0x86,0x85,0x85,0x82,0x80,0x80,0x81,0x7F,0x7E, - 0x7F,0x7D,0x7A,0x79,0x7B,0x79,0x79,0x7A,0x78,0x79,0x79,0x79,0x7A,0x7B,0x7B,0x7C, - 0x7C,0x80,0x7E,0x7E,0x82,0x81,0x82,0x83,0x85,0x86,0x87,0x86,0x88,0x88,0x88,0x88, - 0x87,0x88,0x88,0x8A,0x88,0x89,0x87,0x88,0x89,0x88,0x88,0x88,0x87,0x88,0x86,0x83, - 0x86,0x83,0x83,0x83,0x83,0x84,0x82,0x82,0x81,0x81,0x7F,0x80,0x7E,0x7F,0x7F,0x7D, - 0x7E,0x7D,0x7B,0x7B,0x7C,0x7A,0x7C,0x7B,0x7A,0x7B,0x7A,0x7C,0x7C,0x7D,0x7D,0x80, - 0x80,0x82,0x83,0x83,0x86,0x85,0x87,0x89,0x88,0x89,0x8B,0x89,0x8A,0x88,0x88,0x88, - 0x88,0x88,0x87,0x85,0x84,0x84,0x81,0x7F,0x7F,0x7F,0x7E,0x7D,0x7B,0x7B,0x79,0x78, - 0x7A,0x78,0x78,0x78,0x79,0x78,0x79,0x78,0x79,0x7A,0x7A,0x7B,0x7A,0x7B,0x7C,0x7B, - 0x7D,0x7E,0x7D,0x7F,0x80,0x80,0x81,0x80,0x81,0x80,0x81,0x82,0x82,0x82,0x82,0x84, - 0x82,0x83,0x82,0x83,0x84,0x83,0x84,0x83,0x82,0x83,0x84,0x81,0x83,0x83,0x82,0x81, - 0x82,0x82,0x81,0x81,0x80,0x81,0x80,0x81,0x7F,0x80,0x80,0x7E,0x7E,0x7E,0x7D,0x7D, - 0x7F,0x7E,0x7C,0x7C,0x7E,0x7D,0x7E,0x7C,0x7E,0x7F,0x7E,0x7E,0x7E,0x80,0x80,0x81, - 0x81,0x82,0x82,0x83,0x84,0x84,0x85,0x84,0x85,0x86,0x85,0x85,0x86,0x85,0x84,0x84, - 0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x80,0x7F,0x81,0x80,0x7F,0x7F,0x7E,0x7E,0x7D, - 0x7D,0x7D,0x7E,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7E,0x7D,0x7C,0x7D,0x7E,0x7E,0x7F, - 0x7E,0x7E,0x80,0x7E,0x7E,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x83, - 0x83,0x84,0x83,0x83,0x83,0x83,0x83,0x81,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x7F, - 0x80,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x7E,0x7E,0x7F,0x7E,0x7E,0x7F, - 0x7F,0x7F,0x7F,0x7E,0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x7E,0x7F,0x80,0x80,0x80, - 0x7F,0x7F,0x7F,0x80,0x81,0x82,0x81,0x82,0x82,0x81,0x81,0x82,0x82,0x82,0x83,0x81, - 0x81,0x81,0x81,0x80,0x81,0x82,0x80,0x80,0x80,0x80,0x7F,0x7F,0x7E,0x7C,0x7D,0x7C, - 0x7C,0x7C,0x7C,0x7C,0x7D,0x7C,0x7C,0x7D,0x7C,0x7C,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E, - 0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x81,0x81,0x81,0x80,0x7F,0x80,0x80,0x80,0x80,0x80, - 0x80,0x80,0x7F,0x7F,0x80,0x81,0x80,0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x80,0x80, - 0x80,0x80,0x80,0x80,0x80,0x80,0x7F,0x81,0x81,0x7F,0x80,0x80,0x7F,0x7E,0x7E,0x7D, - 0x7D,0x7E,0x7D,0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x80,0x80,0x81,0x81,0x81, - 0x80,0x82,0x82,0x82,0x84,0x83,0x83,0x83,0x82,0x80,0x80,0x81,0x80,0x80,0x81,0x80, - 0x80,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x80,0x80,0x81,0x80,0x7F, - 0x80,0x7F,0x7F,0x80,0x80,0x7F,0x7F,0x80,0x7F,0x7E,0x80,0x7F,0x7F,0x7F,0x7D,0x7C, - 0x7D,0x7D,0x7D,0x7E,0x7F,0x7E,0x7F,0x80,0x80,0x7F,0x81,0x82,0x80,0x81,0x81,0x82, - 0x81,0x83,0x82,0x84,0x97,0x82,0x86,0x84,0x64,0x7F,0x80,0x68,0x67,0x77,0x7E,0x86, - 0x8C,0x8B,0x8A,0x86,0x95,0xA0,0x9C,0x98,0x95,0x91,0x8D,0x89,0x87,0x82,0x75,0x6B, - 0x63,0x5D,0x5C,0x5B,0x58,0x5A,0x61,0x65,0x6A,0x6F,0x72,0x78,0x7A,0x7D,0x83,0x85, - 0x86,0x8B,0x8E,0x90,0x95,0xA0,0xA9,0xB1,0xB7,0xB5,0xB5,0xB2,0xA9,0xA2,0x9D,0x98, - 0x92,0x8C,0x89,0x84,0x7F,0x7D,0x7A,0x77,0x74,0x71,0x6E,0x6B,0x69,0x68,0x66,0x60, - 0x58,0x51,0x49,0x46,0x49,0x4B,0x4C,0x54,0x5B,0x61,0x6A,0x6F,0x73,0x76,0x7C,0x81, - 0x85,0x8A,0x8C,0x8F,0x91,0x94,0x96,0x98,0xA2,0xAB,0xB1,0xB6,0xB4,0xB4,0xB1,0xAF, - 0xAD,0xAB,0xA4,0x9C,0x9A,0x91,0x8B,0x8A,0x86,0x83,0x7F,0x7C,0x78,0x72,0x68,0x60, - 0x5A,0x58,0x52,0x4F,0x51,0x4C,0x4F,0x54,0x57,0x61,0x64,0x69,0x6E,0x76,0x7F,0x84, - 0x8A,0x8B,0x92,0x94,0x94,0x9A,0x99,0x9F,0x9F,0xA1,0x9E,0x93,0x9D,0xA3,0xAB,0xB0, - 0xAA,0xA2,0x97,0x94,0x8D,0x85,0x7E,0x77,0x7C,0x77,0x77,0x7B,0x71,0x70,0x73,0x73, - 0x70,0x70,0x6E,0x6C,0x69,0x66,0x65,0x61,0x61,0x60,0x5A,0x5A,0x58,0x5B,0x5C,0x5B, - 0x63,0x63,0x65,0x6A,0x6D,0x73,0x75,0x78,0x7B,0x7D,0x82,0x88,0x8D,0x92,0x96,0x9D, - 0xA5,0xAD,0xB4,0xB8,0xBB,0xBD,0xC0,0xC3,0xC1,0xBF,0xBB,0xB8,0xB4,0xAB,0xA5,0x9C, - 0x96,0x92,0x89,0x83,0x7D,0x78,0x74,0x6C,0x65,0x5F,0x60,0x5F,0x57,0x51,0x4F,0x52, - 0x4F,0x4B,0x4A,0x4B,0x4A,0x48,0x4B,0x52,0x53,0x57,0x5B,0x62,0x6B,0x6B,0x6D,0x73, - 0x76,0x78,0x7A,0x7E,0x86,0x8C,0x8A,0x8A,0x92,0x99,0x9E,0xA2,0xA2,0xAC,0xB8,0xB8, - 0xB7,0xB5,0xB4,0xBB,0xBD,0xB8,0xB8,0xB8,0xB9,0xBB,0xB8,0xB1,0xB0,0xB0,0xA9,0xA1, - 0x97,0x92,0x8B,0x7E,0x76,0x6E,0x67,0x5F,0x59,0x60,0x61,0x59,0x55,0x4D,0x4B,0x49, - 0x38,0x35,0x3C,0x3A,0x3C,0x3E,0x3F,0x46,0x49,0x45,0x49,0x4B,0x4C,0x52,0x58,0x5F, - 0x67,0x6D,0x72,0x82,0x8C,0x8E,0x94,0x98,0x9B,0x9D,0x98,0x9B,0xA6,0xAA,0xA9,0xAD, - 0xB2,0xB8,0xB6,0xB1,0xB2,0xB1,0xAE,0xAD,0xAE,0xB2,0xAE,0xA8,0x9F,0xA7,0xB2,0xA4, - 0x9F,0x9F,0x96,0x90,0x7F,0x7A,0x85,0x7B,0x6F,0x75,0x77,0x76,0x70,0x62,0x66,0x63, - 0x51,0x52,0x58,0x5A,0x5B,0x56,0x58,0x5D,0x6A,0x6B,0x66,0x6E,0x6E,0x67,0x63,0x61, - 0x67,0x6A,0x69,0x70,0x7A,0x79,0x78,0x7A,0x7A,0x79,0x76,0x76,0x7B,0x7D,0x7F,0x81, - 0x84,0x80,0x86,0x99,0x92,0x91,0x9C,0x97,0x92,0x8C,0x8B,0x95,0x92,0x8C,0x96,0x9A, - 0x98,0x9B,0x99,0x99,0x97,0x91,0x98,0x99,0x94,0x95,0x90,0x8D,0x8A,0x96,0x9E,0x93, - 0x96,0x9B,0x8F,0x85,0x80,0x81,0x82,0x77,0x79,0x82,0x7B,0x75,0x74,0x6D,0x69,0x64, - 0x61,0x65,0x60,0x60,0x5F,0x5A,0x55,0x5A,0x6E,0x67,0x63,0x73,0x6D,0x65,0x62,0x63, - 0x6A,0x65,0x65,0x77,0x7A,0x75,0x7C,0x7E,0x7D,0x7B,0x7C,0x86,0x86,0x84,0x8B,0x86, - 0x83,0x81,0x92,0x9B,0x8A,0x93,0x9C,0x8E,0x89,0x8A,0x8C,0x8A,0x86,0x92,0x9E,0x99, - 0x99,0xA0,0x9D,0x97,0x94,0x96,0x97,0x91,0x93,0x93,0x8B,0x83,0x89,0x9B,0x8E,0x8A, - 0x9B,0x91,0x85,0x83,0x82,0x84,0x7A,0x7A,0x89,0x88,0x82,0x87,0x86,0x7F,0x78,0x76, - 0x7B,0x74,0x72,0x77,0x6D,0x66,0x63,0x72,0x76,0x63,0x6E,0x74,0x63,0x5E,0x60,0x60, - 0x5E,0x59,0x61,0x69,0x62,0x66,0x6C,0x68,0x66,0x66,0x6C,0x6E,0x6D,0x77,0x7A,0x76, - 0x76,0x83,0x99,0x8E,0x8E,0xA2,0x98,0x8E,0x91,0x93,0x91,0x8B,0x8F,0x9C,0x96,0x92, - 0x9B,0x99,0x92,0x8F,0x91,0x92,0x89,0x8A,0x8E,0x86,0x82,0x81,0x91,0x97,0x85,0x92, - 0x9A,0x88,0x86,0x8A,0x8A,0x87,0x82,0x8D,0x94,0x89,0x8F,0x97,0x8F,0x8B,0x8C,0x8D, - 0x88,0x82,0x88,0x84,0x7B,0x78,0x7C,0x8D,0x83,0x7A,0x8C,0x7F,0x6E,0x6F,0x6C,0x69, - 0x63,0x62,0x6F,0x6A,0x63,0x6F,0x6C,0x65,0x66,0x68,0x69,0x63,0x66,0x6E,0x63,0x5E, - 0x5E,0x68,0x75,0x66,0x70,0x7E,0x69,0x65,0x6A,0x68,0x67,0x63,0x6E,0x78,0x70,0x77, - 0x81,0x7A,0x79,0x7B,0x7D,0x7C,0x78,0x82,0x83,0x7A,0x7B,0x7C,0x8D,0x92,0x85,0x9A, - 0x9B,0x89,0x8C,0x8C,0x8B,0x89,0x87,0x96,0x98,0x93,0x9F,0xA1,0x99,0x99,0x99,0x9A, - 0x95,0x95,0x9D,0x96,0x90,0x90,0x92,0xA5,0x9D,0x97,0xAC,0x9F,0x92,0x94,0x90,0x8F, - 0x85,0x88,0x96,0x8E,0x8C,0x97,0x92,0x8B,0x8A,0x89,0x87,0x80,0x83,0x86,0x7C,0x7A, - 0x76,0x80,0x90,0x7D,0x84,0x8F,0x7B,0x77,0x76,0x74,0x71,0x65,0x72,0x78,0x6B,0x72, - 0x76,0x6E,0x69,0x66,0x67,0x61,0x5B,0x63,0x61,0x5A,0x5A,0x57,0x6B,0x6F,0x5E,0x73, - 0x75,0x63,0x64,0x64,0x67,0x5F,0x5C,0x70,0x6E,0x68,0x76,0x77,0x72,0x6F,0x70,0x75, - 0x6D,0x6F,0x78,0x73,0x71,0x6E,0x75,0x8C,0x7D,0x7C,0x92,0x85,0x7C,0x7B,0x7E,0x82, - 0x75,0x7D,0x8F,0x86,0x88,0x93,0x93,0x91,0x8C,0x92,0x94,0x8B,0x91,0x97,0x91,0x90, - 0x8B,0x9E,0xAB,0x95,0xA4,0xB0,0x9E,0x97,0x95,0x9B,0x98,0x8C,0x9C,0xA4,0x98,0x9E, - 0xA5,0xA5,0x9D,0x96,0x9F,0x99,0x8F,0x96,0x95,0x91,0x8B,0x88,0xA5,0x9E,0x8D,0xA5, - 0xA0,0x90,0x8B,0x89,0x92,0x82,0x7B,0x90,0x8D,0x84,0x88,0x8C,0x8E,0x81,0x7C,0x83, - 0x78,0x71,0x74,0x71,0x6E,0x62,0x68,0x81,0x6D,0x6A,0x7B,0x71,0x68,0x5D,0x63,0x6A, - 0x54,0x56,0x67,0x62,0x5F,0x61,0x69,0x6B,0x5E,0x60,0x64,0x5C,0x58,0x59,0x5D,0x5C, - 0x4E,0x5F,0x73,0x60,0x65,0x71,0x6D,0x68,0x5A,0x66,0x6B,0x58,0x5F,0x68,0x69,0x6D, - 0x6A,0x75,0x7E,0x74,0x77,0x7B,0x7A,0x76,0x74,0x7C,0x80,0x76,0x7F,0x94,0x8B,0x8C, - 0x95,0x93,0x99,0x89,0x8C,0x97,0x8A,0x8C,0x8F,0x90,0x98,0x93,0x97,0xA0,0x9D,0x9E, - 0x9C,0x9C,0x9D,0x98,0x9C,0x9E,0x9D,0x9D,0xA4,0xA4,0x9F,0xA4,0xA3,0xA4,0xA3,0x9D, - 0xA1,0x9F,0x9B,0x9D,0x9A,0x9B,0x9C,0x99,0x9C,0x9B,0x9A,0x9B,0x97,0x96,0x95,0x93, - 0x92,0x90,0x8E,0x8F,0x93,0x8D,0x8A,0x8D,0x8A,0x8A,0x85,0x82,0x85,0x80,0x7D,0x7D, - 0x7A,0x7B,0x79,0x77,0x79,0x76,0x75,0x74,0x72,0x73,0x6F,0x6E,0x6D,0x6C,0x6C,0x6B, - 0x74,0x6D,0x6A,0x70,0x6D,0x70,0x6A,0x67,0x6E,0x67,0x64,0x67,0x65,0x6A,0x65,0x62, - 0x69,0x64,0x62,0x63,0x64,0x64,0x5E,0x5E,0x5E,0x5C,0x58,0x60,0x6C,0x5F,0x63,0x6C, - 0x69,0x6B,0x62,0x68,0x6D,0x61,0x65,0x6B,0x6D,0x70,0x6C,0x76,0x7B,0x75,0x7B,0x7F, - 0x7F,0x7C,0x7B,0x7E,0x7D,0x77,0x78,0x90,0x8B,0x82,0x96,0x94,0x94,0x8B,0x8A,0x97, - 0x86,0x83,0x8E,0x8D,0x8F,0x8C,0x94,0x9F,0x94,0x99,0xA0,0x9A,0x96,0x92,0x95,0x92, - 0x8A,0x85,0x9D,0xA3,0x90,0xA4,0xA8,0xA0,0x98,0x91,0x9F,0x8F,0x82,0x92,0x8F,0x8D, - 0x8E,0x93,0x9F,0x94,0x94,0x9E,0x93,0x8D,0x8B,0x8C,0x86,0x7F,0x79,0x89,0x96,0x80, - 0x90,0x9A,0x8E,0x8A,0x81,0x8C,0x81,0x6F,0x81,0x7E,0x78,0x7E,0x81,0x8D,0x84,0x83, - 0x90,0x83,0x7D,0x7E,0x7C,0x78,0x73,0x6E,0x75,0x8B,0x76,0x7E,0x90,0x80,0x7E,0x74, - 0x7A,0x74,0x60,0x70,0x6F,0x65,0x6E,0x70,0x79,0x75,0x72,0x82,0x74,0x6E,0x73,0x6D, - 0x6C,0x6B,0x67,0x69,0x83,0x78,0x76,0x8D,0x81,0x80,0x7A,0x7C,0x7D,0x66,0x74,0x79, - 0x6B,0x76,0x7A,0x80,0x80,0x7B,0x89,0x7F,0x76,0x7C,0x74,0x72,0x72,0x71,0x6A,0x83, - 0x84,0x74,0x90,0x88,0x81,0x7F,0x7B,0x82,0x6B,0x6F,0x7E,0x6F,0x75,0x7E,0x81,0x84, - 0x7F,0x8B,0x87,0x7A,0x81,0x7B,0x78,0x79,0x7A,0x70,0x84,0x91,0x7A,0x90,0x94,0x85, - 0x86,0x81,0x86,0x75,0x71,0x83,0x77,0x76,0x84,0x85,0x87,0x84,0x8D,0x8B,0x7B,0x84, - 0x7F,0x79,0x7C,0x7E,0x74,0x7E,0x97,0x7F,0x8B,0x9C,0x8A,0x89,0x85,0x89,0x7E,0x72, - 0x85,0x80,0x78,0x88,0x8A,0x8B,0x8A,0x8E,0x92,0x81,0x86,0x85,0x7B,0x7E,0x80,0x79, - 0x75,0x94,0x89,0x80,0x9C,0x8F,0x85,0x85,0x84,0x80,0x70,0x7D,0x82,0x73,0x81,0x8A, - 0x85,0x85,0x88,0x8D,0x7D,0x7E,0x85,0x78,0x7A,0x7E,0x7C,0x70,0x87,0x93,0x78,0x91, - 0x96,0x82,0x83,0x83,0x82,0x73,0x75,0x84,0x76,0x78,0x8B,0x86,0x83,0x88,0x8C,0x81, - 0x79,0x84,0x7B,0x76,0x7C,0x7F,0x74,0x76,0x96,0x81,0x7F,0x9C,0x88,0x80,0x84,0x82, - 0x7B,0x70,0x7F,0x80,0x73,0x84,0x8B,0x82,0x86,0x8C,0x88,0x7B,0x80,0x81,0x75,0x7B, - 0x7E,0x7C,0x71,0x84,0x94,0x76,0x8C,0x98,0x7D,0x82,0x84,0x7D,0x73,0x73,0x82,0x77, - 0x75,0x8A,0x86,0x7E,0x88,0x89,0x7E,0x7B,0x80,0x79,0x74,0x7B,0x7C,0x77,0x72,0x8D, - 0x88,0x74,0x92,0x8B,0x76,0x80,0x7F,0x76,0x6F,0x77,0x7F,0x73,0x7C,0x8B,0x7F,0x80, - 0x89,0x82,0x7B,0x7C,0x80,0x76,0x77,0x7F,0x7D,0x79,0x7A,0x95,0x84,0x7B,0x9A,0x84, - 0x77,0x85,0x7C,0x76,0x73,0x7C,0x80,0x77,0x84,0x8A,0x81,0x85,0x86,0x81,0x7A,0x7B, - 0x7E,0x75,0x7B,0x7E,0x7F,0x7D,0x7B,0x96,0x82,0x7C,0x98,0x7F,0x77,0x81,0x7A,0x78, - 0x73,0x7C,0x84,0x79,0x81,0x8B,0x7F,0x7F,0x84,0x7D,0x78,0x7B,0x7E,0x77,0x7A,0x80, - 0x7E,0x81,0x79,0x88,0x90,0x77,0x88,0x8D,0x76,0x7C,0x7D,0x7A,0x79,0x7A,0x85,0x7F, - 0x7F,0x8B,0x82,0x80,0x84,0x80,0x7F,0x7E,0x81,0x7F,0x7D,0x82,0x80,0x81,0x88,0x7F, - 0x7F,0x91,0x83,0x7F,0x8B,0x7F,0x7B,0x7D,0x7D,0x7A,0x7A,0x82,0x81,0x80,0x84,0x83, - 0x7F,0x7F,0x81,0x7D,0x7E,0x82,0x82,0x80,0x81,0x85,0x80,0x81,0x87,0x7C,0x85,0x8B, - 0x7C,0x89,0x86,0x7C,0x81,0x7C,0x7C,0x7B,0x7C,0x80,0x7D,0x7F,0x81,0x7F,0x81,0x7F, - 0x7F,0x80,0x80,0x80,0x80,0x7F,0x7F,0x80,0x7E,0x83,0x81,0x77,0x84,0x87,0x80,0x89, - 0x88,0x81,0x7D,0x7E,0x7A,0x76,0x7E,0x7F,0x7D,0x82,0x83,0x81,0x80,0x84,0x85,0x81, - 0x85,0x84,0x80,0x81,0x82,0x81,0x80,0x83,0x81,0x7E,0x82,0x82,0x82,0x83,0x83,0x80, - 0x7C,0x7B,0x77,0x79,0x7D,0x7E,0x83,0x82,0x80,0x81,0x80,0x82,0x85,0x86,0x85,0x84, - 0x88,0x86,0x83,0x83,0x82,0x7F,0x7C,0x81,0x80,0x7E,0x80,0x7D,0x78,0x75,0x83,0x85, - 0x7D,0x8B,0x8A,0x7E,0x7B,0x7C,0x78,0x74,0x7C,0x81,0x7B,0x7D,0x81,0x7D,0x7E,0x85, - 0x85,0x84,0x86,0x85,0x82,0x7F,0x83,0x7F,0x7B,0x85,0x84,0x81,0x88,0x8C,0x87,0x7E, - 0x7E,0x79,0x70,0x74,0x7A,0x7B,0x7E,0x81,0x82,0x7E,0x7E,0x81,0x82,0x82,0x84,0x84, - 0x7F,0x7E,0x80,0x82,0x82,0x86,0x89,0x83,0x81,0x81,0x7B,0x7B,0x7D,0x7D,0x7D,0x7C, - 0x82,0x82,0x7D,0x7F,0x87,0x8A,0x85,0x89,0x8C,0x83,0x7E,0x7A,0x78,0x77,0x79,0x7F, - 0x7F,0x7F,0x82,0x81,0x80,0x80,0x81,0x82,0x81,0x78,0x78,0x80,0x77,0x7D,0x87,0x86, - 0x85,0x82,0x80,0x79,0x74,0x75,0x78,0x7B,0x7D,0x81,0x82,0x7F,0x7F,0x80,0x81,0x83, - 0x85,0x82,0x81,0x7F,0x80,0x80,0x7F,0x89,0x86,0x83,0x87,0x7E,0x7A,0x78,0x77,0x78, - 0x7B,0x7D,0x7D,0x7C,0x7E,0x80,0x83,0x96,0x85,0x6F,0x84,0x95,0x82,0x66,0x87,0x7D, - 0x64,0x80,0x85,0x82,0x7F,0x92,0x8A,0x77,0x89,0x85,0x7F,0x7D,0x90,0x92,0x7D,0x7B, - 0x7B,0x7F,0x7B,0x75,0x76,0x79,0x6D,0x71,0x7E,0x7C,0x85,0x93,0x8F,0x8B,0x8D,0x83, - 0x87,0x85,0x87,0x8D,0x8A,0x85,0x84,0x8D,0x79,0x76,0x8F,0x77,0x61,0x73,0x73,0x74, - 0x69,0x67,0x82,0x71,0x6D,0x7C,0x75,0x78,0x76,0x7D,0x7C,0x6B,0x71,0x82,0x80,0x73, - 0x6C,0x7B,0x84,0x7D,0x80,0x75,0x7D,0x92,0x8B,0x93,0x8E,0x8C,0x96,0x8A,0x8E,0x8D, - 0x82,0x8E,0xA0,0xA1,0x96,0x9D,0xA0,0x97,0x97,0x96,0x90,0x83,0x88,0x93,0x8A,0x9B, - 0xAE,0x92,0x85,0x8A,0x7D,0x6A,0x65,0x72,0x77,0x74,0x77,0x71,0x70,0x73,0x78,0x79, - 0x6F,0x6D,0x6B,0x6F,0x6B,0x73,0x74,0x71,0x7C,0x7D,0x7E,0x6F,0x72,0x8C,0x7F,0x70, - 0x75,0x6F,0x64,0x65,0x71,0x6C,0x63,0x6D,0x7B,0x77,0x69,0x6E,0x71,0x6D,0x6B,0x70, - 0x79,0x79,0x83,0x91,0x9C,0xA7,0x9C,0x8E,0xA2,0xAE,0x98,0x96,0xA1,0x8C,0x81,0x7F, - 0x79,0x7F,0x7F,0x85,0x88,0x8A,0x8D,0x84,0x80,0x7D,0x75,0x74,0x7F,0x82,0x80,0x82, - 0x81,0x81,0x7D,0x76,0x84,0x9A,0x8C,0x86,0x90,0x7C,0x71,0x76,0x70,0x6F,0x73,0x7B, - 0x89,0x89,0x84,0x83,0x82,0x78,0x75,0x76,0x80,0x89,0x86,0x88,0x8B,0x8B,0x7E,0x8D, - 0xA1,0x97,0x95,0x9A,0x90,0x85,0x85,0x88,0x8E,0x86,0x8A,0x96,0x94,0x88,0x82,0x7D, - 0x73,0x6F,0x6E,0x79,0x7B,0x6F,0x74,0x6B,0x61,0x61,0x5B,0x71,0x72,0x65,0x74,0x76, - 0x6B,0x67,0x6A,0x6A,0x6E,0x6A,0x76,0x81,0x74,0x73,0x78,0x76,0x6E,0x70,0x77,0x7F, - 0x7C,0x76,0x70,0x68,0x67,0x6B,0x7C,0x7F,0x78,0x85,0x81,0x6C,0x72,0x74,0x7B,0x8B, - 0x8D,0xA3,0xB1,0xAA,0xAA,0xAA,0x9D,0x94,0x9A,0x98,0x99,0x9C,0x94,0x91,0x8D,0x85, - 0x8C,0x9A,0x92,0x8A,0x97,0x8D,0x7B,0x77,0x7A,0x88,0x85,0x85,0x8D,0x91,0x89,0x84, - 0x88,0x7F,0x80,0x82,0x83,0x86,0x83,0x7F,0x7A,0x7F,0x7C,0x89,0x96,0x80,0x81,0x8C, - 0x7C,0x72,0x71,0x78,0x84,0x80,0x8C,0x9B,0x9C,0x99,0x94,0x90,0x90,0x8A,0x8B,0x98, - 0x97,0x95,0x8F,0x8F,0x8D,0x87,0x9A,0x9D,0x8B,0x91,0x94,0x81,0x6F,0x6E,0x73,0x70, - 0x6A,0x70,0x79,0x71,0x6E,0x6A,0x63,0x64,0x5C,0x63,0x69,0x6C,0x6E,0x5F,0x63,0x5D, - 0x61,0x78,0x74,0x70,0x7A,0x74,0x65,0x5D,0x5F,0x6E,0x72,0x6D,0x79,0x7F,0x70,0x6A, - 0x62,0x61,0x65,0x64,0x6F,0x77,0x75,0x6F,0x6C,0x6D,0x77,0x8E,0x9F,0x99,0xA6,0xAC, - 0x9C,0x94,0x8E,0x96,0x98,0x98,0xA2,0xA8,0xA0,0x99,0x8E,0x8B,0x89,0x84,0x88,0x91, - 0x90,0x84,0x7E,0x7B,0x7B,0x7F,0x9A,0x9C,0x8A,0x92,0x8F,0x7F,0x76,0x76,0x81,0x86, - 0x80,0x8A,0x8F,0x8A,0x84,0x7E,0x7E,0x7C,0x7B,0x7F,0x8B,0x8B,0x7B,0x73,0x78,0x79, - 0x88,0x9A,0x95,0x97,0x9E,0x8C,0x80,0x7F,0x8C,0x98,0x8C,0x94,0xA1,0x9A,0x93,0x8B, - 0x8D,0x8E,0x89,0x86,0x90,0x92,0x8A,0x7F,0x74,0x72,0x71,0x83,0x86,0x78,0x7A,0x77, - 0x62,0x56,0x59,0x65,0x65,0x5D,0x6B,0x74,0x6C,0x65,0x62,0x65,0x68,0x63,0x64,0x73, - 0x76,0x6F,0x66,0x5E,0x62,0x76,0x8C,0x81,0x77,0x84,0x7A,0x66,0x5C,0x5F,0x70,0x70, - 0x6A,0x79,0x7F,0x76,0x72,0x6F,0x72,0x7D,0x7E,0x8C,0x9A,0x9C,0x9E,0x94,0x91,0x95, - 0xA7,0xB5,0xAD,0xA9,0xAD,0x9B,0x8C,0x85,0x86,0x92,0x8D,0x88,0x93,0x93,0x87,0x82, - 0x7E,0x80,0x85,0x7E,0x86,0x8F,0x89,0x82,0x75,0x72,0x76,0x8A,0x94,0x88,0x8D,0x91, - 0x83,0x72,0x6D,0x77,0x80,0x7C,0x7E,0x89,0x87,0x85,0x82,0x76,0x81,0x86,0x82,0x8B, - 0x90,0x93,0x8A,0x83,0x88,0x85,0x9B,0xA7,0x99,0x9D,0x9D,0x90,0x86,0x7F,0x82,0x8E, - 0x83,0x83,0x94,0x8D,0x88,0x7A,0x6D,0x79,0x74,0x69,0x71,0x79,0x75,0x6A,0x61,0x60, - 0x63,0x70,0x7D,0x72,0x71,0x79,0x6C,0x5D,0x5A,0x5C,0x67,0x63,0x60,0x6F,0x72,0x71, - 0x6F,0x6A,0x6F,0x70,0x64,0x65,0x70,0x72,0x6C,0x60,0x60,0x62,0x6D,0x7C,0x72,0x73, - 0x7C,0x77,0x70,0x69,0x6F,0x83,0x82,0x81,0x92,0x9F,0xAB,0xA8,0x9E,0xA6,0xA3,0x98, - 0x96,0x9E,0xA0,0x9B,0x95,0x8C,0x85,0x8A,0x9C,0x95,0x89,0x93,0x8E,0x81,0x7A,0x73, - 0x80,0x7F,0x73,0x7A,0x83,0x86,0x84,0x81,0x7E,0x82,0x7B,0x73,0x78,0x7B,0x7F,0x7F, - 0x7B,0x7C,0x76,0x88,0x96,0x86,0x88,0x8C,0x85,0x85,0x7D,0x79,0x88,0x85,0x84,0x8B, - 0x8D,0x96,0x93,0x8F,0x96,0x92,0x8B,0x89,0x89,0x8A,0x8C,0x8D,0x89,0x8C,0x84,0x85, - 0x8E,0x80,0x83,0x82,0x78,0x7F,0x78,0x71,0x75,0x6E,0x6F,0x73,0x6D,0x6E,0x73,0x6D, - 0x6C,0x6C,0x67,0x6A,0x6A,0x69,0x6E,0x6F,0x6C,0x6C,0x6A,0x69,0x6D,0x6E,0x6F,0x70, - 0x6E,0x70,0x71,0x6D,0x6D,0x6E,0x6F,0x6F,0x6E,0x6B,0x6C,0x6D,0x6C,0x6E,0x71,0x75, - 0x7B,0x7E,0x85,0x8B,0x8E,0x95,0x9A,0x9E,0x9E,0xA2,0xAA,0xA9,0xA2,0xA4,0xA4,0xA0, - 0xA1,0x9A,0x97,0x9A,0x94,0x8D,0x89,0x85,0x86,0x82,0x7F,0x7F,0x7C,0x7F,0x7F,0x7A, - 0x7B,0x7E,0x7C,0x7C,0x7A,0x7B,0x7E,0x7B,0x7F,0x81,0x7B,0x7A,0x81,0x85,0x87,0x84, - 0x83,0x8B,0x87,0x83,0x86,0x85,0x89,0x8A,0x81,0x88,0x8D,0x8D,0x94,0x92,0x94,0x97, - 0x93,0x94,0x93,0x91,0x91,0x8E,0x91,0x99,0x94,0x90,0x8D,0x8C,0x8D,0x84,0x7E,0x83, - 0x80,0x7B,0x79,0x78,0x7C,0x7A,0x70,0x77,0x7C,0x74,0x76,0x72,0x74,0x77,0x6D,0x6E, - 0x74,0x71,0x6F,0x68,0x76,0x80,0x70,0x72,0x75,0x77,0x76,0x67,0x6B,0x76,0x69,0x65, - 0x6A,0x69,0x71,0x6A,0x66,0x73,0x73,0x6D,0x6B,0x6C,0x74,0x72,0x71,0x7D,0x80,0x80, - 0x79,0x8B,0xA7,0x9D,0x98,0xAA,0xB2,0xAA,0x97,0x98,0xA9,0x9B,0x8D,0x94,0x9C,0x9C, - 0x93,0x8A,0x98,0x96,0x82,0x7F,0x84,0x82,0x7B,0x79,0x7F,0x7D,0x77,0x6E,0x77,0x93, - 0x84,0x75,0x85,0x88,0x80,0x6F,0x6C,0x80,0x7A,0x6A,0x77,0x84,0x87,0x81,0x7D,0x8C, - 0x8E,0x7D,0x7D,0x88,0x8A,0x84,0x80,0x8F,0x96,0x89,0x81,0x8A,0xA6,0x9F,0x8B,0x9D, - 0xA2,0x9A,0x8A,0x80,0x92,0x91,0x77,0x7E,0x90,0x8D,0x83,0x7E,0x8B,0x8F,0x7B,0x74, - 0x82,0x7D,0x74,0x72,0x78,0x7F,0x73,0x6A,0x6A,0x80,0x84,0x6D,0x76,0x80,0x77,0x6D, - 0x62,0x6F,0x74,0x5F,0x5E,0x6F,0x74,0x6B,0x67,0x70,0x7A,0x6A,0x5E,0x6D,0x6D,0x5F, - 0x5F,0x67,0x6C,0x66,0x61,0x5F,0x68,0x82,0x72,0x6E,0x89,0x87,0x7F,0x7F,0x82,0x90, - 0x8E,0x85,0x97,0xA5,0xA2,0x9F,0x9F,0xAC,0xAB,0x95,0x9B,0xA4,0x91,0x8B,0x8F,0x8E, - 0x8A,0x7F,0x80,0x76,0x7E,0x92,0x7B,0x79,0x88,0x7C,0x74,0x6C,0x6B,0x73,0x66,0x61, - 0x71,0x76,0x6E,0x71,0x77,0x80,0x7E,0x73,0x7F,0x82,0x77,0x77,0x80,0x81,0x7E,0x7F, - 0x83,0x80,0x87,0xA0,0x8F,0x8C,0x9E,0x96,0x91,0x8B,0x88,0x8F,0x85,0x7B,0x88,0x8A, - 0x84,0x86,0x88,0x8C,0x8C,0x82,0x85,0x89,0x81,0x7C,0x7C,0x7C,0x7C,0x79,0x7B,0x79, - 0x6F,0x88,0x87,0x71,0x83,0x83,0x7C,0x78,0x6D,0x77,0x77,0x65,0x69,0x76,0x72,0x6D, - 0x6F,0x76,0x79,0x75,0x72,0x7B,0x7B,0x6E,0x70,0x72,0x6E,0x6C,0x6D,0x72,0x6C,0x69, - 0x81,0x7A,0x72,0x81,0x7E,0x80,0x7A,0x76,0x81,0x7B,0x71,0x79,0x80,0x80,0x81,0x84, - 0x8E,0x90,0x8A,0x8F,0x95,0x8D,0x87,0x88,0x8A,0x83,0x7F,0x84,0x86,0x7F,0x79,0x88, - 0x86,0x78,0x83,0x80,0x7C,0x7D,0x71,0x7A,0x7A,0x6C,0x71,0x74,0x73,0x74,0x73,0x78, - 0x79,0x77,0x79,0x7D,0x7D,0x7B,0x7C,0x7D,0x7D,0x7E,0x7F,0x80,0x82,0x82,0x83,0x87, - 0x86,0x7E,0x86,0x87,0x83,0x86,0x84,0x89,0x88,0x85,0x89,0x89,0x87,0x86,0x85,0x88, - 0x85,0x83,0x87,0x85,0x87,0x86,0x85,0x8A,0x87,0x86,0x89,0x87,0x85,0x87,0x84,0x83, - 0x85,0x82,0x80,0x81,0x83,0x80,0x80,0x81,0x80,0x80,0x7E,0x7E,0x7E,0x7C,0x7C,0x7C, - 0x7E,0x7E,0x7C,0x7F,0x7F,0x7E,0x7E,0x7B,0x7F,0x7E,0x7C,0x81,0x81,0x7E,0x81,0x80, - 0x82,0x83,0x82,0x83,0x86,0x84,0x83,0x84,0x84,0x85,0x84,0x86,0x86,0x87,0x86,0x86, - 0x84,0x84,0x84,0x82,0x82,0x81,0x82,0x82,0x82,0x80,0x80,0x80,0x7C,0x7E,0x7B,0x7A, - 0x7B,0x7B,0x7C,0x7B,0x7A,0x79,0x7A,0x7B,0x7A,0x78,0x7B,0x79,0x79,0x7A,0x7A,0x7B, - 0x7B,0x7D,0x7D,0x7E,0x7D,0x80,0x7F,0x7E,0x7F,0x80,0x81,0x81,0x82,0x80,0x82,0x82, - 0x84,0x83,0x83,0x85,0x84,0x84,0x85,0x84,0x84,0x85,0x84,0x84,0x85,0x84,0x84,0x86, - 0x87,0x87,0x85,0x85,0x87,0x85,0x84,0x84,0x84,0x85,0x84,0x82,0x84,0x84,0x83,0x85, - 0x85,0x83,0x82,0x84,0x82,0x81,0x82,0x80,0x82,0x82,0x81,0x81,0x80,0x81,0x82,0x82, - 0x81,0x80,0x81,0x81,0x7F,0x81,0x80,0x81,0x81,0x82,0x83,0x82,0x82,0x84,0x85,0x82, - 0x83,0x85,0x86,0x85,0x85,0x87,0x86,0x86,0x87,0x88,0x86,0x86,0x87,0x87,0x86,0x87, - 0x85,0x86,0x86,0x83,0x83,0x83,0x83,0x81,0x80,0x80,0x7E,0x7E,0x7F,0x7F,0x7E,0x7F, - 0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7E,0x7D,0x7D,0x80,0x7F,0x80,0x81,0x80, - 0x80,0x80,0x80,0x80,0x7F,0x80,0x81,0x80,0x81,0x84,0x82,0x83,0x84,0x82,0x82,0x83, - 0x81,0x81,0x82,0x81,0x81,0x81,0x80,0x82,0x81,0x81,0x83,0x82,0x82,0x82,0x81,0x83, - 0x82,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x81,0x80,0x7F,0x80,0x80,0x81, - 0x7F,0x7F,0x80,0x7F,0x7E,0x80,0x80,0x7E,0x80,0x7F,0x7D,0x7E,0x7E,0x7C,0x7D,0x7E, - 0x7E,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x80,0x7F,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0x7F, - 0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x7F,0x80,0x80,0x7F,0x80,0x7F,0x80,0x80,0x7F, - 0x7E,0x7F,0x7F,0x7C,0x7E,0x7E,0x7D,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7E,0x7D,0x7C, - 0x7B,0x7C,0x7C,0x7C,0x7C,0x7D,0x7D,0x7C,0x7C,0x7D,0x7C,0x7B,0x7C,0x7C,0x7E,0x7D, - 0x7E,0x7D,0x7D,0x7E,0x7D,0x80,0x7E,0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7D,0x7E,0x7F, - 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7F,0x7E,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, - 0x7E,0x80,0x7E,0x7F,0x7F,0x7E,0x7D,0x7F,0x80,0x7E,0x80,0x80,0x81,0x7F,0x7F,0x7F, - 0x7E,0x7F,0x7D,0x7F,0x7F,0x7E,0x7F,0x7F,0x7E,0x7E,0x7E,0x7F,0x7E,0x7F,0x7F,0x7D, - 0x7F,0x7E,0x7D,0x7F,0x7F,0x7F,0x81,0x80,0x80,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x7F, - 0x82,0x80,0x7E,0x81,0x80,0x81,0x81,0x80,0x81,0x81,0x81,0x81,0x7F,0x81,0x80,0x7F, - 0x81,0x7E,0x7F,0x7E,0x7D,0x80,0x7E,0x7E,0x7F,0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7D, - 0x7F,0x7E,0x7C,0x80,0x7D,0x7E,0x7F,0x7E,0x81,0x7E,0x81,0x7F,0x7E,0x82,0x80,0x7F, - 0x80,0x80,0x7F,0x81,0x81,0x82,0x7F,0x7F,0x80,0x80,0x80,0x80,0x81,0x83,0x81,0x7F, - 0x82,0x81,0x81,0x81,0x7D,0x81,0x80,0x81,0x82,0x80,0x83,0x82,0x80,0x82,0x80,0x81, - 0x80,0x7F,0x83,0x80,0x80,0x81,0x81,0x82,0x81,0x82,0x81,0x81,0x81,0x81,0x81,0x7D, - 0x80,0x81,0x80,0x81,0x7F,0x82,0x81,0x8C,0x84,0x81,0x85,0x67,0x78,0x80,0x6D,0x69, - 0x77,0x7E,0x85,0x8C,0x87,0x8C,0x86,0x91,0xA1,0x9D,0xA4,0xA3,0x93,0x8E,0x79,0x82, - 0x92,0x76,0x70,0x76,0x6F,0x58,0x5A,0x52,0x51,0x71,0x6A,0x65,0x55,0x5E,0x70,0x6B, - 0x73,0x77,0x81,0x83,0x94,0x95,0x93,0x9B,0xB0,0xAC,0x85,0xBE,0xAF,0x98,0xB6,0x9B, - 0xB0,0xB5,0xA0,0x94,0x8B,0x94,0x9A,0x7B,0x6E,0x79,0x66,0x75,0x6F,0x6B,0x7F,0x68, - 0x63,0x68,0x6F,0x7C,0x6C,0x50,0x4E,0x55,0x5A,0x60,0x64,0x5E,0x56,0x5A,0x6E,0x6F, - 0x78,0x88,0x89,0xA1,0xA9,0x9D,0x91,0x95,0x90,0x8D,0x9A,0xA3,0xB4,0xB1,0x9F,0xA8, - 0xA9,0xA4,0xAB,0x9E,0x9B,0x95,0x8B,0x80,0x77,0x7C,0x70,0x76,0x76,0x75,0x84,0x77, - 0x6E,0x65,0x55,0x5E,0x61,0x50,0x44,0x4F,0x4F,0x3B,0x3A,0x46,0x5D,0x5A,0x62,0x74, - 0x6F,0x7F,0x92,0x90,0x98,0x8A,0x81,0xA0,0x98,0x9A,0xA5,0x93,0xA1,0xB1,0xB6,0xC5, - 0xBA,0xB1,0xC4,0xBB,0xB4,0xC1,0xA7,0x9A,0xAB,0x9C,0x9A,0x99,0x85,0x7B,0x71,0x6B, - 0x70,0x75,0x69,0x63,0x57,0x55,0x5D,0x57,0x56,0x50,0x5A,0x5F,0x4A,0x4B,0x44,0x4E, - 0x5C,0x5B,0x67,0x69,0x71,0x85,0x83,0x8D,0x9A,0x8A,0x9A,0x9F,0x9E,0xB0,0xAE,0xB7, - 0xB5,0xB5,0xB6,0xAF,0xB4,0xA6,0x9E,0xAC,0xA4,0xA5,0xA3,0x99,0x9A,0x98,0x92,0x8F, - 0x83,0x76,0x68,0x63,0x59,0x5F,0x60,0x49,0x50,0x5B,0x5D,0x4F,0x2D,0x22,0x2C,0x39, - 0x43,0x44,0x3D,0x3F,0x47,0x47,0x44,0x4B,0x4F,0x5A,0x5F,0x5A,0x66,0x6F,0x82,0x82, - 0x85,0xAD,0xBE,0xBB,0xAC,0xA5,0xB7,0xBD,0xC1,0xCE,0xC7,0xC9,0xC6,0xAA,0x93,0x92, - 0xA1,0xA1,0xAD,0xB1,0xA0,0xA4,0xA4,0xA3,0xA4,0x9A,0x9E,0xA2,0xA0,0xA4,0x9C,0x91, - 0x82,0x75,0x7A,0x8B,0x86,0x70,0x62,0x60,0x5E,0x60,0x65,0x5F,0x56,0x52,0x63,0x58, - 0x4E,0x45,0x48,0x63,0x5C,0x67,0x6F,0x6B,0x6C,0x70,0x76,0x6C,0x65,0x78,0x88,0x8C, - 0x93,0x84,0x87,0x83,0x65,0x76,0x7D,0x7A,0x7D,0x83,0x97,0x91,0x85,0x8C,0x91,0x84, - 0x8A,0x90,0x8F,0x8B,0x84,0x8E,0xA3,0xA2,0x94,0xA4,0xA9,0x9A,0x8F,0x91,0x99,0x91, - 0x91,0x95,0x9C,0x98,0x8D,0x94,0x86,0x78,0x77,0x78,0x76,0x62,0x66,0x7B,0x78,0x71, - 0x78,0x79,0x73,0x6F,0x6C,0x75,0x6E,0x59,0x57,0x5B,0x5A,0x5B,0x66,0x5E,0x50,0x57, - 0x60,0x67,0x5B,0x51,0x6B,0x77,0x6E,0x71,0x79,0x7A,0x6C,0x74,0x82,0x86,0x91,0x8F, - 0x9C,0x9B,0x89,0x95,0x9E,0xA1,0xA6,0xA2,0xA0,0x94,0x8A,0x9D,0xA7,0xA7,0xAA,0xAD, - 0xAA,0xA7,0xA5,0xA4,0xAB,0x9D,0xA4,0xBF,0xB9,0xAD,0x9F,0xA2,0xAD,0xB2,0xAF,0x99, - 0x90,0x8D,0x9A,0xAA,0x92,0x8A,0x97,0x88,0x77,0x66,0x6A,0x6C,0x5A,0x52,0x51,0x54, - 0x49,0x3F,0x4C,0x5E,0x58,0x4B,0x51,0x48,0x44,0x4B,0x58,0x5F,0x52,0x59,0x58,0x4A, - 0x41,0x3E,0x4B,0x53,0x50,0x50,0x54,0x53,0x48,0x4E,0x62,0x68,0x6B,0x6E,0x78,0x8A, - 0x81,0x8F,0xA5,0x9E,0xA7,0xB2,0xAE,0xAB,0xA5,0xAE,0xB7,0xAE,0xA6,0xA0,0xA6,0x99, - 0x88,0x95,0x92,0x94,0xA3,0x91,0x8A,0x92,0x86,0x9D,0xBE,0xA2,0x90,0x98,0x8B,0x93, - 0xA3,0x95,0x97,0x96,0x8C,0x9D,0x99,0x8A,0x85,0x7A,0x88,0x8A,0x78,0x79,0x7D,0x77, - 0x7D,0x95,0x97,0x8E,0x8C,0x81,0x85,0x83,0x7E,0x8B,0x96,0x89,0x78,0x75,0x6D,0x68, - 0x83,0x9A,0x92,0x7F,0x69,0x70,0x78,0x6F,0x5F,0x59,0x62,0x5A,0x5B,0x5D,0x55,0x55, - 0x4E,0x51,0x63,0x5E,0x4C,0x4D,0x50,0x59,0x5C,0x61,0x6B,0x6E,0x68,0x69,0x71,0x6F, - 0x84,0x8E,0x7F,0x78,0x71,0x6C,0x6E,0x74,0x83,0x8F,0x7F,0x80,0x89,0x83,0x89,0x8F, - 0xA2,0xB9,0xB7,0xAE,0xAD,0xA9,0xAE,0xAB,0xB0,0xC5,0xB6,0x98,0x94,0xA1,0xAD,0xA5, - 0x9A,0xA1,0x9D,0x88,0x83,0x83,0x79,0x7D,0x83,0x88,0x87,0x77,0x6E,0x76,0x75,0x80, - 0x8B,0x81,0x83,0x88,0x80,0x76,0x6A,0x75,0x81,0x79,0x6A,0x5E,0x61,0x69,0x72,0x7C, - 0x80,0x7C,0x6F,0x72,0x76,0x80,0x80,0x6C,0x80,0x91,0x83,0x81,0x7F,0x80,0x85,0x85, - 0x92,0x99,0x80,0x6B,0x70,0x76,0x73,0x73,0x73,0x6C,0x69,0x65,0x68,0x61,0x65,0x80, - 0x7A,0x62,0x5B,0x59,0x59,0x6A,0x77,0x7B,0x81,0x76,0x6B,0x76,0x7F,0x7D,0x7E,0x81, - 0x8A,0x82,0x6A,0x67,0x6C,0x6B,0x74,0x89,0x8F,0x84,0x75,0x7D,0x8D,0x8F,0x94,0x9A, - 0xA6,0xA6,0x9E,0x9F,0xA1,0xAF,0xBB,0xBC,0xBE,0xB9,0xB1,0xB0,0xA4,0xA2,0xAE,0xA1, - 0x8F,0x8B,0x85,0x81,0x7F,0x83,0x91,0x94,0x87,0x7D,0x79,0x78,0x74,0x74,0x7D,0x81, - 0x6F,0x5B,0x63,0x6A,0x62,0x67,0x7A,0x82,0x74,0x69,0x60,0x65,0x6A,0x6E,0x7C,0x76, - 0x6C,0x66,0x67,0x76,0x7F,0x7F,0x86,0x87,0x87,0x89,0x80,0x76,0x81,0x90,0x86,0x7C, - 0x76,0x67,0x64,0x6C,0x79,0x7F,0x7C,0x6C,0x63,0x6D,0x6F,0x68,0x63,0x6D,0x6D,0x63, - 0x61,0x67,0x6A,0x6C,0x86,0x88,0x70,0x68,0x61,0x69,0x72,0x72,0x81,0x7D,0x70,0x73, - 0x77,0x7F,0x82,0x81,0x88,0x8B,0x82,0x77,0x78,0x74,0x7C,0x9E,0x9D,0x8C,0x8C,0x90, - 0x99,0x9C,0xA0,0xAB,0xB7,0xAF,0xAB,0xAA,0xA5,0xAD,0xAF,0xB3,0xB7,0xAE,0x9C,0x9A, - 0x9A,0x99,0xB1,0xAF,0xA1,0x9A,0x87,0x88,0x91,0x8C,0x94,0x9C,0x8F,0x7E,0x78,0x7B, - 0x7F,0x83,0x89,0x86,0x7E,0x77,0x79,0x6F,0x67,0x81,0x84,0x76,0x73,0x6D,0x6A,0x69, - 0x75,0x7E,0x80,0x86,0x76,0x6E,0x71,0x76,0x78,0x75,0x7D,0x74,0x62,0x69,0x68,0x69, - 0x7B,0x86,0x78,0x6E,0x69,0x5E,0x67,0x6F,0x75,0x79,0x6A,0x58,0x63,0x5E,0x44,0x56, - 0x69,0x6D,0x56,0x59,0x6C,0x45,0x43,0x64,0x72,0x68,0x63,0x62,0x4A,0x53,0x67,0x72, - 0x71,0x6F,0x73,0x66,0x5F,0x63,0x6D,0x79,0x7D,0x7D,0x7B,0x71,0x6B,0x74,0x84,0x97, - 0x94,0x92,0x93,0x90,0xA1,0xAC,0xB5,0xC1,0xC3,0xBC,0xAE,0xB5,0xBC,0xB4,0xBA,0xBE, - 0xBB,0xB1,0xA4,0xA1,0x9E,0xA5,0xB4,0xB3,0x9E,0x8A,0x8A,0x88,0x88,0x90,0x95,0x94, - 0x87,0x7F,0x7F,0x8A,0x98,0x8D,0x94,0xA2,0x96,0x89,0x8D,0x91,0x95,0xA4,0xA3,0x99, - 0x8F,0x8A,0x92,0x90,0x93,0xA0,0xA2,0x9A,0x91,0x87,0x84,0x89,0x8D,0x8E,0x8B,0x86, - 0x75,0x71,0x77,0x75,0x86,0x93,0x85,0x6D,0x67,0x66,0x64,0x63,0x65,0x72,0x6E,0x56, - 0x45,0x43,0x57,0x5D,0x59,0x5E,0x53,0x45,0x41,0x44,0x42,0x4B,0x63,0x62,0x4F,0x46, - 0x3E,0x41,0x4C,0x52,0x5D,0x5A,0x45,0x3B,0x44,0x56,0x5E,0x61,0x68,0x67,0x63,0x69, - 0x72,0x72,0x71,0x87,0x9C,0x97,0x88,0x81,0x8C,0x98,0x9D,0xA3,0xA8,0x9D,0x8D,0x91, - 0x95,0x99,0x99,0x95,0x9A,0x99,0x84,0x80,0x88,0x84,0x91,0xA3,0x9A,0x85,0x7C,0x7C, - 0x86,0x8B,0x8F,0x9D,0x9D,0x8B,0x87,0x8B,0x97,0x9E,0x9E,0xAA,0xA9,0x9B,0x8F,0x8E, - 0x92,0x9B,0xB4,0xBB,0xA6,0x9C,0x9A,0x9F,0xA9,0xA7,0xAD,0xB3,0xA2,0x92,0x8D,0x95, - 0x99,0x96,0x9C,0x99,0x90,0x85,0x83,0x89,0x87,0x98,0x9E,0x8A,0x81,0x78,0x75,0x7C, - 0x7A,0x7C,0x83,0x79,0x66,0x5E,0x64,0x6C,0x6C,0x6A,0x6A,0x61,0x55,0x54,0x56,0x51, - 0x5A,0x6F,0x6E,0x5F,0x58,0x57,0x5D,0x64,0x6A,0x72,0x71,0x68,0x5E,0x64,0x76,0x7D, - 0x81,0x89,0x8E,0x8B,0x85,0x8A,0x8A,0x94,0xAA,0xA8,0x9A,0x8A,0x7E,0x83,0x89,0x8D, - 0x95,0x8D,0x7B,0x71,0x70,0x77,0x7B,0x78,0x7A,0x78,0x6B,0x5E,0x62,0x61,0x68,0x7E, - 0x80,0x72,0x64,0x5A,0x62,0x70,0x79,0x82,0x85,0x7D,0x73,0x75,0x7D,0x84,0x85,0x8D, - 0x96,0x8C,0x7F,0x7D,0x80,0x8C,0xA2,0xA3,0x91,0x86,0x81,0x83,0x87,0x8A,0x93,0x96, - 0x8D,0x82,0x7E,0x81,0x82,0x81,0x8A,0x8E,0x7F,0x72,0x71,0x6B,0x74,0x8D,0x8A,0x7C, - 0x72,0x6B,0x6C,0x6D,0x70,0x7A,0x80,0x73,0x66,0x62,0x67,0x6F,0x71,0x75,0x73,0x66, - 0x5F,0x5C,0x5D,0x6F,0x81,0x7C,0x73,0x70,0x69,0x68,0x6E,0x7B,0x89,0x8D,0x84,0x7C, - 0x7C,0x85,0x93,0x9E,0xA9,0xA6,0x95,0x92,0x90,0x92,0xA7,0xB1,0xA8,0x9C,0x93,0x88, - 0x87,0x8C,0x96,0xA2,0x97,0x84,0x7C,0x77,0x7D,0x85,0x89,0x8F,0x80,0x71,0x6E,0x69, - 0x76,0x8D,0x8B,0x7E,0x7A,0x73,0x6E,0x6D,0x7A,0x8B,0x8C,0x84,0x79,0x77,0x78,0x7E, - 0x8C,0x95,0x95,0x88,0x7F,0x7E,0x81,0x96,0xA1,0x95,0x8E,0x8A,0x80,0x7D,0x83,0x92, - 0x9B,0x8F,0x85,0x7F,0x7B,0x80,0x84,0x89,0x8F,0x86,0x78,0x72,0x6D,0x7A,0x90,0x8C, - 0x81,0x7E,0x74,0x6B,0x6B,0x75,0x84,0x89,0x7D,0x70,0x6B,0x6C,0x72,0x77,0x7F,0x7F, - 0x73,0x6B,0x64,0x67,0x7F,0x8D,0x81,0x7C,0x7D,0x72,0x70,0x77,0x89,0x97,0x8C,0x83, - 0x83,0x7F,0x81,0x88,0x92,0x99,0x91,0x85,0x7D,0x75,0x84,0x9B,0x99,0x8D,0x89,0x7E, - 0x73,0x72,0x7C,0x8F,0x8F,0x81,0x7A,0x74,0x72,0x74,0x7B,0x87,0x87,0x7A,0x6E,0x66, - 0x69,0x82,0x90,0x83,0x7D,0x7B,0x70,0x6C,0x6E,0x7E,0x8C,0x84,0x7A,0x78,0x74,0x76, - 0x7D,0x84,0x8E,0x8A,0x7F,0x77,0x6F,0x7F,0x98,0x94,0x8B,0x88,0x7C,0x75,0x76,0x7D, - 0x8E,0x91,0x85,0x7C,0x79,0x77,0x79,0x7E,0x87,0x8A,0x7E,0x71,0x6A,0x6F,0x86,0x90, - 0x85,0x81,0x7B,0x74,0x73,0x71,0x80,0x8E,0x88,0x7D,0x78,0x75,0x76,0x7A,0x81,0x89, - 0x85,0x7A,0x71,0x6C,0x7C,0x93,0x90,0x86,0x84,0x7F,0x78,0x76,0x82,0x94,0x97,0x8A, - 0x83,0x82,0x80,0x84,0x8B,0x91,0x92,0x88,0x7E,0x74,0x7A,0x91,0x97,0x89,0x84,0x83, - 0x7C,0x77,0x78,0x88,0x92,0x89,0x80,0x7E,0x79,0x79,0x7D,0x84,0x8C,0x85,0x79,0x6F, - 0x6C,0x80,0x92,0x8A,0x80,0x7E,0x76,0x72,0x71,0x79,0x8B,0x8B,0x80,0x7A,0x77,0x79, - 0x7B,0x7E,0x89,0x8D,0x82,0x77,0x70,0x7B,0x92,0x93,0x88,0x86,0x83,0x7D,0x77,0x78, - 0x87,0x90,0x8B,0x81,0x7B,0x78,0x79,0x7E,0x86,0x8C,0x86,0x79,0x6E,0x6E,0x81,0x90, - 0x89,0x7F,0x7E,0x7A,0x76,0x71,0x7A,0x89,0x8A,0x81,0x78,0x77,0x78,0x7A,0x7D,0x84, - 0x87,0x7E,0x73,0x6D,0x7C,0x92,0x90,0x83,0x80,0x7F,0x7D,0x77,0x78,0x88,0x91,0x8D, - 0x80,0x7A,0x7D,0x81,0x81,0x87,0x8D,0x86,0x7B,0x6F,0x74,0x8B,0x93,0x87,0x80,0x7E, - 0x7C,0x78,0x73,0x7F,0x8B,0x89,0x7F,0x74,0x74,0x7B,0x7E,0x81,0x86,0x84,0x7D,0x72, - 0x6E,0x81,0x91,0x8F,0x84,0x7C,0x7C,0x7C,0x75,0x78,0x86,0x8B,0x84,0x77,0x72,0x76, - 0x7B,0x7E,0x81,0x82,0x7D,0x75,0x6E,0x7A,0x8F,0x91,0x88,0x7E,0x7C,0x81,0x7D,0x7B, - 0x88,0x8F,0x8D,0x84,0x7B,0x7B,0x81,0x86,0x8D,0x8F,0x88,0x7F,0x71,0x71,0x81,0x88, - 0x84,0x7D,0x7A,0x7C,0x78,0x72,0x78,0x80,0x85,0x81,0x77,0x76,0x7D,0x83,0x88,0x88, - 0x84,0x7F,0x75,0x72,0x83,0x8E,0x88,0x7A,0x73,0x76,0x78,0x77,0x7D,0x85,0x89,0x89, - 0x81,0x7B,0x7F,0x85,0x88,0x8B,0x87,0x84,0x7A,0x71,0x80,0x90,0x91,0x87,0x79,0x72, - 0x72,0x71,0x78,0x83,0x8B,0x89,0x7B,0x72,0x72,0x78,0x7E,0x81,0x7F,0x80,0x7E,0x75, - 0x7D,0x89,0x8F,0x90,0x8A,0x8A,0x8B,0x83,0x81,0x8A,0x92,0x95,0x8C,0x7F,0x7A,0x78, - 0x79,0x79,0x76,0x77,0x72,0x6B,0x73,0x82,0x8C,0x87,0x79,0x74,0x75,0x75,0x79,0x7C, - 0x84,0x89,0x7E,0x77,0x74,0x77,0x84,0x86,0x89,0x8C,0x82,0x74,0x75,0x84,0x92,0x94, - 0x87,0x7F,0x78,0x6D,0x74,0x82,0x8B,0x98,0x9A,0x8C,0x81,0x7C,0x7D,0x84,0x83,0x7F, - 0x7D,0x6F,0x6A,0x7C,0x88,0x94,0x90,0x71,0x70,0x75,0x69,0x61,0x65,0x7E,0x80,0x7F, - 0x79,0x86,0x95,0x95,0xAF,0xB6,0xB5,0xAD,0x99,0x99,0x9E,0x8F,0x8E,0x7B,0x5D,0x5A, - 0x58,0x56,0x50,0x5F,0x69,0x79,0x78,0x74,0x84,0x89,0x9B,0xAA,0x9B,0x78,0x7E,0x87, - 0x7C,0x7D,0x74,0x74,0x7F,0x89,0x8A,0x84,0x7B,0x88,0x96,0x94,0x83,0x62,0x57,0x6A, - 0x75,0x8E,0x8F,0x77,0x64,0x62,0x86,0x8A,0x77,0x73,0x77,0x7C,0x79,0x77,0x80,0x8E, - 0x9B,0x94,0x90,0x92,0x7B,0x78,0x6E,0x60,0x71,0x7A,0x6F,0x7C,0x93,0x80,0x79,0x6F, - 0x7C,0x91,0x96,0xB2,0xA5,0x94,0x8C,0x84,0x84,0x82,0x86,0x81,0x91,0x98,0xA5,0xAF, - 0x87,0x7A,0x87,0x90,0x90,0x83,0x81,0x72,0x62,0x59,0x47,0x4F,0x54,0x51,0x5F,0x74, - 0x72,0x5F,0x68,0x81,0x7B,0x6B,0x74,0x7D,0x7B,0x94,0xA7,0x9C,0x8A,0x8F,0xA3,0x9F, - 0x94,0x8E,0x87,0x7C,0x8B,0x96,0xA0,0xA3,0x8E,0x89,0x81,0x75,0x68,0x56,0x64,0x5E, - 0x55,0x70,0x7A,0x6C,0x5E,0x60,0x75,0x87,0x88,0x96,0x93,0x85,0x8E,0x88,0x8B,0x8F, - 0x77,0x7C,0x94,0x9C,0xA6,0x98,0x93,0x98,0x90,0x8E,0x7E,0x73,0x64,0x5D,0x67,0x6F, - 0x76,0x6B,0x77,0x8A,0x89,0x86,0x67,0x68,0x76,0x7D,0x89,0x73,0x6D,0x7C,0x7F,0x94, - 0xA8,0x9B,0x86,0x72,0x83,0x91,0x80,0x7D,0x75,0x73,0x81,0x94,0x80,0x65,0x74,0x78, - 0x80,0x8A,0x7C,0x72,0x75,0x74,0x6C,0x6E,0x67,0x63,0x64,0x6E,0x87,0x84,0x7F,0x94, - 0xA1,0x9A,0xA1,0xA1,0xA1,0x97,0x87,0x98,0xA1,0x96,0x82,0x7C,0x8A,0x99,0x9B,0x96, - 0xA1,0x8C,0x6E,0x73,0x7F,0x71,0x58,0x5B,0x65,0x6E,0x6A,0x5C,0x5F,0x6B,0x6B,0x73, - 0x7B,0x73,0x6E,0x7A,0x96,0x9E,0x9F,0x99,0x90,0x7D,0x71,0x8F,0x9F,0x7F,0x76,0x83, - 0x89,0x8A,0x70,0x76,0x80,0x7A,0x82,0x77,0x76,0x6E,0x65,0x6D,0x7C,0x8C,0x84,0x8C, - 0x85,0x70,0x89,0x97,0x86,0x7E,0x8E,0x90,0x8C,0x94,0x8B,0x80,0x8F,0x98,0x9F,0xA7, - 0x90,0x75,0x6C,0x73,0x68,0x68,0x89,0x8D,0x85,0x76,0x73,0x75,0x6C,0x77,0x7E,0x88, - 0x86,0x7C,0x85,0x7F,0x7A,0x80,0x78,0x6B,0x5B,0x5E,0x66,0x6B,0x80,0x88,0xA3,0xB3, - 0x99,0xA3,0xAF,0x93,0x8B,0x9E,0xA1,0x94,0x84,0x7A,0x7E,0x8D,0x8A,0x89,0x8F,0x83, - 0x7A,0x83,0x7F,0x6D,0x73,0x71,0x64,0x5A,0x5E,0x68,0x66,0x65,0x73,0x82,0x89,0x87, - 0x88,0x90,0x88,0x8D,0x96,0x94,0x9D,0x8F,0x7A,0x78,0x89,0x85,0x6E,0x71,0x6F,0x72, - 0x7C,0x74,0x6A,0x7A,0x86,0x7A,0x7B,0x77,0x78,0x79,0x75,0x8C,0x99,0x90,0x80,0x78, - 0x89,0x8D,0x84,0x90,0x94,0x83,0x7D,0x81,0x84,0x93,0x91,0x90,0x9B,0x89,0x7F,0x7E, - 0x6F,0x65,0x74,0x86,0x8B,0x82,0x78,0x73,0x72,0x79,0x7A,0x85,0x80,0x7C,0x81,0x88, - 0x86,0x70,0x75,0x7C,0x74,0x66,0x5D,0x5B,0x62,0x70,0x87,0x95,0x91,0x9C,0xAC,0xAF, - 0xAC,0xA1,0x99,0x8E,0x79,0x77,0x84,0x89,0x77,0x72,0x87,0x92,0x90,0x8B,0x92,0x7F, - 0x68,0x71,0x76,0x70,0x6D,0x68,0x5D,0x6C,0x80,0x76,0x7A,0x7B,0x78,0x91,0x97,0x8C, - 0x8F,0x94,0x8D,0x85,0x8F,0x85,0x79,0x72,0x73,0x8A,0x8F,0x7B,0x64,0x77,0x7A,0x64, - 0x67,0x6F,0x75,0x6F,0x74,0x77,0x7B,0x84,0x79,0x79,0x83,0x7E,0x87,0x97,0x8C,0x89, - 0x9B,0x98,0x92,0x7B,0x71,0x89,0x7F,0x79,0x8B,0x9A,0x93,0x7D,0x77,0x79,0x67,0x5B, - 0x6C,0x75,0x84,0x89,0x7D,0x76,0x76,0x84,0x8D,0x7F,0x7E,0x84,0x82,0x8D,0x89,0x81, - 0x89,0x79,0x61,0x5E,0x6D,0x69,0x58,0x5D,0x6C,0x85,0x8F,0x87,0x9A,0xA0,0x89,0x96, - 0x9B,0x95,0xA5,0x8F,0x7D,0x86,0x8F,0x7E,0x74,0x88,0x87,0x95,0x9C,0x87,0x85,0x8D, - 0x73,0x75,0x79,0x6A,0x76,0x68,0x67,0x75,0x7D,0x72,0x67,0x7E,0x81,0x77,0x78,0x80, - 0x85,0x85,0x7D,0x81,0x8E,0x77,0x68,0x65,0x6D,0x75,0x7B,0x88,0x77,0x6E,0x78,0x89, - 0x7D,0x67,0x72,0x73,0x7D,0x81,0x80,0x97,0x96,0x7B,0x82,0x9E,0x8A,0x82,0x88,0x85, - 0x89,0x81,0x7E,0x73,0x79,0x7E,0x7C,0x86,0x79,0x7B,0x87,0x84,0x84,0x87,0x88,0x78, - 0x6F,0x6E,0x7D,0x88,0x7B,0x7B,0x8F,0x92,0x88,0x93,0x98,0x8B,0x80,0x83,0x83,0x7D, - 0x79,0x60,0x5A,0x67,0x60,0x52,0x60,0x6B,0x6D,0x8A,0x9E,0xA4,0xAB,0xAF,0xA2,0x94, - 0x96,0x8C,0x81,0x7B,0x77,0x8A,0x97,0x80,0x87,0x94,0x83,0x7D,0x76,0x7E,0x88,0x77, - 0x66,0x78,0x7E,0x6E,0x61,0x68,0x74,0x6F,0x8B,0x92,0x7F,0x7A,0x82,0x8F,0x85,0x7A, - 0x76,0x73,0x75,0x70,0x7D,0x8D,0x7E,0x70,0x7F,0x8B,0x7D,0x6F,0x73,0x81,0x7E,0x79, - 0x8E,0x8A,0x89,0x87,0x7C,0x84,0x83,0x82,0x84,0x8E,0x8B,0x8F,0x95,0x7E,0x7F,0x70, - 0x6D,0x82,0x7A,0x7F,0x8E,0x90,0x8F,0x92,0x93,0x81,0x70,0x7B,0x81,0x7F,0x83,0x6F, - 0x7C,0x95,0x88,0x7C,0x7A,0x79,0x78,0x83,0x92,0x8F,0x93,0x95,0x7E,0x80,0x7C,0x72, - 0x6C,0x52,0x5C,0x6E,0x6C,0x67,0x73,0x73,0x77,0x8C,0x91,0xA6,0xAC,0xA3,0x95,0x92, - 0xA0,0x86,0x7D,0x84,0x7A,0x8E,0x99,0x94,0x91,0x8C,0x97,0x92,0x83,0x80,0x71,0x68, - 0x6D,0x69,0x78,0x79,0x6B,0x71,0x72,0x7A,0x73,0x73,0x7C,0x7C,0x7D,0x8B,0x90,0x83, - 0x83,0x77,0x71,0x73,0x77,0x81,0x8B,0x8F,0x94,0x99,0x82,0x79,0x76,0x6E,0x79,0x7F, - 0x77,0x80,0x85,0x83,0x8D,0x92,0x8C,0x74,0x74,0x80,0x7F,0x90,0x88,0x69,0x72,0x8E, - 0x87,0x78,0x7F,0x8E,0x94,0x7D,0x79,0x98,0xA8,0x83,0x6A,0x91,0x7B,0x6A,0x75,0x6E, - 0x7D,0x7E,0x8F,0x83,0x7C,0x88,0x83,0x83,0x7F,0x90,0x9A,0x8A,0x72,0x79,0x86,0x77, - 0x6D,0x5D,0x5A,0x64,0x6D,0x69,0x6E,0x85,0x92,0xA0,0x97,0x94,0x92,0x7C,0x80,0x93, - 0x95,0x93,0x93,0x8F,0x92,0x9B,0x91,0x87,0x8A,0x8F,0x85,0x88,0x90,0x7D,0x71,0x6A, - 0x60,0x68,0x7B,0x7D,0x74,0x7C,0x85,0x73,0x6B,0x77,0x6D,0x70,0x79,0x66,0x74,0x81, - 0x7B,0x86,0x95,0x9E,0x8C,0x79,0x80,0x83,0x80,0x88,0x77,0x69,0x83,0x86,0x78,0x73, - 0x73,0x7D,0x7E,0x89,0x96,0x8F,0x8C,0x78,0x66,0x70,0x7C,0x78,0x6C,0x77,0x75,0x7B, - 0x8B,0x8D,0x85,0x84,0x96,0x8C,0x8A,0x94,0x91,0x84,0x74,0x87,0x92,0x88,0x79,0x6F, - 0x6F,0x85,0x88,0x79,0x87,0x81,0x7E,0x7F,0x7A,0x81,0x7C,0x77,0x7C,0x76,0x6D,0x73, - 0x6F,0x60,0x65,0x6B,0x6C,0x72,0x87,0x90,0x95,0xAA,0x9F,0x8F,0x88,0x7A,0x77,0x7F, - 0x91,0x8D,0x92,0xA1,0xA3,0xA0,0x8E,0x8F,0x88,0x77,0x7C,0x7A,0x78,0x73,0x6F,0x73, - 0x85,0x86,0x72,0x69,0x68,0x6C,0x6E,0x7B,0x74,0x64,0x77,0x7E,0x75,0x6D,0x6E,0x78, - 0x79,0x7F,0x91,0x9A,0x95,0x7D,0x71,0x83,0x86,0x76,0x7A,0x7A,0x76,0x83,0x84,0x83, - 0x80,0x80,0x82,0x7C,0x7D,0x75,0x83,0x79,0x77,0x8F,0x81,0x76,0x6C,0x65,0x7F,0x95, - 0x8E,0x9D,0x97,0x91,0x95,0x7B,0x81,0x84,0x6A,0x77,0x84,0x7F,0x85,0x80,0x7C,0x7A, - 0x79,0x78,0x76,0x7A,0x7A,0x79,0x87,0x92,0x93,0x86,0x87,0x85,0x6A,0x79,0x7E,0x65, - 0x6A,0x77,0x83,0x80,0x7E,0x86,0x83,0x87,0x8A,0x92,0x90,0x83,0x84,0x86,0x8F,0x8F, - 0x85,0x82,0x86,0x86,0x95,0x97,0x82,0x84,0x91,0x8E,0x7F,0x6B,0x76,0x81,0x6F,0x7C, - 0x7C,0x81,0x7A,0x5F,0x70,0x7E,0x73,0x6E,0x6C,0x6F,0x78,0x80,0x84,0x86,0x7E,0x7D, - 0x81,0x82,0x83,0x86,0x8F,0x7C,0x83,0x8C,0x80,0x7A,0x66,0x63,0x75,0x88,0x8F,0x89, - 0x89,0x8E,0x81,0x82,0x84,0x6B,0x6F,0x86,0x7B,0x86,0x90,0x8A,0x83,0x7D,0x95,0x90, - 0x8D,0x8A,0x7F,0x87,0x94,0x91,0x7F,0x7E,0x79,0x6F,0x74,0x7C,0x78,0x78,0x80,0x91, - 0x92,0x79,0x82,0x7F,0x6D,0x7C,0x89,0x90,0x8D,0x8A,0x88,0x7E,0x7B,0x74,0x67,0x63, - 0x5D,0x5A,0x73,0x87,0x76,0x82,0xA6,0x99,0x83,0x8A,0x90,0x89,0x8D,0x8E,0xA1,0xAC, - 0x8A,0x85,0x8B,0x8C,0x8D,0x82,0x89,0x7F,0x80,0x8B,0x84,0x88,0x7A,0x6E,0x76,0x6F, - 0x62,0x76,0x77,0x68,0x72,0x74,0x76,0x6A,0x6A,0x6C,0x7B,0x85,0x7E,0xA4,0xA8,0x81, - 0x81,0x98,0x8F,0x76,0x81,0x8D,0x81,0x7D,0x77,0x80,0x81,0x75,0x72,0x7C,0x84,0x72, - 0x6E,0x80,0x94,0x88,0x82,0x90,0x7C,0x6C,0x71,0x87,0x87,0x78,0x94,0xA2,0x93,0x90, - 0x8D,0x7B,0x74,0x7C,0x82,0x89,0x84,0x86,0x7A,0x7F,0x8B,0x78,0x7F,0x82,0x71,0x62, - 0x7B,0x8C,0x79,0x88,0x94,0x87,0x8A,0x88,0x8A,0x8E,0x7A,0x71,0x84,0x7E,0x62,0x66, - 0x67,0x60,0x6D,0x76,0x86,0x97,0x8D,0x80,0x87,0x8E,0x7E,0x80,0x8D,0x86,0x8F,0x8D, - 0x8C,0x94,0x93,0x92,0x89,0x87,0x8F,0x88,0x83,0x83,0x80,0x84,0x8A,0x87,0x6C,0x63, - 0x71,0x62,0x68,0x75,0x6A,0x7B,0x7E,0x71,0x78,0x89,0x88,0x81,0x83,0x7B,0x85,0x84, - 0x7F,0x94,0x95,0x87,0x87,0x7E,0x69,0x6D,0x6D,0x68,0x76,0x82,0x8B,0x8D,0x85,0x70, - 0x74,0x7F,0x78,0x7A,0x7E,0x8C,0x80,0x6D,0x86,0x8D,0x87,0x8F,0x8B,0x84,0x79,0x7C, - 0x8D,0x8E,0x86,0x79,0x7D,0x8C,0x7A,0x76,0x82,0x7F,0x84,0x8B,0x80,0x7F,0x78,0x64, - 0x76,0x84,0x86,0x90,0x93,0x8A,0x80,0x84,0x88,0x7F,0x7F,0x74,0x6C,0x6D,0x5A,0x64, - 0x6F,0x71,0x7C,0x81,0x84,0x82,0x7B,0x7B,0x88,0x87,0x8C,0x96,0x8E,0x87,0x78,0x89, - 0x93,0x8A,0x92,0x9D,0xAB,0x92,0x85,0x92,0x8A,0x8B,0x80,0x6D,0x6C,0x6A,0x68,0x6E, - 0x79,0x7B,0x75,0x7A,0x71,0x65,0x72,0x77,0x78,0x82,0x82,0x88,0x8B,0x77,0x79,0x85, - 0x7F,0x85,0x86,0x88,0x82,0x6D,0x6C,0x70,0x7B,0x78,0x72,0x82,0x7D,0x7B,0x82,0x81, - 0x80,0x79,0x82,0x83,0x80,0x82,0x79,0x7E,0x8E,0x8D,0x85,0x8C,0x81,0x87,0x86,0x7A, - 0x91,0x86,0x82,0x81,0x75,0x78,0x79,0x7C,0x84,0x88,0x7E,0x82,0x82,0x7D,0x78,0x79, - 0x8B,0x89,0x7C,0x7B,0x7E,0x89,0x83,0x7B,0x8A,0x83,0x75,0x70,0x73,0x73,0x69,0x72, - 0x78,0x88,0x89,0x80,0x89,0x87,0x88,0x87,0x81,0x85,0x85,0x7D,0x85,0x87,0x7F,0x83, - 0x8E,0x8D,0x8A,0x94,0x97,0x98,0x92,0x92,0x88,0x7C,0x7E,0x75,0x6D,0x67,0x6B,0x75, - 0x7C,0x7B,0x75,0x77,0x7B,0x77,0x78,0x7B,0x79,0x79,0x77,0x7D,0x7B,0x79,0x7F,0x7F, - 0x83,0x85,0x7F,0x80,0x7D,0x77,0x77,0x77,0x78,0x79,0x7E,0x80,0x7F,0x88,0x8A,0x89, - 0x88,0x86,0x89,0x7F,0x7D,0x80,0x7E,0x81,0x7D,0x82,0x87,0x85,0x86,0x8C,0x8E,0x8F, - 0x8B,0x86,0x85,0x7F,0x7E,0x7D,0x7B,0x7E,0x80,0x7D,0x80,0x82,0x80,0x83,0x81,0x7E, - 0x80,0x84,0x82,0x7D,0x7E,0x80,0x80,0x7E,0x7D,0x78,0x74,0x75,0x77,0x77,0x78,0x7B, - 0x7E,0x84,0x88,0x89,0x89,0x88,0x89,0x8C,0x8D,0x8B,0x89,0x81,0x7E,0x7D,0x7C,0x80, - 0x83,0x85,0x87,0x8D,0x90,0x91,0x91,0x8C,0x88,0x83,0x7E,0x7B,0x79,0x7B,0x78,0x78, - 0x7B,0x7C,0x79,0x79,0x7B,0x7A,0x7C,0x7D,0x7D,0x7E,0x80,0x82,0x7F,0x7F,0x80,0x7E, - 0x81,0x82,0x7C,0x79,0x7C,0x7A,0x77,0x79,0x77,0x77,0x79,0x7E,0x81,0x81,0x85,0x85, - 0x83,0x86,0x84,0x82,0x82,0x82,0x84,0x83,0x88,0x83,0x8B,0x98,0x83,0x92,0x7C,0x6B, - 0x89,0x7C,0x6A,0x6D,0x7D,0x86,0x8A,0x8C,0x8E,0x8A,0x8B,0x9C,0xA1,0x9B,0x96,0x92, - 0x90,0x90,0x89,0x83,0x7F,0x72,0x6A,0x69,0x65,0x6D,0x67,0x55,0x62,0x64,0x5F,0x69, - 0x6B,0x6D,0x78,0x79,0x7B,0x79,0x6F,0x8A,0x88,0x73,0x88,0xA4,0xA2,0x96,0xB7,0xC1, - 0xAF,0xAA,0x9A,0x99,0xA7,0xA4,0x94,0x93,0x93,0x89,0x88,0x85,0x7A,0x76,0x72,0x6D, - 0x6B,0x74,0x7E,0x79,0x6C,0x68,0x68,0x5B,0x53,0x4C,0x47,0x4C,0x4C,0x50,0x5B,0x63, - 0x63,0x68,0x7A,0x88,0x8A,0x8A,0x90,0x94,0x8F,0x85,0x8F,0x9D,0x9D,0x98,0x98,0xA5, - 0xB0,0xBA,0xC1,0xC4,0xBD,0xAD,0xAA,0xAD,0xAA,0xA2,0x9A,0x9A,0x95,0x8B,0x8D,0x86, - 0x7E,0x7D,0x75,0x6C,0x64,0x64,0x62,0x59,0x54,0x53,0x52,0x4D,0x4F,0x51,0x54,0x58, - 0x56,0x56,0x57,0x5C,0x5B,0x58,0x67,0x6C,0x68,0x6D,0x70,0x70,0x75,0x79,0x74,0x7D, - 0x8B,0x87,0x8C,0x98,0x9F,0xAA,0xB7,0xB0,0x9E,0x9F,0x9D,0x94,0x8E,0x83,0x86,0x89, - 0x88,0x85,0x81,0x84,0x85,0x85,0x82,0x83,0x85,0x86,0x84,0x7B,0x73,0x6C,0x6B,0x6A, - 0x66,0x63,0x61,0x62,0x5D,0x59,0x5B,0x5D,0x61,0x6F,0x77,0x79,0x77,0x77,0x73,0x7B, - 0x8F,0x91,0x84,0x85,0x8C,0x8C,0x8D,0x8C,0x92,0xA1,0xA8,0xAC,0xB3,0xB8,0xB9,0xB9, - 0xB8,0xB5,0xBA,0xB8,0xB6,0xB9,0xB9,0xAF,0xA3,0x9D,0x93,0x92,0xA0,0x9D,0x90,0x8C, - 0x86,0x77,0x6A,0x62,0x62,0x69,0x62,0x59,0x60,0x63,0x5E,0x53,0x4A,0x4D,0x54,0x58, - 0x5C,0x62,0x6D,0x6C,0x67,0x6E,0x70,0x76,0x85,0x85,0x7F,0x82,0x7F,0x74,0x70,0x73, - 0x7C,0x86,0x85,0x87,0x90,0x8D,0x86,0x84,0x84,0x88,0x8D,0x90,0x90,0x94,0x95,0x86, - 0x81,0x81,0x81,0x84,0x89,0x84,0x78,0x7B,0x73,0x5F,0x59,0x57,0x62,0x67,0x60,0x62, - 0x64,0x5E,0x52,0x4E,0x4D,0x50,0x58,0x56,0x5D,0x61,0x5B,0x51,0x50,0x55,0x55,0x69, - 0x78,0x6E,0x6B,0x6E,0x66,0x68,0x6D,0x6F,0x80,0x8A,0x8B,0x93,0x99,0x9A,0x99,0xA1, - 0xAF,0xB9,0xBA,0xB9,0xC1,0xC3,0xC0,0xBC,0xBF,0xBE,0xBE,0xCF,0xCD,0xC2,0xBE,0xB7, - 0xAE,0xA5,0xA1,0xA5,0xA6,0x9E,0x93,0x8D,0x86,0x80,0x7B,0x79,0x7D,0x7E,0x7E,0x7E, - 0x77,0x6D,0x6C,0x71,0x70,0x70,0x7D,0x84,0x7A,0x71,0x70,0x6A,0x66,0x68,0x6E,0x78, - 0x79,0x71,0x74,0x75,0x6E,0x6E,0x76,0x7D,0x83,0x82,0x83,0x88,0x84,0x7E,0x85,0x8A, - 0x85,0x8C,0x9C,0x9A,0x8F,0x8F,0x93,0x90,0x8D,0x8F,0x9A,0xA0,0x99,0x92,0x92,0x8F, - 0x8A,0x8B,0x8E,0x95,0x96,0x8F,0x90,0x90,0x89,0x85,0x89,0x80,0x7A,0x8D,0x8E,0x7C, - 0x77,0x78,0x6F,0x64,0x64,0x6B,0x71,0x69,0x5A,0x5B,0x58,0x4F,0x4B,0x4F,0x53,0x55, - 0x53,0x52,0x53,0x4E,0x4C,0x53,0x57,0x51,0x58,0x6B,0x62,0x56,0x59,0x54,0x49,0x45, - 0x4A,0x55,0x5C,0x54,0x51,0x56,0x50,0x4C,0x52,0x5B,0x62,0x67,0x6B,0x72,0x74,0x76, - 0x7E,0x8D,0x94,0x96,0xAE,0xC1,0xB7,0xB3,0xBA,0xBA,0xB7,0xB9,0xC0,0xC9,0xCA,0xC2, - 0xC2,0xC3,0xB8,0xB4,0xB8,0xB9,0xB9,0xB6,0xB2,0xAF,0xA5,0x9D,0x9F,0xA3,0x9C,0x9C, - 0xB2,0xB3,0xA0,0xA1,0xA5,0x9B,0x98,0x9E,0xA7,0xAC,0xA3,0x9B,0x9D,0x97,0x8D,0x8B, - 0x8E,0x90,0x8D,0x86,0x82,0x7D,0x73,0x6E,0x71,0x71,0x64,0x6B,0x78,0x6A,0x5E,0x62, - 0x5F,0x54,0x54,0x5C,0x67,0x6B,0x61,0x63,0x6A,0x62,0x61,0x68,0x6C,0x70,0x70,0x6F, - 0x72,0x6C,0x68,0x6D,0x71,0x70,0x6B,0x76,0x83,0x74,0x6C,0x76,0x75,0x6B,0x6D,0x76, - 0x81,0x7F,0x74,0x7B,0x7E,0x74,0x74,0x7C,0x7F,0x81,0x7F,0x7C,0x80,0x7B,0x77,0x7D, - 0x80,0x7F,0x76,0x83,0x91,0x7E,0x75,0x83,0x7F,0x76,0x79,0x81,0x89,0x86,0x7C,0x81, - 0x83,0x77,0x76,0x7E,0x81,0x81,0x7D,0x7C,0x7C,0x74,0x72,0x78,0x79,0x79,0x74,0x80, - 0x94,0x84,0x79,0x89,0x8A,0x81,0x85,0x92,0x9C,0x9D,0x94,0x98,0x9F,0x94,0x8F,0x97, - 0x99,0x95,0x94,0x90,0x8C,0x81,0x7B,0x7D,0x79,0x76,0x6C,0x73,0x83,0x71,0x61,0x6E, - 0x6A,0x5B,0x5F,0x6A,0x71,0x70,0x66,0x6C,0x74,0x6A,0x69,0x75,0x7A,0x7B,0x7F,0x81, - 0x84,0x7F,0x7D,0x85,0x89,0x8B,0x88,0x8E,0xA4,0x9E,0x8D,0x99,0x9D,0x8F,0x8F,0x99, - 0xA2,0xA2,0x96,0x96,0x9E,0x93,0x8C,0x96,0x9B,0x98,0x96,0x98,0x9B,0x94,0x8D,0x90, - 0x92,0x91,0x8C,0x8D,0xA3,0xA0,0x87,0x90,0x96,0x83,0x7E,0x8A,0x94,0x94,0x8A,0x88, - 0x8E,0x82,0x7A,0x84,0x8A,0x85,0x82,0x81,0x7E,0x78,0x6E,0x70,0x6E,0x68,0x63,0x5E, - 0x6F,0x71,0x55,0x58,0x5E,0x4A,0x41,0x49,0x52,0x54,0x4A,0x48,0x51,0x49,0x3C,0x46, - 0x50,0x4E,0x4D,0x4E,0x50,0x4D,0x46,0x4B,0x4F,0x4E,0x4D,0x4D,0x61,0x68,0x54,0x56, - 0x64,0x59,0x54,0x61,0x6D,0x73,0x71,0x71,0x7F,0x7F,0x78,0x85,0x93,0x96,0x9B,0xA4, - 0xA7,0xA7,0xA2,0xA4,0xA9,0xA6,0xA4,0xA0,0xB0,0xBF,0xA9,0x9F,0xAE,0xA2,0x94,0x99, - 0xA2,0xA6,0xA0,0x98,0x9D,0x9D,0x90,0x91,0x9B,0x9D,0x9D,0x9E,0x9F,0x9E,0x99,0x99, - 0x9F,0x9F,0x9F,0x99,0xA4,0xB8,0xA9,0x9B,0xA9,0xA6,0x96,0x9B,0xA5,0xAB,0xA7,0x9D, - 0xA1,0xA4,0x94,0x8F,0x9A,0x99,0x96,0x94,0x95,0x95,0x8E,0x88,0x8A,0x8B,0x88,0x81, - 0x83,0x97,0x90,0x79,0x82,0x85,0x73,0x72,0x7C,0x81,0x7F,0x74,0x72,0x78,0x6C,0x63, - 0x6C,0x6E,0x6B,0x6B,0x69,0x69,0x62,0x5D,0x5E,0x5F,0x60,0x59,0x54,0x67,0x69,0x51, - 0x54,0x5C,0x4E,0x47,0x4D,0x55,0x59,0x50,0x4D,0x55,0x4F,0x45,0x4A,0x53,0x52,0x53, - 0x53,0x54,0x53,0x4D,0x4F,0x53,0x57,0x57,0x53,0x64,0x72,0x5E,0x5A,0x6A,0x62,0x5A, - 0x63,0x6D,0x74,0x71,0x6B,0x76,0x7B,0x73,0x79,0x86,0x8A,0x8E,0x92,0x97,0x9D,0x9A, - 0x9D,0xA7,0xAC,0xAE,0xAB,0xB8,0xD2,0xC8,0xB8,0xC7,0xC6,0xB5,0xB6,0xC0,0xC5,0xC0, - 0xB4,0xB6,0xBA,0xAD,0xA6,0xAE,0xB0,0xAC,0xAA,0xA7,0xA6,0xA0,0x9A,0x9C,0x9E,0x9C, - 0x94,0x99,0xB2,0xA9,0x95,0xA0,0xA2,0x93,0x92,0x9B,0xA3,0xA1,0x95,0x97,0x9E,0x92, - 0x8C,0x94,0x95,0x92,0x91,0x8E,0x8E,0x8A,0x83,0x83,0x84,0x81,0x79,0x79,0x91,0x8C, - 0x75,0x7B,0x7E,0x70,0x6E,0x75,0x7E,0x7F,0x72,0x70,0x78,0x6F,0x67,0x6F,0x70,0x6F, - 0x6E,0x68,0x67,0x66,0x61,0x60,0x61,0x61,0x5A,0x56,0x6B,0x6F,0x57,0x57,0x5E,0x53, - 0x4B,0x4D,0x56,0x5D,0x53,0x4D,0x56,0x55,0x4E,0x51,0x55,0x59,0x59,0x54,0x56,0x59, - 0x55,0x53,0x55,0x5B,0x58,0x52,0x6B,0x74,0x5E,0x5D,0x67,0x5F,0x5B,0x5E,0x67,0x72, - 0x69,0x61,0x6B,0x6E,0x68,0x6C,0x73,0x7A,0x7D,0x7B,0x7E,0x84,0x83,0x86,0x8C,0x93, - 0x91,0x8F,0xA9,0xBA,0xA8,0xAA,0xB8,0xB4,0xB2,0xB7,0xC2,0xCE,0xC7,0xBE,0xC4,0xC5, - 0xBD,0xBB,0xBB,0xBE,0xBE,0xB6,0xB1,0xB0,0xA8,0xA0,0x9D,0x9E,0x96,0x8D,0xA0,0xA3, - 0x8A,0x89,0x8D,0x84,0x81,0x81,0x88,0x93,0x8C,0x83,0x88,0x89,0x85,0x85,0x87,0x8B, - 0x8D,0x8A,0x8C,0x8E,0x8D,0x8D,0x89,0x8C,0x87,0x84,0x9B,0x9C,0x86,0x87,0x87,0x80, - 0x7E,0x7A,0x80,0x89,0x80,0x78,0x7B,0x7A,0x74,0x71,0x76,0x7C,0x7D,0x77,0x72,0x72, - 0x73,0x6F,0x6E,0x72,0x6C,0x72,0x88,0x7F,0x6E,0x72,0x6F,0x6A,0x68,0x69,0x73,0x78, - 0x6E,0x68,0x6C,0x6A,0x64,0x62,0x64,0x6A,0x68,0x61,0x5F,0x60,0x60,0x5A,0x58,0x57, - 0x52,0x63,0x74,0x63,0x5A,0x5C,0x55,0x54,0x53,0x57,0x64,0x63,0x59,0x57,0x5E,0x5F, - 0x59,0x58,0x60,0x68,0x68,0x64,0x64,0x68,0x67,0x63,0x66,0x66,0x69,0x80,0x84,0x74, - 0x77,0x79,0x78,0x7B,0x7C,0x87,0x95,0x94,0x8F,0x91,0x99,0x9D,0x9B,0x9D,0xA9,0xB0, - 0xAE,0xAB,0xAD,0xAF,0xA9,0xA4,0xA5,0xA0,0xA9,0xBB,0xAD,0x9C,0x9B,0x92,0x8F,0x8A, - 0x86,0x91,0x97,0x8C,0x83,0x82,0x83,0x80,0x79,0x7B,0x84,0x85,0x7F,0x7C,0x80,0x80, - 0x7C,0x7D,0x7D,0x7F,0x95,0x9D,0x8B,0x87,0x88,0x84,0x85,0x80,0x86,0x92,0x91,0x89, - 0x87,0x8B,0x8E,0x88,0x84,0x8B,0x92,0x91,0x8A,0x87,0x8B,0x88,0x84,0x81,0x87,0x8F, - 0x99,0x94,0x85,0x87,0x85,0x83,0x7E,0x7C,0x87,0x8E,0x88,0x7D,0x7B,0x81,0x7F,0x7A, - 0x7A,0x80,0x85,0x81,0x7B,0x79,0x79,0x74,0x6E,0x69,0x6E,0x85,0x87,0x74,0x6E,0x6E, - 0x6F,0x6A,0x60,0x64,0x70,0x71,0x68,0x5F,0x63,0x68,0x62,0x5E,0x61,0x67,0x69,0x65, - 0x60,0x62,0x64,0x60,0x5B,0x57,0x6A,0x7D,0x72,0x64,0x61,0x64,0x69,0x65,0x64,0x6E, - 0x7A,0x7B,0x75,0x72,0x78,0x7E,0x7C,0x7C,0x82,0x8C,0x91,0x8F,0x8F,0x93,0x98,0x9B, - 0x98,0x9F,0xB8,0xBD,0xB1,0xA9,0xA4,0xA8,0xA7,0xA2,0xA3,0xAB,0xAE,0xA8,0x9B,0x96, - 0x98,0x98,0x8F,0x89,0x8A,0x8C,0x8C,0x85,0x7E,0x7A,0x79,0x72,0x70,0x81,0x8D,0x87, - 0x7E,0x77,0x76,0x79,0x75,0x75,0x7C,0x84,0x87,0x83,0x7C,0x7D,0x80,0x81,0x81,0x80, - 0x82,0x86,0x86,0x84,0x81,0x80,0x7F,0x7B,0x87,0x9A,0x97,0x8B,0x84,0x81,0x84,0x84, - 0x81,0x82,0x87,0x8B,0x8E,0x8A,0x86,0x84,0x83,0x84,0x83,0x82,0x84,0x86,0x84,0x82, - 0x7E,0x7C,0x76,0x78,0x89,0x90,0x88,0x80,0x77,0x73,0x74,0x70,0x6E,0x72,0x73,0x78, - 0x7A,0x74,0x71,0x72,0x71,0x6E,0x6C,0x6D,0x72,0x72,0x6E,0x6C,0x6A,0x67,0x62,0x6A, - 0x79,0x78,0x70,0x6A,0x62,0x63,0x65,0x61,0x61,0x60,0x61,0x69,0x6B,0x6B,0x6E,0x6F, - 0x70,0x70,0x70,0x75,0x79,0x79,0x7B,0x7F,0x81,0x81,0x81,0x8B,0x98,0x99,0x97,0x98, - 0x94,0x95,0x9B,0x9A,0x9A,0x9A,0x97,0x9A,0x9B,0x9A,0x9C,0x9B,0x99,0x99,0x99,0x98, - 0x96,0x92,0x92,0x93,0x92,0x8F,0x8D,0x8D,0x90,0x90,0x8A,0x8A,0x8A,0x88,0x8C,0x8A, - 0x86,0x88,0x87,0x85,0x85,0x85,0x83,0x81,0x80,0x80,0x81,0x82,0x82,0x82,0x83,0x84, - 0x84,0x82,0x7F,0x7F,0x84,0x87,0x84,0x82,0x84,0x84,0x88,0x87,0x84,0x85,0x82,0x7F, - 0x80,0x7F,0x7D,0x7D,0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x83,0x83,0x7F,0x7D, - 0x7E,0x83,0x82,0x7E,0x81,0x80,0x7E,0x81,0x82,0x7F,0x7E,0x7B,0x79,0x7B,0x78,0x75, - 0x76,0x74,0x73,0x74,0x76,0x75,0x75,0x76,0x76,0x78,0x77,0x76,0x75,0x75,0x7A,0x7C, - 0x7A,0x7B,0x7A,0x7A,0x81,0x7E,0x7C,0x7C,0x77,0x77,0x78,0x75,0x76,0x74,0x70,0x72, - 0x74,0x74,0x77,0x77,0x77,0x78,0x7A,0x7A,0x7A,0x7A,0x7B,0x82,0x83,0x7F,0x81,0x81, - 0x82,0x88,0x89,0x87,0x88,0x84,0x84,0x86,0x83,0x84,0x84,0x82,0x83,0x84,0x86,0x86, - 0x86,0x86,0x86,0x88,0x89,0x88,0x86,0x83,0x85,0x8C,0x88,0x84,0x83,0x7F,0x83,0x86, - 0x80,0x81,0x7F,0x79,0x7A,0x79,0x77,0x78,0x75,0x74,0x76,0x77,0x79,0x7A,0x7A,0x7C, - 0x7E,0x82,0x83,0x81,0x81,0x7F,0x84,0x86,0x82,0x84,0x83,0x80,0x87,0x88,0x84,0x84, - 0x80,0x7F,0x81,0x81,0x80,0x7E,0x7C,0x7B,0x7C,0x7E,0x7F,0x7E,0x81,0x82,0x83,0x85, - 0x85,0x86,0x84,0x83,0x8A,0x8B,0x86,0x85,0x84,0x84,0x85,0x83,0x86,0x90,0x7C,0x62, - 0x77,0x87,0x86,0x6E,0x80,0x88,0x62,0x72,0x7F,0x7B,0x7C,0x88,0x8E,0x7B,0x7F,0x85, - 0x84,0x7A,0x7F,0x8C,0x7B,0x71,0x74,0x78,0x81,0x80,0x7F,0x88,0x79,0x6E,0x7B,0x77, - 0x71,0x72,0x79,0x76,0x78,0x7E,0x79,0x7F,0x84,0x87,0x87,0x82,0x87,0x86,0x86,0x89, - 0x80,0x82,0x83,0x7D,0x7C,0x81,0x83,0x80,0x80,0x7C,0x7F,0x81,0x77,0x78,0x79,0x77, - 0x75,0x75,0x7C,0x7E,0x88,0x8C,0x80,0x82,0x8A,0x8A,0x8B,0x8E,0x8E,0x85,0x86,0x8C, - 0x8D,0x8A,0x8B,0x88,0x81,0x87,0x7E,0x74,0x7D,0x77,0x68,0x6C,0x73,0x76,0x77,0x71, - 0x70,0x72,0x70,0x77,0x7B,0x7F,0x7D,0x76,0x7B,0x7C,0x7A,0x78,0x79,0x85,0x8B,0x89, - 0x89,0x80,0x80,0x86,0x88,0x88,0x80,0x7C,0x7B,0x7D,0x81,0x85,0x83,0x7C,0x79,0x72, - 0x78,0x7F,0x7F,0x81,0x7B,0x7D,0x7D,0x80,0x86,0x89,0x88,0x85,0x87,0x84,0x7D,0x83, - 0x87,0x83,0x83,0x85,0x84,0x84,0x8C,0x86,0x84,0x85,0x7E,0x82,0x82,0x7C,0x7D,0x80, - 0x7B,0x7C,0x7C,0x7D,0x87,0x89,0x7F,0x7E,0x7F,0x7E,0x7E,0x7D,0x89,0x82,0x7E,0x85, - 0x78,0x77,0x7C,0x7D,0x7E,0x82,0x81,0x7D,0x82,0x83,0x81,0x84,0x81,0x7A,0x78,0x78, - 0x7A,0x80,0x84,0x84,0x84,0x85,0x84,0x83,0x83,0x7C,0x89,0x8F,0x88,0x88,0x83,0x82, - 0x85,0x88,0x81,0x81,0x7D,0x74,0x7D,0x81,0x85,0x8A,0x81,0x80,0x82,0x83,0x89,0x86, - 0x81,0x85,0x88,0x86,0x86,0x83,0x83,0x7F,0x76,0x80,0x90,0x91,0x8F,0x8A,0x7D,0x7D, - 0x7F,0x77,0x77,0x75,0x6F,0x77,0x82,0x83,0x82,0x81,0x80,0x88,0x84,0x81,0x83,0x7D, - 0x7E,0x80,0x7F,0x7F,0x80,0x7F,0x7B,0x78,0x7F,0x8F,0x94,0x91,0x89,0x80,0x79,0x7E, - 0x7C,0x72,0x76,0x77,0x7E,0x87,0x86,0x83,0x7E,0x80,0x87,0x83,0x7A,0x7D,0x81,0x87, - 0x8B,0x87,0x84,0x81,0x7B,0x80,0x7C,0x82,0x96,0x94,0x92,0x8F,0x83,0x86,0x84,0x79, - 0x79,0x7A,0x78,0x86,0x8E,0x82,0x82,0x83,0x84,0x88,0x7E,0x7C,0x7E,0x81,0x80,0x83, - 0x85,0x86,0x82,0x7C,0x75,0x76,0x8B,0x95,0x8B,0x89,0x84,0x76,0x82,0x7C,0x6C,0x72, - 0x75,0x7C,0x85,0x80,0x79,0x82,0x8A,0x88,0x80,0x79,0x79,0x7C,0x82,0x82,0x80,0x84, - 0x84,0x7F,0x7A,0x77,0x7C,0x8E,0x95,0x8B,0x88,0x84,0x80,0x8B,0x81,0x72,0x78,0x76, - 0x79,0x80,0x7B,0x79,0x80,0x87,0x84,0x7F,0x7F,0x80,0x84,0x84,0x7C,0x7A,0x81,0x86, - 0x80,0x7B,0x76,0x80,0x92,0x88,0x82,0x88,0x82,0x87,0x8A,0x76,0x74,0x76,0x75,0x7C, - 0x77,0x71,0x79,0x80,0x87,0x7F,0x79,0x84,0x80,0x7C,0x76,0x75,0x7F,0x82,0x7C,0x76, - 0x73,0x75,0x88,0x91,0x82,0x84,0x84,0x7F,0x88,0x80,0x79,0x79,0x7B,0x7E,0x7C,0x77, - 0x7B,0x84,0x88,0x86,0x80,0x84,0x88,0x84,0x84,0x7C,0x7C,0x7E,0x7B,0x75,0x75,0x79, - 0x81,0x94,0x8C,0x84,0x88,0x81,0x87,0x87,0x71,0x74,0x7B,0x78,0x7F,0x79,0x79,0x86, - 0x85,0x85,0x82,0x80,0x87,0x84,0x84,0x82,0x81,0x82,0x7C,0x7E,0x7F,0x79,0x7B,0x8F, - 0x8B,0x7C,0x87,0x85,0x83,0x87,0x77,0x73,0x7B,0x75,0x7B,0x77,0x70,0x7D,0x82,0x7C, - 0x7F,0x81,0x81,0x85,0x80,0x7D,0x7D,0x7F,0x7F,0x7E,0x83,0x7C,0x73,0x85,0x8C,0x82, - 0x8B,0x8D,0x84,0x8A,0x82,0x78,0x7D,0x78,0x78,0x7E,0x72,0x76,0x81,0x7E,0x82,0x81, - 0x7F,0x83,0x81,0x7B,0x7F,0x7D,0x7A,0x7A,0x75,0x7A,0x72,0x75,0x8C,0x8A,0x86,0x89, - 0x7F,0x8A,0x88,0x74,0x7E,0x7B,0x73,0x7B,0x77,0x73,0x82,0x81,0x7E,0x87,0x7F,0x86, - 0x84,0x80,0x84,0x7F,0x7F,0x7D,0x73,0x7C,0x79,0x72,0x86,0x8A,0x84,0x87,0x83,0x81, - 0x8A,0x7F,0x7C,0x84,0x78,0x7C,0x78,0x75,0x7B,0x7D,0x80,0x83,0x81,0x84,0x8B,0x81, - 0x80,0x80,0x81,0x7F,0x7A,0x7A,0x7D,0x7B,0x7E,0x8A,0x82,0x86,0x88,0x82,0x8A,0x88, - 0x7D,0x7E,0x7C,0x75,0x78,0x73,0x73,0x7E,0x79,0x7F,0x83,0x7C,0x87,0x86,0x80,0x88, - 0x85,0x81,0x80,0x7C,0x7E,0x7B,0x7A,0x8A,0x86,0x80,0x8B,0x82,0x85,0x8C,0x7C,0x7F, - 0x86,0x7A,0x7D,0x7A,0x73,0x7D,0x78,0x7C,0x7D,0x78,0x82,0x83,0x80,0x86,0x86,0x84, - 0x87,0x80,0x81,0x80,0x79,0x84,0x84,0x7E,0x86,0x83,0x83,0x85,0x7D,0x82,0x86,0x7C, - 0x7E,0x80,0x74,0x7C,0x7C,0x72,0x7F,0x7C,0x7C,0x86,0x7E,0x81,0x85,0x7F,0x82,0x7C, - 0x7A,0x81,0x7C,0x80,0x87,0x81,0x85,0x85,0x7D,0x86,0x81,0x7A,0x85,0x80,0x7A,0x80, - 0x7C,0x7E,0x7F,0x78,0x7F,0x7F,0x7B,0x86,0x84,0x83,0x89,0x85,0x85,0x84,0x7F,0x7D, - 0x7B,0x80,0x86,0x7E,0x80,0x84,0x7F,0x89,0x84,0x81,0x87,0x7F,0x80,0x82,0x79,0x7D, - 0x83,0x7B,0x7C,0x82,0x81,0x81,0x83,0x87,0x86,0x85,0x86,0x84,0x7F,0x81,0x7F,0x80, - 0x89,0x7F,0x7F,0x86,0x85,0x85,0x81,0x81,0x82,0x7F,0x7F,0x7E,0x7A,0x7F,0x81,0x7A, - 0x7D,0x7E,0x7C,0x81,0x80,0x81,0x88,0x84,0x83,0x83,0x82,0x81,0x7E,0x84,0x87,0x7E, - 0x83,0x85,0x83,0x86,0x80,0x7F,0x84,0x83,0x80,0x80,0x7C,0x80,0x7F,0x7A,0x7E,0x7C, - 0x7F,0x80,0x82,0x86,0x85,0x83,0x84,0x81,0x7F,0x81,0x7D,0x84,0x84,0x7E,0x84,0x84, - 0x83,0x84,0x80,0x81,0x82,0x7F,0x80,0x7C,0x7B,0x80,0x7D,0x7C,0x7E,0x7D,0x7E,0x7F, - 0x7F,0x86,0x85,0x80,0x83,0x84,0x81,0x7F,0x7F,0x85,0x7F,0x7F,0x83,0x81,0x83,0x81, - 0x7F,0x7F,0x80,0x80,0x7C,0x7C,0x7F,0x7E,0x7B,0x7B,0x7C,0x80,0x7F,0x7D,0x83,0x85, - 0x83,0x82,0x83,0x83,0x82,0x80,0x85,0x84,0x7D,0x80,0x83,0x82,0x85,0x7F,0x83,0x84, - 0x7B,0x80,0x7D,0x7A,0x7C,0x7B,0x7C,0x7D,0x7F,0x7F,0x82,0x81,0x84,0x84,0x84,0x84, - 0x7F,0x81,0x82,0x82,0x82,0x81,0x83,0x81,0x82,0x83,0x83,0x88,0x8B,0x92,0x8B,0x8A, - 0x88,0x7C,0x7F,0x73,0x70,0x77,0x75,0x79,0x74,0x83,0x7D,0x6D,0x89,0x81,0x6A,0x7C, - 0x81,0x80,0x72,0x70,0x89,0x81,0x80,0x7F,0x74,0x83,0x83,0x81,0x81,0x76,0x7F,0x88, - 0x7F,0x78,0x78,0x82,0x89,0x83,0x83,0x87,0x87,0x90,0x91,0x86,0x80,0x8A,0x9C,0x92, - 0x8A,0x93,0x88,0x85,0x97,0x96,0x94,0x9C,0xA0,0x98,0x91,0x94,0x94,0x84,0x78,0x80, - 0x88,0x8D,0x8C,0x85,0x82,0x81,0x7E,0x77,0x6E,0x69,0x6F,0x79,0x74,0x6A,0x68,0x62, - 0x64,0x63,0x5D,0x5F,0x60,0x62,0x65,0x5F,0x5A,0x60,0x5E,0x63,0x64,0x5C,0x60,0x66, - 0x6D,0x73,0x6A,0x68,0x6F,0x77,0x78,0x75,0x7E,0x7B,0x76,0x77,0x78,0x7D,0x80,0x7D, - 0x82,0x88,0x87,0x8A,0x8D,0x99,0xAD,0xAA,0x9F,0xA0,0x9E,0x9D,0x9D,0x9C,0x9E,0x97, - 0x8C,0x8A,0x86,0x7E,0x7F,0x99,0x95,0x89,0x93,0x90,0x8F,0x82,0x75,0x84,0x85,0x79, - 0x82,0x89,0x8F,0x95,0x86,0x8E,0x96,0x8C,0x85,0x85,0x8D,0x8B,0x83,0x82,0x88,0x7E, - 0x7C,0x9D,0xA1,0x94,0x9C,0x95,0x90,0x85,0x71,0x81,0x89,0x83,0x8F,0x96,0x98,0x96, - 0x86,0x86,0x92,0x88,0x86,0x89,0x93,0x98,0x8A,0x86,0x83,0x7B,0x72,0x82,0x90,0x81, - 0x7E,0x7D,0x71,0x67,0x53,0x57,0x64,0x5B,0x5A,0x5D,0x5F,0x5D,0x4B,0x42,0x4E,0x48, - 0x44,0x4E,0x59,0x59,0x51,0x4C,0x45,0x4F,0x49,0x55,0x6F,0x67,0x66,0x67,0x61,0x5E, - 0x55,0x58,0x6F,0x71,0x6F,0x79,0x7D,0x7B,0x71,0x6E,0x77,0x79,0x78,0x82,0x8F,0x90, - 0x8B,0x8C,0x95,0xA0,0x9A,0xAA,0xC7,0xB3,0xAB,0xAE,0x9D,0x91,0x83,0x86,0x9A,0x96, - 0x91,0x9C,0x96,0x89,0x7A,0x7C,0x88,0x89,0x88,0x94,0x9C,0x94,0x89,0x87,0x8A,0x8E, - 0x8A,0x8E,0xAE,0xA7,0x95,0x9C,0x95,0x89,0x81,0x84,0x95,0x98,0x8F,0x9B,0x9F,0x93, - 0x8D,0x8A,0x92,0x96,0x90,0x98,0xA3,0x99,0x92,0x8F,0x93,0x91,0x86,0xA2,0xB2,0x9C, - 0x9E,0xA0,0x90,0x88,0x81,0x8C,0x9B,0x8C,0x89,0x95,0x88,0x78,0x75,0x74,0x77,0x72, - 0x70,0x7A,0x72,0x5F,0x5A,0x5A,0x55,0x59,0x51,0x5C,0x73,0x58,0x4E,0x59,0x4F,0x44, - 0x44,0x4D,0x5D,0x58,0x4F,0x5D,0x5A,0x4F,0x54,0x58,0x60,0x63,0x61,0x6F,0x6F,0x65, - 0x68,0x6B,0x6D,0x66,0x74,0x8D,0x7C,0x6F,0x7D,0x77,0x6E,0x71,0x7F,0x94,0x96,0x92, - 0xA3,0xAA,0x9B,0x9A,0x9F,0xA2,0x9F,0x9C,0xA3,0x9E,0x8E,0x8C,0x8F,0x88,0x8C,0x8C, - 0x8C,0xA3,0x98,0x81,0x93,0x8D,0x7F,0x84,0x8A,0x96,0x96,0x8C,0x94,0x98,0x87,0x89, - 0x8F,0x91,0x95,0x95,0x9B,0x99,0x8E,0x91,0x8F,0x8D,0x8E,0x8F,0xAB,0xA8,0x90,0xA0, - 0x9C,0x87,0x88,0x92,0x9D,0x9E,0x94,0x9E,0xA2,0x90,0x8E,0x97,0x95,0x92,0x93,0x95, - 0x96,0x89,0x82,0x89,0x84,0x7D,0x82,0x7D,0x88,0x8F,0x71,0x75,0x7A,0x61,0x5E,0x60, - 0x63,0x68,0x5E,0x5E,0x66,0x51,0x49,0x50,0x4C,0x4F,0x52,0x55,0x57,0x50,0x4D,0x4D, - 0x49,0x4C,0x4B,0x62,0x70,0x58,0x62,0x6C,0x59,0x52,0x5D,0x6A,0x6E,0x6B,0x73,0x7E, - 0x71,0x67,0x70,0x73,0x71,0x77,0x7F,0x86,0x80,0x80,0x8A,0x89,0x8E,0x99,0x93,0xA6, - 0xBB,0xA1,0xA0,0xAD,0x94,0x8A,0x91,0x93,0x98,0x94,0x93,0x9E,0x8C,0x80,0x8A,0x85, - 0x82,0x8A,0x8D,0x90,0x8C,0x86,0x89,0x82,0x86,0x85,0x86,0xA3,0x96,0x87,0x9F,0x95, - 0x80,0x85,0x8B,0x91,0x91,0x8D,0x9D,0x9E,0x8A,0x90,0x98,0x8D,0x90,0x96,0x9A,0x9E, - 0x99,0x96,0x97,0x8E,0x8F,0x94,0x89,0xA2,0xAA,0x8F,0x9B,0x9E,0x83,0x80,0x85,0x88, - 0x8C,0x84,0x89,0x8E,0x7A,0x74,0x7B,0x72,0x70,0x75,0x74,0x75,0x6D,0x67,0x66,0x5A, - 0x59,0x58,0x55,0x6E,0x65,0x54,0x69,0x60,0x4B,0x50,0x53,0x56,0x5A,0x56,0x64,0x67, - 0x56,0x5C,0x61,0x58,0x5B,0x66,0x6A,0x6D,0x70,0x71,0x6E,0x6B,0x6D,0x6E,0x66,0x79, - 0x8A,0x73,0x7B,0x88,0x77,0x74,0x7C,0x85,0x8C,0x8C,0x96,0xA5,0x99,0x92,0x9C,0x96, - 0x8F,0x95,0x98,0x98,0x94,0x93,0x94,0x89,0x86,0x89,0x7E,0x8B,0x9D,0x86,0x89,0x97, - 0x82,0x7A,0x81,0x84,0x87,0x88,0x89,0x95,0x8D,0x84,0x8C,0x89,0x85,0x89,0x90,0x93, - 0x8E,0x91,0x92,0x8C,0x8A,0x90,0x8B,0x88,0xA4,0xA2,0x8E,0xA2,0x9D,0x89,0x8D,0x92, - 0x94,0x93,0x91,0x99,0x9A,0x8A,0x8B,0x91,0x87,0x85,0x8C,0x8D,0x88,0x85,0x86,0x81, - 0x79,0x7B,0x79,0x6F,0x82,0x86,0x6F,0x79,0x7A,0x62,0x60,0x66,0x63,0x64,0x63,0x66, - 0x6B,0x5D,0x5A,0x63,0x5A,0x58,0x5F,0x61,0x61,0x61,0x60,0x5E,0x5C,0x5A,0x61,0x5A, - 0x60,0x7B,0x6C,0x67,0x7D,0x6D,0x62,0x6B,0x6C,0x6F,0x70,0x71,0x7B,0x7A,0x70,0x79, - 0x7C,0x77,0x7F,0x86,0x8A,0x8D,0x8E,0x92,0x93,0x8F,0x95,0x93,0x8C,0xA5,0xA5,0x8F, - 0x9D,0x9E,0x86,0x86,0x8A,0x87,0x8A,0x88,0x8C,0x8F,0x81,0x81,0x89,0x81,0x7F,0x87, - 0x89,0x8B,0x8B,0x8A,0x8A,0x86,0x84,0x8A,0x80,0x8A,0xA3,0x90,0x8C,0xA0,0x90,0x82, - 0x8B,0x8D,0x90,0x91,0x90,0x9B,0x96,0x89,0x93,0x96,0x8B,0x92,0x99,0x97,0x96,0x94, - 0x94,0x93,0x8A,0x8E,0x8C,0x84,0x9C,0x9B,0x84,0x92,0x94,0x7B,0x7B,0x80,0x7D,0x80, - 0x7A,0x7D,0x83,0x70,0x6C,0x76,0x6B,0x65,0x6C,0x6B,0x6B,0x6A,0x66,0x65,0x5F,0x5C, - 0x60,0x57,0x64,0x7A,0x60,0x66,0x81,0x5C,0x5B,0x55,0x46,0x65,0x5E,0x4C,0x5E,0x6A, - 0x62,0x72,0x79,0x73,0x74,0x79,0x8E,0x93,0x8B,0x8C,0x99,0x8D,0x7F,0x7A,0x6C,0x90, - 0x91,0x64,0x77,0x83,0x68,0x5E,0x64,0x64,0x6E,0x76,0x85,0x8A,0x6C,0x78,0x89,0x7E, - 0x84,0x92,0xA1,0xB0,0xA3,0x97,0xAB,0xA9,0xBC,0xAF,0x93,0xD5,0xBF,0xA4,0xBA,0xAC, - 0xAA,0x9E,0x95,0x92,0x8D,0x93,0x93,0x83,0x7F,0x6E,0x6D,0x82,0x74,0x85,0x90,0x7D, - 0x84,0x7A,0x78,0x84,0x60,0x52,0x60,0x6D,0x83,0x76,0x70,0x78,0x66,0x64,0x72,0x75, - 0x90,0x91,0x92,0xAC,0xA3,0x91,0x96,0x98,0x94,0xA1,0xB2,0xBE,0xBE,0xA5,0x9D,0xAA, - 0x9B,0x98,0x8D,0x8C,0xA0,0x8C,0x86,0x87,0x7C,0x6C,0x61,0x66,0x69,0x70,0x65,0x56, - 0x4C,0x2B,0x25,0x33,0x33,0x30,0x34,0x3E,0x34,0x35,0x40,0x53,0x56,0x4D,0x57,0x65, - 0x74,0x7E,0x7A,0x79,0x7B,0x6F,0x7D,0x8A,0x8D,0x99,0x97,0x9E,0xBA,0xC4,0xCB,0xD5, - 0xC7,0xC6,0xC6,0xB4,0xB9,0xA5,0x8A,0x99,0x8C,0x8A,0x8A,0x7F,0x8C,0x74,0x5C,0x6F, - 0x77,0x65,0x5D,0x53,0x5A,0x68,0x53,0x57,0x65,0x65,0x68,0x62,0x6A,0x69,0x6C,0x7D, - 0x81,0x7F,0x7C,0x87,0x98,0x95,0x97,0x9B,0x92,0x9F,0x9E,0x9D,0xAA,0xA3,0xA4,0xA2, - 0xAA,0xAF,0xAA,0xB4,0xB0,0xAB,0xB3,0xAB,0xB3,0xB7,0xA6,0xA5,0xA8,0xA3,0x9C,0x91, - 0x87,0x79,0x65,0x66,0x82,0x7B,0x63,0x73,0x75,0x6D,0x62,0x48,0x43,0x4D,0x52,0x60, - 0x61,0x50,0x4E,0x53,0x53,0x55,0x5C,0x5D,0x5E,0x5C,0x5A,0x5B,0x64,0x75,0x68,0x78, - 0x9D,0x98,0x8D,0x7B,0x6D,0x7F,0x84,0x88,0x9A,0x96,0x9D,0x9C,0x82,0x7B,0x7F,0x7E, - 0x8A,0xA1,0x96,0x89,0x91,0x90,0x98,0x95,0x8F,0x9A,0x95,0x9E,0xA1,0x86,0x77,0x6A, - 0x64,0x75,0x84,0x85,0x7C,0x69,0x63,0x69,0x72,0x6C,0x65,0x65,0x74,0x7A,0x62,0x5D, - 0x49,0x52,0x5C,0x54,0x5F,0x57,0x5E,0x6A,0x6C,0x65,0x5F,0x67,0x6C,0x6D,0x7C,0x7E, - 0x74,0x84,0x80,0x84,0x96,0x94,0xA1,0xA5,0xB3,0xBC,0xBA,0xB6,0xBD,0xC4,0xC3,0xCB, - 0xC2,0xC3,0xD3,0xD7,0xCA,0xCE,0xC6,0xB7,0xBA,0xB2,0xAE,0xAB,0xA2,0x9D,0x95,0x8E, - 0x8A,0x8D,0x85,0x85,0x86,0x78,0x6E,0x68,0x6C,0x61,0x57,0x51,0x4C,0x5F,0x65,0x55, - 0x4D,0x4E,0x48,0x46,0x46,0x3A,0x39,0x42,0x48,0x48,0x52,0x51,0x45,0x45,0x46,0x54, - 0x5F,0x52,0x4D,0x56,0x60,0x62,0x5F,0x63,0x63,0x72,0x82,0x75,0x7D,0x82,0x81,0x85, - 0x7A,0x7E,0x8A,0x93,0x9A,0x93,0x8F,0x91,0x91,0x98,0x94,0xA6,0xBB,0xAF,0xA8,0xB2, - 0xB7,0xAB,0xA0,0x8F,0x9D,0xC3,0xBB,0xB0,0xA3,0x98,0xA6,0xAA,0xA7,0x98,0x93,0x9F, - 0xA0,0x9A,0x91,0x92,0x98,0x8F,0x8E,0x85,0x81,0x78,0x61,0x63,0x5E,0x5D,0x61,0x5C, - 0x70,0x85,0x7C,0x69,0x64,0x5F,0x66,0x69,0x62,0x63,0x66,0x6F,0x68,0x62,0x62,0x61, - 0x6A,0x6D,0x73,0x7A,0x78,0x7D,0x7A,0x7A,0x86,0x84,0x7F,0x8C,0xA1,0xAB,0x9D,0x8E, - 0x82,0x83,0x92,0x92,0x95,0x9F,0x9B,0x9F,0x9A,0x90,0x94,0x8C,0x92,0x91,0x85,0x8D, - 0x84,0x84,0x91,0x82,0x7D,0x7E,0x77,0x91,0xA4,0x8A,0x77,0x74,0x6D,0x82,0x8D,0x74, - 0x72,0x78,0x7D,0x89,0x7B,0x72,0x6D,0x63,0x6E,0x6E,0x67,0x6E,0x6A,0x68,0x68,0x6A, - 0x68,0x67,0x70,0x7C,0x86,0x7E,0x73,0x74,0x7C,0x7E,0x78,0x73,0x73,0x7F,0x98,0x94, - 0x81,0x72,0x6C,0x7D,0x7C,0x76,0x65,0x56,0x5B,0x62,0x6D,0x68,0x61,0x67,0x71,0x7F, - 0x87,0x79,0x6D,0x6B,0x75,0x84,0x7E,0x7F,0x89,0x90,0x92,0x95,0x96,0x93,0x99,0x9F, - 0xA0,0x97,0x95,0x98,0x98,0x9D,0xA0,0x97,0x8E,0xA1,0xAE,0xB7,0xB7,0xA8,0xA7,0xA8, - 0xAB,0xAE,0xA2,0x9B,0xA3,0xA8,0xAB,0xA2,0x8E,0x87,0x92,0xA2,0xA8,0x9D,0x9A,0x93, - 0x8B,0x8E,0x8E,0x7A,0x70,0x7D,0x8B,0x90,0x83,0x6E,0x62,0x65,0x6C,0x69,0x62,0x68, - 0x70,0x70,0x6E,0x5C,0x50,0x51,0x4B,0x4D,0x48,0x47,0x4A,0x4C,0x51,0x4C,0x46,0x41, - 0x46,0x53,0x62,0x6C,0x58,0x48,0x49,0x4E,0x5F,0x67,0x67,0x6D,0x6E,0x77,0x81,0x78, - 0x70,0x70,0x70,0x75,0x7C,0x81,0x7A,0x7A,0x82,0x84,0x87,0x88,0x89,0x8E,0x90,0x8D, - 0x8D,0x86,0x87,0x8F,0x8A,0x8E,0x96,0x93,0x97,0x9D,0x99,0x98,0x93,0x94,0x95,0x89, - 0x85,0x8A,0x8B,0x94,0x9A,0x95,0x97,0x93,0x97,0xA8,0xB1,0xB7,0xB1,0xAB,0xA2,0xA1, - 0x9F,0x98,0xA4,0xAA,0xA3,0xA5,0xA4,0xA5,0xA6,0x9D,0x93,0x88,0x82,0x85,0x84,0x85, - 0x86,0x81,0x83,0x84,0x80,0x85,0x8D,0x8D,0x8B,0x81,0x76,0x76,0x76,0x6C,0x6B,0x72, - 0x6A,0x65,0x61,0x65,0x6F,0x6D,0x66,0x5B,0x5A,0x58,0x5D,0x5C,0x4E,0x53,0x56,0x56, - 0x5D,0x5A,0x5A,0x61,0x60,0x6B,0x6C,0x63,0x64,0x5F,0x5E,0x62,0x62,0x59,0x52,0x55, - 0x60,0x65,0x61,0x65,0x62,0x6A,0x76,0x74,0x6D,0x6D,0x75,0x78,0x82,0x84,0x8A,0x92, - 0x92,0x9B,0x91,0x88,0x8D,0x90,0x95,0x94,0x95,0x90,0x86,0x8C,0x96,0x9C,0x9C,0x93, - 0x8E,0x96,0x9D,0x98,0x92,0x94,0x93,0x9D,0xA1,0x97,0x95,0x9A,0xA2,0xA3,0x9E,0x96, - 0x96,0x9A,0x9C,0x9F,0x94,0x92,0x94,0x93,0x93,0x94,0x95,0x8D,0x8E,0x8F,0x98,0x99, - 0x93,0x98,0x92,0x93,0x9B,0x95,0x91,0x94,0x95,0x92,0x8D,0x8D,0x8A,0x8A,0x8D,0x89, - 0x87,0x85,0x84,0x7E,0x71,0x74,0x72,0x6D,0x6F,0x6E,0x6F,0x67,0x6D,0x70,0x66,0x70, - 0x6F,0x69,0x69,0x63,0x63,0x5D,0x61,0x5E,0x59,0x60,0x60,0x63,0x61,0x62,0x63,0x5F, - 0x62,0x5C,0x61,0x68,0x66,0x66,0x63,0x5F,0x68,0x6E,0x6C,0x6E,0x69,0x6B,0x72,0x76, - 0x77,0x6E,0x6B,0x76,0x78,0x77,0x77,0x71,0x72,0x79,0x7F,0x85,0x85,0x84,0x8A,0x8E, - 0x8F,0x8C,0x8D,0x8F,0x8C,0x92,0x96,0x93,0x91,0x8F,0x94,0x96,0x94,0x96,0x94,0x8E, - 0x97,0x9F,0x99,0x95,0x95,0x97,0x99,0xA1,0x9E,0x95,0x94,0x9A,0x9E,0x9C,0x99,0x97, - 0x96,0x95,0x9B,0x9B,0x95,0x95,0x91,0x93,0x99,0x96,0x95,0x97,0x94,0x99,0x98,0x98, - 0x97,0x97,0x9E,0x9D,0x9D,0x99,0x94,0x95,0x94,0x90,0x8C,0x88,0x84,0x86,0x87,0x84, - 0x84,0x80,0x80,0x85,0x81,0x81,0x7F,0x7B,0x7B,0x72,0x72,0x72,0x70,0x72,0x75,0x77, - 0x74,0x75,0x70,0x6D,0x73,0x6D,0x69,0x68,0x64,0x64,0x60,0x59,0x59,0x5F,0x64,0x60, - 0x5E,0x61,0x64,0x65,0x61,0x5F,0x5C,0x60,0x69,0x68,0x6E,0x6B,0x60,0x67,0x67,0x68, - 0x70,0x69,0x63,0x68,0x6A,0x6D,0x6B,0x65,0x66,0x69,0x70,0x75,0x6D,0x6A,0x6C,0x70, - 0x76,0x76,0x74,0x79,0x7E,0x83,0x83,0x7F,0x82,0x85,0x8D,0x95,0x91,0x91,0x92,0x8C, - 0x94,0x95,0x8D,0x8D,0x8B,0x88,0x8E,0x8E,0x86,0x86,0x88,0x8D,0x95,0x92,0x91,0x94, - 0x94,0x9A,0x9C,0x9B,0x99,0x94,0x9A,0x9E,0x9B,0x9A,0x93,0x90,0x92,0x97,0x9A,0x96, - 0x94,0x92,0x91,0x96,0x91,0x8B,0x8A,0x8A,0x92,0x8E,0x8A,0x88,0x87,0x90,0x8E,0x8C, - 0x91,0x90,0x94,0x8E,0x89,0x8E,0x8E,0x8B,0x8B,0x89,0x8A,0x89,0x80,0x7F,0x83,0x7E, - 0x7A,0x7A,0x77,0x76,0x74,0x6E,0x71,0x74,0x70,0x73,0x75,0x75,0x7B,0x7A,0x7A,0x7F, - 0x7D,0x7C,0x7E,0x7B,0x78,0x79,0x77,0x76,0x78,0x78,0x7A,0x78,0x74,0x7A,0x79,0x75, - 0x77,0x6F,0x70,0x75,0x75,0x76,0x71,0x6E,0x73,0x75,0x75,0x76,0x72,0x75,0x7C,0x7E, - 0x7B,0x79,0x74,0x76,0x7A,0x77,0x75,0x76,0x76,0x78,0x76,0x74,0x73,0x6F,0x6F,0x74, - 0x74,0x74,0x72,0x6F,0x74,0x79,0x79,0x77,0x75,0x74,0x7B,0x81,0x7E,0x7D,0x79,0x7A, - 0x80,0x78,0x7B,0x83,0x7A,0x7B,0x7F,0x76,0x81,0x81,0x74,0x81,0x82,0x80,0x89,0x75, - 0x74,0x85,0x7B,0x80,0x80,0x76,0x86,0x89,0x87,0x89,0x81,0x89,0x87,0x82,0x86,0x82, - 0x7D,0x80,0x93,0x8E,0x84,0x91,0x86,0x8A,0x8D,0x73,0x7D,0x80,0x7C,0x86,0x7B,0x7B, - 0x86,0x89,0x89,0x86,0x87,0x86,0x87,0x83,0x80,0x85,0x80,0x7F,0x83,0x83,0x84,0x75, - 0x7F,0x99,0x8C,0x8C,0x8C,0x83,0x90,0x84,0x75,0x7C,0x7C,0x7D,0x7D,0x7E,0x84,0x8D, - 0x8C,0x81,0x85,0x89,0x87,0x85,0x78,0x7C,0x88,0x84,0x82,0x81,0x7E,0x77,0x7C,0x93, - 0x8C,0x81,0x88,0x83,0x86,0x83,0x6F,0x74,0x7B,0x79,0x80,0x83,0x84,0x8E,0x90,0x86, - 0x88,0x88,0x84,0x81,0x7B,0x80,0x88,0x82,0x80,0x84,0x80,0x73,0x78,0x93,0x8F,0x87, - 0x8B,0x84,0x88,0x81,0x6C,0x74,0x7D,0x79,0x79,0x78,0x7D,0x8A,0x87,0x7A,0x7E,0x82, - 0x81,0x7E,0x78,0x7A,0x81,0x7E,0x7D,0x7C,0x7B,0x74,0x71,0x8D,0x93,0x83,0x87,0x83, - 0x85,0x86,0x71,0x71,0x7D,0x7C,0x79,0x78,0x7B,0x89,0x8A,0x7D,0x83,0x89,0x83,0x7B, - 0x75,0x7C,0x82,0x79,0x78,0x7F,0x7F,0x74,0x78,0x94,0x8D,0x82,0x8C,0x86,0x8C,0x80, - 0x6A,0x79,0x7F,0x75,0x75,0x76,0x7D,0x8C,0x85,0x7D,0x89,0x8B,0x83,0x7B,0x76,0x80, - 0x80,0x76,0x7B,0x80,0x7C,0x6E,0x7C,0x99,0x8B,0x85,0x89,0x84,0x8D,0x7B,0x6E,0x7F, - 0x7B,0x77,0x75,0x77,0x86,0x8A,0x7D,0x7D,0x8A,0x86,0x80,0x7A,0x77,0x81,0x7A,0x74, - 0x7D,0x7D,0x79,0x70,0x83,0x94,0x83,0x86,0x87,0x89,0x91,0x72,0x71,0x85,0x79,0x78, - 0x77,0x79,0x89,0x87,0x7B,0x82,0x89,0x84,0x7F,0x7C,0x82,0x86,0x77,0x77,0x82,0x80, - 0x7C,0x77,0x8B,0x92,0x80,0x8A,0x88,0x8A,0x8C,0x74,0x7E,0x88,0x7D,0x7D,0x79,0x7D, - 0x88,0x80,0x7B,0x84,0x88,0x87,0x85,0x7F,0x86,0x84,0x76,0x80,0x84,0x81,0x80,0x7C, - 0x91,0x8B,0x7D,0x89,0x85,0x8A,0x8A,0x79,0x83,0x87,0x7F,0x80,0x7C,0x7D,0x84,0x7B, - 0x7A,0x83,0x82,0x83,0x82,0x7E,0x82,0x7F,0x7D,0x82,0x7F,0x80,0x80,0x82,0x89,0x81, - 0x81,0x84,0x80,0x86,0x84,0x80,0x87,0x83,0x7E,0x80,0x7E,0x81,0x81,0x7D,0x7E,0x7F, - 0x80,0x80,0x7E,0x7F,0x7F,0x7E,0x80,0x81,0x82,0x82,0x81,0x80,0x82,0x81,0x80,0x81, - 0x81,0x84,0x83,0x80,0x82,0x80,0x7F,0x7F,0x7D,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7E, - 0x7D,0x7C,0x7F,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x80,0x81,0x81,0x83,0x81, - 0x81,0x81,0x7F,0x81,0x82,0x80,0x81,0x81,0x80,0x81,0x7F,0x7E,0x7F,0x7F,0x7F,0x80, - 0x7E,0x7F,0x80,0x7F,0x7E,0x7E,0x7F,0x80,0x80,0x81,0x81,0x80,0x80,0x7F,0x7E,0x7F, - 0x7F,0x7E,0x7F,0x80,0x80,0x7E,0x7E,0x7E,0x7E,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7C,0x7D,0x7C,0x7F,0x81,0x82,0x82,0x82,0x81,0x84,0x84,0x84,0x82,0x80,0x82,0x82, - 0x83,0x82,0x81,0x81,0x81,0x81,0x80,0x7E,0x7E,0x7E,0x7E,0x7E,0x7D,0x7A,0x7A,0x7B, - 0x7C,0x7C,0x7B,0x7D,0x7F,0x7D,0x7F,0x7D,0x7E,0x7E,0x7D,0x80,0x7F,0x80,0x80,0x7F, - 0x7F,0x80,0x80,0x81,0x81,0x7F,0x80,0x80,0x7E,0x7D,0x7D,0x7E,0x7E,0x7E,0x7D,0x7E, - 0x7E,0x7E,0x7E,0x7F,0x7E,0x7D,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x80,0x81,0x81, - 0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x80,0x81,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7E, - 0x7D,0x7E,0x7F,0x7E,0x7F,0x80,0x7F,0x80,0x81,0x80,0x81,0x81,0x7F,0x80,0x80,0x80, - 0x80,0x80,0x7F,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7F,0x7E,0x7D,0x7E,0x7F,0x7F, - 0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x80,0x81,0x81,0x81,0x80,0x7F,0x7F,0x80,0x80,0x7F, - 0x7F,0x80,0x81,0x83,0x84,0x8C,0x8C,0x92,0x92,0x84,0x7E,0x7A,0x7D,0x7B,0x7A,0x75, - 0x7B,0x66,0x73,0x8F,0x73,0x79,0x7E,0x7C,0x6F,0x72,0x80,0x74,0x7E,0x7D,0x79,0x7B, - 0x7A,0x82,0x77,0x78,0x7B,0x75,0x72,0x77,0x81,0x79,0x85,0x80,0x74,0x82,0x81,0x7A, - 0x82,0x92,0x89,0x8A,0x8E,0x81,0x99,0xA5,0x9A,0xA6,0xA4,0x96,0x9D,0xA8,0x95,0x84, - 0x90,0x97,0x9B,0x98,0x87,0x85,0x80,0x7E,0x7C,0x73,0x78,0x81,0x7C,0x76,0x77,0x76, - 0x78,0x73,0x71,0x74,0x67,0x65,0x66,0x63,0x6D,0x7A,0x79,0x76,0x7A,0x73,0x6D,0x70, - 0x69,0x6C,0x70,0x66,0x66,0x65,0x65,0x72,0x6C,0x68,0x6E,0x64,0x6E,0x77,0x76,0x85, - 0x93,0xA8,0xB3,0xA3,0x9D,0x99,0x87,0x92,0x8D,0x8B,0x9E,0x86,0x89,0x98,0x8B,0x89, - 0x71,0x74,0x8A,0x6A,0x6D,0x80,0x78,0x82,0x7F,0x86,0x97,0x88,0x83,0x90,0x8B,0x83, - 0x7D,0x7B,0x7F,0x7A,0x71,0x7B,0x98,0x8C,0x89,0xA0,0x99,0x89,0x7C,0x7E,0x85,0x79, - 0x79,0x88,0x92,0x8C,0x84,0x95,0xA2,0x95,0x90,0x96,0x91,0x8B,0x8F,0x95,0x8F,0x8D, - 0x8D,0x91,0xA5,0x8E,0x87,0x95,0x87,0x7A,0x70,0x76,0x7D,0x70,0x6F,0x7C,0x7B,0x75, - 0x72,0x7D,0x79,0x62,0x67,0x6C,0x5E,0x5E,0x68,0x6D,0x67,0x63,0x62,0x69,0x76,0x63, - 0x63,0x72,0x5E,0x56,0x56,0x5E,0x66,0x54,0x62,0x6F,0x61,0x69,0x71,0x7B,0x80,0x78, - 0x8D,0x9C,0x9A,0x9E,0x9B,0x9A,0x90,0x8D,0x8F,0x88,0x95,0x91,0x89,0x92,0x84,0x77, - 0x7B,0x77,0x81,0x82,0x7B,0x91,0x89,0x83,0x91,0x8B,0x86,0x83,0x84,0x84,0x83,0x8D, - 0x8C,0x88,0x85,0x86,0x7B,0x87,0xA2,0x8B,0x92,0xA4,0x8F,0x88,0x80,0x82,0x8F,0x80, - 0x89,0xA0,0x99,0x9A,0xA6,0xA4,0x9E,0x92,0x93,0x94,0x90,0x98,0x98,0x97,0x91,0x8E, - 0x96,0x86,0x96,0xA4,0x85,0x8D,0x8C,0x79,0x7A,0x72,0x7A,0x83,0x78,0x80,0x85,0x77, - 0x77,0x73,0x66,0x68,0x61,0x62,0x68,0x66,0x6E,0x68,0x58,0x5A,0x58,0x4A,0x6A,0x6F, - 0x53,0x69,0x64,0x4E,0x50,0x4D,0x5B,0x57,0x52,0x67,0x67,0x64,0x73,0x7A,0x78,0x7C, - 0x87,0x95,0x99,0x9C,0xA3,0x98,0x8B,0x87,0x87,0x7F,0x85,0xA2,0x8A,0x85,0x99,0x81, - 0x76,0x77,0x78,0x82,0x7B,0x80,0x90,0x86,0x84,0x8A,0x81,0x80,0x80,0x7E,0x84,0x85, - 0x87,0x8F,0x86,0x82,0x89,0x7F,0x93,0xA2,0x8B,0x9A,0x9F,0x86,0x8C,0x88,0x8A,0x93, - 0x8B,0x9E,0xA8,0x9D,0xA3,0xA6,0x99,0x93,0x90,0x8F,0x92,0x95,0x9D,0x9E,0x92,0x90, - 0x95,0x84,0x8D,0x9D,0x88,0x8C,0x92,0x80,0x77,0x75,0x78,0x75,0x6D,0x78,0x82,0x6F, - 0x6E,0x78,0x64,0x63,0x63,0x62,0x60,0x59,0x63,0x63,0x59,0x58,0x58,0x4E,0x67,0x67, - 0x53,0x6F,0x64,0x4E,0x57,0x4E,0x4D,0x55,0x51,0x65,0x66,0x5F,0x72,0x76,0x75,0x81, - 0x8B,0x8E,0x94,0x9C,0xA0,0x95,0x8C,0x90,0x88,0x7B,0x98,0x9A,0x81,0x9E,0x94,0x79, - 0x81,0x7B,0x7B,0x78,0x78,0x88,0x86,0x80,0x8A,0x85,0x7D,0x7F,0x84,0x83,0x80,0x8A, - 0x8B,0x87,0x7F,0x89,0x83,0x81,0xA6,0x92,0x90,0xA7,0x90,0x89,0x90,0x8C,0x90,0x90, - 0x98,0xA7,0x9D,0xA0,0xAB,0x9C,0x96,0x9F,0x99,0x97,0x9A,0x9E,0x9E,0x98,0x93,0x95, - 0x87,0x8E,0xA5,0x86,0x92,0xA0,0x7F,0x80,0x81,0x76,0x74,0x70,0x78,0x7B,0x68,0x6F, - 0x73,0x60,0x61,0x65,0x5C,0x58,0x60,0x5F,0x5E,0x56,0x57,0x58,0x4C,0x69,0x69,0x53, - 0x71,0x6C,0x4F,0x59,0x58,0x4D,0x50,0x55,0x61,0x62,0x60,0x70,0x75,0x67,0x7A,0x84, - 0x80,0x8F,0x96,0x99,0x95,0x90,0x93,0x8A,0x85,0xA3,0x95,0x89,0xA2,0x90,0x7A,0x86, - 0x84,0x76,0x77,0x7E,0x88,0x81,0x80,0x90,0x85,0x7B,0x8A,0x84,0x7A,0x84,0x8A,0x8A, - 0x87,0x89,0x8E,0x80,0x8A,0xA5,0x8E,0x94,0xAD,0x90,0x89,0x98,0x90,0x8B,0x8F,0x9A, - 0x9F,0x98,0x9E,0xA9,0x98,0x96,0xA8,0x9D,0x95,0x9F,0xA1,0x9A,0x94,0x98,0x93,0x83, - 0x9F,0xA8,0x88,0x9E,0xA7,0x83,0x84,0x8B,0x77,0x75,0x79,0x7A,0x77,0x6F,0x74,0x75, - 0x62,0x66,0x6A,0x5B,0x5A,0x5F,0x62,0x5B,0x57,0x5E,0x58,0x50,0x6D,0x67,0x54,0x6C, - 0x62,0x4A,0x57,0x56,0x4C,0x4F,0x58,0x61,0x5F,0x5F,0x6D,0x6D,0x66,0x79,0x82,0x7C, - 0x89,0x93,0x97,0x98,0x92,0x98,0x8E,0x8D,0xA9,0x94,0x8F,0xA7,0x8F,0x7F,0x8B,0x81, - 0x76,0x79,0x7F,0x84,0x80,0x80,0x8C,0x83,0x77,0x87,0x86,0x7B,0x81,0x89,0x87,0x83, - 0x85,0x89,0x7E,0x8D,0xA7,0x8D,0x97,0xAA,0x8D,0x87,0x94,0x8D,0x8A,0x8F,0x99,0x9F, - 0x98,0x9C,0xA6,0x98,0x93,0xA0,0x9B,0x97,0x9B,0x9D,0x9D,0x97,0x93,0x97,0x88,0x94, - 0xAB,0x91,0x96,0xA5,0x88,0x80,0x8A,0x7D,0x76,0x79,0x7B,0x7E,0x74,0x6F,0x78,0x6B, - 0x63,0x6A,0x67,0x62,0x63,0x65,0x60,0x57,0x55,0x5B,0x4D,0x5B,0x6F,0x57,0x61,0x70, - 0x54,0x4D,0x58,0x50,0x4E,0x52,0x59,0x62,0x5C,0x60,0x6E,0x69,0x68,0x77,0x7D,0x82, - 0x88,0x93,0x99,0x93,0x91,0x96,0x88,0x95,0xAB,0x8D,0x96,0xA3,0x83,0x7B,0x84,0x7C, - 0x7B,0x7C,0x7E,0x8B,0x80,0x7B,0x88,0x80,0x77,0x7F,0x83,0x80,0x81,0x85,0x89,0x7E, - 0x7E,0x87,0x7B,0x90,0xA7,0x8C,0x99,0xAA,0x8C,0x89,0x95,0x91,0x94,0x91,0x96,0xA5, - 0x98,0x91,0xA1,0x9D,0x94,0x98,0x9F,0x9E,0x99,0x9C,0x9F,0x95,0x90,0x95,0x8A,0x9C, - 0xAF,0x94,0x9B,0xAA,0x8B,0x7E,0x84,0x7F,0x80,0x7B,0x79,0x83,0x77,0x69,0x73,0x70, - 0x64,0x62,0x68,0x6B,0x62,0x61,0x66,0x5E,0x56,0x56,0x51,0x62,0x75,0x5A,0x5F,0x6F, - 0x56,0x4A,0x4F,0x53,0x59,0x54,0x58,0x6A,0x64,0x5F,0x6A,0x72,0x74,0x74,0x82,0x90, - 0x92,0x93,0x96,0x96,0x95,0x92,0x8B,0xA0,0xB3,0x95,0x95,0x9D,0x8B,0x7D,0x76,0x7F, - 0x87,0x7C,0x77,0x85,0x82,0x78,0x79,0x7C,0x7F,0x7C,0x7B,0x80,0x82,0x7E,0x7D,0x7F, - 0x82,0x83,0x7A,0x90,0xA5,0x8F,0x8E,0x99,0x92,0x8A,0x87,0x92,0x9D,0x99,0x96,0x9C, - 0x9E,0x9B,0x94,0x93,0x9D,0x9B,0x97,0x98,0x9C,0x9C,0x95,0x94,0x94,0x93,0x8F,0xA2, - 0xAE,0x98,0x98,0x98,0x8B,0x84,0x7A,0x7E,0x86,0x80,0x78,0x76,0x78,0x77,0x6E,0x69, - 0x6B,0x70,0x6D,0x64,0x65,0x64,0x5F,0x5A,0x57,0x57,0x57,0x70,0x75,0x60,0x64,0x60, - 0x53,0x4F,0x4D,0x59,0x61,0x5F,0x5D,0x5D,0x65,0x67,0x65,0x69,0x74,0x83,0x81,0x83, - 0x8E,0x90,0x91,0x91,0x90,0x8C,0x97,0xB0,0xA4,0x92,0x92,0x8E,0x87,0x7D,0x78,0x80, - 0x8A,0x85,0x78,0x77,0x7D,0x7C,0x76,0x72,0x79,0x83,0x7C,0x76,0x78,0x7C,0x7B,0x78, - 0x77,0x76,0x8C,0xA1,0x97,0x8B,0x89,0x8C,0x8E,0x87,0x85,0x91,0x9F,0x9F,0x96,0x93, - 0x98,0x9D,0x97,0x90,0x98,0xA3,0x9E,0x9A,0x95,0x96,0x96,0x94,0x90,0x8F,0xA6,0xB1, - 0xA1,0x94,0x8B,0x8A,0x8D,0x81,0x7A,0x82,0x8A,0x85,0x79,0x74,0x74,0x76,0x6E,0x65, - 0x6A,0x6E,0x6D,0x68,0x5F,0x5D,0x5C,0x59,0x52,0x58,0x6F,0x75,0x6A,0x5D,0x53,0x57, - 0x58,0x53,0x52,0x59,0x66,0x67,0x62,0x5F,0x63,0x6B,0x6D,0x70,0x79,0x80,0x88,0x8C, - 0x8D,0x8E,0x8D,0x8F,0x8D,0x9D,0xAF,0xAA,0xA2,0x93,0x88,0x8A,0x85,0x80,0x7E,0x7F, - 0x85,0x84,0x7C,0x76,0x76,0x77,0x74,0x76,0x79,0x7A,0x7E,0x7A,0x78,0x76,0x74,0x73, - 0x75,0x8D,0x9D,0x98,0x90,0x83,0x7F,0x88,0x88,0x88,0x8B,0x90,0x97,0x9C,0x99,0x94, - 0x90,0x92,0x96,0x97,0x99,0x9B,0x9A,0x9A,0x9A,0x93,0x91,0x8C,0x91,0xA7,0xAF,0xA8, - 0x9C,0x8B,0x83,0x88,0x85,0x83,0x84,0x80,0x81,0x83,0x80,0x79,0x72,0x6E,0x6F,0x70, - 0x6F,0x6D,0x66,0x66,0x64,0x5E,0x5C,0x56,0x5A,0x6E,0x73,0x6B,0x65,0x57,0x50,0x56, - 0x54,0x56,0x59,0x56,0x5D,0x62,0x65,0x69,0x68,0x6A,0x6F,0x77,0x7D,0x81,0x87,0x8B, - 0x8E,0x91,0x94,0x93,0x92,0x9B,0x9E,0x95,0x97,0x92,0x88,0x8C,0x87,0x82,0x83,0x7B, - 0x79,0x7A,0x77,0x77,0x73,0x70,0x70,0x70,0x73,0x74,0x74,0x75,0x76,0x79,0x7B,0x79, - 0x7A,0x81,0x87,0x86,0x87,0x8B,0x88,0x8D,0x8F,0x8C,0x92,0x8F,0x8E,0x93,0x91,0x91, - 0x93,0x90,0x90,0x91,0x94,0x97,0x97,0x99,0x96,0x9A,0x9C,0x97,0x96,0x97,0x9C,0x9B, - 0x95,0x96,0x90,0x8E,0x90,0x88,0x89,0x85,0x7E,0x7F,0x7B,0x75,0x75,0x70,0x6E,0x6E, - 0x6D,0x6C,0x6A,0x68,0x66,0x66,0x68,0x65,0x63,0x60,0x63,0x69,0x63,0x63,0x63,0x5F, - 0x66,0x65,0x63,0x6A,0x66,0x64,0x6A,0x69,0x6D,0x70,0x70,0x77,0x7E,0x83,0x89,0x8C, - 0x8F,0x92,0x96,0x98,0x97,0x94,0x92,0x98,0x96,0x8F,0x91,0x8B,0x85,0x8A,0x83,0x7E, - 0x80,0x76,0x72,0x74,0x6E,0x70,0x70,0x6C,0x70,0x71,0x73,0x77,0x77,0x79,0x7D,0x7F, - 0x82,0x82,0x84,0x84,0x88,0x8C,0x8C,0x8F,0x8F,0x8D,0x94,0x95,0x93,0x95,0x90,0x90, - 0x94,0x8F,0x91,0x92,0x8E,0x92,0x95,0x93,0x97,0x95,0x95,0x99,0x98,0x98,0x9A,0x99, - 0x96,0x93,0x94,0x93,0x8D,0x8C,0x8B,0x87,0x89,0x84,0x80,0x80,0x7B,0x79,0x77,0x72, - 0x73,0x6F,0x6A,0x6C,0x67,0x66,0x6A,0x65,0x66,0x69,0x68,0x69,0x68,0x68,0x69,0x67, - 0x6A,0x6D,0x6B,0x6F,0x70,0x6D,0x73,0x75,0x76,0x7B,0x7C,0x7E,0x84,0x85,0x87,0x8A, - 0x89,0x8B,0x8B,0x8A,0x8A,0x88,0x8C,0x8D,0x87,0x89,0x8B,0x86,0x86,0x86,0x83,0x84, - 0x84,0x82,0x80,0x80,0x7D,0x7C,0x7D,0x7C,0x7C,0x7D,0x7B,0x7A,0x7B,0x79,0x79,0x7B, - 0x7B,0x7D,0x7F,0x80,0x80,0x82,0x85,0x86,0x89,0x89,0x8A,0x8D,0x8E,0x8D,0x8E,0x8E, - 0x8E,0x8F,0x8E,0x8F,0x8F,0x8F,0x8F,0x8D,0x8E,0x8E,0x8B,0x8C,0x8C,0x8B,0x8B,0x8B, - 0x88,0x86,0x86,0x84,0x85,0x87,0x84,0x85,0x86,0x84,0x83,0x82,0x81,0x82,0x81,0x80, - 0x7E,0x7D,0x7D,0x7B,0x7A,0x7A,0x79,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x74,0x74, - 0x75,0x76,0x78,0x78,0x79,0x79,0x7B,0x7B,0x7C,0x7F,0x80,0x81,0x83,0x84,0x84,0x85, - 0x84,0x85,0x85,0x85,0x84,0x84,0x84,0x82,0x80,0x80,0x7F,0x7D,0x7D,0x7C,0x7B,0x7B, - 0x7A,0x79,0x79,0x77,0x78,0x79,0x77,0x77,0x78,0x78,0x79,0x77,0x77,0x78,0x79,0x7B, - 0x7B,0x7C,0x7E,0x7E,0x7E,0x80,0x80,0x80,0x82,0x83,0x83,0x85,0x85,0x85,0x85,0x84, - 0x84,0x86,0x87,0x85,0x86,0x86,0x86,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x88,0x87, - 0x85,0x86,0x84,0x85,0x85,0x84,0x85,0x83,0x84,0x84,0x82,0x82,0x82,0x81,0x82,0x83, - 0x82,0x81,0x81,0x80,0x7E,0x7F,0x7E,0x7D,0x7E,0x7E,0x7D,0x7D,0x7D,0x7C,0x7D,0x7C, - 0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7D,0x7F,0x7F,0x7E,0x80,0x82,0x83,0x84,0x83,0x83, - 0x82,0x82,0x84,0x83,0x82,0x83,0x83,0x82,0x81,0x80,0x7F,0x80,0x7F,0x7F,0x7F,0x7F, - 0x7D,0x7C,0x7C,0x7B,0x7B,0x7B,0x7A,0x7A,0x7A,0x7A,0x7A,0x7B,0x7A,0x78,0x7B,0x7C, - 0x7A,0x7C,0x7D,0x7C,0x7C,0x7D,0x7C,0x7C,0x7E,0x7E,0x7E,0x7F,0x80,0x7F,0x80,0x81, - 0x81,0x81,0x83,0x83,0x82,0x80,0x84,0x84,0x83,0x83,0x82,0x83,0x83,0x94,0x85,0x87, - 0x85,0x61,0x7D,0x7F,0x68,0x66,0x76,0x7E,0x85,0x8B,0x8A,0x8B,0x85,0x93,0xA1,0x9C, - 0x98,0x91,0x8D,0x8A,0x83,0x81,0x7C,0x70,0x66,0x5B,0x55,0x54,0x51,0x50,0x53,0x59, - 0x60,0x67,0x6B,0x71,0x75,0x77,0x7C,0x81,0x83,0x85,0x89,0x8C,0x8C,0x91,0x9E,0xA7, - 0xB0,0xB8,0xB8,0xB9,0xB6,0xAE,0xAA,0xA2,0x9A,0x96,0x8F,0x8A,0x86,0x81,0x7F,0x79, - 0x76,0x73,0x6F,0x6D,0x69,0x68,0x65,0x63,0x60,0x57,0x51,0x49,0x46,0x46,0x45,0x47, - 0x4D,0x54,0x5B,0x62,0x67,0x6C,0x72,0x75,0x7A,0x81,0x83,0x85,0x89,0x8D,0x8D,0x91, - 0x94,0x9B,0xA8,0xAE,0xB2,0xB7,0xB9,0xB7,0xB5,0xB3,0xAF,0xAC,0xA4,0x9F,0x9B,0x91, - 0x8E,0x89,0x86,0x83,0x7E,0x7D,0x78,0x6F,0x69,0x61,0x59,0x58,0x52,0x4E,0x51,0x50, - 0x52,0x55,0x5B,0x63,0x68,0x6D,0x70,0x76,0x7E,0x86,0x8A,0x8F,0x93,0x94,0x96,0x97, - 0x9D,0x9F,0x9C,0xA0,0xA3,0x9A,0x98,0xA1,0xA7,0xAA,0xA7,0xA0,0x98,0x92,0x8E,0x88, - 0x83,0x7A,0x7B,0x7A,0x77,0x7C,0x78,0x74,0x75,0x76,0x73,0x72,0x6F,0x6E,0x6B,0x65, - 0x65,0x62,0x5F,0x61,0x5F,0x5D,0x5B,0x5A,0x5F,0x5C,0x60,0x65,0x62,0x67,0x69,0x6E, - 0x75,0x76,0x79,0x7F,0x7F,0x85,0x8B,0x8D,0x93,0x9A,0x9E,0xA6,0xB0,0xB0,0xB5,0xBA, - 0xBB,0xC0,0xC0,0xBE,0xBC,0xBB,0xB6,0xB1,0xAC,0xA2,0x9D,0x96,0x8F,0x8B,0x84,0x7F, - 0x7B,0x74,0x70,0x6B,0x64,0x61,0x61,0x5E,0x58,0x54,0x52,0x4E,0x4C,0x4D,0x4A,0x4E, - 0x4E,0x49,0x4B,0x50,0x55,0x5A,0x61,0x65,0x6A,0x70,0x70,0x76,0x7C,0x7B,0x81,0x8A, - 0x91,0x94,0x96,0x9C,0xA3,0xAA,0xAC,0xB4,0xBC,0xBB,0xBE,0xC0,0xC0,0xC3,0xC2,0xBF, - 0xC1,0xBE,0xBD,0xBB,0xB5,0xB3,0xAE,0xA5,0xA0,0x9C,0x95,0x8B,0x83,0x7A,0x77,0x72, - 0x6A,0x67,0x5D,0x5F,0x64,0x57,0x56,0x54,0x4F,0x54,0x46,0x3C,0x44,0x44,0x42,0x43, - 0x45,0x4F,0x55,0x55,0x57,0x5C,0x60,0x60,0x5B,0x5D,0x68,0x68,0x67,0x6E,0x6F,0x82, - 0x92,0x8A,0x8F,0x96,0x95,0x9B,0x91,0x91,0x9F,0xA0,0xA2,0xA8,0xAA,0xB2,0xB5,0xAC, - 0xAD,0xB2,0xAD,0xAA,0xA4,0xA6,0xAE,0xA6,0xA3,0xA1,0x9E,0xAF,0xAD,0x9D,0xA4,0xA4, - 0x9A,0x92,0x83,0x88,0x8E,0x7C,0x7B,0x80,0x7D,0x80,0x75,0x67,0x6D,0x67,0x5A,0x5A, - 0x58,0x5A,0x58,0x52,0x54,0x54,0x58,0x62,0x5D,0x5B,0x62,0x60,0x5C,0x59,0x56,0x5E, - 0x5F,0x5A,0x62,0x67,0x6C,0x72,0x6A,0x70,0x7A,0x74,0x76,0x7E,0x81,0x87,0x88,0x8A, - 0x93,0x8F,0x9B,0xAC,0xA2,0xA8,0xAF,0xA9,0xAB,0x9F,0x9D,0xAF,0xA8,0xA2,0xAC,0xAC, - 0xB3,0xB0,0xA2,0xA7,0xA6,0x97,0x95,0x94,0x93,0x90,0x85,0x84,0x84,0x73,0x7D,0x8A, - 0x75,0x77,0x78,0x6E,0x6A,0x55,0x56,0x62,0x54,0x4F,0x59,0x59,0x5D,0x56,0x51,0x5F, - 0x5A,0x50,0x58,0x5E,0x60,0x61,0x61,0x68,0x69,0x60,0x77,0x86,0x77,0x80,0x85,0x85, - 0x85,0x72,0x7D,0x89,0x7C,0x80,0x8C,0x90,0x94,0x8C,0x8C,0x96,0x8C,0x85,0x8B,0x8C, - 0x8B,0x89,0x89,0x8D,0x89,0x80,0x96,0x9F,0x8F,0x98,0x9B,0x98,0x91,0x81,0x8E,0x94, - 0x84,0x89,0x95,0x96,0x93,0x8A,0x8B,0x8F,0x83,0x7C,0x82,0x82,0x81,0x81,0x82,0x84, - 0x7E,0x77,0x8B,0x93,0x80,0x89,0x8C,0x84,0x7B,0x6C,0x7B,0x7E,0x6C,0x73,0x7E,0x7F, - 0x7A,0x76,0x7A,0x7A,0x6B,0x69,0x6D,0x68,0x67,0x68,0x6B,0x69,0x64,0x62,0x77,0x76, - 0x64,0x71,0x74,0x69,0x5E,0x5A,0x6C,0x67,0x5B,0x6D,0x7A,0x77,0x78,0x7E,0x87,0x84, - 0x7B,0x83,0x87,0x84,0x84,0x8D,0x8F,0x8C,0x89,0x8B,0xA6,0x9A,0x8C,0xA2,0x9D,0x8F, - 0x84,0x88,0x93,0x84,0x82,0x95,0x9A,0x93,0x93,0x9B,0x9D,0x90,0x8E,0x95,0x8F,0x89, - 0x90,0x95,0x90,0x8F,0x89,0x98,0xA8,0x8C,0x93,0xA3,0x91,0x85,0x7E,0x86,0x81,0x6D, - 0x79,0x84,0x78,0x75,0x7C,0x7F,0x75,0x6C,0x71,0x6E,0x62,0x62,0x69,0x64,0x5E,0x5E, - 0x59,0x71,0x6F,0x5A,0x72,0x72,0x62,0x5F,0x60,0x6A,0x5B,0x54,0x6C,0x6B,0x63,0x6E, - 0x79,0x78,0x6F,0x70,0x79,0x6E,0x69,0x73,0x74,0x70,0x74,0x71,0x77,0x92,0x7F,0x7D, - 0x95,0x85,0x7D,0x7B,0x7F,0x82,0x70,0x78,0x88,0x7D,0x7D,0x8B,0x91,0x8D,0x89,0x91, - 0x91,0x85,0x8A,0x92,0x8D,0x8D,0x94,0x8B,0x9D,0xAD,0x94,0xA5,0xB1,0x9D,0x9B,0x98, - 0x9D,0x94,0x86,0x98,0x9C,0x90,0x97,0xA1,0xA0,0x95,0x96,0x9D,0x90,0x88,0x90,0x8E, - 0x88,0x8B,0x8B,0x84,0x9A,0x97,0x87,0x9D,0x99,0x89,0x86,0x85,0x85,0x76,0x73,0x82, - 0x7D,0x74,0x7E,0x84,0x7A,0x73,0x7A,0x77,0x6A,0x6B,0x6F,0x68,0x62,0x67,0x5F,0x62, - 0x76,0x63,0x69,0x78,0x66,0x63,0x63,0x62,0x5D,0x55,0x60,0x65,0x5F,0x63,0x6F,0x6F, - 0x65,0x6B,0x73,0x67,0x65,0x6E,0x6D,0x69,0x69,0x6F,0x68,0x78,0x81,0x73,0x87,0x86, - 0x78,0x7C,0x7A,0x78,0x72,0x71,0x7D,0x7C,0x78,0x82,0x89,0x83,0x81,0x88,0x87,0x7F, - 0x83,0x88,0x87,0x83,0x87,0x8A,0x84,0x9C,0x9B,0x90,0xA9,0xA0,0x94,0x99,0x96,0x94, - 0x8B,0x8F,0x9B,0x95,0x95,0xA3,0xA4,0x9B,0x9E,0xA4,0x9E,0x99,0x9F,0x9F,0x9C,0x99, - 0x9A,0x98,0x92,0xAC,0xA5,0x99,0xB3,0xA5,0x9A,0x9B,0x98,0x95,0x89,0x8E,0x97,0x8C, - 0x8B,0x96,0x94,0x89,0x8C,0x90,0x87,0x80,0x86,0x84,0x7D,0x7A,0x7B,0x77,0x6D,0x86, - 0x80,0x71,0x89,0x7D,0x6F,0x71,0x6E,0x6A,0x5F,0x63,0x6B,0x62,0x61,0x6C,0x6B,0x61, - 0x65,0x68,0x60,0x5A,0x60,0x61,0x59,0x5A,0x5C,0x58,0x51,0x69,0x69,0x58,0x73,0x6C, - 0x5C,0x62,0x65,0x60,0x57,0x5E,0x68,0x60,0x60,0x6E,0x6F,0x67,0x6E,0x73,0x6F,0x6B, - 0x72,0x76,0x6F,0x71,0x76,0x74,0x6C,0x85,0x8D,0x78,0x93,0x94,0x80,0x86,0x8B,0x86, - 0x7E,0x84,0x8E,0x89,0x85,0x95,0x97,0x8D,0x95,0x9B,0x94,0x90,0x99,0x9B,0x91,0x95, - 0x99,0x96,0x8E,0xA5,0xB0,0x9A,0xB2,0xB6,0xA0,0xA4,0xA9,0xA2,0x99,0x9D,0xA6,0x9F, - 0x98,0xA6,0xA6,0x9A,0xA1,0xA5,0x9C,0x98,0x9D,0x9C,0x91,0x93,0x94,0x8D,0x83,0x98, - 0xA1,0x87,0x9C,0xA0,0x86,0x88,0x8D,0x84,0x78,0x7C,0x84,0x7C,0x75,0x82,0x81,0x75, - 0x7C,0x7F,0x76,0x73,0x78,0x76,0x6D,0x70,0x70,0x6A,0x61,0x74,0x81,0x66,0x7A,0x85, - 0x6A,0x6B,0x74,0x6B,0x5F,0x63,0x6D,0x66,0x61,0x6E,0x6F,0x64,0x6A,0x70,0x64,0x62, - 0x67,0x65,0x5E,0x60,0x61,0x5C,0x52,0x61,0x71,0x57,0x6B,0x78,0x5D,0x60,0x6A,0x62, - 0x58,0x5E,0x67,0x62,0x5F,0x6D,0x6F,0x66,0x6F,0x75,0x6D,0x70,0x77,0x77,0x73,0x79, - 0x7A,0x77,0x71,0x81,0x91,0x79,0x8F,0x9C,0x81,0x89,0x92,0x88,0x80,0x87,0x8E,0x87, - 0x85,0x93,0x92,0x88,0x93,0x96,0x8D,0x90,0x94,0x93,0x8F,0x94,0x93,0x8F,0x88,0x95, - 0xA5,0x8D,0xA2,0xAD,0x90,0x98,0xA2,0x93,0x8D,0x96,0x97,0x91,0x8F,0x99,0x98,0x8D, - 0x98,0x9A,0x8F,0x93,0x96,0x90,0x8C,0x8F,0x8B,0x87,0x7F,0x8E,0x98,0x7F,0x97,0x9A, - 0x7C,0x89,0x8F,0x7B,0x79,0x83,0x7F,0x79,0x7C,0x84,0x7F,0x7A,0x87,0x84,0x7A,0x82, - 0x83,0x7B,0x7B,0x7E,0x78,0x75,0x71,0x82,0x86,0x72,0x8D,0x88,0x6E,0x7F,0x81,0x6C, - 0x6F,0x77,0x6F,0x6C,0x72,0x75,0x6D,0x6F,0x79,0x71,0x6C,0x75,0x72,0x6C,0x6F,0x6F, - 0x6B,0x69,0x68,0x7E,0x76,0x70,0x8F,0x7A,0x6D,0x85,0x78,0x69,0x76,0x77,0x70,0x73, - 0x7B,0x7B,0x74,0x7C,0x81,0x77,0x7C,0x81,0x7B,0x79,0x7C,0x78,0x76,0x72,0x76,0x8B, - 0x79,0x81,0x97,0x7A,0x7C,0x8E,0x79,0x73,0x82,0x79,0x74,0x7E,0x7F,0x7A,0x7C,0x83, - 0x80,0x7B,0x82,0x81,0x7B,0x7E,0x7E,0x79,0x7A,0x75,0x7F,0x8B,0x7A,0x8E,0x95,0x7A, - 0x86,0x8E,0x75,0x7B,0x86,0x76,0x79,0x84,0x7D,0x7C,0x83,0x84,0x81,0x83,0x87,0x82, - 0x81,0x83,0x7F,0x7E,0x7E,0x78,0x88,0x8B,0x80,0x98,0x93,0x80,0x92,0x8F,0x7A,0x88, - 0x89,0x79,0x84,0x89,0x7F,0x85,0x8A,0x87,0x87,0x8A,0x89,0x87,0x87,0x86,0x81,0x81, - 0x7E,0x7C,0x8A,0x86,0x83,0x95,0x8C,0x80,0x90,0x88,0x79,0x87,0x83,0x76,0x84,0x83, - 0x79,0x82,0x85,0x7F,0x85,0x86,0x84,0x86,0x85,0x83,0x80,0x7F,0x7E,0x7F,0x87,0x85, - 0x86,0x90,0x89,0x82,0x8D,0x85,0x7B,0x87,0x80,0x76,0x83,0x80,0x78,0x81,0x80,0x7B, - 0x81,0x81,0x7F,0x83,0x80,0x7E,0x7E,0x7C,0x7A,0x7B,0x80,0x81,0x83,0x8A,0x83,0x80, - 0x89,0x82,0x7B,0x86,0x80,0x78,0x84,0x80,0x7A,0x83,0x81,0x7F,0x85,0x83,0x84,0x86, - 0x83,0x85,0x84,0x7E,0x7F,0x80,0x83,0x84,0x84,0x8A,0x87,0x82,0x88,0x83,0x7D,0x84, - 0x7E,0x79,0x80,0x7B,0x79,0x80,0x7B,0x7B,0x81,0x7D,0x80,0x82,0x7E,0x7F,0x7E,0x7A, - 0x79,0x79,0x7D,0x7F,0x7E,0x84,0x81,0x7D,0x83,0x7D,0x79,0x80,0x79,0x76,0x7D,0x76, - 0x77,0x7E,0x78,0x7B,0x81,0x7D,0x81,0x83,0x81,0x83,0x80,0x7D,0x7E,0x7C,0x82,0x83, - 0x81,0x88,0x85,0x81,0x87,0x80,0x7D,0x83,0x7A,0x79,0x80,0x77,0x79,0x7F,0x78,0x7B, - 0x80,0x7C,0x80,0x82,0x7F,0x81,0x7F,0x7C,0x7E,0x7B,0x80,0x83,0x81,0x87,0x85,0x81, - 0x87,0x81,0x7E,0x84,0x7B,0x7A,0x80,0x78,0x79,0x7F,0x78,0x7C,0x80,0x7D,0x81,0x82, - 0x7F,0x82,0x7F,0x7C,0x7D,0x7B,0x7F,0x82,0x80,0x86,0x85,0x81,0x85,0x80,0x7D,0x82, - 0x7A,0x79,0x7F,0x77,0x79,0x7F,0x79,0x7C,0x81,0x7E,0x83,0x84,0x81,0x84,0x81,0x7D, - 0x80,0x7D,0x81,0x85,0x82,0x88,0x88,0x83,0x87,0x83,0x7F,0x84,0x7D,0x7B,0x80,0x79, - 0x79,0x7F,0x7A,0x7B,0x80,0x7E,0x81,0x83,0x81,0x84,0x82,0x7F,0x80,0x7E,0x82,0x87, - 0x83,0x88,0x89,0x85,0x88,0x85,0x82,0x86,0x80,0x7D,0x82,0x7A,0x7A,0x80,0x7A,0x7B, - 0x81,0x7E,0x80,0x82,0x7F,0x82,0x80,0x7C,0x7E,0x7B,0x7F,0x83,0x80,0x84,0x86,0x81, - 0x85,0x82,0x7E,0x83,0x7E,0x7A,0x7E,0x79,0x78,0x7E,0x79,0x7A,0x81,0x7E,0x80,0x83, - 0x81,0x83,0x82,0x7E,0x80,0x7E,0x80,0x84,0x80,0x84,0x87,0x82,0x85,0x84,0x7F,0x83, - 0x80,0x7B,0x7E,0x7A,0x78,0x7F,0x7B,0x7B,0x82,0x80,0x81,0x85,0x83,0x84,0x84,0x81, - 0x82,0x80,0x82,0x86,0x83,0x85,0x89,0x84,0x85,0x86,0x81,0x83,0x82,0x7C,0x7D,0x7B, - 0x77,0x7B,0x78,0x77,0x7D,0x7B,0x7B,0x81,0x7F,0x80,0x82,0x7E,0x7F,0x7F,0x80,0x84, - 0x82,0x83,0x88,0x84,0x84,0x87,0x82,0x83,0x85,0x7F,0x7E,0x7F,0x7A,0x7C,0x7C,0x79, - 0x7E,0x7E,0x7C,0x81,0x81,0x7F,0x81,0x7F,0x7E,0x7E,0x7E,0x82,0x80,0x80,0x83,0x81, - 0x80,0x84,0x80,0x7F,0x83,0x7E,0x7C,0x7F,0x7B,0x7B,0x7E,0x7C,0x7F,0x81,0x80,0x83, - 0x85,0x83,0x85,0x85,0x83,0x83,0x83,0x86,0x86,0x83,0x85,0x84,0x82,0x84,0x83,0x81, - 0x83,0x81,0x7D,0x7E,0x7C,0x79,0x7B,0x7B,0x79,0x7C,0x7C,0x7C,0x7F,0x7F,0x7F,0x80, - 0x7F,0x80,0x81,0x81,0x83,0x83,0x82,0x83,0x82,0x81,0x82,0x82,0x81,0x82,0x80,0x7D, - 0x7D,0x7A,0x79,0x7C,0x7A,0x79,0x7D,0x7C,0x7C,0x7F,0x7F,0x7E,0x82,0x80,0x81,0x85, - 0x8F,0x87,0x69,0x77,0x8D,0x8E,0x78,0x88,0x97,0x6F,0x79,0x87,0x7F,0x81,0x87,0x90, - 0x7C,0x7A,0x88,0x88,0x7A,0x79,0x8B,0x82,0x76,0x77,0x7D,0x82,0x86,0x85,0x8A,0x82, - 0x73,0x81,0x80,0x83,0x8B,0x8C,0x8E,0x7E,0x7D,0x76,0x72,0x7F,0x7E,0x84,0x78,0x74, - 0x80,0x6D,0x79,0x93,0x7A,0x76,0x88,0x7B,0x7D,0x75,0x78,0x89,0x7B,0x7B,0x81,0x7B, - 0x7A,0x7B,0x80,0x7E,0x76,0x7C,0x85,0x81,0x7A,0x76,0x7A,0x83,0x84,0x86,0x82,0x7F, - 0x7F,0x7F,0x7E,0x76,0x80,0x91,0x90,0x8F,0x95,0x88,0x87,0x99,0x9F,0x9E,0x9D,0x9E, - 0x9F,0xA0,0xA0,0x9A,0x89,0x83,0x8E,0x92,0x92,0x95,0x87,0x79,0x78,0x72,0x6E,0x66, - 0x64,0x73,0x79,0x78,0x73,0x69,0x6B,0x71,0x72,0x72,0x66,0x63,0x6B,0x69,0x6A,0x68, - 0x63,0x66,0x68,0x69,0x69,0x65,0x67,0x70,0x6F,0x67,0x63,0x6A,0x79,0x7B,0x6E,0x70, - 0x70,0x6C,0x72,0x73,0x74,0x77,0x74,0x75,0x78,0x80,0x88,0x8E,0x97,0xA7,0xB6,0xB4, - 0xA8,0xA3,0xA2,0x9E,0x9C,0x9C,0x96,0x8F,0x93,0x90,0x8B,0x8D,0x8D,0x8C,0x8A,0x8E, - 0x90,0x8B,0x8D,0x8F,0x90,0x8C,0x86,0x85,0x89,0x8A,0x87,0x84,0x81,0x81,0x84,0x8C, - 0x8A,0x85,0x83,0x7F,0x81,0x82,0x81,0x7C,0x7D,0x84,0x82,0x7D,0x7C,0x7B,0x79,0x7A, - 0x7F,0x80,0x87,0x91,0x8F,0x8A,0x86,0x82,0x8B,0x8F,0x8F,0x97,0x97,0x94,0x90,0x90, - 0x96,0x92,0x8E,0x8D,0x86,0x83,0x83,0x7E,0x74,0x73,0x6E,0x6A,0x6C,0x68,0x68,0x6D, - 0x6A,0x66,0x63,0x61,0x65,0x5C,0x5D,0x64,0x62,0x61,0x5D,0x5D,0x59,0x58,0x5E,0x5E, - 0x5F,0x63,0x67,0x65,0x64,0x6A,0x6D,0x6D,0x6B,0x69,0x6C,0x6A,0x69,0x6B,0x6E,0x71, - 0x6F,0x6D,0x70,0x73,0x74,0x75,0x7E,0x92,0x95,0x95,0xA5,0xB0,0xB2,0xAE,0xAB,0x9F, - 0x9D,0x9F,0x96,0x95,0x9A,0x9C,0x98,0x9C,0x9A,0x9A,0xA0,0x9D,0x96,0x8D,0x88,0x88, - 0x8A,0x86,0x81,0x88,0x9C,0x9C,0x8F,0x8D,0x8B,0x89,0x8C,0x7C,0x6B,0x74,0x7C,0x7B, - 0x81,0x82,0x84,0x93,0x90,0x88,0x87,0x7F,0x7D,0x7F,0x7D,0x78,0x7E,0x81,0x7F,0x8A, - 0x9A,0x9E,0x99,0x9B,0x99,0x94,0x94,0x8E,0x83,0x89,0x8B,0x8E,0x96,0x95,0x96,0x94, - 0x90,0x88,0x82,0x79,0x73,0x7A,0x76,0x75,0x73,0x6D,0x68,0x6F,0x82,0x7B,0x71,0x6F, - 0x64,0x60,0x5F,0x53,0x4F,0x56,0x59,0x59,0x5F,0x55,0x52,0x5C,0x55,0x59,0x5A,0x59, - 0x61,0x6B,0x6B,0x62,0x5F,0x5C,0x64,0x72,0x7B,0x75,0x70,0x6E,0x69,0x67,0x67,0x62, - 0x65,0x72,0x78,0x85,0x8A,0x8B,0x8E,0x93,0x99,0xA0,0xA3,0xA1,0xAC,0xAF,0xAC,0xA1, - 0x97,0x99,0x9F,0xAE,0xB8,0xAA,0x9D,0x97,0x89,0x87,0x85,0x7F,0x83,0x8E,0x8D,0x8F, - 0x91,0x88,0x86,0x7E,0x7F,0x87,0x87,0x89,0x90,0x8F,0x8B,0x84,0x7D,0x7E,0x83,0x98, - 0xA0,0x9A,0x92,0x82,0x7A,0x7E,0x7C,0x78,0x84,0x86,0x88,0x94,0x94,0x89,0x85,0x85, - 0x88,0x91,0x91,0x95,0x97,0x9A,0x98,0x8C,0x8C,0x8A,0x8C,0x9C,0xA8,0x9C,0x90,0x82, - 0x75,0x7A,0x77,0x7A,0x7F,0x7B,0x7A,0x7F,0x77,0x69,0x64,0x5D,0x5D,0x64,0x63,0x60, - 0x63,0x60,0x5B,0x56,0x51,0x4C,0x58,0x6A,0x69,0x60,0x56,0x4E,0x4C,0x56,0x5A,0x63, - 0x68,0x67,0x6E,0x6D,0x65,0x5F,0x61,0x60,0x6C,0x74,0x75,0x75,0x77,0x77,0x77,0x7B, - 0x76,0x7C,0x90,0xA0,0xA6,0xA4,0x9A,0x95,0x9E,0xA2,0xA8,0xAE,0xAA,0xA7,0xAA,0xA6, - 0x9D,0x97,0x94,0x94,0x9C,0x9C,0x95,0x90,0x88,0x83,0x82,0x84,0x7E,0x82,0x94,0x97, - 0x96,0x8B,0x7D,0x72,0x76,0x7D,0x86,0x8A,0x87,0x88,0x87,0x89,0x84,0x7E,0x7C,0x83, - 0x8A,0x8C,0x8C,0x84,0x80,0x81,0x83,0x85,0x82,0x8D,0x9A,0x9D,0x9B,0x8F,0x80,0x81, - 0x89,0x94,0x9D,0x9A,0x94,0x93,0x95,0x91,0x8B,0x82,0x85,0x8C,0x8E,0x8F,0x8B,0x82, - 0x7A,0x78,0x7C,0x75,0x74,0x82,0x88,0x84,0x7B,0x68,0x56,0x5C,0x64,0x6A,0x6D,0x63, - 0x60,0x5C,0x5C,0x5D,0x55,0x52,0x55,0x5F,0x63,0x67,0x64,0x5C,0x5A,0x5F,0x62,0x5D, - 0x65,0x75,0x7B,0x7A,0x75,0x61,0x56,0x5E,0x6B,0x76,0x79,0x76,0x79,0x7A,0x7F,0x80, - 0x7E,0x84,0x8D,0x9B,0xA3,0xA7,0xA4,0x9E,0x9D,0xA2,0xA2,0x9D,0xA7,0xB0,0xAF,0xAA, - 0x9C,0x86,0x7F,0x83,0x8D,0x95,0x92,0x8C,0x87,0x84,0x82,0x83,0x7C,0x7C,0x84,0x85, - 0x8B,0x8A,0x82,0x7D,0x7D,0x80,0x7D,0x82,0x91,0x98,0x96,0x91,0x81,0x71,0x71,0x7E, - 0x88,0x91,0x93,0x89,0x86,0x88,0x88,0x87,0x8A,0x89,0x8F,0x95,0x99,0x93,0x8D,0x8D, - 0x88,0x8D,0x8B,0x93,0xA0,0xA2,0x9F,0x94,0x81,0x75,0x7A,0x85,0x8D,0x8B,0x8A,0x7F, - 0x7B,0x76,0x6F,0x6F,0x6A,0x6A,0x6C,0x70,0x6E,0x67,0x5D,0x5B,0x59,0x55,0x58,0x63, - 0x6C,0x6D,0x66,0x57,0x4A,0x46,0x4E,0x5C,0x63,0x65,0x66,0x60,0x60,0x62,0x62,0x62, - 0x60,0x67,0x6B,0x71,0x71,0x6C,0x6C,0x6B,0x72,0x6F,0x79,0x8C,0x92,0x98,0x91,0x88, - 0x81,0x85,0x95,0xA2,0xA9,0xAB,0xA5,0xA4,0xA6,0xA0,0xA0,0x9C,0x9A,0x9A,0x9E,0x9D, - 0x96,0x90,0x86,0x80,0x7F,0x80,0x88,0x95,0x9A,0x95,0x87,0x77,0x6F,0x71,0x7D,0x86, - 0x86,0x82,0x7D,0x79,0x7F,0x7F,0x7F,0x7D,0x7E,0x84,0x85,0x8A,0x86,0x80,0x80,0x83, - 0x83,0x85,0x93,0x9B,0x9D,0x98,0x8A,0x7E,0x7C,0x83,0x91,0x98,0x9A,0x94,0x8D,0x90, - 0x92,0x90,0x8F,0x8D,0x8A,0x8B,0x8D,0x8A,0x88,0x82,0x7A,0x7C,0x79,0x79,0x88,0x8C, - 0x88,0x7F,0x6C,0x5E,0x5B,0x64,0x6B,0x6C,0x69,0x61,0x59,0x5A,0x5D,0x5B,0x57,0x57, - 0x59,0x5B,0x60,0x5F,0x5D,0x57,0x56,0x58,0x55,0x65,0x77,0x7D,0x79,0x6F,0x5E,0x55, - 0x5A,0x66,0x70,0x77,0x78,0x71,0x71,0x76,0x7B,0x7F,0x83,0x82,0x89,0x95,0x96,0x98, - 0x9A,0x97,0x9D,0xA0,0x9F,0xAB,0xB6,0xB9,0xB5,0xA4,0x91,0x88,0x8C,0x94,0x9D,0x9A, - 0x94,0x8B,0x85,0x86,0x86,0x84,0x82,0x7F,0x81,0x86,0x82,0x80,0x7C,0x77,0x79,0x75, - 0x78,0x89,0x91,0x91,0x8E,0x80,0x75,0x71,0x78,0x85,0x8C,0x8C,0x87,0x85,0x85,0x86, - 0x8A,0x8B,0x8C,0x8D,0x91,0x98,0x98,0x97,0x91,0x8B,0x8E,0x8C,0x95,0xA6,0xA8,0xA6, - 0x9E,0x8D,0x7D,0x7A,0x82,0x8C,0x91,0x8E,0x88,0x80,0x7C,0x7C,0x78,0x74,0x72,0x6D, - 0x71,0x73,0x6F,0x69,0x61,0x5C,0x56,0x59,0x63,0x70,0x73,0x6F,0x65,0x51,0x47,0x4B, - 0x54,0x5F,0x67,0x66,0x61,0x5C,0x60,0x65,0x66,0x66,0x65,0x67,0x6E,0x74,0x74,0x72, - 0x6F,0x6F,0x6E,0x76,0x88,0x96,0x9B,0x98,0x8D,0x7D,0x78,0x80,0x8E,0x9A,0xA3,0xA1, - 0x9B,0x99,0x9B,0x9E,0x9C,0x9B,0x9B,0x9B,0xA1,0xA4,0x9E,0x98,0x90,0x8C,0x89,0x8D, - 0x9B,0xA3,0xA1,0x99,0x88,0x76,0x71,0x77,0x80,0x8B,0x8D,0x85,0x7D,0x7A,0x7C,0x7E, - 0x7D,0x7E,0x7E,0x7E,0x84,0x82,0x81,0x7E,0x79,0x79,0x77,0x80,0x91,0x9D,0x9E,0x97, - 0x86,0x78,0x75,0x7B,0x8A,0x95,0x95,0x8F,0x88,0x88,0x89,0x89,0x8A,0x87,0x84,0x86, - 0x89,0x88,0x86,0x81,0x7B,0x7A,0x75,0x7D,0x8E,0x95,0x92,0x88,0x76,0x69,0x65,0x6E, - 0x7C,0x82,0x81,0x76,0x70,0x70,0x72,0x75,0x73,0x71,0x6F,0x70,0x76,0x77,0x75,0x6F, - 0x6A,0x69,0x67,0x70,0x83,0x8B,0x8B,0x82,0x71,0x64,0x64,0x6E,0x79,0x82,0x80,0x7A, - 0x77,0x79,0x7F,0x82,0x81,0x7E,0x7C,0x80,0x88,0x8C,0x8D,0x88,0x84,0x82,0x7E,0x86, - 0x98,0x9F,0xA1,0x99,0x89,0x7B,0x77,0x7D,0x86,0x8D,0x89,0x84,0x82,0x7D,0x80,0x81, - 0x7E,0x7C,0x79,0x7A,0x7F,0x80,0x7F,0x79,0x74,0x72,0x6D,0x76,0x88,0x92,0x92,0x8A, - 0x7A,0x6C,0x6B,0x71,0x7D,0x85,0x85,0x82,0x7F,0x7C,0x80,0x83,0x80,0x80,0x7F,0x80, - 0x87,0x8B,0x89,0x85,0x7E,0x7C,0x79,0x7F,0x92,0x9A,0x9B,0x95,0x84,0x75,0x72,0x76, - 0x82,0x88,0x8A,0x85,0x7E,0x80,0x82,0x82,0x80,0x7D,0x78,0x7A,0x7F,0x82,0x82,0x7D, - 0x78,0x74,0x71,0x75,0x85,0x8F,0x91,0x8B,0x7A,0x6D,0x69,0x6A,0x74,0x7D,0x7E,0x7C, - 0x75,0x75,0x7A,0x7C,0x7F,0x7A,0x74,0x79,0x7C,0x81,0x86,0x81,0x7C,0x78,0x75,0x77, - 0x86,0x94,0x99,0x98,0x8B,0x7D,0x75,0x75,0x7F,0x89,0x8C,0x8C,0x86,0x82,0x87,0x8A, - 0x8B,0x86,0x7E,0x7D,0x81,0x86,0x8A,0x86,0x7F,0x7A,0x74,0x74,0x7F,0x8C,0x94,0x94, - 0x88,0x79,0x6E,0x6D,0x73,0x7C,0x83,0x7E,0x7B,0x79,0x7C,0x82,0x82,0x7F,0x77,0x75, - 0x78,0x7D,0x83,0x82,0x80,0x78,0x74,0x72,0x79,0x89,0x95,0x97,0x8F,0x80,0x71,0x6E, - 0x73,0x7C,0x84,0x83,0x7F,0x7C,0x7C,0x84,0x88,0x85,0x7F,0x7A,0x79,0x7E,0x84,0x86, - 0x84,0x7F,0x79,0x75,0x76,0x84,0x92,0x95,0x93,0x88,0x78,0x70,0x72,0x78,0x82,0x83, - 0x7F,0x7B,0x78,0x7C,0x82,0x83,0x81,0x7B,0x76,0x77,0x7E,0x82,0x82,0x7F,0x79,0x74, - 0x70,0x7B,0x8A,0x90,0x94,0x8C,0x7E,0x73,0x70,0x76,0x7D,0x84,0x85,0x7E,0x7C,0x7B, - 0x81,0x88,0x88,0x86,0x7E,0x7E,0x7E,0x82,0x86,0x87,0x83,0x7E,0x78,0x76,0x85,0x90, - 0x93,0x96,0x88,0x7A,0x75,0x70,0x7B,0x7F,0x82,0x82,0x76,0x76,0x79,0x7E,0x86,0x85, - 0x7F,0x7A,0x75,0x78,0x7F,0x82,0x84,0x7E,0x79,0x74,0x78,0x88,0x90,0x93,0x91,0x83, - 0x78,0x73,0x76,0x7F,0x84,0x85,0x7F,0x7A,0x7C,0x7E,0x85,0x88,0x88,0x85,0x7C,0x7A, - 0x7C,0x7F,0x83,0x85,0x81,0x7D,0x78,0x7E,0x89,0x8C,0x92,0x8D,0x82,0x7B,0x75,0x79, - 0x7E,0x80,0x81,0x7D,0x7C,0x79,0x7B,0x83,0x84,0x87,0x84,0x7E,0x7D,0x7A,0x7B,0x7E, - 0x80,0x7F,0x79,0x77,0x80,0x85,0x8D,0x8F,0x86,0x81,0x78,0x73,0x77,0x7C,0x7F,0x7F, - 0x7D,0x7C,0x7A,0x7F,0x84,0x86,0x89,0x85,0x80,0x7F,0x7E,0x80,0x81,0x82,0x80,0x7C, - 0x7F,0x86,0x8A,0x93,0x8E,0x87,0x84,0x7A,0x79,0x7C,0x7F,0x82,0x80,0x7E,0x7C,0x7E, - 0x81,0x81,0x86,0x88,0x83,0x80,0x7C,0x7C,0x7D,0x7F,0x80,0x7B,0x79,0x7F,0x84,0x8B, - 0x8F,0x88,0x85,0x7E,0x76,0x76,0x7A,0x7D,0x7F,0x7D,0x7B,0x7C,0x7D,0x7F,0x82,0x86, - 0x85,0x84,0x82,0x7F,0x7F,0x7F,0x80,0x7F,0x7A,0x7C,0x84,0x87,0x8E,0x8F,0x88,0x87, - 0x7F,0x7B,0x7D,0x7C,0x7E,0x7F,0x7E,0x7D,0x7F,0x80,0x81,0x83,0x85,0x85,0x85,0x80, - 0x7F,0x7F,0x7E,0x7F,0x7B,0x7A,0x7F,0x84,0x87,0x8D,0x88,0x85,0x85,0x7D,0x7B,0x7C, - 0x7A,0x7D,0x7D,0x7B,0x7C,0x80,0x80,0x80,0x83,0x85,0x85,0x84,0x80,0x7E,0x7D,0x7E, - 0x7F,0x7C,0x7C,0x83,0x86,0x8A,0x8D,0x86,0x86,0x85,0x7D,0x7D,0x7D,0x7B,0x7F,0x7C, - 0x7B,0x7F,0x7E,0x80,0x82,0x83,0x85,0x85,0x84,0x82,0x7F,0x7D,0x7C,0x7D,0x7B,0x7C, - 0x83,0x83,0x88,0x88,0x81,0x85,0x80,0x7C,0x7E,0x7B,0x7B,0x7E,0x7D,0x7B,0x7D,0x7D, - 0x7D,0x7E,0x81,0x82,0x83,0x83,0x82,0x7E,0x7C,0x7F,0x7D,0x7A,0x7E,0x82,0x81,0x86, - 0x86,0x81,0x85,0x80,0x7C,0x7F,0x7B,0x7C,0x7F,0x7C,0x7D,0x7E,0x7D,0x7F,0x80,0x81, - 0x84,0x84,0x84,0x83,0x81,0x81,0x82,0x81,0x7F,0x82,0x81,0x83,0x8B,0x84,0x80,0x83, - 0x7D,0x7D,0x7D,0x7C,0x7F,0x7D,0x7B,0x7F,0x7D,0x7A,0x7C,0x7C,0x7E,0x7C,0x8E,0x8A, - 0x7C,0x87,0x68,0x71,0x82,0x6E,0x6A,0x74,0x82,0x8A,0x8A,0x8B,0x8E,0x85,0x8C,0x9D, - 0x9A,0xA1,0xA5,0x91,0x8C,0x76,0x77,0x91,0x76,0x65,0x72,0x71,0x5B,0x5B,0x57,0x52, - 0x6B,0x63,0x62,0x59,0x5D,0x73,0x70,0x6D,0x79,0x79,0x82,0xA5,0x8B,0x8D,0x98,0x9B, - 0xAC,0x81,0xB8,0xBC,0x95,0xB4,0x96,0x9E,0xB1,0xA4,0x95,0x8D,0x95,0x9C,0x7D,0x70, - 0x76,0x5F,0x78,0x78,0x6F,0x8B,0x79,0x6B,0x77,0x77,0x7D,0x6E,0x4C,0x4B,0x56,0x62, - 0x64,0x62,0x5D,0x54,0x5A,0x6F,0x6E,0x6D,0x7E,0x80,0x95,0xA6,0x9C,0x8F,0x9B,0x9D, - 0x92,0x97,0xA4,0xB2,0xAD,0x9A,0xA3,0xA9,0xA2,0xA4,0x96,0x92,0x8E,0x8C,0x82,0x76, - 0x7F,0x76,0x76,0x74,0x72,0x7B,0x73,0x67,0x50,0x43,0x52,0x5E,0x43,0x30,0x41,0x3D, - 0x32,0x38,0x4B,0x5D,0x54,0x59,0x68,0x69,0x75,0x96,0xA7,0xA0,0x92,0x8E,0x9F,0x9B, - 0x92,0x96,0x94,0x9F,0x9E,0xA2,0xB9,0xB2,0xA9,0xB6,0xAD,0xA5,0xA6,0x88,0x8E,0x96, - 0x83,0x94,0x92,0x81,0x7E,0x71,0x6B,0x7F,0x87,0x7F,0x7F,0x6F,0x7E,0x82,0x6E,0x70, - 0x71,0x7F,0x81,0x74,0x6D,0x63,0x6A,0x6C,0x65,0x63,0x5F,0x72,0x80,0x76,0x82,0x81, - 0x7B,0x89,0x78,0x83,0x93,0x91,0x99,0x95,0x9E,0xA3,0xAF,0xBB,0xAD,0xB7,0xC1,0xB6, - 0xBD,0xBA,0xB2,0xB2,0xAE,0xAD,0xA5,0x99,0x89,0x78,0x74,0x6E,0x78,0x69,0x5D,0x75, - 0x75,0x6C,0x5C,0x49,0x44,0x46,0x4B,0x51,0x45,0x39,0x36,0x37,0x31,0x2C,0x39,0x39, - 0x3A,0x3C,0x3A,0x3D,0x46,0x50,0x4E,0x67,0x86,0x90,0x89,0x73,0x78,0x88,0x8A,0x99, - 0x9B,0x9A,0xA6,0x95,0x87,0x8B,0x90,0x96,0xA6,0xBC,0xB8,0xBC,0xC6,0xD0,0xD7,0xD1, - 0xD6,0xD8,0xD6,0xD7,0xCB,0xBC,0xAE,0xA0,0xA5,0xB3,0xB3,0xA4,0x8A,0x77,0x73,0x75, - 0x78,0x6E,0x69,0x64,0x72,0x6D,0x5C,0x57,0x47,0x58,0x54,0x55,0x5E,0x4E,0x55,0x5D, - 0x5E,0x54,0x52,0x5E,0x64,0x6F,0x7E,0x6E,0x6B,0x7B,0x6B,0x72,0x7B,0x78,0x7F,0x83, - 0x8F,0x94,0x97,0x95,0x98,0x93,0x94,0x96,0x91,0x95,0x9B,0x9F,0x9C,0xA4,0x9E,0x98, - 0xA5,0xA4,0x9B,0x8D,0x82,0x80,0x81,0x7D,0x80,0x7E,0x71,0x7B,0x7B,0x79,0x77,0x6F, - 0x66,0x51,0x50,0x56,0x61,0x74,0x6F,0x6F,0x7A,0x81,0x84,0x86,0x7F,0x6E,0x63,0x5B, - 0x66,0x77,0x81,0x74,0x5D,0x60,0x6E,0x80,0x82,0x70,0x71,0x79,0x79,0x79,0x82,0x8D, - 0x81,0x7D,0x78,0x78,0x91,0x90,0x8E,0x82,0x73,0x7F,0x87,0x91,0x99,0x91,0x89,0x7D, - 0x7E,0x93,0xA2,0xB5,0xB3,0xA0,0xA3,0xB1,0xB0,0xAD,0xAD,0x9F,0xB3,0xC5,0xBF,0xC5, - 0xB1,0xA5,0xAA,0xAF,0xB3,0xA5,0x9F,0xA4,0xA2,0x9A,0x8D,0x8E,0x95,0x92,0x92,0x84, - 0x77,0x65,0x55,0x55,0x53,0x5C,0x60,0x61,0x6D,0x75,0x69,0x5D,0x59,0x4D,0x57,0x5D, - 0x59,0x58,0x53,0x4C,0x42,0x41,0x38,0x35,0x46,0x49,0x4F,0x4D,0x41,0x42,0x3B,0x44, - 0x58,0x5F,0x65,0x6D,0x7D,0x83,0x7F,0x7D,0x7B,0x8D,0xA0,0xA6,0xA8,0x9E,0x94,0x92, - 0x8F,0x95,0x89,0x89,0xA1,0x95,0x92,0x89,0x76,0x8A,0x92,0x91,0x9F,0x9B,0x9A,0xAB, - 0xA5,0x93,0x95,0x93,0x9C,0xB9,0xB9,0xA6,0x9F,0x97,0xA2,0xAD,0xAB,0xA8,0x8F,0x91, - 0xA4,0x9B,0x90,0x81,0x7A,0x85,0x91,0x9A,0x99,0x91,0x85,0x86,0x86,0x7F,0x7C,0x81, - 0x8B,0x87,0x7C,0x71,0x66,0x74,0x8F,0x8A,0x80,0x65,0x65,0x7E,0x79,0x6E,0x47,0x30, - 0x41,0x5A,0x68,0x62,0x5C,0x5A,0x5A,0x5D,0x5F,0x59,0x5C,0x68,0x79,0x75,0x67,0x6A, - 0x70,0x72,0x71,0x78,0x79,0x73,0x74,0x7A,0x70,0x5F,0x5A,0x58,0x60,0x6C,0x6E,0x63, - 0x6B,0x77,0x75,0x7B,0x80,0x91,0xA2,0xAB,0xAE,0xA9,0x9D,0x9A,0xA1,0xA6,0xA6,0xA0, - 0x93,0x8A,0x99,0xB2,0xAE,0x9F,0x92,0x84,0x8B,0x93,0x8E,0x86,0x88,0x8D,0x8C,0x7E, - 0x76,0x79,0x86,0x93,0x8A,0x7D,0x80,0x8A,0x8F,0x8F,0x86,0x78,0x7C,0x7D,0x70,0x72, - 0x70,0x6D,0x6E,0x6E,0x6F,0x75,0x71,0x75,0x81,0x79,0x7E,0x77,0x61,0x6F,0x7D,0x86, - 0x8D,0x82,0x82,0x86,0x87,0x8F,0x8B,0x7C,0x7B,0x79,0x72,0x7F,0x85,0x74,0x65,0x5F, - 0x68,0x77,0x77,0x7D,0x7F,0x76,0x6A,0x5B,0x59,0x6A,0x81,0x88,0x7C,0x75,0x74,0x70, - 0x79,0x80,0x7C,0x77,0x72,0x79,0x72,0x61,0x6C,0x6A,0x62,0x6E,0x6B,0x75,0x7C,0x78, - 0x8A,0x8D,0x8D,0x90,0x8A,0x93,0xA3,0xAC,0xA7,0xA0,0xA6,0xA4,0xA1,0xA5,0xA4,0xA5, - 0x9E,0x94,0x87,0x83,0x93,0x91,0x80,0x79,0x74,0x80,0x8B,0x8C,0x94,0x95,0x90,0x89, - 0x7B,0x7A,0x88,0x91,0x8F,0x80,0x7D,0x7E,0x74,0x75,0x7C,0x86,0x85,0x7A,0x72,0x6B, - 0x74,0x7F,0x7A,0x6D,0x65,0x67,0x73,0x77,0x7E,0x80,0x7A,0x7A,0x79,0x7D,0x84,0x86, - 0x83,0x80,0x7C,0x7C,0x78,0x6C,0x70,0x7B,0x80,0x77,0x72,0x6D,0x7A,0x91,0x87,0x73, - 0x61,0x65,0x72,0x72,0x7B,0x7E,0x7F,0x78,0x6F,0x69,0x68,0x70,0x6E,0x6D,0x6A,0x64, - 0x64,0x5B,0x5F,0x71,0x76,0x6F,0x69,0x66,0x6B,0x83,0x86,0x73,0x6F,0x6E,0x7A,0x8F, - 0x8B,0x90,0x97,0x98,0x9E,0x9B,0xA0,0xAA,0xB1,0xB2,0xB3,0xAE,0xA2,0xA2,0xA2,0xA8, - 0xAA,0xA2,0x9A,0x95,0x99,0xAF,0xB4,0x9C,0x94,0x90,0x91,0x99,0x97,0x9B,0xA0,0x9A, - 0x8C,0x7E,0x85,0x94,0x96,0x97,0x94,0x8D,0x88,0x85,0x88,0x8B,0x89,0x82,0x75,0x79, - 0x7B,0x86,0x90,0x80,0x80,0x74,0x74,0x88,0x81,0x83,0x86,0x81,0x75,0x66,0x69,0x6D, - 0x76,0x7A,0x77,0x72,0x69,0x69,0x64,0x6D,0x74,0x68,0x69,0x67,0x5E,0x6A,0x76,0x68, - 0x64,0x5D,0x60,0x6B,0x45,0x49,0x6F,0x77,0x5F,0x45,0x58,0x4E,0x4C,0x61,0x5B,0x52, - 0x52,0x5F,0x53,0x53,0x69,0x6C,0x5F,0x59,0x68,0x62,0x6B,0x72,0x6A,0x74,0x71,0x70, - 0x81,0x81,0x82,0x8F,0x8D,0x8C,0x88,0x90,0xAC,0xB0,0xB0,0xAC,0xAB,0xAB,0xAB,0xB5, - 0xAF,0xB1,0xB1,0xA9,0xAD,0xA1,0xA8,0xBE,0xAC,0x9D,0xA2,0x9E,0x9A,0x98,0x97,0xA1, - 0xA9,0x98,0x8A,0x8B,0x97,0xA1,0x9B,0xA1,0x9F,0xA2,0xA5,0x94,0x9A,0xA9,0xA8,0xA0, - 0x9B,0x9A,0x93,0xA1,0xAF,0xA4,0x99,0x90,0x90,0x8F,0x92,0x96,0x98,0x97,0x89,0x7F, - 0x73,0x7C,0x8A,0x7F,0x7D,0x7F,0x79,0x71,0x73,0x7C,0x7B,0x7A,0x6E,0x64,0x60,0x62, - 0x78,0x73,0x61,0x5D,0x54,0x5E,0x5C,0x50,0x5C,0x60,0x58,0x49,0x35,0x36,0x42,0x49, - 0x4C,0x4C,0x4A,0x36,0x25,0x31,0x3F,0x43,0x42,0x36,0x34,0x38,0x41,0x60,0x63,0x55, - 0x55,0x58,0x68,0x6F,0x72,0x80,0x87,0x85,0x7F,0x79,0x82,0x93,0x97,0x97,0x97,0x93, - 0x8B,0x8C,0x97,0xA1,0xA2,0x97,0x8A,0x8C,0x8D,0x8E,0xA6,0xA0,0x8E,0x8C,0x8B,0x90, - 0x8F,0x90,0x9F,0xAA,0xA1,0x91,0x8A,0x8E,0x9C,0xA6,0xA7,0xAA,0xA2,0x9D,0x9F,0xA0, - 0xAE,0xAD,0xA3,0x9F,0x9C,0xA5,0xA4,0xB4,0xBF,0xA8,0xA4,0xA0,0x9B,0xA5,0xA4,0xAC, - 0xB4,0xA3,0x92,0x87,0x89,0x96,0x98,0x98,0x92,0x90,0x89,0x7E,0x7E,0x86,0x8B,0x86, - 0x7D,0x77,0x77,0x6D,0x74,0x84,0x75,0x66,0x5E,0x57,0x60,0x63,0x61,0x68,0x62,0x54, - 0x49,0x44,0x4F,0x5C,0x5A,0x58,0x59,0x56,0x4F,0x4E,0x5B,0x65,0x64,0x62,0x5D,0x5F, - 0x6A,0x68,0x80,0x8D,0x80,0x7E,0x76,0x7B,0x86,0x83,0x8D,0x98,0x90,0x80,0x74,0x75, - 0x84,0x8B,0x86,0x84,0x82,0x7D,0x79,0x78,0x82,0x8B,0x84,0x80,0x7A,0x79,0x76,0x7F, - 0x97,0x91,0x81,0x79,0x70,0x78,0x80,0x82,0x8D,0x8D,0x80,0x7B,0x79,0x84,0x8E,0x8D, - 0x8A,0x8E,0x91,0x86,0x7E,0x82,0x91,0x94,0x8F,0x8A,0x81,0x86,0x83,0x8F,0xA6,0x99, - 0x8A,0x81,0x80,0x8B,0x8E,0x8E,0x94,0x8E,0x85,0x7A,0x73,0x7F,0x85,0x82,0x84,0x83, - 0x7A,0x6E,0x66,0x6F,0x7B,0x77,0x6E,0x64,0x5F,0x5F,0x5D,0x6F,0x7D,0x6E,0x5E,0x54, - 0x50,0x5A,0x5C,0x60,0x6F,0x6D,0x60,0x5B,0x5D,0x6D,0x7A,0x79,0x7D,0x81,0x80,0x7C, - 0x7A,0x89,0x99,0x9A,0x99,0x95,0x92,0x93,0x8F,0xA3,0xB3,0xA3,0x92,0x89,0x88,0x91, - 0x8F,0x8C,0x95,0x8F,0x88,0x80,0x77,0x84,0x8A,0x88,0x8F,0x8F,0x89,0x7D,0x76,0x84, - 0x91,0x8E,0x88,0x82,0x80,0x85,0x83,0x91,0x9F,0x92,0x88,0x81,0x85,0x8C,0x8B,0x91, - 0x9B,0xA0,0x97,0x8B,0x86,0x8E,0x9A,0x9B,0x98,0x99,0x92,0x89,0x86,0x8B,0x96,0x95, - 0x93,0x8F,0x84,0x84,0x7C,0x87,0xA1,0x95,0x83,0x7A,0x73,0x7A,0x7D,0x7D,0x85,0x84, - 0x78,0x6C,0x63,0x68,0x74,0x75,0x72,0x73,0x71,0x66,0x5B,0x5D,0x6E,0x75,0x70,0x69, - 0x5F,0x5E,0x5E,0x67,0x81,0x82,0x74,0x6A,0x66,0x70,0x74,0x79,0x87,0x8C,0x86,0x7B, - 0x75,0x79,0x83,0x8A,0x8D,0x8E,0x8A,0x82,0x7A,0x78,0x83,0x8C,0x8A,0x84,0x7E,0x7B, - 0x78,0x72,0x87,0x9B,0x8C,0x7D,0x75,0x72,0x7E,0x82,0x83,0x8D,0x8D,0x85,0x7B,0x72, - 0x7C,0x87,0x8A,0x8A,0x89,0x8A,0x81,0x77,0x7A,0x87,0x8D,0x88,0x82,0x7F,0x7E,0x7A, - 0x82,0x98,0x99,0x8C,0x82,0x78,0x7C,0x84,0x87,0x8F,0x95,0x92,0x87,0x78,0x77,0x83, - 0x89,0x8C,0x8E,0x8C,0x87,0x7D,0x78,0x81,0x8A,0x8C,0x88,0x7F,0x7A,0x79,0x73,0x85, - 0x97,0x8C,0x7E,0x70,0x6A,0x73,0x78,0x7A,0x81,0x83,0x7F,0x72,0x63,0x68,0x75,0x7C, - 0x7F,0x7E,0x7B,0x76,0x6E,0x6D,0x78,0x84,0x89,0x84,0x7A,0x7A,0x7D,0x7C,0x8F,0x9D, - 0x94,0x8C,0x7D,0x7A,0x84,0x84,0x8B,0x91,0x8D,0x88,0x7D,0x72,0x78,0x82,0x87,0x88, - 0x83,0x80,0x7B,0x72,0x73,0x7A,0x84,0x87,0x7D,0x74,0x71,0x70,0x72,0x89,0x94,0x86, - 0x7A,0x6D,0x6E,0x76,0x77,0x7E,0x83,0x85,0x82,0x74,0x6F,0x76,0x80,0x86,0x86,0x85, - 0x84,0x80,0x77,0x75,0x7E,0x89,0x8E,0x86,0x7C,0x7B,0x79,0x78,0x8B,0x96,0x8B,0x80, - 0x71,0x6F,0x79,0x7B,0x81,0x85,0x85,0x87,0x7C,0x71,0x74,0x7A,0x84,0x88,0x85,0x86, - 0x81,0x76,0x71,0x77,0x82,0x88,0x83,0x7D,0x7A,0x76,0x72,0x82,0x90,0x8C,0x81,0x70, - 0x6C,0x75,0x78,0x7D,0x83,0x86,0x87,0x7C,0x72,0x75,0x7D,0x84,0x8A,0x8B,0x8C,0x8C, - 0x86,0x81,0x80,0x88,0x95,0x93,0x8B,0x85,0x7D,0x77,0x81,0x97,0x96,0x8C,0x7D,0x76, - 0x7B,0x79,0x7A,0x7C,0x82,0x86,0x81,0x74,0x6D,0x6E,0x75,0x7F,0x82,0x82,0x81,0x80, - 0x7A,0x73,0x76,0x81,0x86,0x85,0x81,0x7A,0x73,0x75,0x8A,0x96,0x90,0x86,0x76,0x77, - 0x7F,0x7C,0x80,0x82,0x86,0x8C,0x82,0x78,0x75,0x77,0x82,0x8A,0x88,0x87,0x84,0x83, - 0x7F,0x77,0x7C,0x85,0x89,0x8A,0x82,0x79,0x71,0x77,0x8C,0x93,0x8C,0x7F,0x73,0x75, - 0x7A,0x7D,0x7F,0x7F,0x85,0x8E,0x87,0x79,0x74,0x76,0x82,0x88,0x86,0x86,0x84,0x82, - 0x7C,0x79,0x7C,0x85,0x8A,0x84,0x7F,0x78,0x6F,0x7A,0x92,0x94,0x8F,0x7F,0x70,0x7B, - 0x7D,0x83,0x82,0x80,0x8B,0x88,0x86,0x80,0x79,0x76,0x7C,0x87,0x89,0x8B,0x80,0x75, - 0x76,0x80,0x85,0x7A,0x7C,0x89,0x83,0x72,0x65,0x6E,0x8E,0x9A,0x8D,0x79,0x6B,0x76, - 0x77,0x74,0x8C,0x84,0x6D,0x7C,0x8E,0x81,0x79,0x7D,0x6C,0x78,0x85,0x80,0x82,0x7D, - 0x83,0x8A,0x83,0x75,0x7A,0x8D,0x89,0x7A,0x7B,0x79,0x85,0x8F,0x95,0x97,0x77,0x68, - 0x76,0x8A,0x95,0x89,0x71,0x73,0x89,0x83,0x7D,0x79,0x71,0x81,0x83,0x79,0x89,0x8F, - 0x79,0x81,0x8B,0x75,0x72,0x73,0x85,0x90,0x7E,0x70,0x75,0x84,0x84,0xA0,0x9D,0x79, - 0x72,0x65,0x66,0x7F,0x89,0x86,0x90,0x7F,0x7A,0x91,0x80,0x6E,0x77,0x80,0x80,0x83, - 0x80,0x78,0x85,0x8D,0x8B,0x94,0x80,0x6D,0x7F,0x85,0x74,0x73,0x83,0x83,0x8E,0x8E, - 0x7C,0x7B,0x72,0x73,0x8E,0x95,0x7F,0x72,0x73,0x83,0x8B,0x8B,0x85,0x71,0x6C,0x72, - 0x79,0x87,0x93,0x91,0x96,0x90,0x79,0x8C,0x89,0x70,0x7C,0x81,0x69,0x64,0x77,0x7A, - 0x8E,0x95,0x86,0x8A,0x7F,0x69,0x75,0x84,0x7A,0x80,0x86,0x79,0x77,0x79,0x76,0x7A, - 0x87,0x86,0x94,0x9C,0x81,0x7A,0x7F,0x87,0x8F,0x91,0x8F,0x7E,0x6A,0x5E,0x5C,0x6D, - 0x86,0x8D,0x96,0x99,0x7D,0x7A,0x8B,0x89,0x87,0x90,0x93,0x84,0x81,0x79,0x80,0x90, - 0x85,0x88,0x89,0x72,0x5A,0x68,0x74,0x6F,0x74,0x6E,0x6C,0x6E,0x76,0x88,0x9B,0x98, - 0x99,0xA0,0x91,0x8C,0x88,0x8F,0x8D,0x85,0x84,0x74,0x7C,0x76,0x68,0x76,0x76,0x7D, - 0x89,0x84,0x7A,0x6D,0x96,0x93,0x82,0x9E,0xA2,0xA2,0x7D,0x6F,0x7D,0x85,0x7B,0x5A, - 0x74,0x77,0x53,0x58,0x65,0x64,0x6B,0x65,0x6A,0x99,0xA2,0x86,0x8B,0x95,0x8B,0x98, - 0x9E,0x9B,0x98,0x96,0xA1,0x99,0x88,0x79,0x6D,0x70,0x61,0x67,0x7C,0x85,0x86,0x76, - 0x64,0x54,0x6E,0x8E,0x8F,0x8F,0x8F,0x86,0x7B,0x7B,0x75,0x7A,0x8D,0x8E,0x93,0xA7, - 0x93,0x7C,0x8C,0x91,0x98,0x96,0x8E,0x83,0x5F,0x5F,0x61,0x5C,0x66,0x6C,0x72,0x67, - 0x57,0x4F,0x55,0x6B,0x80,0x81,0x7C,0x78,0x7E,0x83,0x88,0xA3,0xAA,0xAF,0xC3,0xAE, - 0xA4,0xB6,0x93,0x82,0x8D,0x81,0x7D,0x7C,0x74,0x73,0x85,0x87,0x84,0x81,0x73,0x61, - 0x5D,0x6A,0x77,0x7F,0x7D,0x75,0x73,0x7B,0x6C,0x72,0x75,0x66,0x7C,0x85,0x77,0x7A, - 0x80,0x84,0x82,0x8F,0xA4,0x9C,0x8B,0x84,0x7C,0x8F,0x9F,0x95,0x8F,0x81,0x69,0x6E, - 0x7F,0x68,0x6E,0x8C,0x73,0x6B,0x79,0x70,0x82,0x78,0x72,0x86,0x76,0x66,0x6A,0x6C, - 0x6B,0x8F,0x9C,0x98,0x8F,0x86,0x8F,0x83,0x84,0x8E,0x8D,0x96,0x8A,0x78,0x8C,0x94, - 0x8D,0x8B,0x92,0x87,0x6A,0x63,0x66,0x6E,0x75,0x73,0x79,0x7C,0x63,0x63,0x77,0x6F, - 0x63,0x80,0x8C,0x7F,0x8A,0x84,0x88,0x98,0x98,0xA3,0xBA,0xB2,0xA5,0xA7,0xA2,0x97, - 0x7B,0x7C,0x77,0x6A,0x68,0x56,0x53,0x63,0x71,0x7B,0x82,0x81,0x76,0x67,0x64,0x71, - 0x83,0x7F,0x73,0x70,0x77,0x84,0x84,0x8E,0x99,0xA5,0xA1,0x86,0x89,0x8C,0x80,0x82, - 0x8C,0x7E,0x72,0x6E,0x66,0x6D,0x79,0x82,0x8E,0x95,0x73,0x71,0x87,0x73,0x7D,0x83, - 0x83,0x79,0x66,0x79,0x8E,0x89,0x7A,0x8F,0x95,0x8E,0x85,0x6E,0x80,0x85,0x7A,0x8D, - 0x87,0x77,0x79,0x79,0x8F,0x93,0x87,0x90,0x8B,0x75,0x73,0x82,0x7E,0x80,0x88,0x76, - 0x79,0x7C,0x5F,0x6C,0x77,0x63,0x7D,0x8C,0x74,0x76,0x7A,0x76,0x7E,0x86,0x94,0x8E, - 0x87,0x95,0x93,0x96,0x8B,0x90,0xA5,0xAA,0x9C,0x8C,0x8A,0x7B,0x80,0x7D,0x82,0x78, - 0x62,0x78,0x74,0x6C,0x72,0x78,0x7F,0x7B,0x75,0x80,0x77,0x58,0x6D,0x8F,0x80,0x7A, - 0x7D,0x71,0x7B,0x80,0x7E,0x9A,0xA3,0x86,0x89,0x94,0x82,0x86,0x8E,0x93,0x87,0x7C, - 0x7D,0x70,0x6F,0x66,0x6B,0x7C,0x70,0x63,0x74,0x6E,0x6F,0x7A,0x7B,0x88,0x7A,0x7E, - 0x8C,0x93,0x94,0x8C,0x99,0x9A,0x91,0x82,0x7F,0x6E,0x70,0x86,0x77,0x6C,0x82,0x85, - 0x7D,0x8B,0x84,0x8E,0x93,0x7B,0x68,0x78,0x85,0x79,0x8F,0x99,0x8A,0x88,0x80,0x7D, - 0x77,0x6B,0x68,0x6F,0x88,0x87,0x7A,0x86,0x83,0x87,0x92,0x8E,0x84,0x7B,0x7A,0x76, - 0x7C,0x88,0x92,0xA0,0x95,0x90,0xA3,0x90,0x78,0x87,0x8D,0x80,0x7A,0x76,0x6E,0x65, - 0x5E,0x68,0x87,0x78,0x6C,0x94,0x84,0x70,0x7F,0x86,0x89,0x8A,0x86,0x7D,0x78,0x74, - 0x74,0x7C,0x8F,0x80,0x7B,0x87,0x77,0x6D,0x78,0x8D,0x79,0x6B,0x80,0x7C,0x6B,0x70, - 0x7B,0x7E,0x89,0x89,0x97,0x90,0x71,0x74,0x7E,0x7F,0x76,0x79,0x81,0x7B,0x83,0x87, - 0x9D,0xA8,0x87,0x8F,0x9A,0x77,0x77,0x85,0x8A,0x7F,0x6E,0x73,0x7A,0x77,0x71,0x79, - 0x8B,0x82,0x7C,0x89,0x83,0x6E,0x69,0x83,0x84,0x73,0x84,0x90,0x83,0x81,0x7C,0x89, - 0x9A,0x88,0x8F,0x93,0x86,0x71,0x79,0x9A,0x83,0x7A,0x7C,0x6F,0x6D,0x66,0x71,0x94, - 0x8E,0x7B,0x9C,0x96,0x82,0x94,0x90,0x8E,0x8C,0x77,0x70,0x78,0x70,0x6B,0x6F,0x7C, - 0x7A,0x7C,0x81,0x76,0x72,0x8B,0xA4,0x90,0x7F,0x8B,0x8E,0x79,0x74,0x72,0x80,0x8F, - 0x85,0x89,0x7C,0x64,0x5A,0x68,0x70,0x69,0x74,0x6A,0x73,0x85,0x78,0x90,0x92,0x6E, - 0x81,0x99,0x7C,0x68,0x7B,0x97,0x8A,0x7B,0x81,0x80,0x7D,0x75,0x79,0x88,0x9B,0x99, - 0x97,0x99,0x82,0x84,0x93,0x8C,0x7C,0x7A,0x7E,0x7F,0x7C,0x7E,0x84,0x82,0x84,0x89, - 0x79,0x68,0x59,0x50,0x6E,0x76,0x7C,0x81,0x7C,0x8F,0x7F,0x7E,0x9B,0x8D,0x86,0x97, - 0x94,0x8F,0x8A,0x95,0x98,0x8D,0x89,0x7A,0x79,0x70,0x65,0x6A,0x66,0x74,0x7F,0x76, - 0x81,0x72,0x7C,0xA3,0x9C,0x95,0x95,0x9E,0x9E,0x82,0x79,0x80,0x82,0x80,0x81,0x7C, - 0x6C,0x64,0x5B,0x6F,0x89,0x7E,0x73,0x7D,0x7A,0x73,0x7C,0x77,0x76,0x85,0x8A,0x89, - 0x79,0x6D,0x87,0x86,0x89,0x97,0x8A,0x87,0x72,0x6C,0x73,0x7B,0x8B,0x81,0x7F,0x89, - 0x76,0x76,0x90,0x8B,0x78,0x7A,0x8F,0x87,0x76,0x7C,0x78,0x82,0x9A,0x8D,0x86,0x78, - 0x70,0x7F,0x81,0x82,0x75,0x74,0x7D,0x74,0x73,0x7B,0x7F,0x8D,0x98,0xA1,0xA6,0x85, - 0x7A,0x86,0x7F,0x80,0x7C,0x7E,0x75,0x76,0x79,0x76,0x80,0x73,0x6F,0x8C,0x94,0x6E, - 0x97,0xA6,0x6A,0x7F,0x84,0x87,0x88,0x75,0x86,0x6F,0x7D,0x91,0x79,0x7E,0x7A,0x6B, - 0x74,0x8C,0x91,0x8E,0x8B,0x8D,0x94,0x8C,0x73,0x74,0x8C,0x87,0x83,0x78,0x70,0x70, - 0x75,0x85,0x86,0x8A,0x83,0x78,0x7A,0x66,0x6B,0x95,0x8B,0x80,0x97,0x82,0x77,0x8A, - 0x7C,0x7D,0x7C,0x72,0x8E,0x8D,0x75,0x77,0x72,0x84,0x84,0x71,0x71,0x58,0x5E,0x72, - 0x80,0x83,0x67,0x6B,0x7B,0x74,0x6B,0x7E,0x94,0x96,0xA3,0xB8,0xA6,0x81,0x87,0x9A, - 0x98,0x87,0x82,0x80,0x7D,0x7E,0x5F,0x6C,0x95,0x80,0x7C,0x8C,0x6D,0x74,0x88,0x72, - 0x77,0x73,0x76,0x83,0x7D,0x79,0x78,0x93,0x8B,0x83,0x90,0x7D,0x6B,0x63,0x70,0x8E, - 0x93,0x80,0x8B,0x95,0x86,0x6C,0x76,0x8F,0x7F,0x82,0x84,0x76,0x76,0x79,0x8A,0xA0, - 0xA8,0x98,0x8D,0x8A,0x78,0x76,0x8F,0x96,0x82,0x88,0x86,0x70,0x71,0x7B,0x77,0x69, - 0x64,0x7E,0x8A,0x76,0x67,0x6D,0x88,0x80,0x7F,0x87,0x72,0x71,0x62,0x73,0x8D,0x78, - 0x7F,0x88,0x81,0x70,0x73,0x95,0x90,0x87,0x9C,0x9E,0x7C,0x6E,0x77,0x83,0x87,0x7F, - 0x7A,0x78,0x6A,0x55,0x61,0x83,0x80,0x7D,0xA1,0x9A,0x7F,0x92,0x8F,0x8D,0x7C,0x7C, - 0x95,0x85,0x7B,0x6F,0x80,0x85,0x82,0x9B,0x90,0x77,0x68,0x6E,0x87,0x7F,0x66,0x78, - 0x93,0x81,0x67,0x7D,0x9A,0x84,0x83,0x95,0x8E,0x7E,0x75,0x83,0x95,0x8C,0x83,0x88, - 0x7E,0x70,0x63,0x7D,0x84,0x6D,0x87,0x8A,0x72,0x71,0x79,0x7F,0x72,0x6B,0x89,0xA8, - 0xA0,0x7E,0x85,0xA4,0x8D,0x8B,0x9E,0x91,0x78,0x5D,0x7B,0x96,0x77,0x6F,0x82,0x7D, - 0x64,0x68,0x7C,0x7D,0x73,0x86,0x9A,0x80,0x62,0x6A,0x8A,0x8B,0x7C,0x82,0x8A,0x79, - 0x5A,0x66,0x8E,0x88,0x6D,0x84,0x94,0x78,0x7A,0x84,0x7B,0x71,0x71,0x8C,0x91,0x79, - 0x65,0x79,0x82,0x77,0x9A,0xA3,0x90,0x7D,0x72,0x92,0x96,0x76,0x7F,0x93,0x84,0x6C, - 0x6D,0x87,0x7E,0x6F,0x81,0x8A,0x88,0x74,0x6E,0x89,0x88,0x76,0x7A,0x78,0x65,0x61, - 0x77,0x8A,0x8C,0x90,0x9C,0x9A,0x7E,0x7F,0x8D,0x74,0x6C,0x75,0x90,0x9B,0x78,0x71, - 0x8A,0x85,0x7C,0x93,0x96,0x80,0x67,0x67,0x83,0x8B,0x74,0x80,0x97,0x7E,0x7C,0x90, - 0x90,0x87,0x90,0x9C,0x92,0x8D,0x72,0x74,0x82,0x70,0x7B,0x88,0x7D,0x61,0x61,0x76, - 0x78,0x6C,0x75,0x91,0x82,0x72,0x86,0x88,0x71,0x65,0x78,0x8A,0x84,0x70,0x7E,0x8A, - 0x78,0x91,0x9D,0x98,0x88,0x64,0x6D,0x85,0x7E,0x70,0x81,0x90,0x74,0x6B,0x81,0x75, - 0x67,0x74,0x84,0x93,0x8B,0x78,0x89,0x98,0x8F,0x9D,0x98,0x82,0x73,0x68,0x75,0x75, - 0x74,0x8C,0x97,0x8C,0x84,0x92,0x83,0x6E,0x72,0x72,0x81,0x76,0x65,0x7C,0x83,0x6F, - 0x80,0xA2,0x9B,0x84,0x77,0x7E,0x8A,0x8C,0x87,0x8A,0x89,0x79,0x7E,0x86,0x80,0x7F, - 0x8F,0x88,0x89,0x8A,0x71,0x74,0x70,0x72,0x87,0x88,0x7C,0x71,0x7E,0x89,0x7A,0x7E, - 0x99,0x9A,0x96,0x97,0x9A,0x8B,0x7A,0x7E,0x7C,0x70,0x68,0x6D,0x71,0x6F,0x6F,0x82, - 0x93,0x92,0x7E,0x6D,0x6F,0x6A,0x74,0x88,0x8D,0x83,0x73,0x7F,0x91,0x7C,0x7C,0x8E, - 0x90,0x8E,0x82,0x84,0x7A,0x75,0x81,0x88,0x82,0x71,0x70,0x70,0x69,0x72,0x74,0x75, - 0x8C,0x87,0x86,0x9B,0x89,0x7C,0x91,0x92,0x7D,0x6B,0x81,0x8F,0x6F,0x6C,0x7E,0x8F, - 0x96,0x8D,0x95,0x8E,0x74,0x76,0x87,0x7B,0x73,0x6B,0x6E,0x81,0x74,0x7D,0x91,0x85, - 0x99,0xA1,0x90,0x87,0x6F,0x75,0x8B,0x84,0x79,0x80,0x8A,0x7A,0x6C,0x7D,0x84,0x7B, - 0x85,0x8E,0x93,0x85,0x6C,0x78,0x74,0x61,0x71,0x7E,0x82,0x84,0x82,0x85,0x87,0x92, - 0x99,0x9E,0x93,0x82,0x88,0x8B,0x88,0x7A,0x75,0x88,0x81,0x6E,0x75,0x7D,0x71,0x70, - 0x84,0x7F,0x76,0x73,0x75,0x7F,0x76,0x75,0x7D,0x7C,0x7A,0x83,0x82,0x82,0x8A,0x8A, - 0x96,0x92,0x82,0x80,0x8B,0x87,0x6B,0x78,0x88,0x78,0x69,0x68,0x71,0x68,0x6C,0x84, - 0x92,0x8D,0x81,0x88,0x86,0x7E,0x7F,0x7E,0x82,0x84,0x7F,0x82,0x85,0x84,0x87,0x94, - 0x9A,0x8B,0x89,0x8E,0x8B,0x7C,0x79,0x88,0x7B,0x68,0x6C,0x77,0x6D,0x71,0x83,0x8D, - 0x94,0x8C,0x84,0x82,0x80,0x75,0x75,0x81,0x84,0x7D,0x75,0x7D,0x83,0x83,0x8B,0x94, - 0x8D,0x85,0x87,0x85,0x75,0x74,0x7C,0x79,0x75,0x77,0x80,0x79,0x7F,0x84,0x8D,0x97, - 0x8D,0x88,0x87,0x86,0x7B,0x7F,0x83,0x86,0x8D,0x7B,0x7B,0x83,0x7C,0x84,0x7F,0x78, - 0x83,0x76,0x71,0x79,0x70,0x7C,0x80,0x71,0x78,0x7F,0x77,0x75,0x82,0x8A,0x89,0x8A, - 0x82,0x84,0x88,0x7F,0x7D,0x7F,0x86,0x8C,0x7C,0x7B,0x7E,0x72,0x78,0x78,0x79,0x79, - 0x7A,0x85,0x76,0x79,0x84,0x7B,0x78,0x79,0x7D,0x7B,0x7A,0x80,0x91,0x8F,0x90,0x8F, - 0x85,0x8C,0x88,0x86,0x7C,0x81,0x81,0x73,0x79,0x71,0x72,0x7E,0x81,0x7E,0x80,0x8C, - 0x82,0x7B,0x80,0x88,0x84,0x7B,0x85,0x8A,0x88,0x79,0x7B,0x8F,0x88,0x81,0x81,0x89, - 0x87,0x7A,0x78,0x79,0x7D,0x7B,0x7A,0x84,0x84,0x7B,0x84,0x85,0x84,0x87,0x82,0x7E, - 0x82,0x77,0x7E,0x86,0x75,0x7D,0x84,0x80,0x79,0x80,0x8A,0x85,0x86,0x7B,0x7D,0x78, - 0x76,0x75,0x71,0x7F,0x7B,0x77,0x7E,0x81,0x7E,0x7B,0x81,0x80,0x7A,0x82,0x82,0x76, - 0x78,0x7E,0x78,0x79,0x7A,0x81,0x82,0x75,0x82,0x87,0x80,0x84,0x82,0x7B,0x7E,0x82, - 0x76,0x7A,0x8A,0x85,0x80,0x84,0x85,0x7F,0x7E,0x7F,0x83,0x81,0x82,0x81,0x7E,0x8B, - 0x89,0x83,0x86,0x7F,0x84,0x83,0x72,0x82,0x7F,0x72,0x86,0x7C,0x7E,0x82,0x83,0x9D, - 0x83,0x8A,0x81,0x65,0x86,0x7D,0x69,0x71,0x7E,0x84,0x8C,0x8E,0x91,0x8E,0x90,0x9B, - 0x9E,0x9E,0x8F,0x8D,0x87,0x7E,0x89,0x86,0x7E,0x78,0x73,0x6B,0x67,0x65,0x58,0x56, - 0x62,0x61,0x62,0x67,0x69,0x7B,0x7C,0x77,0x8A,0x7B,0x7B,0x88,0x70,0x78,0x92,0x96, - 0x7C,0x85,0xA3,0x99,0x9D,0xAC,0xA0,0xA5,0xAA,0x9B,0x9A,0x95,0x8C,0x8A,0x8B,0x89, - 0x87,0x81,0x7E,0x7F,0x7A,0x7C,0x7B,0x72,0x68,0x67,0x69,0x60,0x52,0x4F,0x49,0x42, - 0x47,0x52,0x59,0x5E,0x5F,0x6A,0x82,0x90,0x8F,0x8B,0x8B,0x88,0x87,0x94,0x9E,0xA1, - 0xA4,0xAD,0xBB,0xC3,0xC6,0xCD,0xD1,0xCC,0xC6,0xB9,0xAF,0xAD,0xA9,0xA8,0xA6,0x9A, - 0x81,0x75,0x76,0x76,0x74,0x6D,0x60,0x55,0x54,0x4D,0x3E,0x35,0x2E,0x30,0x34,0x36, - 0x3C,0x41,0x42,0x49,0x53,0x59,0x60,0x68,0x70,0x71,0x78,0x84,0x89,0x8A,0x8D,0x8D, - 0x8E,0x92,0x96,0x97,0x93,0x93,0x95,0x9B,0xA3,0xA1,0x9B,0x95,0x90,0x8D,0x85,0x7E, - 0x7C,0x78,0x74,0x76,0x75,0x75,0x75,0x78,0x83,0x90,0x91,0x92,0x9F,0xA7,0xA3,0x9A, - 0x92,0x8B,0x86,0x83,0x7C,0x79,0x78,0x74,0x75,0x77,0x72,0x72,0x78,0x7C,0x7C,0x79, - 0x7E,0x82,0x80,0x7A,0x77,0x77,0x75,0x88,0x9B,0x91,0x92,0x9D,0x9A,0x9A,0x9A,0x92, - 0x91,0x9B,0x9A,0x97,0x9F,0xA2,0xA2,0xA0,0x91,0x89,0x8A,0x81,0x79,0x7A,0x7B,0x7A, - 0x7A,0x79,0x74,0x6F,0x7A,0x89,0x82,0x78,0x79,0x7D,0x7C,0x7B,0x77,0x78,0x80,0x7E, - 0x78,0x7C,0x82,0x84,0x84,0x7E,0x7E,0x88,0x88,0x84,0x88,0x90,0x8F,0x82,0x7F,0x7F, - 0x87,0x95,0x93,0x88,0x88,0x89,0x82,0x7D,0x75,0x71,0x7A,0x7A,0x72,0x73,0x79,0x7A, - 0x74,0x6D,0x6F,0x72,0x70,0x6C,0x6E,0x75,0x73,0x67,0x5B,0x59,0x5B,0x66,0x6E,0x65, - 0x64,0x69,0x5F,0x57,0x50,0x48,0x52,0x57,0x55,0x5B,0x5F,0x5E,0x57,0x51,0x4D,0x52, - 0x59,0x5A,0x63,0x6C,0x6B,0x66,0x6A,0x6E,0x72,0x81,0x92,0x9A,0x9F,0xA6,0xA7,0xA8, - 0xB2,0xBD,0xCC,0xD8,0xD9,0xDB,0xDD,0xDA,0xD8,0xD0,0xC8,0xCB,0xCC,0xC6,0xC6,0xC8, - 0xC1,0xB4,0xA9,0xA8,0x9C,0x95,0xA3,0x9F,0x8F,0x85,0x78,0x6E,0x69,0x61,0x62,0x67, - 0x64,0x61,0x61,0x5E,0x59,0x56,0x55,0x58,0x5E,0x5C,0x5F,0x66,0x61,0x56,0x57,0x5F, - 0x60,0x60,0x6C,0x74,0x6C,0x69,0x6B,0x67,0x65,0x66,0x6D,0x7C,0x83,0x81,0x86,0x87, - 0x82,0x82,0x89,0x91,0x98,0x9E,0xA7,0xAC,0xA6,0xA1,0xA4,0xAB,0xA9,0xA1,0xAF,0xB7, - 0xA4,0x9B,0x9B,0x94,0x90,0x8D,0x90,0x98,0x95,0x87,0x83,0x81,0x73,0x6D,0x74,0x78, - 0x75,0x71,0x71,0x6E,0x67,0x62,0x65,0x66,0x66,0x63,0x65,0x74,0x6D,0x5C,0x63,0x69, - 0x5E,0x5B,0x5F,0x65,0x69,0x5D,0x55,0x5C,0x56,0x4B,0x4E,0x55,0x58,0x57,0x54,0x59, - 0x56,0x4C,0x4B,0x52,0x55,0x4E,0x58,0x6D,0x65,0x5A,0x62,0x64,0x61,0x67,0x75,0x82, - 0x86,0x80,0x86,0x95,0x92,0x93,0xA5,0xB3,0xB7,0xB7,0xBB,0xBF,0xBD,0xB5,0xBC,0xC2, - 0xBC,0xBC,0xB3,0xC1,0xCC,0xB1,0xA9,0xB3,0xA4,0x98,0x9F,0xA2,0xA5,0x9F,0x92,0x9A, - 0x9D,0x8F,0x93,0x9D,0x9E,0xA0,0xA2,0x9F,0x9A,0x91,0x90,0x92,0x92,0x8C,0x89,0x9C, - 0x96,0x7D,0x84,0x87,0x79,0x79,0x81,0x86,0x86,0x79,0x75,0x7D,0x74,0x6C,0x76,0x79, - 0x76,0x7A,0x79,0x79,0x75,0x6C,0x6E,0x6F,0x69,0x72,0x6D,0x70,0x83,0x6D,0x63,0x6F, - 0x62,0x58,0x64,0x69,0x6E,0x6D,0x62,0x67,0x6A,0x5E,0x67,0x74,0x71,0x76,0x76,0x73, - 0x74,0x6E,0x6F,0x75,0x75,0x70,0x6C,0x81,0x84,0x6B,0x70,0x79,0x6C,0x65,0x6C,0x76, - 0x7B,0x71,0x70,0x7C,0x73,0x67,0x72,0x78,0x79,0x7B,0x7C,0x7E,0x7A,0x73,0x7A,0x7F, - 0x7E,0x84,0x7E,0x8B,0x9F,0x83,0x78,0x8C,0x7F,0x6F,0x7B,0x84,0x89,0x84,0x7B,0x85, - 0x85,0x77,0x82,0x8E,0x8C,0x91,0x98,0x9A,0x9B,0x9A,0x9F,0xA3,0xA0,0xA0,0x9B,0xAE, - 0xBA,0x9F,0x9E,0xA7,0x91,0x83,0x8A,0x8F,0x8C,0x7F,0x79,0x81,0x71,0x5E,0x68,0x6C, - 0x63,0x64,0x67,0x67,0x5F,0x56,0x5E,0x63,0x61,0x66,0x5F,0x6E,0x84,0x6E,0x69,0x7D, - 0x72,0x69,0x75,0x7E,0x83,0x82,0x7D,0x88,0x87,0x7A,0x81,0x89,0x86,0x88,0x8F,0x91, - 0x91,0x8E,0x91,0x93,0x91,0x94,0x91,0x9E,0xB4,0xA1,0x9C,0xAE,0xA0,0x94,0x9F,0xA5, - 0xA7,0xA7,0xA1,0xA4,0x9F,0x8E,0x94,0x9A,0x93,0x93,0x94,0x92,0x90,0x87,0x86,0x8B, - 0x84,0x87,0x80,0x80,0x96,0x86,0x72,0x81,0x78,0x61,0x67,0x6C,0x6C,0x6B,0x62,0x68, - 0x69,0x55,0x55,0x5F,0x59,0x59,0x5E,0x5F,0x5F,0x57,0x54,0x5A,0x56,0x56,0x53,0x57, - 0x70,0x63,0x4F,0x61,0x5F,0x4C,0x52,0x5C,0x5F,0x5D,0x55,0x5B,0x60,0x50,0x53,0x5F, - 0x5D,0x5F,0x63,0x67,0x6B,0x68,0x6A,0x70,0x6F,0x75,0x79,0x7C,0x9A,0x9F,0x8E,0xA0, - 0xA7,0x96,0x99,0xA5,0xAB,0xB0,0xAA,0xAA,0xB1,0xA2,0x9B,0xA4,0xA0,0x9C,0x9E,0x9F, - 0x9B,0x92,0x8D,0x91,0x8D,0x8B,0x8D,0x84,0x97,0xA0,0x87,0x8F,0x9D,0x8D,0x88,0x94, - 0x9A,0x9D,0x99,0x98,0xA3,0x9A,0x91,0x9B,0x9C,0x99,0x9D,0xA1,0xA5,0xA0,0x9D,0x9F, - 0x9C,0x9B,0xA0,0x97,0xA3,0xB9,0xA2,0x9A,0xAC,0x9D,0x8F,0x97,0x9B,0xA0,0x9D,0x94, - 0x9B,0x97,0x88,0x8F,0x94,0x8E,0x8C,0x8C,0x8A,0x85,0x7E,0x7F,0x81,0x7B,0x7E,0x77, - 0x6F,0x87,0x80,0x68,0x79,0x75,0x5D,0x5E,0x63,0x63,0x61,0x59,0x5D,0x5E,0x4C,0x48, - 0x4D,0x48,0x45,0x48,0x48,0x46,0x44,0x41,0x41,0x40,0x43,0x43,0x3B,0x53,0x5B,0x3F, - 0x48,0x55,0x43,0x40,0x4C,0x52,0x54,0x4F,0x51,0x5C,0x57,0x52,0x5F,0x65,0x64,0x67, - 0x6B,0x70,0x6D,0x6E,0x73,0x75,0x76,0x7B,0x76,0x83,0xA0,0x90,0x89,0xA1,0x9A,0x90, - 0x9B,0xA6,0xB0,0xAF,0xAC,0xB9,0xBC,0xB0,0xB6,0xC1,0xBF,0xBF,0xC1,0xC0,0xBD,0xB7, - 0xB5,0xB8,0xB2,0xB2,0xA8,0xA5,0xBF,0xB1,0x98,0xA8,0xA5,0x90,0x92,0x9A,0x9B,0x97, - 0x91,0x96,0x99,0x8B,0x89,0x94,0x92,0x8E,0x92,0x97,0x98,0x94,0x93,0x95,0x92,0x93, - 0x91,0x8B,0xA3,0xAA,0x8F,0x96,0xA0,0x8C,0x86,0x8E,0x95,0x96,0x8C,0x8A,0x91,0x86, - 0x7D,0x85,0x85,0x80,0x7F,0x80,0x80,0x7D,0x78,0x7A,0x7C,0x7A,0x76,0x6D,0x7E,0x8B, - 0x72,0x70,0x7D,0x6B,0x61,0x68,0x6C,0x70,0x6A,0x66,0x6E,0x69,0x5A,0x5B,0x5F,0x5C, - 0x59,0x56,0x57,0x54,0x4B,0x47,0x48,0x47,0x47,0x3F,0x4A,0x62,0x50,0x41,0x53,0x4E, - 0x41,0x45,0x4E,0x58,0x54,0x4B,0x55,0x58,0x50,0x53,0x5C,0x5F,0x5D,0x5D,0x66,0x6A, - 0x66,0x65,0x6A,0x6E,0x70,0x67,0x73,0x94,0x86,0x75,0x89,0x8A,0x7E,0x81,0x8A,0x97, - 0x99,0x91,0x9A,0xA3,0x9C,0x9C,0xA4,0xAB,0xAF,0xB1,0xB8,0xBC,0xBA,0xB6,0xBA,0xBC, - 0xBD,0xB6,0xB4,0xCF,0xCB,0xAF,0xB5,0xB9,0xAA,0xA4,0xA3,0xA9,0xA8,0x98,0x96,0x9A, - 0x8E,0x84,0x84,0x88,0x89,0x83,0x83,0x89,0x86,0x80,0x80,0x81,0x84,0x7C,0x76,0x94, - 0x96,0x7A,0x81,0x88,0x7E,0x7A,0x7B,0x87,0x8E,0x83,0x80,0x8A,0x86,0x80,0x80,0x85, - 0x8C,0x87,0x84,0x8A,0x8B,0x84,0x81,0x87,0x8B,0x82,0x7E,0x9A,0x9E,0x83,0x84,0x88, - 0x7F,0x7B,0x79,0x84,0x8D,0x80,0x79,0x82,0x81,0x79,0x75,0x7A,0x7D,0x74,0x70,0x74, - 0x74,0x6C,0x67,0x67,0x6B,0x5F,0x5C,0x79,0x74,0x5B,0x5F,0x5F,0x58,0x54,0x51,0x5E, - 0x65,0x55,0x51,0x5B,0x59,0x50,0x50,0x58,0x5D,0x59,0x56,0x5C,0x5E,0x58,0x52,0x56, - 0x5D,0x53,0x5A,0x78,0x6E,0x5F,0x67,0x68,0x67,0x65,0x67,0x74,0x78,0x6D,0x6D,0x76, - 0x75,0x72,0x73,0x7C,0x84,0x83,0x85,0x8C,0x8E,0x8C,0x8A,0x93,0x98,0x92,0xA7,0xBC, - 0xAA,0xA4,0xAA,0xA5,0xA3,0xA1,0xA2,0xAF,0xB0,0xA2,0x9F,0xA2,0x9B,0x91,0x8D,0x91, - 0x92,0x8F,0x8A,0x87,0x86,0x81,0x7A,0x7F,0x7A,0x74,0x8E,0x90,0x79,0x7C,0x7B,0x75, - 0x76,0x73,0x7B,0x87,0x83,0x7E,0x82,0x87,0x84,0x7E,0x81,0x8A,0x8C,0x8B,0x8A,0x8D, - 0x8E,0x8C,0x89,0x8B,0x87,0x94,0xAB,0x9D,0x90,0x96,0x90,0x8D,0x8C,0x8B,0x96,0x9A, - 0x93,0x8E,0x8F,0x92,0x8F,0x8B,0x8F,0x95,0x96,0x92,0x8B,0x8C,0x8B,0x83,0x82,0x7E, - 0x81,0x9B,0x9A,0x84,0x87,0x85,0x7C,0x7A,0x74,0x79,0x82,0x7C,0x74,0x71,0x71,0x71, - 0x6C,0x66,0x67,0x6E,0x6D,0x66,0x65,0x66,0x61,0x5C,0x59,0x53,0x68,0x7B,0x68,0x5D, - 0x60,0x5B,0x5C,0x57,0x59,0x69,0x6F,0x6A,0x65,0x64,0x69,0x6B,0x65,0x65,0x6D,0x75, - 0x74,0x70,0x73,0x77,0x76,0x75,0x72,0x7B,0x97,0x96,0x84,0x86,0x88,0x8A,0x8C,0x89, - 0x91,0x9D,0xA1,0x9C,0x98,0x9E,0xA6,0xA4,0x9E,0x9E,0xA5,0xAA,0xA4,0x9E,0x9D,0x99, - 0x96,0x8E,0x88,0x9E,0xAA,0x97,0x8B,0x83,0x7E,0x80,0x77,0x70,0x77,0x7F,0x7C,0x73, - 0x6A,0x6D,0x74,0x72,0x6E,0x72,0x79,0x7B,0x79,0x76,0x76,0x78,0x78,0x72,0x7F,0x95, - 0x91,0x86,0x82,0x7E,0x84,0x88,0x83,0x86,0x8F,0x96,0x97,0x8F,0x8A,0x8E,0x90,0x8F, - 0x90,0x92,0x96,0x98,0x96,0x93,0x90,0x8E,0x89,0x8D,0xA2,0xA3,0x98,0x92,0x88,0x85, - 0x87,0x83,0x82,0x88,0x8B,0x8F,0x8B,0x81,0x7E,0x81,0x7F,0x7B,0x7A,0x7C,0x7C,0x77, - 0x73,0x6E,0x6B,0x66,0x64,0x76,0x7F,0x73,0x6B,0x63,0x5C,0x61,0x5E,0x56,0x5A,0x5E, - 0x61,0x67,0x61,0x5D,0x61,0x60,0x61,0x62,0x62,0x66,0x68,0x69,0x6A,0x69,0x67,0x64, - 0x72,0x86,0x82,0x7F,0x7D,0x74,0x7A,0x7F,0x79,0x7C,0x7E,0x7E,0x87,0x8A,0x86,0x88, - 0x89,0x88,0x8D,0x8F,0x8C,0x8E,0x8F,0x90,0x91,0x93,0x93,0x91,0x9B,0xA2,0x98,0x97, - 0x95,0x8E,0x96,0x95,0x8B,0x8D,0x89,0x84,0x88,0x85,0x83,0x85,0x80,0x7D,0x7F,0x7D, - 0x7B,0x7C,0x7E,0x7C,0x7B,0x7C,0x7A,0x7A,0x82,0x81,0x7D,0x83,0x82,0x80,0x86,0x82, - 0x7E,0x85,0x84,0x84,0x86,0x84,0x84,0x84,0x81,0x84,0x87,0x87,0x88,0x8A,0x8A,0x8A, - 0x89,0x8C,0x8B,0x8A,0x8F,0x8C,0x8A,0x8E,0x8B,0x8D,0x92,0x8D,0x89,0x8C,0x88,0x87, - 0x8A,0x88,0x85,0x84,0x81,0x83,0x86,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x80,0x7F, - 0x86,0x86,0x80,0x81,0x7F,0x7D,0x81,0x7C,0x7B,0x7C,0x77,0x77,0x79,0x73,0x70,0x6F, - 0x6E,0x6F,0x6F,0x6E,0x6F,0x6F,0x70,0x72,0x76,0x75,0x73,0x73,0x7B,0x7C,0x75,0x79, - 0x7A,0x78,0x7D,0x7C,0x7A,0x7C,0x78,0x78,0x7D,0x79,0x76,0x78,0x75,0x73,0x78,0x7A, - 0x7A,0x7A,0x7B,0x80,0x82,0x80,0x82,0x83,0x86,0x8B,0x88,0x87,0x8A,0x85,0x89,0x91, - 0x8B,0x88,0x87,0x83,0x84,0x83,0x80,0x82,0x7E,0x79,0x7D,0x7F,0x7C,0x7C,0x7D,0x7F, - 0x7F,0x7E,0x7E,0x7E,0x7A,0x7F,0x83,0x7D,0x7E,0x7D,0x7B,0x81,0x7F,0x78,0x7E,0x7C, - 0x77,0x7B,0x7A,0x78,0x78,0x75,0x77,0x7B,0x7B,0x7B,0x7E,0x7F,0x81,0x84,0x85,0x86, - 0x84,0x82,0x89,0x8D,0x86,0x88,0x89,0x85,0x8A,0x8C,0x89,0x8B,0x88,0x86,0x8B,0x87, - 0x83,0x83,0x80,0x7F,0x83,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x86,0x86,0x84,0x86, - 0x8B,0x85,0x80,0x85,0x87,0x94,0x7D,0x65,0x7F,0x8D,0x83,0x72,0x8C,0x81,0x64,0x74, - 0x76,0x78,0x78,0x87,0x89,0x73,0x7C,0x84,0x84,0x77,0x7C,0x84,0x77,0x78,0x76,0x77, - 0x7E,0x7C,0x7B,0x85,0x78,0x6F,0x78,0x70,0x70,0x73,0x74,0x6F,0x74,0x78,0x71,0x7B, - 0x82,0x81,0x80,0x7E,0x87,0x87,0x88,0x8A,0x82,0x81,0x83,0x85,0x85,0x87,0x88,0x7D, - 0x7E,0x83,0x7F,0x84,0x7F,0x78,0x77,0x78,0x72,0x6F,0x76,0x75,0x7F,0x84,0x76,0x75, - 0x7F,0x81,0x81,0x8D,0x8F,0x85,0x84,0x82,0x84,0x87,0x89,0x86,0x82,0x81,0x80,0x83, - 0x83,0x83,0x7A,0x71,0x75,0x76,0x70,0x71,0x72,0x70,0x70,0x72,0x76,0x77,0x74,0x76, - 0x77,0x77,0x78,0x7A,0x7A,0x7D,0x82,0x8D,0x8A,0x80,0x8A,0x83,0x7D,0x89,0x8A,0x84, - 0x84,0x85,0x82,0x89,0x87,0x81,0x82,0x74,0x77,0x80,0x81,0x80,0x80,0x82,0x81,0x83, - 0x80,0x7C,0x82,0x86,0x7E,0x87,0x8A,0x89,0x89,0x7F,0x7E,0x7F,0x86,0x85,0x86,0x84, - 0x79,0x7E,0x85,0x81,0x7F,0x7D,0x77,0x7C,0x7C,0x7E,0x7F,0x7C,0x7F,0x82,0x82,0x7A, - 0x80,0x85,0x85,0x83,0x84,0x87,0x81,0x82,0x80,0x7C,0x7C,0x7F,0x7C,0x7D,0x7B,0x74, - 0x7A,0x76,0x76,0x7B,0x78,0x7A,0x7E,0x7C,0x76,0x7C,0x82,0x7F,0x83,0x82,0x85,0x83, - 0x85,0x8B,0x8A,0x90,0x8A,0x82,0x85,0x83,0x85,0x85,0x85,0x81,0x81,0x78,0x76,0x82, - 0x80,0x83,0x87,0x7D,0x7B,0x83,0x83,0x82,0x7E,0x81,0x8A,0x89,0x85,0x85,0x85,0x7D, - 0x7A,0x86,0x92,0x93,0x8F,0x86,0x79,0x7D,0x82,0x72,0x71,0x73,0x6F,0x79,0x80,0x7F, - 0x86,0x81,0x7A,0x85,0x89,0x7F,0x7E,0x7D,0x7F,0x89,0x83,0x7F,0x82,0x7F,0x7B,0x79, - 0x84,0x95,0x97,0x96,0x8C,0x76,0x76,0x80,0x7F,0x7F,0x7D,0x79,0x81,0x8A,0x89,0x86, - 0x80,0x81,0x87,0x86,0x83,0x82,0x80,0x88,0x8E,0x87,0x85,0x81,0x7D,0x7A,0x78,0x85, - 0x98,0x9C,0x95,0x8D,0x7F,0x7E,0x80,0x7A,0x75,0x75,0x78,0x83,0x8A,0x85,0x87,0x86, - 0x87,0x86,0x7F,0x79,0x79,0x7C,0x7F,0x84,0x87,0x89,0x89,0x87,0x7E,0x76,0x7F,0x9A, - 0x99,0x94,0x8D,0x7D,0x80,0x81,0x7E,0x77,0x7A,0x7E,0x88,0x88,0x79,0x81,0x88,0x86, - 0x83,0x7F,0x79,0x81,0x83,0x7C,0x80,0x80,0x80,0x7C,0x79,0x79,0x73,0x80,0x9D,0x91, - 0x84,0x8F,0x7F,0x83,0x8E,0x7A,0x79,0x7F,0x77,0x7F,0x82,0x79,0x83,0x88,0x89,0x86, - 0x82,0x83,0x80,0x83,0x7E,0x7D,0x81,0x7E,0x7F,0x80,0x7D,0x7A,0x7D,0x94,0x95,0x80, - 0x88,0x81,0x7B,0x8B,0x7C,0x6F,0x79,0x73,0x7A,0x83,0x75,0x7C,0x85,0x87,0x89,0x81, - 0x81,0x87,0x82,0x7C,0x7B,0x7C,0x85,0x80,0x7C,0x80,0x73,0x75,0x93,0x8E,0x7C,0x8C, - 0x85,0x80,0x8C,0x7A,0x71,0x7D,0x7C,0x7D,0x7E,0x70,0x7C,0x87,0x8B,0x8C,0x82,0x85, - 0x8B,0x81,0x7A,0x7E,0x7D,0x85,0x83,0x7B,0x7E,0x79,0x7C,0x99,0x93,0x7E,0x8A,0x80, - 0x82,0x89,0x73,0x71,0x7F,0x74,0x74,0x7A,0x71,0x7D,0x84,0x82,0x81,0x7D,0x84,0x8A, - 0x80,0x7B,0x7F,0x80,0x81,0x79,0x7A,0x7E,0x71,0x80,0x98,0x85,0x80,0x8D,0x7E,0x87, - 0x87,0x6D,0x75,0x7B,0x6F,0x75,0x77,0x6D,0x7F,0x7F,0x7B,0x86,0x7F,0x84,0x88,0x81, - 0x7D,0x79,0x7B,0x82,0x7A,0x7C,0x81,0x76,0x83,0x91,0x82,0x83,0x8A,0x7E,0x88,0x83, - 0x6E,0x7D,0x7D,0x71,0x7C,0x73,0x70,0x83,0x76,0x7C,0x86,0x76,0x82,0x88,0x7E,0x7D, - 0x7D,0x7D,0x7B,0x76,0x78,0x79,0x73,0x82,0x8A,0x7A,0x83,0x8B,0x7E,0x8A,0x80,0x70, - 0x7F,0x75,0x74,0x79,0x6D,0x77,0x84,0x74,0x79,0x7E,0x79,0x86,0x82,0x80,0x80,0x7C, - 0x7B,0x7C,0x7B,0x7D,0x7D,0x77,0x8B,0x8A,0x7C,0x89,0x86,0x7C,0x8A,0x7A,0x73,0x84, - 0x73,0x76,0x7E,0x72,0x7C,0x7E,0x75,0x80,0x80,0x83,0x8E,0x82,0x7D,0x85,0x81,0x7D, - 0x7E,0x79,0x7E,0x7A,0x7A,0x8C,0x7F,0x7A,0x89,0x7D,0x81,0x8B,0x7A,0x7B,0x84,0x76, - 0x7A,0x75,0x6E,0x80,0x78,0x77,0x82,0x7A,0x84,0x89,0x7B,0x83,0x87,0x7E,0x7C,0x77, - 0x78,0x7D,0x75,0x7E,0x88,0x79,0x84,0x8C,0x81,0x8A,0x88,0x79,0x84,0x7F,0x76,0x80, - 0x73,0x77,0x81,0x7C,0x7C,0x7F,0x7E,0x85,0x84,0x7C,0x89,0x86,0x84,0x82,0x7B,0x81, - 0x7A,0x79,0x85,0x83,0x7B,0x88,0x88,0x81,0x86,0x80,0x81,0x86,0x7C,0x7C,0x7C,0x72, - 0x7D,0x7C,0x75,0x7D,0x7A,0x7D,0x86,0x81,0x83,0x89,0x86,0x83,0x7D,0x7E,0x7E,0x78, - 0x81,0x88,0x80,0x82,0x86,0x7E,0x86,0x83,0x7E,0x87,0x7F,0x7C,0x7F,0x79,0x79,0x80, - 0x79,0x79,0x7D,0x7B,0x85,0x83,0x82,0x87,0x84,0x86,0x85,0x7E,0x85,0x81,0x7F,0x8A, - 0x82,0x81,0x86,0x83,0x89,0x89,0x7F,0x85,0x88,0x7E,0x84,0x7D,0x7D,0x86,0x7B,0x7A, - 0x81,0x7F,0x84,0x86,0x81,0x87,0x83,0x85,0x89,0x80,0x81,0x82,0x7F,0x89,0x88,0x7E, - 0x89,0x85,0x85,0x89,0x81,0x83,0x88,0x82,0x85,0x82,0x7A,0x82,0x7B,0x78,0x7D,0x7B, - 0x7E,0x83,0x7E,0x84,0x89,0x85,0x8A,0x84,0x84,0x84,0x7E,0x85,0x86,0x81,0x86,0x8A, - 0x84,0x8A,0x83,0x7F,0x87,0x81,0x82,0x84,0x80,0x83,0x82,0x79,0x81,0x7E,0x7C,0x83, - 0x7F,0x81,0x86,0x84,0x84,0x84,0x83,0x87,0x81,0x85,0x8A,0x80,0x83,0x84,0x80,0x84, - 0x83,0x7F,0x85,0x85,0x83,0x83,0x7F,0x81,0x7F,0x7D,0x7D,0x7F,0x7E,0x81,0x82,0x83, - 0x86,0x83,0x83,0x81,0x82,0x80,0x81,0x86,0x86,0x81,0x85,0x86,0x7F,0x86,0x82,0x80, - 0x83,0x81,0x81,0x82,0x7C,0x7E,0x82,0x7B,0x7D,0x7F,0x7E,0x81,0x7F,0x7D,0x81,0x80, - 0x82,0x85,0x80,0x85,0x83,0x88,0x8B,0x83,0x84,0x83,0x83,0x84,0x7E,0x7D,0x85,0x80, - 0x7D,0x7E,0x7D,0x7E,0x7D,0x7B,0x7C,0x81,0x7F,0x82,0x80,0x7F,0x82,0x81,0x80,0x84, - 0x83,0x82,0x89,0x84,0x85,0x86,0x84,0x83,0x87,0x84,0x7D,0x82,0x82,0x7E,0x7C,0x7F, - 0x7D,0x7D,0x7D,0x7B,0x7B,0x7D,0x82,0x80,0x82,0x8F,0x90,0x86,0x8C,0x7E,0x77,0x78, - 0x76,0x84,0x7C,0x82,0x7E,0x7C,0x87,0x6B,0x78,0x99,0x79,0x74,0x81,0x75,0x73,0x63, - 0x76,0x86,0x7C,0x82,0x79,0x72,0x72,0x75,0x78,0x76,0x75,0x7F,0x81,0x7C,0x78,0x75, - 0x79,0x78,0x7B,0x82,0x86,0x7F,0x86,0x8D,0x7F,0x77,0x86,0x91,0x87,0x84,0x83,0x7C, - 0x82,0x92,0x95,0x97,0xA9,0xA6,0x9B,0x9B,0x9C,0x94,0x86,0x8A,0x97,0x93,0x99,0x98, - 0x89,0x84,0x7D,0x7B,0x7B,0x74,0x6F,0x74,0x75,0x72,0x6B,0x64,0x64,0x64,0x6B,0x73, - 0x6C,0x6B,0x70,0x6A,0x67,0x64,0x62,0x67,0x70,0x73,0x6E,0x6D,0x6E,0x77,0x7C,0x6D, - 0x63,0x6A,0x76,0x79,0x71,0x6B,0x75,0x76,0x67,0x67,0x69,0x6D,0x70,0x68,0x73,0x80, - 0x7D,0x7F,0x82,0x8D,0x94,0xA0,0xA9,0x97,0x99,0x9A,0x96,0x9B,0x87,0x7D,0x85,0x7F, - 0x7B,0x7D,0x7F,0x8A,0x86,0x7D,0x87,0x8A,0x87,0x80,0x79,0x87,0x89,0x7F,0x83,0x88, - 0x80,0x81,0x9F,0x9B,0x91,0x9B,0x91,0x94,0x82,0x66,0x78,0x7C,0x70,0x78,0x7C,0x8E, - 0x9D,0x86,0x84,0x8B,0x82,0x7F,0x79,0x85,0x8F,0x82,0x7F,0x87,0x80,0x8F,0xAB,0x97, - 0xA2,0xAD,0x97,0x95,0x81,0x7D,0x99,0x8C,0x86,0x91,0x8C,0x98,0x8A,0x70,0x81,0x7F, - 0x68,0x6C,0x70,0x7C,0x76,0x62,0x64,0x62,0x54,0x5C,0x78,0x73,0x72,0x6E,0x60,0x61, - 0x50,0x45,0x5B,0x5E,0x5D,0x68,0x69,0x72,0x6A,0x5B,0x63,0x67,0x63,0x66,0x6E,0x7C, - 0x76,0x66,0x63,0x64,0x5D,0x6A,0x84,0x77,0x72,0x77,0x6A,0x72,0x68,0x66,0x81,0x83, - 0x8B,0x9E,0xA5,0xA8,0x9F,0x90,0x97,0x99,0x90,0x95,0x9E,0x9D,0x8F,0x87,0x86,0x88, - 0x7D,0x87,0xA2,0x9B,0x93,0x92,0x87,0x88,0x80,0x7C,0x93,0x99,0x94,0x9A,0x96,0x8D, - 0x84,0x7C,0x82,0x8B,0x8E,0x8F,0x8F,0x8D,0x82,0x77,0x7C,0x86,0x7F,0x95,0xAF,0x9C, - 0x96,0x91,0x85,0x86,0x7A,0x83,0x9B,0x96,0x94,0x97,0x92,0x92,0x87,0x86,0x98,0x99, - 0x94,0x9C,0xA2,0x96,0x89,0x87,0x8A,0x8E,0x83,0x8F,0xA8,0x93,0x81,0x7D,0x75,0x74, - 0x67,0x6E,0x7E,0x7C,0x73,0x6F,0x68,0x61,0x5B,0x57,0x66,0x6B,0x64,0x66,0x63,0x5C, - 0x57,0x56,0x61,0x5B,0x60,0x82,0x77,0x63,0x67,0x5D,0x5C,0x5A,0x5E,0x74,0x78,0x69, - 0x68,0x68,0x5F,0x5D,0x5A,0x66,0x75,0x71,0x73,0x7C,0x75,0x6F,0x79,0x82,0x90,0x99, - 0x97,0xB6,0xB8,0x95,0x99,0x97,0x8E,0x92,0x8E,0xA0,0xAC,0x96,0x8A,0x8E,0x88,0x85, - 0x85,0x8C,0x9B,0x94,0x89,0x8D,0x8B,0x87,0x87,0x89,0x8F,0x84,0x95,0xA9,0x8C,0x89, - 0x8D,0x80,0x7F,0x7C,0x86,0x9B,0x8E,0x82,0x8E,0x89,0x85,0x87,0x89,0x97,0x97,0x88, - 0x8F,0x98,0x8C,0x88,0x90,0x8F,0x96,0x95,0x8C,0xA8,0xA6,0x85,0x91,0x97,0x8F,0x92, - 0x91,0x9C,0xA4,0x8D,0x88,0x90,0x88,0x88,0x85,0x88,0x8F,0x82,0x76,0x7B,0x73,0x6C, - 0x6F,0x6C,0x6E,0x63,0x72,0x82,0x61,0x5C,0x65,0x57,0x55,0x55,0x5D,0x70,0x65,0x59, - 0x67,0x63,0x59,0x5B,0x60,0x6C,0x6C,0x61,0x67,0x6C,0x62,0x5E,0x63,0x65,0x65,0x61, - 0x61,0x7D,0x77,0x5D,0x6C,0x6F,0x66,0x6A,0x71,0x84,0x8E,0x7E,0x89,0x99,0x90,0x90, - 0x95,0x9C,0xA1,0x99,0x94,0x9B,0x93,0x8E,0x90,0x8F,0x90,0x81,0x91,0xA7,0x8A,0x82, - 0x94,0x85,0x7E,0x81,0x88,0x9A,0x8E,0x81,0x8E,0x8C,0x7D,0x80,0x86,0x8F,0x8F,0x7F, - 0x86,0x8E,0x7F,0x7B,0x87,0x89,0x8A,0x87,0x87,0xA2,0x9A,0x7F,0x8D,0x91,0x83,0x85, - 0x89,0x98,0x9A,0x86,0x8C,0x96,0x89,0x86,0x8D,0x95,0x98,0x8E,0x8E,0x97,0x8C,0x88, - 0x8D,0x8E,0x8D,0x82,0x86,0xA1,0x90,0x7B,0x8A,0x81,0x73,0x6F,0x70,0x80,0x7B,0x68, - 0x72,0x76,0x64,0x5F,0x66,0x6D,0x6C,0x63,0x66,0x6F,0x62,0x5B,0x65,0x65,0x60,0x61, - 0x5D,0x72,0x79,0x5B,0x65,0x72,0x5F,0x5A,0x62,0x6C,0x6F,0x5F,0x62,0x71,0x63,0x5C, - 0x68,0x6F,0x71,0x6D,0x73,0x7B,0x76,0x74,0x80,0x84,0x88,0x86,0x86,0xA8,0xA8,0x8B, - 0x9B,0xA1,0x8A,0x89,0x8F,0x99,0x9B,0x8A,0x8E,0x99,0x87,0x7E,0x89,0x8C,0x8A,0x88, - 0x89,0x8E,0x83,0x7E,0x86,0x85,0x80,0x84,0x7C,0x87,0x9C,0x80,0x7D,0x92,0x81,0x77, - 0x81,0x88,0x90,0x88,0x83,0x93,0x8B,0x7D,0x88,0x8D,0x8A,0x8C,0x90,0x94,0x8F,0x87, - 0x8B,0x8C,0x8B,0x8C,0x83,0x98,0xA7,0x89,0x8E,0x9C,0x88,0x81,0x84,0x8F,0x94,0x85, - 0x84,0x92,0x86,0x78,0x7F,0x84,0x81,0x7C,0x7C,0x80,0x7A,0x70,0x73,0x75,0x6E,0x6E, - 0x67,0x69,0x83,0x72,0x5D,0x73,0x6A,0x58,0x5E,0x65,0x6A,0x67,0x60,0x6A,0x6B,0x5A, - 0x5E,0x66,0x66,0x67,0x66,0x6A,0x6A,0x62,0x62,0x66,0x64,0x66,0x5F,0x66,0x82,0x72, - 0x67,0x7D,0x76,0x69,0x72,0x7C,0x87,0x87,0x84,0x92,0x97,0x8A,0x8E,0x98,0x96,0x97, - 0x97,0x9B,0x9B,0x93,0x92,0x94,0x8F,0x8C,0x8C,0x83,0x98,0xA0,0x84,0x8C,0x92,0x7E, - 0x7C,0x82,0x88,0x8C,0x81,0x82,0x8C,0x7F,0x78,0x81,0x85,0x85,0x86,0x88,0x8D,0x89, - 0x85,0x89,0x88,0x86,0x87,0x82,0x96,0xA7,0x8A,0x8E,0x9F,0x8A,0x83,0x8B,0x8F,0x94, - 0x8D,0x8C,0x9B,0x91,0x82,0x89,0x92,0x90,0x8D,0x8F,0x92,0x90,0x8B,0x8A,0x88,0x85, - 0x88,0x80,0x7D,0x98,0x8B,0x75,0x89,0x82,0x6C,0x70,0x75,0x7C,0x74,0x6D,0x84,0x74, - 0x70,0x60,0x51,0x6D,0x60,0x50,0x56,0x63,0x64,0x6A,0x74,0x72,0x6D,0x6B,0x74,0x99, - 0x9A,0x77,0x8E,0x95,0x6E,0x65,0x59,0x63,0x70,0x46,0x41,0x5F,0x4E,0x34,0x3C,0x3E, - 0x3F,0x54,0x64,0x6A,0x5D,0x64,0x7B,0x7F,0x87,0x95,0x9B,0xB9,0xD6,0xB2,0xB7,0xDA, - 0xD8,0xCC,0xA9,0xCC,0xD7,0xAF,0xC1,0xB9,0xBA,0xB9,0xA4,0x9A,0x8E,0x8C,0x96,0x82, - 0x70,0x70,0x5B,0x6E,0x6C,0x62,0x7C,0x6E,0x7F,0x7C,0x54,0x77,0x7A,0x3D,0x3E,0x55, - 0x5D,0x60,0x59,0x5C,0x63,0x5A,0x62,0x73,0x7C,0x8D,0x89,0x9C,0xB2,0xA5,0x97,0x9F, - 0xA3,0xA1,0xAE,0xBA,0xD5,0xDB,0xB3,0xBD,0xD4,0xB7,0xB1,0xAE,0xB1,0xAB,0x9B,0x9A, - 0x95,0x90,0x7A,0x70,0x7A,0x79,0x7C,0x73,0x64,0x57,0x40,0x41,0x4A,0x44,0x35,0x31, - 0x4A,0x55,0x3C,0x3D,0x65,0x57,0x4C,0x62,0x5F,0x65,0x6D,0x6A,0x74,0x70,0x5A,0x69, - 0x78,0x78,0x7E,0x79,0x80,0x99,0x9A,0xA2,0xA9,0x98,0x9D,0x96,0x8A,0xB1,0x99,0x6C, - 0x93,0x8B,0x76,0x8A,0x84,0x82,0x7B,0x6F,0x83,0x9B,0x8B,0x7F,0x78,0x72,0x82,0x76, - 0x6A,0x6B,0x67,0x6B,0x61,0x52,0x45,0x46,0x5E,0x6E,0x70,0x66,0x69,0x7D,0x7A,0x70, - 0x7F,0x7A,0x75,0x81,0x86,0x9E,0x9B,0x93,0x9C,0xA1,0xA9,0xA7,0xAF,0xB7,0xAE,0xC2, - 0xCD,0xC4,0xD0,0xBF,0xBA,0xC8,0xBD,0xB3,0xAF,0xA3,0x8B,0x7B,0x74,0x72,0x80,0x6C, - 0x69,0x87,0x7F,0x73,0x63,0x4C,0x47,0x53,0x68,0x73,0x67,0x5A,0x66,0x6E,0x66,0x61, - 0x70,0x7B,0x75,0x69,0x6E,0x78,0x7B,0x82,0x77,0x87,0x9A,0x95,0x8A,0x70,0x6D,0x7E, - 0x81,0x87,0x89,0x86,0x95,0x93,0x78,0x6C,0x75,0x74,0x79,0x84,0x7E,0x7F,0x7A,0x79, - 0x8C,0x87,0x7B,0x7C,0x7A,0x81,0x78,0x67,0x61,0x50,0x45,0x5C,0x75,0x70,0x5B,0x4F, - 0x5B,0x64,0x6C,0x70,0x70,0x72,0x78,0x84,0x7F,0x86,0x6D,0x72,0x8F,0x82,0x87,0x7F, - 0x80,0x8F,0x8E,0x89,0x86,0x89,0x85,0x7F,0x93,0x96,0x7A,0x7F,0x7B,0x7A,0x83,0x75, - 0x7F,0x84,0x88,0x8E,0xA3,0xA0,0x90,0x9F,0x9F,0xA3,0x9A,0x9D,0xA7,0xB0,0xAF,0xAF, - 0xB5,0xA5,0x9F,0xA4,0xA6,0x9B,0x93,0x90,0x90,0x91,0x83,0x8A,0x8C,0x82,0x86,0x7E, - 0x7D,0x7A,0x7A,0x7B,0x6F,0x6E,0x6A,0x74,0x7D,0x73,0x71,0x73,0x73,0x71,0x6F,0x68, - 0x65,0x64,0x60,0x6A,0x7E,0x86,0x6F,0x5E,0x65,0x6C,0x6B,0x73,0x76,0x6E,0x72,0x77, - 0x69,0x61,0x61,0x5C,0x6B,0x65,0x62,0x78,0x74,0x73,0x69,0x62,0x71,0x71,0x70,0x7B, - 0x7C,0x79,0x6D,0x6D,0x79,0x77,0x8C,0xAB,0xA3,0x99,0xA5,0xA2,0x98,0x91,0x86,0xA3, - 0xB9,0xAE,0xB2,0xAE,0xA7,0xA8,0xA8,0xA8,0x9A,0x93,0x96,0x98,0x95,0x85,0x82,0x82, - 0x7D,0x76,0x72,0x80,0x6C,0x54,0x59,0x4E,0x4D,0x54,0x50,0x5D,0x6D,0x61,0x5B,0x66, - 0x5E,0x5E,0x67,0x67,0x69,0x67,0x6B,0x6B,0x6B,0x65,0x60,0x6C,0x6F,0x75,0x8D,0x8C, - 0x86,0x8A,0x8D,0x9A,0x97,0x94,0xA1,0xB2,0xBE,0xAF,0xAE,0xAF,0xA3,0xA9,0xB1,0xB8, - 0xC1,0xB8,0xB9,0xBD,0xB0,0xAA,0x9C,0xA2,0x9C,0x94,0xA9,0x93,0x8D,0xA2,0x8A,0x79, - 0x77,0x70,0x84,0x92,0x78,0x68,0x73,0x6D,0x70,0x7B,0x6B,0x68,0x6A,0x62,0x75,0x76, - 0x65,0x5E,0x54,0x58,0x5A,0x68,0x6D,0x5F,0x64,0x67,0x65,0x60,0x5D,0x65,0x67,0x6E, - 0x66,0x62,0x6E,0x70,0x65,0x5B,0x5E,0x65,0x61,0x73,0x89,0x7D,0x6E,0x60,0x72,0x7B, - 0x82,0x8E,0x6B,0x63,0x72,0x82,0x83,0x73,0x7E,0x86,0x86,0x8B,0x86,0x84,0x89,0x82, - 0x8A,0x8D,0x8B,0x97,0x93,0x8C,0x8E,0x97,0x92,0x8E,0x8D,0x90,0xA1,0x9B,0x8D,0x91, - 0x97,0x9A,0x94,0x82,0x91,0xA3,0x9A,0x97,0x97,0xA1,0xAD,0xA5,0xA2,0xA7,0xA6,0xA5, - 0xA5,0xA9,0xB1,0xA8,0x96,0x95,0x9B,0xB6,0xC6,0xAC,0x9E,0x9A,0x94,0x96,0x85,0x70, - 0x7D,0x83,0x7A,0x74,0x6C,0x6B,0x6D,0x6B,0x65,0x63,0x68,0x6F,0x6F,0x70,0x6C,0x56, - 0x58,0x56,0x4F,0x65,0x61,0x53,0x56,0x5F,0x63,0x5A,0x4C,0x4A,0x61,0x66,0x60,0x5F, - 0x4E,0x4E,0x5B,0x5B,0x62,0x6A,0x6B,0x6B,0x69,0x70,0x76,0x67,0x62,0x61,0x67,0x7D, - 0x79,0x6C,0x65,0x6B,0x76,0x76,0x71,0x77,0x8C,0x91,0x82,0x78,0x7E,0x86,0x92,0x99, - 0x95,0x98,0x9D,0x98,0x9C,0xA7,0xA3,0x9A,0x95,0x94,0xA5,0xAC,0x9A,0x8F,0x8B,0x92, - 0xA0,0x9A,0x91,0x8D,0x9C,0xAB,0xA0,0x98,0x94,0x97,0x9A,0x97,0x94,0x8E,0x94,0x9C, - 0x97,0x98,0x9B,0x9B,0x9B,0x8E,0x98,0x9F,0x8D,0x83,0x7E,0x79,0x80,0x7D,0x74,0x79, - 0x80,0x84,0x83,0x79,0x76,0x73,0x6E,0x6E,0x70,0x6C,0x66,0x6C,0x6B,0x64,0x62,0x62, - 0x69,0x68,0x75,0x75,0x68,0x68,0x63,0x65,0x61,0x60,0x5E,0x5D,0x69,0x6E,0x6C,0x6C, - 0x6C,0x75,0x7C,0x75,0x71,0x68,0x64,0x66,0x66,0x65,0x5A,0x59,0x5F,0x62,0x68,0x6F, - 0x6C,0x69,0x74,0x76,0x6D,0x6A,0x6E,0x6E,0x74,0x7D,0x7D,0x86,0x87,0x8C,0x90,0x83, - 0x87,0x87,0x89,0x8F,0x8E,0x97,0x8F,0x87,0x98,0x9F,0xA1,0xA7,0xA2,0x9F,0xAA,0xAF, - 0xA4,0xA2,0xA6,0xA4,0xAC,0xAC,0xA0,0x9C,0xA0,0xA6,0xA2,0x98,0x93,0x98,0x97,0x97, - 0x9A,0x8E,0x90,0x92,0x90,0x8F,0x8E,0x8F,0x8F,0x91,0x8D,0x94,0x91,0x8D,0x92,0x89, - 0x88,0x8E,0x87,0x85,0x87,0x83,0x7E,0x7B,0x7C,0x7F,0x7F,0x80,0x7E,0x7F,0x82,0x82, - 0x7E,0x74,0x73,0x6F,0x6E,0x75,0x72,0x70,0x69,0x70,0x73,0x66,0x72,0x71,0x67,0x66, - 0x62,0x61,0x55,0x56,0x56,0x50,0x59,0x5B,0x5C,0x5C,0x61,0x64,0x61,0x67,0x63,0x67, - 0x6F,0x6D,0x6F,0x6B,0x63,0x6A,0x71,0x6F,0x71,0x6A,0x69,0x70,0x72,0x76,0x72,0x6C, - 0x6F,0x72,0x71,0x70,0x6B,0x68,0x6E,0x77,0x7C,0x7F,0x83,0x85,0x8B,0x91,0x8F,0x8E, - 0x90,0x8D,0x92,0x98,0x93,0x8F,0x8F,0x90,0x93,0x91,0x91,0x92,0x8D,0x8F,0x9A,0x9A, - 0x91,0x91,0x98,0x97,0x9F,0xA5,0x9D,0x9D,0xA0,0xA5,0xAB,0xA6,0xA3,0xA6,0xA2,0xA3, - 0xA7,0xA1,0x9D,0x9A,0x92,0x94,0x96,0x93,0x95,0x94,0x96,0x95,0x92,0x94,0x8E,0x92, - 0x94,0x93,0x93,0x91,0x90,0x8F,0x91,0x8D,0x8A,0x89,0x8A,0x8E,0x8B,0x89,0x87,0x80, - 0x7C,0x7B,0x7D,0x7E,0x75,0x74,0x74,0x71,0x72,0x6B,0x69,0x6C,0x6F,0x6E,0x71,0x70, - 0x6A,0x70,0x6F,0x6D,0x6F,0x6F,0x6F,0x6D,0x6D,0x6A,0x66,0x72,0x71,0x63,0x65,0x68, - 0x64,0x62,0x63,0x5E,0x59,0x64,0x66,0x63,0x6C,0x64,0x5D,0x67,0x64,0x65,0x69,0x61, - 0x64,0x67,0x6C,0x72,0x72,0x72,0x71,0x78,0x7D,0x7D,0x78,0x76,0x77,0x7A,0x7D,0x79, - 0x77,0x78,0x79,0x84,0x82,0x7E,0x82,0x83,0x8D,0x90,0x8A,0x8E,0x8C,0x88,0x91,0x8D, - 0x8A,0x8F,0x8A,0x8E,0x95,0x92,0x8F,0x8D,0x91,0x99,0x9E,0x98,0x96,0x96,0x94,0x9A, - 0x97,0x9A,0x99,0x95,0x9B,0x98,0x99,0x95,0x8B,0x8E,0x92,0x97,0x98,0x8F,0x8F,0x90, - 0x8B,0x8F,0x8C,0x88,0x8C,0x88,0x8E,0x8C,0x84,0x85,0x85,0x8B,0x87,0x8C,0x8E,0x8B, - 0x8E,0x8A,0x8E,0x8B,0x88,0x8D,0x8C,0x88,0x89,0x86,0x80,0x81,0x80,0x7D,0x7C,0x7B, - 0x7C,0x7D,0x7C,0x75,0x77,0x78,0x75,0x77,0x74,0x78,0x7D,0x7A,0x76,0x79,0x78,0x73, - 0x79,0x78,0x75,0x73,0x73,0x73,0x72,0x74,0x75,0x75,0x74,0x78,0x7B,0x78,0x77,0x74, - 0x72,0x75,0x7A,0x7C,0x74,0x72,0x73,0x77,0x78,0x74,0x72,0x73,0x77,0x7A,0x78,0x76, - 0x76,0x74,0x76,0x77,0x74,0x73,0x77,0x76,0x77,0x78,0x74,0x74,0x6F,0x74,0x7A,0x7B, - 0x7C,0x78,0x7B,0x7E,0x82,0x82,0x7D,0x7B,0x7F,0x86,0x85,0x80,0x7D,0x7D,0x80,0x82, - 0x81,0x7E,0x7F,0x80,0x7F,0x7F,0x7E,0x7E,0x7D,0x7F,0x82,0x82,0x81,0x7C,0x7C,0x7F, - 0x80,0x7F,0x81,0x7D,0x7A,0x82,0x82,0x83,0x82,0x7E,0x81,0x81,0x7F,0x80,0x81,0x82, - 0x84,0x83,0x84,0x86,0x84,0x83,0x82,0x7F,0x80,0x81,0x82,0x86,0x84,0x84,0x85,0x86, - 0x87,0x86,0x85,0x83,0x84,0x83,0x84,0x84,0x80,0x80,0x82,0x84,0x84,0x82,0x7F,0x7F, - 0x83,0x83,0x82,0x81,0x82,0x83,0x81,0x83,0x82,0x83,0x83,0x84,0x88,0x86,0x86,0x86, - 0x85,0x87,0x88,0x86,0x86,0x84,0x83,0x84,0x85,0x83,0x7F,0x80,0x81,0x82,0x82,0x7E, - 0x7D,0x7E,0x7C,0x80,0x81,0x7F,0x7E,0x7D,0x82,0x87,0x84,0x83,0x82,0x81,0x85,0x85, - 0x81,0x81,0x81,0x82,0x84,0x82,0x7F,0x81,0x83,0x7F,0x7F,0x7E,0x80,0x7F,0x7F,0x7F, - 0x7F,0x7F,0x7D,0x7E,0x80,0x80,0x7F,0x7E,0x7E,0x7C,0x7D,0x7D,0x7B,0x7C,0x7D,0x7E, - 0x81,0x80,0x7C,0x7C,0x81,0x81,0x7F,0x81,0x7E,0x7D,0x81,0x80,0x7E,0x81,0x80,0x80, - 0x84,0x81,0x80,0x84,0x83,0x84,0x81,0x7E,0x81,0x81,0x7F,0x7E,0x7F,0x7E,0x7E,0x7E, - 0x7D,0x7F,0x7D,0x7A,0x7F,0x7E,0x80,0x7F,0x79,0x7D,0x7E,0x7F,0x82,0x7F,0x81,0x83, - 0x82,0x84,0x80,0x80,0x81,0x82,0x83,0x82,0x84,0x83,0x83,0x81,0x7E,0x7F,0x80,0x7E, - 0x7D,0x7D,0x7B,0x7A,0x79,0x7B,0x7B,0x7D,0x7F,0x7B,0x7D,0x7E,0x81,0x80,0x7E,0x7E, - 0x81,0x80,0x81,0x83,0x80,0x80,0x80,0x83,0x80,0x81,0x82,0x7F,0x81,0x81,0x80,0x81, - 0x80,0x7F,0x80,0x80,0x7F,0x80,0x7E,0x81,0x83,0x7F,0x7E,0x7E,0x81,0x80,0x7F,0x83, - 0x81,0x81,0x81,0x82,0x80,0x7D,0x7F,0x80,0x81,0x81,0x80,0x80,0x7F,0x7F,0x80,0x82, - 0x81,0x80,0x81,0x82,0x81,0x80,0x80,0x7F,0x81,0x80,0x81,0x80,0x80,0x80,0x7E,0x80, - 0x7E,0x7D,0x7F,0x7E,0x7E,0x7E,0x7C,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x83,0x84, - 0x80,0x82,0x82,0x81,0x84,0x84,0x84,0x83,0x82,0x82,0x87,0x85,0x81,0x82,0x81,0x83, - 0x80,0x81,0x80,0x7E,0x81,0x7E,0x80,0x7F,0x7F,0x81,0x7F,0x80,0x80,0x80,0x80,0x81, - 0x82,0x82,0x80,0x83,0x84,0x82,0x82,0x82,0x80,0x81,0x84,0x81,0x83,0x82,0x7F,0x84, - 0x81,0x82,0x84,0x80,0x81,0x84,0x83,0x81,0x83,0x81,0x7F,0x80,0x80,0x7F,0x80,0x7C, - 0x80,0x7E,0x7E,0x81,0x7B,0x7D,0x7F,0x7D,0x7F,0x7F,0x7E,0x80,0x80,0x80,0x81,0x7F, - 0x7E,0x82,0x83,0x81,0x81,0x80,0x81,0x82,0x80,0x82,0x81,0x80,0x82,0x81,0x7E,0x80, - 0x7E,0x7D,0x80,0x7F,0x7B,0x7D,0x7F,0x7D,0x7E,0x7F,0x7D,0x7F,0x80,0x80,0x81,0x80, - 0x81,0x81,0x82,0x82,0x81,0x82,0x82,0x81,0x83,0x83,0x82,0x82,0x84,0x81,0x80,0x84, - 0x82,0x83,0x83,0x81,0x7F,0x80,0x80,0x7F,0x81,0x81,0x7F,0x7F,0x7F,0x7E,0x80,0x7D, - 0x7E,0x7C,0x7E,0x7F,0x7F,0x81,0x7D,0x7E,0x82,0x82,0x81,0x82,0x81,0x81,0x83,0x83, - 0x82,0x81,0x82,0x80,0x81,0x83,0x80,0x7F,0x81,0x81,0x81,0x81,0x7F,0x80,0x7E,0x7F, - 0x7E,0x7D,0x7F,0x7C,0x7E,0x7E,0x7D,0x7D,0x7D,0x7F,0x7D,0x7D,0x7E,0x7E,0x7D,0x7E, - 0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7F,0x80,0x82,0x80,0x82,0x83,0x83,0x82,0x80,0x84, - 0x82,0x81,0x82,0x80,0x7F,0x81,0x7F,0x7E,0x80,0x7E,0x7C,0x7F,0x80,0x7C,0x7E,0x7E, - 0x7D,0x7F,0x7D,0x7D,0x7E,0x7F,0x7E,0x80,0x80,0x7C,0x7F,0x81,0x81,0x7E,0x7F,0x81, - 0x7F,0x80,0x80,0x7F,0x80,0x80,0x81,0x80,0x81,0x7E,0x7D,0x81,0x7E,0x81,0x80,0x7F, - 0x80,0x7C,0x7B,0x7F,0x7D,0x7C,0x7F,0x7D,0x7F,0x82,0x7C,0x7E,0x7C,0x80,0x83,0x7F, - 0x80,0x7F,0x80,0x7F,0x7D,0x81,0x81,0x81,0x80,0x82,0x81,0x88,0x8B,0x90,0x93,0x81, - 0x7A,0x76,0x77,0x78,0x77,0x78,0x7E,0x6F,0x70,0x8F,0x78,0x72,0x83,0x7B,0x6F,0x6E, - 0x81,0x77,0x73,0x7A,0x77,0x79,0x84,0x87,0x83,0x8B,0x8D,0x88,0x82,0x83,0x8F,0x89, - 0x87,0x86,0x79,0x7D,0x86,0x86,0x88,0x9B,0x9C,0x92,0x92,0x80,0x82,0x93,0x8D,0x96, - 0x97,0x88,0x8D,0x93,0x8B,0x80,0x84,0x89,0x8C,0x90,0x84,0x7B,0x77,0x76,0x6F,0x63, - 0x6D,0x6E,0x70,0x70,0x6A,0x6D,0x6C,0x6F,0x72,0x75,0x6B,0x66,0x6A,0x69,0x6B,0x73, - 0x74,0x6C,0x67,0x6A,0x6F,0x6C,0x67,0x69,0x70,0x72,0x66,0x65,0x6D,0x71,0x6F,0x6D, - 0x74,0x77,0x73,0x74,0x82,0x87,0x8B,0xA4,0xB7,0xB2,0x9C,0x97,0x99,0x92,0x8F,0x8E, - 0x8E,0x8D,0x89,0x89,0x90,0x8B,0x80,0x81,0x89,0x85,0x7D,0x85,0x83,0x82,0x86,0x81, - 0x85,0x85,0x83,0x86,0x8B,0x89,0x87,0x93,0x92,0x8E,0x96,0x92,0x91,0x97,0x95,0x95, - 0x99,0x91,0x8C,0x91,0x95,0x95,0x98,0xA0,0x9B,0x9C,0x9C,0x8D,0x8C,0x91,0x93,0x92, - 0x92,0x93,0x92,0x8D,0x8B,0x8B,0x89,0x87,0x83,0x7D,0x7C,0x74,0x6E,0x70,0x6E,0x6A, - 0x69,0x68,0x65,0x60,0x61,0x64,0x62,0x5D,0x64,0x63,0x60,0x64,0x5F,0x62,0x66,0x64, - 0x66,0x66,0x63,0x62,0x62,0x65,0x62,0x5E,0x65,0x67,0x66,0x66,0x68,0x66,0x6D,0x6A, - 0x61,0x6F,0x75,0x75,0x7C,0x83,0x8E,0x9C,0xA3,0xA2,0x98,0x95,0x91,0x86,0x8A,0x87, - 0x88,0x93,0x94,0x8C,0x8C,0x88,0x80,0x82,0x7F,0x7A,0x80,0x80,0x80,0x81,0x81,0x89, - 0x8B,0x87,0x8C,0x90,0x91,0x97,0x9A,0x9F,0x9F,0x96,0x95,0x9D,0xA6,0xA4,0x9E,0xA2, - 0xA4,0xA3,0x95,0x8F,0x97,0x95,0x91,0x90,0x8F,0x98,0x99,0x92,0x96,0x9B,0x9E,0x95, - 0x92,0x96,0x98,0x95,0x8C,0x84,0x8C,0x99,0x8E,0x89,0x84,0x83,0x84,0x6E,0x5B,0x62, - 0x65,0x54,0x58,0x5F,0x67,0x67,0x5F,0x66,0x6C,0x6F,0x69,0x67,0x68,0x68,0x62,0x5C, - 0x5C,0x6D,0x79,0x6C,0x6D,0x6F,0x71,0x74,0x62,0x56,0x60,0x60,0x57,0x55,0x62,0x6E, - 0x72,0x73,0x7B,0x89,0x8A,0x8C,0x95,0x9D,0x9A,0x98,0x95,0x8E,0x9E,0xAA,0x9D,0x99, - 0x9D,0x97,0x90,0x7E,0x76,0x7F,0x78,0x71,0x75,0x7C,0x87,0x88,0x80,0x87,0x96,0x8F, - 0x86,0x8C,0x89,0x8A,0x8C,0x8C,0x87,0x8E,0xA9,0xA4,0x99,0xA3,0xAB,0xA2,0x94,0x8C, - 0x8E,0x92,0x86,0x85,0x91,0x97,0x99,0x98,0x9C,0xA0,0x96,0x8A,0x8D,0x8B,0x86,0x8A, - 0x8A,0x86,0x81,0x9D,0xA7,0x8D,0x8F,0x94,0x8A,0x79,0x6A,0x6D,0x73,0x67,0x5C,0x66, - 0x72,0x6D,0x65,0x6A,0x70,0x68,0x58,0x5F,0x64,0x59,0x58,0x60,0x5C,0x4B,0x67,0x7A, - 0x63,0x69,0x72,0x6A,0x5D,0x4F,0x55,0x60,0x58,0x52,0x65,0x74,0x72,0x68,0x71,0x7C, - 0x6F,0x68,0x71,0x80,0x80,0x82,0x94,0x9B,0x8F,0xA2,0xB9,0xA0,0x9A,0xA5,0x98,0x87, - 0x75,0x77,0x81,0x7B,0x73,0x7D,0x89,0x88,0x7D,0x7D,0x8A,0x7F,0x71,0x7C,0x83,0x80, - 0x80,0x84,0x87,0x7F,0x91,0xAA,0x99,0x94,0xA4,0x9C,0x8F,0x83,0x89,0x95,0x8B,0x84, - 0x90,0x9E,0x98,0x8E,0x90,0x96,0x8B,0x81,0x8B,0x93,0x8E,0x8A,0x8A,0x89,0x83,0x90, - 0xA5,0x95,0x92,0x9C,0x92,0x86,0x76,0x7A,0x85,0x75,0x69,0x77,0x7F,0x7D,0x6D,0x6C, - 0x76,0x6A,0x5A,0x63,0x6B,0x64,0x61,0x5E,0x60,0x5B,0x66,0x76,0x69,0x67,0x6F,0x65, - 0x58,0x51,0x50,0x5D,0x5B,0x53,0x67,0x70,0x6A,0x63,0x62,0x6C,0x67,0x58,0x66,0x73, - 0x6E,0x70,0x79,0x82,0x81,0x93,0xA9,0xA0,0xA4,0xAB,0xA0,0x92,0x8A,0x89,0x8E,0x86, - 0x7F,0x88,0x8F,0x89,0x7F,0x7C,0x82,0x7D,0x6A,0x77,0x82,0x7A,0x78,0x79,0x7E,0x77, - 0x81,0x9B,0x90,0x89,0x9C,0x94,0x88,0x80,0x85,0x91,0x89,0x85,0x94,0xA0,0x9C,0x99, - 0x94,0x95,0x96,0x82,0x84,0x93,0x8C,0x88,0x8A,0x90,0x88,0x85,0xA7,0x9F,0x89,0x9E, - 0x98,0x85,0x7F,0x7C,0x88,0x84,0x7B,0x83,0x8A,0x87,0x7C,0x73,0x76,0x77,0x62,0x61, - 0x74,0x6D,0x6A,0x6B,0x69,0x65,0x5C,0x74,0x7F,0x65,0x6D,0x74,0x64,0x58,0x51,0x61, - 0x63,0x56,0x61,0x70,0x6E,0x69,0x67,0x68,0x6D,0x61,0x59,0x6B,0x6E,0x68,0x6E,0x74, - 0x73,0x6E,0x89,0xA3,0x91,0x99,0xAF,0xA5,0x96,0x8D,0x94,0x99,0x8C,0x89,0x9E,0x9F, - 0x8F,0x8C,0x90,0x8C,0x7B,0x73,0x7F,0x81,0x79,0x7C,0x7E,0x7D,0x75,0x81,0x9C,0x8A, - 0x83,0x97,0x93,0x7F,0x74,0x7F,0x8A,0x7F,0x7C,0x96,0x9E,0x92,0x92,0x98,0x9D,0x8F, - 0x82,0x8E,0x94,0x8E,0x8B,0x90,0x8E,0x86,0x8C,0xA9,0xA1,0x90,0xA5,0xA2,0x8F,0x7F, - 0x7F,0x8C,0x83,0x77,0x8A,0x99,0x8A,0x84,0x82,0x87,0x7A,0x66,0x6E,0x75,0x71,0x6F, - 0x72,0x6D,0x65,0x63,0x7C,0x82,0x69,0x74,0x79,0x68,0x5C,0x53,0x62,0x66,0x54,0x61, - 0x75,0x73,0x6D,0x68,0x6E,0x6A,0x5C,0x5C,0x69,0x6A,0x6C,0x71,0x6E,0x6E,0x6A,0x7E, - 0x99,0x8B,0x8E,0xA2,0x9B,0x93,0x89,0x93,0xA0,0x93,0x92,0xA4,0xA7,0x9D,0x97,0x95, - 0x93,0x84,0x7C,0x83,0x82,0x80,0x80,0x7E,0x78,0x72,0x7A,0x96,0x90,0x83,0x93,0x93, - 0x81,0x74,0x73,0x83,0x80,0x77,0x89,0x96,0x96,0x90,0x93,0x9A,0x8F,0x84,0x87,0x8F, - 0x8A,0x8B,0x8F,0x8C,0x85,0x82,0x9C,0xA9,0x94,0x99,0xA4,0x96,0x88,0x7D,0x88,0x8E, - 0x7E,0x82,0x94,0x96,0x8E,0x87,0x89,0x89,0x79,0x75,0x79,0x7A,0x78,0x78,0x79,0x72, - 0x67,0x6E,0x89,0x7F,0x6F,0x7B,0x7A,0x6A,0x5B,0x58,0x69,0x64,0x58,0x69,0x72,0x73, - 0x6B,0x69,0x72,0x68,0x5D,0x5E,0x67,0x6D,0x6C,0x6C,0x6C,0x69,0x64,0x7C,0x92,0x85, - 0x8B,0x94,0x8E,0x8B,0x7E,0x8A,0x9A,0x8D,0x8D,0x9F,0xA2,0x9F,0x97,0x93,0x98,0x8A, - 0x7E,0x7D,0x85,0x86,0x7F,0x7B,0x7C,0x75,0x71,0x8D,0x91,0x85,0x8E,0x8B,0x82,0x78, - 0x68,0x7A,0x80,0x72,0x80,0x8C,0x93,0x90,0x86,0x8D,0x8F,0x84,0x7E,0x83,0x8A,0x8D, - 0x89,0x85,0x88,0x82,0x87,0xA5,0x9B,0x94,0xA4,0x9A,0x93,0x7E,0x7A,0x8D,0x83,0x7A, - 0x88,0x8F,0x98,0x91,0x81,0x88,0x85,0x7A,0x72,0x73,0x79,0x7A,0x73,0x6B,0x6A,0x62, - 0x75,0x8A,0x74,0x79,0x80,0x71,0x6E,0x55,0x59,0x6A,0x5A,0x5E,0x68,0x6A,0x76,0x71, - 0x63,0x70,0x6D,0x65,0x5E,0x5F,0x6C,0x6B,0x66,0x65,0x69,0x67,0x83,0x8F,0x7E,0x8F, - 0x92,0x8E,0x8E,0x7A,0x86,0x96,0x88,0x8F,0x91,0x95,0xA4,0x97,0x8C,0x95,0x93,0x89, - 0x7E,0x7A,0x84,0x7C,0x75,0x71,0x71,0x70,0x87,0x90,0x7C,0x8A,0x84,0x85,0x84,0x66, - 0x72,0x7F,0x71,0x77,0x77,0x7D,0x95,0x89,0x85,0x91,0x90,0x8E,0x85,0x80,0x86,0x85, - 0x80,0x86,0x89,0x82,0x90,0xA0,0x91,0x95,0x92,0x8A,0x9A,0x8C,0x7E,0x89,0x87,0x84, - 0x86,0x7B,0x86,0x8C,0x7D,0x84,0x7F,0x7B,0x84,0x7C,0x74,0x7B,0x79,0x76,0x78,0x72, - 0x72,0x75,0x77,0x71,0x6E,0x6E,0x6E,0x6F,0x6B,0x6C,0x6D,0x6C,0x6E,0x70,0x69,0x6A, - 0x69,0x67,0x68,0x68,0x68,0x6A,0x6D,0x6E,0x71,0x71,0x77,0x79,0x7C,0x7F,0x81,0x89, - 0x8B,0x8B,0x8C,0x90,0x9A,0x9A,0x95,0x9A,0x95,0x97,0x98,0x90,0x8F,0x8E,0x8A,0x86, - 0x85,0x7C,0x80,0x7D,0x7A,0x7A,0x75,0x7C,0x78,0x77,0x79,0x79,0x79,0x7C,0x77,0x79, - 0x7F,0x79,0x81,0x88,0x84,0x85,0x86,0x87,0x8B,0x84,0x81,0x88,0x86,0x85,0x83,0x82, - 0x8C,0x8C,0x88,0x8C,0x8E,0x8B,0x8C,0x8C,0x88,0x88,0x84,0x91,0x8D,0x82,0x89,0x81, - 0x8A,0x8E,0x7F,0x82,0x85,0x81,0x82,0x79,0x75,0x7C,0x79,0x79,0x77,0x72,0x7C,0x7E, - 0x78,0x7D,0x7B,0x79,0x7B,0x74,0x79,0x78,0x76,0x86,0x7B,0x76,0x7A,0x73,0x83,0x81, - 0x72,0x79,0x7A,0x7B,0x7C,0x73,0x79,0x82,0x7C,0x7F,0x82,0x7B,0x87,0x8B,0x84,0x88, - 0x88,0x88,0x88,0x85,0x82,0x86,0x95,0x8F,0x84,0x8B,0x82,0x8B,0x91,0x7A,0x7E,0x7D, - 0x7B,0x82,0x72,0x73,0x80,0x79,0x7C,0x79,0x72,0x80,0x80,0x75,0x78,0x7A,0x79,0x79, - 0x78,0x72,0x76,0x92,0x89,0x7C,0x86,0x7E,0x90,0x90,0x71,0x7C,0x80,0x7D,0x87,0x75, - 0x7A,0x8E,0x89,0x8B,0x85,0x86,0x8F,0x91,0x85,0x7C,0x87,0x88,0x7F,0x79,0x76,0x94, - 0xA3,0x8A,0x92,0x8F,0x8D,0x9B,0x7A,0x70,0x7E,0x7B,0x82,0x7C,0x78,0x89,0x94,0x8F, - 0x81,0x80,0x82,0x86,0x7E,0x71,0x7C,0x81,0x78,0x75,0x76,0x92,0x9A,0x8A,0x8E,0x81, - 0x85,0x8E,0x72,0x6D,0x75,0x7A,0x84,0x80,0x7E,0x86,0x92,0x8F,0x84,0x84,0x7F,0x84, - 0x87,0x7F,0x82,0x80,0x7A,0x79,0x8D,0x9F,0x8F,0x93,0x8F,0x7D,0x8B,0x7D,0x6D,0x73, - 0x73,0x78,0x7D,0x7E,0x79,0x82,0x86,0x79,0x7D,0x75,0x6D,0x79,0x75,0x74,0x76,0x6F, - 0x6A,0x77,0x93,0x8C,0x87,0x8A,0x78,0x7F,0x7F,0x73,0x72,0x72,0x79,0x80,0x88,0x83, - 0x81,0x87,0x81,0x82,0x83,0x7A,0x7E,0x81,0x80,0x81,0x7B,0x76,0x77,0x8C,0x98,0x91, - 0x8E,0x7F,0x7A,0x82,0x80,0x7D,0x78,0x75,0x78,0x82,0x88,0x85,0x83,0x7D,0x7C,0x83, - 0x80,0x7B,0x7C,0x79,0x7B,0x7C,0x79,0x75,0x78,0x8A,0x8F,0x93,0x8F,0x7B,0x78,0x79, - 0x77,0x7E,0x7F,0x7A,0x79,0x80,0x83,0x88,0x8C,0x84,0x81,0x83,0x7F,0x83,0x86,0x7F, - 0x81,0x7E,0x7A,0x7C,0x87,0x90,0x91,0x93,0x89,0x7E,0x7C,0x7A,0x7A,0x7B,0x7B,0x77, - 0x78,0x7C,0x7D,0x83,0x84,0x80,0x7E,0x7B,0x79,0x7C,0x7A,0x79,0x79,0x76,0x74,0x73, - 0x7E,0x88,0x8C,0x8D,0x85,0x7D,0x79,0x76,0x76,0x7A,0x7C,0x78,0x7B,0x7D,0x7B,0x83, - 0x85,0x84,0x85,0x82,0x80,0x7F,0x7D,0x7F,0x80,0x7F,0x7D,0x7A,0x80,0x8B,0x90,0x92, - 0x8E,0x85,0x7F,0x7A,0x76,0x7C,0x80,0x7D,0x81,0x7D,0x7A,0x81,0x80,0x80,0x85,0x83, - 0x80,0x7F,0x7A,0x7A,0x7E,0x7C,0x7B,0x7B,0x7F,0x85,0x89,0x8C,0x89,0x82,0x7F,0x7A, - 0x75,0x7B,0x7B,0x7C,0x82,0x7E,0x7F,0x82,0x7E,0x80,0x84,0x83,0x83,0x82,0x7D,0x7E, - 0x7E,0x7C,0x7D,0x7E,0x83,0x89,0x8A,0x8C,0x86,0x82,0x80,0x79,0x77,0x7C,0x7A,0x7B, - 0x7F,0x79,0x7C,0x7E,0x79,0x7D,0x80,0x7E,0x80,0x7F,0x79,0x79,0x79,0x78,0x78,0x7A, - 0x81,0x84,0x85,0x89,0x84,0x7E,0x80,0x7A,0x78,0x7E,0x7A,0x7B,0x7E,0x7A,0x7D,0x7D, - 0x7C,0x81,0x82,0x81,0x82,0x80,0x7E,0x7F,0x7D,0x7E,0x7D,0x7F,0x87,0x87,0x89,0x8A, - 0x83,0x82,0x82,0x7D,0x7F,0x83,0x7E,0x81,0x7F,0x7B,0x7F,0x7C,0x7C,0x81,0x7F,0x81, - 0x83,0x7D,0x7D,0x7F,0x7D,0x7E,0x7C,0x7F,0x84,0x85,0x87,0x86,0x80,0x81,0x7F,0x7C, - 0x81,0x80,0x7F,0x83,0x7D,0x7C,0x80,0x7C,0x7E,0x82,0x7F,0x82,0x83,0x7D,0x80,0x81, - 0x7F,0x80,0x7F,0x84,0x86,0x87,0x8B,0x84,0x80,0x85,0x7F,0x7D,0x84,0x7F,0x80,0x84, - 0x7B,0x7C,0x7F,0x79,0x7C,0x7E,0x7D,0x81,0x7E,0x7C,0x7F,0x7E,0x7E,0x7C,0x7E,0x85, - 0x84,0x87,0x89,0x80,0x82,0x84,0x7D,0x81,0x82,0x7E,0x84,0x82,0x7D,0x80,0x7D,0x7B, - 0x7F,0x7C,0x81,0x7E,0x8A,0x8F,0x7B,0x8A,0x6D,0x67,0x86,0x78,0x6A,0x79,0x84,0x84, - 0x90,0x8C,0x8C,0x8E,0x8F,0xA0,0xA7,0x9A,0x95,0x96,0x8C,0x88,0x89,0x85,0x7D,0x6F, - 0x63,0x5D,0x56,0x55,0x55,0x53,0x5F,0x68,0x6F,0x74,0x75,0x7A,0x7D,0x7D,0x82,0x8A, - 0x86,0x8D,0x93,0x8B,0x91,0x9B,0xA0,0xAC,0xB9,0xB6,0xBB,0xBB,0xAF,0xAB,0xA3,0x9B, - 0x96,0x93,0x92,0x8F,0x8D,0x86,0x7D,0x7E,0x76,0x6F,0x74,0x6E,0x6B,0x6F,0x67,0x60, - 0x58,0x49,0x45,0x43,0x40,0x40,0x44,0x4A,0x4F,0x56,0x5D,0x64,0x6B,0x76,0x80,0x84, - 0x89,0x8C,0x8D,0x90,0x8F,0x95,0x98,0x9A,0xA6,0xAF,0xB3,0xB9,0xB9,0xB4,0xB7,0xB6, - 0xB5,0xAE,0xA7,0xA4,0x99,0x95,0x8F,0x85,0x8A,0x88,0x86,0x87,0x7F,0x73,0x6D,0x61, - 0x54,0x54,0x4F,0x4D,0x4B,0x46,0x49,0x4F,0x55,0x5A,0x5E,0x67,0x71,0x73,0x74,0x78, - 0x7D,0x81,0x7F,0x86,0x92,0x96,0x9F,0xA4,0xA1,0xA8,0xAA,0xA6,0xAF,0xB2,0xB0,0xB4, - 0xAD,0xA5,0xA2,0x9A,0x92,0x8D,0x86,0x83,0x81,0x7A,0x77,0x72,0x6E,0x6A,0x6D,0x75, - 0x7A,0x7C,0x73,0x6C,0x68,0x5D,0x52,0x4E,0x49,0x45,0x4B,0x3C,0x32,0x44,0x4E,0x59, - 0x66,0x69,0x6B,0x72,0x77,0x77,0x7B,0x79,0x7A,0x87,0x94,0x9F,0xA8,0xAC,0xA6,0xAC, - 0xB1,0xAD,0xB1,0xB4,0xBA,0xBC,0xBE,0xC0,0xBF,0xBF,0xBC,0xB6,0xAC,0xA3,0x9A,0x8D, - 0x81,0x77,0x6C,0x62,0x5B,0x63,0x66,0x63,0x63,0x52,0x49,0x4B,0x3D,0x3F,0x45,0x4C, - 0x57,0x56,0x57,0x5A,0x5F,0x62,0x66,0x6A,0x71,0x77,0x78,0x7F,0x88,0x8D,0x8E,0x94, - 0x9D,0xA3,0xA5,0xA6,0xA1,0x9C,0x98,0x91,0x94,0x94,0x98,0x9F,0x9B,0x9A,0x9E,0x9A, - 0x9C,0x9D,0x95,0x93,0x8F,0x8A,0x86,0x81,0x7B,0x7B,0x85,0x87,0x88,0x8A,0x84,0x76, - 0x6E,0x66,0x62,0x65,0x62,0x68,0x6D,0x65,0x65,0x63,0x5F,0x63,0x63,0x5F,0x60,0x61, - 0x62,0x61,0x60,0x63,0x68,0x70,0x76,0x79,0x7C,0x79,0x79,0x76,0x74,0x7D,0x83,0x85, - 0x87,0x82,0x85,0x88,0x86,0x8F,0x96,0x92,0x92,0x93,0x90,0x94,0x96,0x97,0x9F,0xA8, - 0xAB,0xB0,0xB1,0xA8,0x9D,0x98,0x96,0x98,0x9A,0x99,0x98,0x8F,0x88,0x89,0x8A,0x88, - 0x89,0x83,0x7B,0x76,0x72,0x71,0x6A,0x62,0x69,0x6F,0x72,0x74,0x6D,0x61,0x57,0x53, - 0x55,0x5B,0x60,0x5F,0x5B,0x56,0x55,0x58,0x5A,0x5E,0x60,0x60,0x63,0x67,0x6C,0x71, - 0x71,0x74,0x82,0x90,0x9C,0xA3,0x9F,0x95,0x91,0x94,0x9E,0xAE,0xB1,0xAD,0xA9,0xA3, - 0xA5,0xA8,0xA8,0xA4,0x9F,0x9C,0x9D,0x9E,0x9B,0x95,0x8A,0x8A,0x93,0x99,0x9C,0x96, - 0x88,0x7F,0x7D,0x7D,0x85,0x89,0x83,0x7F,0x7A,0x77,0x7C,0x7D,0x78,0x72,0x6F,0x72, - 0x79,0x79,0x74,0x6D,0x68,0x71,0x7D,0x81,0x7D,0x70,0x62,0x61,0x6A,0x6D,0x70,0x69, - 0x60,0x63,0x68,0x6D,0x6E,0x67,0x60,0x63,0x69,0x70,0x73,0x6A,0x62,0x5F,0x6B,0x80, - 0x86,0x84,0x7B,0x6E,0x6F,0x7D,0x85,0x8B,0x8A,0x83,0x88,0x91,0x94,0x94,0x8E,0x89, - 0x8E,0x95,0x99,0x9A,0x93,0x8C,0x87,0x91,0xA4,0xAC,0xA8,0x9C,0x8F,0x90,0x99,0x9C, - 0x9E,0x9E,0x97,0x9A,0xA1,0x9D,0x99,0x92,0x8D,0x94,0x9B,0x9A,0x99,0x93,0x8B,0x84, - 0x89,0x98,0x9E,0x9B,0x90,0x80,0x77,0x7C,0x7C,0x7A,0x79,0x72,0x71,0x75,0x71,0x6B, - 0x65,0x5F,0x60,0x65,0x65,0x63,0x5C,0x52,0x49,0x4C,0x5D,0x67,0x66,0x5F,0x54,0x50, - 0x59,0x5E,0x61,0x65,0x64,0x67,0x71,0x73,0x70,0x6E,0x70,0x78,0x80,0x82,0x83,0x81, - 0x7B,0x78,0x7F,0x92,0x9D,0x9E,0x98,0x8C,0x87,0x90,0x95,0x96,0x98,0x97,0x99,0x9F, - 0x9C,0x97,0x94,0x94,0x99,0xA0,0x9E,0x9B,0x99,0x93,0x8B,0x8F,0xA3,0xAD,0xAA,0x9F, - 0x92,0x8C,0x95,0x9A,0x98,0x99,0x98,0x98,0x9D,0x9A,0x90,0x8A,0x89,0x8C,0x8E,0x89, - 0x86,0x81,0x77,0x6E,0x70,0x81,0x88,0x83,0x78,0x6B,0x66,0x6D,0x6D,0x6A,0x6B,0x6C, - 0x6C,0x71,0x6D,0x65,0x63,0x65,0x68,0x6B,0x67,0x66,0x65,0x5D,0x55,0x5C,0x6E,0x73, - 0x6D,0x62,0x55,0x55,0x5D,0x5D,0x5C,0x5F,0x61,0x65,0x69,0x63,0x5E,0x62,0x68,0x6F, - 0x73,0x70,0x71,0x72,0x6D,0x6A,0x79,0x8D,0x92,0x8E,0x85,0x7C,0x7F,0x88,0x87,0x89, - 0x8D,0x8F,0x94,0x96,0x8E,0x8D,0x91,0x95,0x9B,0x9B,0x96,0x98,0x96,0x8F,0x90,0xA3, - 0xB2,0xB2,0xAB,0x9F,0x98,0x9F,0xA3,0x9E,0x9F,0xA2,0xA3,0xA6,0xA4,0x98,0x95,0x98, - 0x9B,0x9C,0x9A,0x98,0x97,0x92,0x85,0x85,0x9B,0xA4,0x9D,0x92,0x84,0x7F,0x85,0x82, - 0x79,0x7B,0x7D,0x7B,0x7B,0x74,0x69,0x69,0x6D,0x6F,0x6D,0x6A,0x6A,0x69,0x60,0x56, - 0x61,0x75,0x77,0x6F,0x66,0x5E,0x60,0x67,0x61,0x60,0x66,0x67,0x68,0x69,0x60,0x5B, - 0x61,0x65,0x66,0x66,0x65,0x65,0x62,0x58,0x56,0x6C,0x7B,0x77,0x6F,0x66,0x61,0x6A, - 0x6C,0x66,0x6B,0x72,0x76,0x78,0x75,0x6C,0x6F,0x78,0x7B,0x7C,0x7B,0x7D,0x7F,0x7A, - 0x72,0x7F,0x98,0x9E,0x98,0x91,0x89,0x8B,0x94,0x8F,0x8F,0x99,0x9F,0xA2,0xA2,0x9B, - 0x98,0x9F,0xA3,0xA3,0xA1,0xA1,0xA2,0xA0,0x94,0x92,0xA6,0xB4,0xAF,0xA5,0x9B,0x96, - 0x9C,0x9B,0x94,0x97,0x9D,0x9E,0x9B,0x95,0x8E,0x91,0x96,0x96,0x93,0x92,0x91,0x8E, - 0x87,0x7C,0x87,0x9C,0x9D,0x93,0x89,0x80,0x82,0x87,0x80,0x7D,0x84,0x89,0x86,0x81, - 0x77,0x72,0x78,0x7A,0x77,0x74,0x73,0x70,0x6A,0x5D,0x5B,0x70,0x7C,0x74,0x68,0x60, - 0x5C,0x62,0x61,0x59,0x5E,0x67,0x69,0x65,0x60,0x59,0x5D,0x63,0x64,0x62,0x63,0x65, - 0x63,0x5B,0x52,0x63,0x78,0x77,0x6C,0x66,0x62,0x67,0x6C,0x63,0x64,0x6F,0x76,0x75, - 0x72,0x6C,0x70,0x79,0x7B,0x79,0x7A,0x7D,0x7D,0x79,0x6E,0x77,0x90,0x98,0x90,0x89, - 0x85,0x85,0x8D,0x87,0x83,0x8B,0x95,0x97,0x93,0x8C,0x89,0x94,0x98,0x97,0x95,0x99, - 0x9A,0x97,0x8D,0x88,0x9E,0xB0,0xAB,0xA1,0x9B,0x98,0x9E,0x9E,0x93,0x98,0xA4,0xA9, - 0xA5,0x9D,0x95,0x9B,0xA1,0x9E,0x9B,0x9C,0x9E,0x9A,0x92,0x86,0x92,0xA8,0xA8,0x9C, - 0x94,0x8F,0x91,0x94,0x86,0x85,0x90,0x96,0x94,0x8C,0x82,0x81,0x88,0x86,0x82,0x7F, - 0x82,0x80,0x79,0x6B,0x6D,0x84,0x8C,0x82,0x78,0x71,0x6F,0x74,0x6C,0x64,0x6C,0x73, - 0x73,0x6D,0x65,0x5F,0x66,0x67,0x63,0x62,0x65,0x66,0x60,0x57,0x53,0x68,0x76,0x70, - 0x65,0x5E,0x5D,0x64,0x64,0x59,0x5C,0x66,0x6D,0x69,0x63,0x5C,0x62,0x6A,0x67,0x67, - 0x6A,0x6D,0x6A,0x63,0x5B,0x6C,0x81,0x7F,0x76,0x6E,0x6D,0x75,0x7A,0x70,0x71,0x7C, - 0x82,0x81,0x7C,0x76,0x79,0x83,0x83,0x81,0x82,0x87,0x86,0x80,0x77,0x84,0x9C,0x9C, - 0x93,0x8C,0x89,0x8E,0x94,0x8C,0x8B,0x96,0x9C,0x9C,0x97,0x91,0x92,0x9C,0x9A,0x96, - 0x96,0x9B,0x99,0x92,0x86,0x91,0xA9,0xA8,0x9C,0x94,0x90,0x93,0x97,0x8E,0x8A,0x94, - 0x98,0x97,0x92,0x8B,0x89,0x93,0x92,0x8D,0x8B,0x8E,0x8E,0x86,0x7B,0x82,0x9A,0x9B, - 0x92,0x88,0x82,0x83,0x89,0x82,0x7C,0x84,0x8A,0x8B,0x85,0x7C,0x79,0x82,0x84,0x7F, - 0x7D,0x7E,0x7C,0x73,0x69,0x73,0x8A,0x89,0x7F,0x77,0x72,0x73,0x78,0x6F,0x6B,0x76, - 0x7C,0x7D,0x77,0x6F,0x6D,0x76,0x78,0x73,0x73,0x76,0x74,0x6A,0x64,0x75,0x88,0x85, - 0x7C,0x73,0x70,0x75,0x76,0x6D,0x70,0x7A,0x7E,0x7D,0x77,0x71,0x75,0x7D,0x7A,0x75, - 0x77,0x79,0x73,0x67,0x69,0x81,0x8A,0x82,0x79,0x72,0x72,0x78,0x73,0x6B,0x74,0x7D, - 0x7F,0x7B,0x73,0x72,0x79,0x7F,0x7B,0x7B,0x7F,0x7E,0x76,0x6D,0x7B,0x90,0x8E,0x86, - 0x7F,0x7C,0x80,0x82,0x78,0x78,0x86,0x8C,0x8A,0x82,0x7D,0x7E,0x84,0x83,0x7F,0x82, - 0x83,0x7D,0x73,0x76,0x8F,0x97,0x8B,0x84,0x80,0x80,0x83,0x7E,0x76,0x81,0x8C,0x8B, - 0x89,0x82,0x7E,0x84,0x87,0x80,0x81,0x86,0x83,0x79,0x70,0x84,0x98,0x91,0x89,0x85, - 0x82,0x84,0x82,0x78,0x79,0x85,0x89,0x87,0x83,0x7F,0x81,0x87,0x83,0x7E,0x84,0x87, - 0x7F,0x72,0x79,0x92,0x95,0x8A,0x85,0x82,0x84,0x86,0x7F,0x7A,0x85,0x8D,0x89,0x84, - 0x7F,0x80,0x88,0x88,0x81,0x82,0x88,0x85,0x77,0x71,0x88,0x97,0x8C,0x83,0x7F,0x80, - 0x83,0x7E,0x75,0x79,0x86,0x89,0x82,0x7E,0x7C,0x80,0x85,0x7F,0x7A,0x81,0x85,0x7B, - 0x70,0x7B,0x93,0x93,0x86,0x83,0x82,0x84,0x84,0x7B,0x77,0x80,0x89,0x87,0x82,0x81, - 0x81,0x85,0x84,0x7D,0x7E,0x84,0x7E,0x6F,0x6E,0x86,0x92,0x87,0x80,0x7F,0x80,0x81, - 0x7C,0x73,0x75,0x82,0x85,0x7C,0x7B,0x7E,0x80,0x82,0x7D,0x7B,0x81,0x84,0x77,0x6C, - 0x7B,0x91,0x8C,0x81,0x81,0x83,0x85,0x83,0x7B,0x77,0x81,0x8A,0x84,0x7E,0x81,0x84, - 0x86,0x84,0x7D,0x7F,0x85,0x81,0x72,0x74,0x8D,0x93,0x84,0x81,0x83,0x83,0x81,0x7C, - 0x76,0x78,0x85,0x87,0x7D,0x7C,0x81,0x83,0x81,0x7C,0x7A,0x7E,0x7F,0x74,0x6A,0x7B, - 0x91,0x88,0x7B,0x7F,0x84,0x81,0x7A,0x76,0x75,0x7A,0x84,0x7E,0x78,0x7E,0x85,0x85, - 0x7F,0x7D,0x7F,0x80,0x7B,0x71,0x72,0x89,0x92,0x83,0x7C,0x83,0x8A,0x83,0x77,0x78, - 0x7C,0x81,0x83,0x7D,0x7C,0x82,0x88,0x85,0x7D,0x7D,0x84,0x81,0x77,0x71,0x7C,0x8F, - 0x8C,0x7E,0x7D,0x85,0x8B,0x80,0x74,0x79,0x80,0x82,0x7C,0x78,0x7F,0x84,0x85,0x82, - 0x7D,0x80,0x83,0x7E,0x75,0x72,0x81,0x8F,0x85,0x7A,0x7E,0x89,0x89,0x7B,0x75,0x7E, - 0x83,0x80,0x79,0x79,0x80,0x81,0x81,0x7E,0x7F,0x83,0x82,0x7D,0x77,0x79,0x87,0x88, - 0x7D,0x7C,0x83,0x8B,0x85,0x7B,0x7D,0x82,0x83,0x7F,0x7A,0x7E,0x82,0x7F,0x7F,0x7E, - 0x81,0x82,0x7F,0x7C,0x7A,0x7F,0x86,0x81,0x7D,0x80,0x85,0x88,0x82,0x7D,0x82,0x84, - 0x83,0x7E,0x7C,0x80,0x81,0x7F,0x7F,0x7F,0x83,0x83,0x7E,0x7B,0x7C,0x83,0x83,0x7E, - 0x80,0x83,0x86,0x86,0x81,0x82,0x85,0x83,0x83,0x80,0x7F,0x81,0x80,0x81,0x81,0x81, - 0x84,0x82,0x7E,0x7C,0x7E,0x83,0x80,0x7E,0x7F,0x81,0x86,0x84,0x7F,0x82,0x83,0x83, - 0x81,0x7C,0x7E,0x7F,0x7E,0x7F,0x7E,0x81,0x82,0x7F,0x7D,0x7C,0x7F,0x83,0x7F,0x7F, - 0x80,0x81,0x86,0x83,0x80,0x83,0x83,0x83,0x80,0x7D,0x80,0x80,0x7F,0x7F,0x7F,0x83, - 0x83,0x7F,0x7F,0x7E,0x82,0x84,0x80,0x81,0x82,0x83,0x85,0x82,0x83,0x85,0x83,0x83, - 0x80,0x7E,0x80,0x7F,0x7F,0x7E,0x7E,0x81,0x80,0x7E,0x7C,0x7C,0x81,0x81,0x7E,0x80, - 0x80,0x82,0x83,0x7F,0x81,0x83,0x81,0x81,0x7D,0x7D,0x80,0x7E,0x7E,0x7F,0x80,0x83, - 0x80,0x7E,0x7D,0x7D,0x82,0x81,0x80,0x84,0x83,0x85,0x85,0x81,0x84,0x85,0x82,0x82, - 0x7D,0x7E,0x80,0x7E,0x7D,0x7D,0x7E,0x7F,0x7D,0x7C,0x7B,0x7B,0x7F,0x7D,0x7D,0x80, - 0x80,0x82,0x82,0x7E,0x82,0x84,0x81,0x81,0x7D,0x7F,0x80,0x7D,0x7E,0x7E,0x80,0x81, - 0x7E,0x7F,0x7E,0x7C,0x81,0x80,0x7F,0x83,0x82,0x84,0x84,0x7F,0x82,0x84,0x82,0x81, - 0x7D,0x7E,0x80,0x7D,0x7C,0x7C,0x7D,0x7F,0x7D,0x7C,0x7B,0x7A,0x7F,0x7F,0x7C,0x7F, - 0x81,0x83,0x84,0x81,0x80,0x83,0x83,0x8D,0x86,0x64,0x72,0x88,0x87,0x73,0x7E,0x90, - 0x6C,0x73,0x7F,0x78,0x7A,0x86,0x90,0x7C,0x7C,0x88,0x8B,0x7C,0x7A,0x8E,0x81,0x75, - 0x76,0x7B,0x81,0x7D,0x80,0x84,0x78,0x74,0x7E,0x7C,0x7F,0x85,0x88,0x8B,0x87,0x83, - 0x81,0x7C,0x85,0x87,0x81,0x87,0x7F,0x87,0x7D,0x6C,0x88,0x85,0x6B,0x7C,0x7A,0x78, - 0x6F,0x62,0x7F,0x76,0x6B,0x7B,0x73,0x77,0x80,0x7C,0x77,0x6D,0x73,0x81,0x8C,0x89, - 0x79,0x7B,0x8F,0x8E,0x88,0x89,0x82,0x86,0x91,0x92,0x8C,0x91,0xA4,0x99,0x90,0x9B, - 0x8D,0x8C,0x9E,0xA8,0xA2,0x9B,0x9D,0x97,0x92,0x94,0x92,0x81,0x7E,0x8C,0x8F,0x90, - 0x92,0x84,0x77,0x79,0x73,0x6F,0x69,0x6C,0x7A,0x78,0x73,0x6C,0x65,0x68,0x6A,0x6E, - 0x6D,0x62,0x63,0x61,0x59,0x5D,0x58,0x58,0x5E,0x62,0x6B,0x6D,0x62,0x61,0x6B,0x67, - 0x5F,0x61,0x69,0x77,0x78,0x6D,0x6F,0x70,0x74,0x7F,0x78,0x77,0x7A,0x79,0x80,0x7F, - 0x81,0x88,0x8F,0x9A,0xA9,0xB1,0xAF,0xA6,0x9F,0x9F,0x9F,0x98,0x91,0x94,0x91,0x8F, - 0x8C,0x89,0x92,0x93,0x8C,0x87,0x84,0x82,0x7F,0x7D,0x7C,0x7C,0x7D,0x82,0x85,0x89, - 0x8A,0x85,0x89,0x8D,0x88,0x86,0x8A,0x8E,0x8D,0x8D,0x8C,0x91,0x95,0x90,0x8D,0x8D, - 0x8E,0x91,0x8B,0x8C,0x91,0x91,0x91,0x8C,0x8E,0x95,0x91,0x8C,0x94,0x98,0x8F,0x95, - 0x98,0x93,0x9C,0x98,0x90,0x98,0x9A,0x98,0x93,0x90,0x90,0x88,0x87,0x81,0x78,0x7E, - 0x77,0x6E,0x6F,0x6A,0x6C,0x69,0x6E,0x71,0x5B,0x5D,0x5D,0x5B,0x64,0x53,0x52,0x57, - 0x50,0x53,0x45,0x4A,0x5C,0x59,0x5B,0x5A,0x62,0x6C,0x5F,0x5C,0x5F,0x5D,0x59,0x51, - 0x6C,0x7B,0x69,0x72,0x74,0x72,0x76,0x61,0x65,0x73,0x75,0x7F,0x79,0x7F,0x90,0x90, - 0x8F,0x99,0xA2,0xA9,0xA7,0xA2,0xA6,0x9D,0x8E,0x8E,0xA0,0xAD,0xA0,0x94,0x96,0x9A, - 0x90,0x7C,0x7E,0x88,0x8C,0x8D,0x86,0x89,0x8C,0x88,0x81,0x7C,0x86,0x8C,0x85,0x85, - 0x86,0x7D,0x7D,0x76,0x87,0xA2,0x97,0x90,0x96,0x92,0x92,0x8A,0x84,0x96,0x9C,0x97, - 0x92,0x95,0x9F,0x97,0x8B,0x8E,0x95,0x9B,0x9E,0x9A,0x9C,0x9C,0x91,0x88,0x8C,0xA6, - 0xA8,0x9A,0x9B,0x97,0x95,0x91,0x83,0x89,0x90,0x8E,0x88,0x7F,0x82,0x7F,0x75,0x72, - 0x73,0x74,0x71,0x69,0x66,0x62,0x5C,0x55,0x4A,0x5B,0x6F,0x63,0x56,0x54,0x55,0x56, - 0x4C,0x46,0x54,0x60,0x63,0x5A,0x56,0x5C,0x5D,0x5C,0x5C,0x63,0x6B,0x69,0x62,0x62, - 0x64,0x68,0x68,0x64,0x79,0x91,0x83,0x75,0x74,0x7D,0x87,0x82,0x85,0x97,0xA7,0xA8, - 0x9C,0x98,0xA3,0xA3,0x9A,0x94,0x98,0xA0,0x98,0x8F,0x8A,0x88,0x87,0x80,0x78,0x8B, - 0x9E,0x8D,0x80,0x7C,0x81,0x86,0x7F,0x7F,0x89,0x8F,0x87,0x7D,0x7B,0x89,0x8D,0x86, - 0x86,0x8C,0x90,0x89,0x87,0x8B,0x90,0x8F,0x89,0x87,0x9C,0xAF,0x9F,0x8F,0x8A,0x8F, - 0x96,0x8F,0x8B,0x9B,0xA5,0x9B,0x8A,0x86,0x92,0x9B,0x98,0x94,0x98,0x9A,0x92,0x87, - 0x88,0x8E,0x8D,0x85,0x7C,0x8A,0x9E,0x96,0x82,0x79,0x7B,0x7F,0x78,0x6F,0x71,0x75, - 0x73,0x5D,0x53,0x5E,0x63,0x5F,0x59,0x5E,0x5E,0x55,0x50,0x51,0x55,0x58,0x54,0x47, - 0x50,0x6F,0x70,0x5E,0x57,0x57,0x5D,0x65,0x60,0x5D,0x69,0x71,0x62,0x55,0x5F,0x6B, - 0x6F,0x72,0x73,0x7A,0x79,0x73,0x6F,0x77,0x83,0x85,0x88,0x89,0xA3,0xB9,0xAA,0x9B, - 0x96,0x9A,0xA1,0x9D,0x96,0x9A,0x9F,0x97,0x87,0x82,0x8D,0x8E,0x87,0x83,0x83,0x86, - 0x81,0x78,0x7A,0x83,0x81,0x7C,0x76,0x7D,0x96,0x96,0x83,0x7A,0x7A,0x87,0x8A,0x85, - 0x8D,0x95,0x96,0x8E,0x87,0x8E,0x99,0x98,0x94,0x94,0x98,0x97,0x8E,0x8D,0x90,0x95, - 0x93,0x8D,0x8A,0x9B,0xAE,0xA1,0x95,0x8F,0x8E,0x99,0x96,0x8D,0x94,0x9B,0x95,0x87, - 0x84,0x89,0x8C,0x8D,0x86,0x83,0x87,0x80,0x75,0x72,0x78,0x77,0x6E,0x66,0x60,0x71, - 0x80,0x6E,0x5C,0x56,0x59,0x5F,0x56,0x55,0x5D,0x62,0x60,0x51,0x4D,0x55,0x5C,0x59, - 0x57,0x5F,0x64,0x61,0x5A,0x58,0x60,0x65,0x61,0x5D,0x5B,0x73,0x83,0x78,0x6A,0x67, - 0x6F,0x76,0x75,0x76,0x83,0x8E,0x8E,0x88,0x8C,0x9B,0xA4,0xA2,0x9F,0xA3,0xA3,0x9F, - 0x96,0x93,0x97,0x98,0x93,0x89,0x89,0x98,0xA2,0x92,0x82,0x7A,0x7E,0x83,0x79,0x76, - 0x84,0x89,0x7F,0x77,0x75,0x7B,0x84,0x85,0x82,0x87,0x8F,0x86,0x7E,0x84,0x8F,0x90, - 0x90,0x8A,0x87,0x9F,0xAF,0x9E,0x8E,0x8D,0x90,0x97,0x91,0x8F,0x9C,0xA1,0x9B,0x8F, - 0x8D,0x94,0x99,0x99,0x93,0x9A,0xA0,0x95,0x8A,0x89,0x94,0x95,0x90,0x89,0x81,0x94, - 0xA6,0x93,0x85,0x81,0x80,0x83,0x7C,0x75,0x7B,0x82,0x75,0x65,0x61,0x69,0x6E,0x68, - 0x61,0x64,0x67,0x62,0x56,0x54,0x5B,0x60,0x59,0x51,0x4C,0x5A,0x75,0x6B,0x5B,0x57, - 0x5B,0x64,0x60,0x5B,0x68,0x70,0x6B,0x60,0x5B,0x6A,0x75,0x6F,0x6D,0x74,0x7A,0x7B, - 0x75,0x78,0x83,0x8D,0x8C,0x89,0x8C,0x97,0xB2,0xB1,0x9F,0x98,0x99,0x9F,0x99,0x8F, - 0x98,0xA0,0x9B,0x8F,0x7F,0x88,0x91,0x88,0x82,0x80,0x83,0x82,0x79,0x73,0x77,0x82, - 0x80,0x79,0x74,0x74,0x8F,0x9C,0x8A,0x82,0x82,0x86,0x8A,0x84,0x8A,0x95,0x98,0x92, - 0x88,0x89,0x92,0x96,0x8F,0x8D,0x97,0x9C,0x91,0x8A,0x90,0x99,0x9C,0x95,0x8E,0x89, - 0x98,0xB0,0xA8,0x94,0x91,0x8F,0x94,0x91,0x89,0x92,0x9C,0x95,0x89,0x86,0x88,0x8A, - 0x85,0x81,0x83,0x84,0x7E,0x71,0x6F,0x72,0x6F,0x6C,0x66,0x5C,0x58,0x6A,0x7D,0x69, - 0x59,0x57,0x57,0x59,0x4F,0x50,0x5E,0x63,0x5B,0x52,0x4F,0x57,0x5F,0x5D,0x5E,0x66, - 0x69,0x65,0x5E,0x61,0x6A,0x6E,0x6C,0x66,0x64,0x6A,0x86,0x8D,0x7A,0x7A,0x7B,0x7F, - 0x84,0x80,0x87,0x9C,0xA2,0x98,0x90,0x94,0xA0,0x9E,0x97,0x9A,0x9E,0x9C,0x93,0x8A, - 0x8C,0x91,0x8D,0x86,0x82,0x78,0x7E,0x99,0x91,0x7A,0x71,0x71,0x79,0x76,0x6C,0x78, - 0x8A,0x85,0x7D,0x76,0x7C,0x87,0x7F,0x7E,0x89,0x8D,0x8D,0x88,0x82,0x85,0x8E,0x8F, - 0x89,0x8D,0x85,0x91,0xAD,0xA1,0x93,0x91,0x8F,0x95,0x92,0x83,0x92,0xA0,0x9C,0x96, - 0x8B,0x91,0x99,0x8E,0x8B,0x95,0x99,0x97,0x8E,0x89,0x8C,0x8B,0x88,0x84,0x86,0x79, - 0x7F,0x98,0x8D,0x79,0x73,0x6D,0x72,0x68,0x59,0x66,0x6D,0x6A,0x62,0x5A,0x58,0x5C, - 0x57,0x52,0x5A,0x5F,0x62,0x5E,0x5A,0x5D,0x60,0x60,0x5E,0x62,0x59,0x61,0x7E,0x76, - 0x68,0x6C,0x61,0x6D,0x6D,0x5E,0x6A,0x76,0x77,0x7A,0x7A,0x7A,0x84,0x86,0x88,0x8A, - 0x8D,0x95,0x99,0x97,0x97,0xA0,0x9D,0x99,0x9A,0x94,0x91,0xA5,0xA0,0x8F,0x97,0x89, - 0x87,0x86,0x7A,0x7B,0x7B,0x74,0x75,0x79,0x71,0x75,0x76,0x77,0x79,0x78,0x7A,0x7F, - 0x7E,0x7B,0x7E,0x80,0x80,0x80,0x81,0x80,0x8C,0x92,0x8D,0x91,0x91,0x90,0x94,0x96, - 0x90,0x93,0x93,0x90,0x94,0x96,0x90,0x93,0x97,0x96,0x9C,0x98,0x94,0x95,0x93,0x91, - 0x91,0x91,0x91,0x8F,0x88,0x87,0x90,0x8D,0x86,0x88,0x85,0x84,0x88,0x80,0x7A,0x79, - 0x75,0x73,0x71,0x6C,0x6C,0x6B,0x6A,0x70,0x6D,0x6B,0x6C,0x69,0x65,0x68,0x68,0x6A, - 0x6A,0x6B,0x64,0x65,0x76,0x72,0x6C,0x70,0x6E,0x6F,0x74,0x70,0x6C,0x6F,0x6E,0x74, - 0x77,0x72,0x73,0x76,0x7A,0x7E,0x7D,0x7C,0x7C,0x82,0x82,0x84,0x88,0x89,0x8C,0x87, - 0x7F,0x84,0x9B,0x90,0x86,0x91,0x82,0x8D,0x8F,0x82,0x84,0x7E,0x83,0x87,0x7F,0x7C, - 0x7D,0x7D,0x81,0x80,0x76,0x78,0x7D,0x7A,0x78,0x7A,0x7D,0x80,0x7C,0x7A,0x72,0x78, - 0x98,0x93,0x81,0x86,0x7B,0x87,0x8C,0x73,0x7A,0x84,0x8D,0x8F,0x81,0x80,0x8A,0x8D, - 0x89,0x86,0x86,0x8F,0x90,0x8F,0x89,0x8E,0x94,0x8D,0x89,0x88,0x84,0x81,0x9E,0xA7, - 0x97,0x95,0x8A,0x87,0x8F,0x7B,0x79,0x89,0x90,0x93,0x85,0x7B,0x85,0x8B,0x81,0x7D, - 0x7D,0x84,0x87,0x81,0x7D,0x7D,0x7B,0x7B,0x7D,0x79,0x7B,0x70,0x7D,0x9C,0x8A,0x7E, - 0x77,0x6D,0x78,0x74,0x69,0x73,0x7F,0x84,0x7F,0x73,0x70,0x7A,0x7B,0x74,0x75,0x7D, - 0x84,0x87,0x7D,0x7A,0x7E,0x7E,0x83,0x81,0x81,0x79,0x7B,0x9C,0x9F,0x8A,0x82,0x7A, - 0x7F,0x83,0x74,0x75,0x83,0x8D,0x8A,0x7D,0x74,0x77,0x7E,0x79,0x73,0x76,0x7D,0x81, - 0x7B,0x72,0x76,0x77,0x7A,0x79,0x7A,0x75,0x68,0x81,0x92,0x86,0x78,0x71,0x6F,0x7C, - 0x79,0x6D,0x76,0x83,0x87,0x83,0x75,0x70,0x7F,0x81,0x7E,0x7D,0x82,0x86,0x8A,0x83, - 0x7C,0x7E,0x80,0x86,0x85,0x83,0x77,0x7D,0x9B,0xA1,0x8E,0x80,0x78,0x78,0x85,0x80, - 0x78,0x7F,0x8A,0x8D,0x8A,0x7B,0x75,0x82,0x82,0x81,0x80,0x7F,0x84,0x87,0x82,0x7E, - 0x7F,0x7F,0x80,0x81,0x7C,0x72,0x7C,0x94,0x99,0x87,0x7A,0x71,0x74,0x80,0x7C,0x7A, - 0x7D,0x82,0x87,0x84,0x78,0x74,0x7A,0x81,0x83,0x80,0x7F,0x81,0x84,0x81,0x7F,0x7E, - 0x81,0x84,0x82,0x7E,0x77,0x82,0x97,0x9B,0x92,0x84,0x74,0x77,0x82,0x84,0x84,0x7F, - 0x7F,0x88,0x8B,0x84,0x7F,0x7C,0x7C,0x82,0x84,0x7F,0x7B,0x7D,0x80,0x7E,0x7C,0x7C, - 0x7D,0x7F,0x79,0x71,0x7E,0x8D,0x8A,0x87,0x7D,0x71,0x73,0x79,0x7B,0x7E,0x7B,0x79, - 0x7F,0x81,0x80,0x80,0x7E,0x7D,0x7F,0x81,0x81,0x7F,0x7E,0x80,0x7F,0x82,0x85,0x83, - 0x82,0x82,0x7E,0x87,0x8E,0x86,0x84,0x85,0x7D,0x7F,0x84,0x80,0x82,0x81,0x7B,0x7D, - 0x81,0x7F,0x7E,0x7F,0x7E,0x80,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x81,0x7C,0x7F, - 0x80,0x7C,0x81,0x81,0x7E,0x80,0x80,0x7E,0x82,0x83,0x80,0x83,0x7F,0x7B,0x7D,0x7C, - 0x7A,0x7C,0x7A,0x79,0x7C,0x7D,0x7E,0x7D,0x7E,0x7C,0x7F,0x83,0x80,0x81,0x82,0x82, - 0x84,0x87,0x82,0x81,0x84,0x7F,0x82,0x85,0x82,0x81,0x81,0x7E,0x7D,0x7E,0x7E,0x7E, - 0x7D,0x7C,0x7C,0x7D,0x7E,0x7E,0x7D,0x7F,0x7F,0x7E,0x80,0x7E,0x7E,0x7E,0x7F,0x82, - 0x81,0x7F,0x7F,0x7E,0x7C,0x80,0x80,0x7D,0x7F,0x7D,0x7B,0x7D,0x7C,0x7A,0x7A,0x79, - 0x7A,0x7C,0x7D,0x7E,0x7F,0x7F,0x81,0x83,0x84,0x83,0x83,0x84,0x81,0x83,0x87,0x83, - 0x80,0x84,0x80,0x82,0x86,0x82,0x81,0x81,0x7E,0x7D,0x80,0x7D,0x7D,0x7D,0x7A,0x7D, - 0x7F,0x7E,0x80,0x80,0x80,0x82,0x84,0x83,0x81,0x82,0x82,0x80,0x85,0x87,0x81,0x82, - 0x83,0x7E,0x82,0x85,0x80,0x81,0x7F,0x7C,0x7E,0x7E,0x7B,0x7B,0x7B,0x7A,0x7D,0x7E, - 0x7E,0x7F,0x80,0x81,0x82,0x83,0x84,0x82,0x81,0x82,0x83,0x88,0x86,0x82,0x85,0x83, - 0x81,0x86,0x85,0x84,0x85,0x7F,0x7F,0x81,0x7F,0x7D,0x7E,0x7B,0x7C,0x7F,0x7F,0x80, - 0x80,0x81,0x81,0x84,0x83,0x82,0x82,0x82,0x80,0x83,0x86,0x82,0x83,0x82,0x7E,0x81, - 0x84,0x7E,0x7F,0x7F,0x7A,0x7D,0x7D,0x7A,0x7A,0x79,0x77,0x7A,0x7C,0x7E,0x7F,0x7F, - 0x81,0x83,0x83,0x84,0x84,0x83,0x82,0x84,0x88,0x85,0x82,0x85,0x82,0x81,0x86,0x84, - 0x81,0x82,0x7E,0x7D,0x80,0x7E,0x7D,0x7D,0x7A,0x7D,0x7F,0x7E,0x82,0x81,0x7F,0x82, - 0x85,0x85,0x84,0x84,0x83,0x82,0x87,0x89,0x83,0x84,0x85,0x80,0x85,0x86,0x80,0x83, - 0x81,0x7C,0x7F,0x7F,0x7C,0x7D,0x7A,0x7A,0x7E,0x7A,0x8D,0x84,0x80,0x88,0x66,0x79, - 0x86,0x6D,0x67,0x75,0x82,0x8B,0x8E,0x8D,0x8F,0x89,0x93,0xA8,0xA1,0x9D,0xAB,0x9B, - 0x8D,0x83,0x71,0x85,0x81,0x5C,0x62,0x70,0x63,0x5B,0x59,0x52,0x5B,0x63,0x63,0x5A, - 0x53,0x65,0x6C,0x6E,0x7C,0x72,0x88,0xAB,0x8D,0x93,0xA9,0x9C,0xAF,0x92,0x99,0xC7, - 0xA1,0xA5,0xA5,0x90,0xAB,0xA5,0x8E,0x8B,0x8A,0x93,0x8A,0x71,0x7E,0x70,0x6D,0x7A, - 0x68,0x87,0x8E,0x6A,0x7B,0x89,0x77,0x81,0x6B,0x44,0x5A,0x62,0x5F,0x6C,0x63,0x56, - 0x5A,0x64,0x69,0x5E,0x7B,0x81,0x84,0x9F,0x9A,0x8A,0x86,0x8C,0x85,0x88,0x92,0xA9, - 0xB3,0x9D,0x96,0xA0,0x99,0xA3,0x9B,0x8E,0x95,0x83,0x85,0x7E,0x74,0x7B,0x70,0x69, - 0x67,0x74,0x7C,0x66,0x52,0x4D,0x4E,0x58,0x4C,0x3B,0x40,0x52,0x49,0x43,0x51,0x5C, - 0x69,0x66,0x75,0x83,0x82,0x95,0xAB,0x9C,0x90,0x87,0x8B,0x98,0x8F,0x90,0x93,0x91, - 0xA2,0xB1,0xBB,0xC3,0xB3,0xAE,0xBC,0xAD,0xA5,0xA4,0x8B,0x95,0x99,0x8C,0x9C,0x96, - 0x88,0x80,0x74,0x76,0x81,0x7A,0x78,0x73,0x5F,0x67,0x68,0x5C,0x5B,0x5D,0x6A,0x65, - 0x5F,0x63,0x5E,0x69,0x70,0x79,0x77,0x71,0x8E,0x94,0x86,0x96,0x91,0x87,0x9B,0x94, - 0xA1,0xA7,0x96,0x98,0x96,0x96,0x98,0x9D,0x98,0x8B,0x96,0x9D,0x94,0x99,0x96,0x90, - 0x96,0x8D,0x8C,0x8A,0x7C,0x6E,0x62,0x5A,0x4E,0x60,0x58,0x4D,0x6B,0x6B,0x65,0x56, - 0x3F,0x3A,0x42,0x4A,0x4F,0x4B,0x42,0x45,0x4B,0x4B,0x4D,0x54,0x55,0x54,0x53,0x5B, - 0x69,0x6F,0x7D,0x80,0x93,0xB1,0xBD,0xB4,0x99,0x93,0x9F,0x9E,0x99,0x9F,0xA2,0xA8, - 0x9C,0x85,0x84,0x86,0x81,0x8F,0x9D,0x8F,0x8B,0x97,0xA2,0xA9,0xA7,0xAE,0xBC,0xB7, - 0xB5,0xB8,0xAB,0xA2,0x95,0x92,0xA7,0xB2,0xA9,0x9A,0x8A,0x8D,0x90,0x91,0x8B,0x80, - 0x7E,0x85,0x86,0x6E,0x66,0x56,0x5D,0x6F,0x6B,0x6E,0x67,0x64,0x6D,0x72,0x64,0x5D, - 0x5E,0x64,0x6A,0x74,0x72,0x55,0x5C,0x5D,0x58,0x64,0x5C,0x61,0x66,0x69,0x74,0x75, - 0x70,0x78,0x7F,0x7D,0x8A,0x87,0x88,0x92,0x9D,0x9E,0xA1,0xA7,0x9B,0x9D,0xA4,0xA3, - 0x9A,0x94,0x95,0x94,0x93,0x8B,0x91,0x8A,0x82,0x8B,0x83,0x7C,0x77,0x7B,0x75,0x6A, - 0x6C,0x6B,0x71,0x76,0x7D,0x8A,0x8F,0x85,0x73,0x70,0x6D,0x6A,0x67,0x62,0x6A,0x74, - 0x7A,0x6A,0x55,0x53,0x5A,0x65,0x61,0x5C,0x68,0x6E,0x72,0x70,0x72,0x7A,0x6E,0x7D, - 0x8D,0x93,0x9B,0x8D,0x89,0x8B,0x92,0x9A,0x9A,0x9E,0xA5,0xA2,0x9E,0x96,0x95,0x9F, - 0xA7,0xB7,0xB1,0xA4,0xAB,0xB5,0xAF,0xA5,0xA1,0x99,0xAD,0xC4,0xC4,0xC3,0xAC,0xA2, - 0xB1,0xBC,0xBB,0xAB,0xA5,0xAC,0xAA,0x9F,0x91,0x8E,0x8C,0x89,0x88,0x78,0x6E,0x60, - 0x52,0x4D,0x41,0x46,0x46,0x3F,0x53,0x62,0x53,0x44,0x3C,0x33,0x42,0x46,0x40,0x3D, - 0x3D,0x41,0x37,0x32,0x2E,0x32,0x3E,0x40,0x45,0x44,0x47,0x55,0x51,0x55,0x65,0x62, - 0x6A,0x80,0x94,0x9D,0x93,0x8D,0x92,0xA1,0xB1,0xB1,0xB1,0xB5,0xB1,0xAC,0xA4,0xA0, - 0xA7,0xA3,0xA5,0x98,0x8E,0x97,0x91,0x9A,0xA6,0x9A,0x93,0x9A,0xA9,0xBA,0xBA,0x9C, - 0x8E,0x9E,0xA4,0xB4,0xBB,0xA4,0xA0,0x9D,0x9C,0xAC,0xA8,0xA6,0xA1,0x8F,0x90,0x8B, - 0x7F,0x85,0x85,0x85,0x89,0x7F,0x83,0x98,0x91,0x7E,0x75,0x70,0x78,0x7D,0x7F,0x76, - 0x6E,0x6F,0x60,0x5B,0x77,0x80,0x78,0x67,0x55,0x67,0x67,0x5F,0x54,0x3C,0x43,0x46, - 0x52,0x68,0x66,0x62,0x51,0x47,0x5E,0x63,0x5B,0x5C,0x5B,0x69,0x62,0x57,0x62,0x6B, - 0x73,0x75,0x73,0x71,0x70,0x6D,0x6C,0x63,0x5C,0x61,0x5C,0x6B,0x84,0x7C,0x68,0x6E, - 0x77,0x86,0x95,0x99,0xA9,0xB7,0xB9,0xB2,0xAE,0xB1,0xB7,0xBF,0xB9,0xB0,0xA8,0x99, - 0x97,0xA0,0xA4,0xA2,0x97,0x99,0xA7,0xA1,0x99,0x86,0x77,0x8C,0x92,0x8F,0x8E,0x81, - 0x7F,0x7F,0x7A,0x80,0x81,0x8A,0x93,0x8A,0x8B,0x87,0x77,0x7D,0x79,0x75,0x71,0x65, - 0x7F,0x88,0x7E,0x76,0x6C,0x75,0x81,0x87,0x84,0x86,0x87,0x6E,0x63,0x73,0x80,0x89, - 0x83,0x74,0x75,0x78,0x7B,0x78,0x65,0x60,0x60,0x5B,0x6A,0x6D,0x5A,0x49,0x46,0x58, - 0x64,0x5F,0x65,0x6C,0x67,0x5A,0x4D,0x56,0x62,0x74,0x7C,0x6B,0x69,0x71,0x6F,0x79, - 0x7F,0x79,0x71,0x6E,0x88,0x90,0x71,0x5E,0x5C,0x67,0x7A,0x7F,0x7E,0x81,0x7D,0x81, - 0x88,0x93,0xA0,0xA1,0xA4,0xA5,0xB0,0xB1,0xA6,0xB3,0xB8,0xB1,0xAC,0xAE,0xC1,0xC0, - 0xA5,0x90,0x85,0x89,0x8D,0x86,0x8A,0x90,0x8A,0x81,0x80,0x8D,0x98,0x9A,0x91,0x89, - 0x85,0x84,0x86,0x88,0x7D,0x76,0x7D,0x7F,0x8E,0x8F,0x7F,0x7F,0x7F,0x86,0x7F,0x77, - 0x7A,0x7C,0x7E,0x6C,0x6A,0x79,0x7D,0x83,0x84,0x79,0x7C,0x7E,0x81,0x87,0x80,0x76, - 0x65,0x72,0x86,0x7C,0x68,0x56,0x59,0x69,0x6B,0x63,0x68,0x64,0x58,0x59,0x5E,0x61, - 0x5C,0x5E,0x5A,0x5F,0x6A,0x67,0x6B,0x6A,0x70,0x71,0x60,0x6B,0x77,0x70,0x67,0x60, - 0x6D,0x73,0x6E,0x77,0x83,0x83,0x7A,0x6F,0x74,0x87,0x8A,0x81,0x7D,0x7F,0x87,0x93, - 0x94,0x92,0x95,0x95,0xA7,0xC1,0xBF,0xAB,0xA6,0xA9,0xB5,0xB3,0xA3,0xA9,0xAC,0xA3, - 0x96,0x96,0xA0,0xA2,0xA0,0x9A,0xA0,0xA1,0x9E,0x9E,0x97,0x96,0x9F,0x98,0x9D,0xB2, - 0xA7,0x95,0x8A,0x8B,0x9A,0x9E,0x9D,0x9C,0x9B,0x99,0x93,0x8F,0x92,0x94,0x8A,0x86, - 0x88,0x89,0x83,0x7C,0x88,0x82,0x74,0x80,0x92,0x92,0x7F,0x6E,0x6C,0x6F,0x73,0x69, - 0x69,0x73,0x6A,0x5F,0x58,0x64,0x6D,0x6A,0x65,0x58,0x5F,0x65,0x5A,0x59,0x55,0x52, - 0x55,0x5E,0x6D,0x68,0x51,0x47,0x51,0x60,0x63,0x5A,0x5B,0x62,0x46,0x3C,0x50,0x61, - 0x57,0x53,0x72,0x5A,0x52,0x67,0x65,0x6B,0x74,0x79,0x6F,0x7E,0x90,0x86,0x7D,0x73, - 0x8D,0x93,0x84,0x8B,0x95,0xA0,0x9C,0x97,0xAB,0xBE,0xA9,0x9F,0xA2,0xA5,0xA5,0xA8, - 0xAE,0x9D,0xA0,0xA3,0xAB,0xC6,0xBF,0xAB,0x9E,0x9F,0xB2,0xB2,0xAA,0xA9,0xA1,0x9A, - 0x97,0x96,0x9F,0xAA,0x9F,0x9F,0xA4,0xA0,0xA3,0x9E,0xA0,0xA3,0x98,0x99,0xAC,0xAD, - 0x9E,0x92,0x97,0xA3,0x97,0x94,0xA5,0xA2,0x98,0x8F,0x88,0x91,0x94,0x8C,0x87,0x7F, - 0x87,0x81,0x74,0x78,0x6F,0x6E,0x6F,0x7A,0x80,0x70,0x61,0x55,0x5A,0x62,0x5C,0x5A, - 0x5B,0x5A,0x50,0x46,0x4A,0x50,0x52,0x51,0x45,0x44,0x49,0x49,0x4C,0x47,0x3F,0x33, - 0x47,0x64,0x5B,0x51,0x42,0x3E,0x52,0x4E,0x4D,0x5A,0x55,0x4B,0x46,0x4D,0x5D,0x63, - 0x5E,0x62,0x6B,0x74,0x74,0x74,0x79,0x7F,0x81,0x85,0x99,0x97,0x85,0x81,0x88,0x91, - 0x8F,0x87,0x8D,0x99,0x98,0x8A,0x89,0x94,0x9B,0x9E,0x9B,0x96,0x97,0x96,0x93,0x96, - 0x96,0x8C,0x8C,0xA4,0xAD,0x9F,0x94,0x98,0xA7,0xA8,0xA5,0xAE,0xB3,0xAE,0xA0,0xA0, - 0xAA,0xB1,0xAF,0xA2,0x9D,0xA3,0xA7,0xA7,0xA2,0x9D,0x9E,0x99,0xA4,0xAF,0x9F,0x8D, - 0x87,0x8E,0x95,0x8F,0x89,0x8B,0x8C,0x81,0x7A,0x83,0x87,0x86,0x7C,0x77,0x78,0x75, - 0x70,0x6D,0x6C,0x6D,0x61,0x67,0x7D,0x77,0x61,0x53,0x5E,0x69,0x62,0x5E,0x62,0x5E, - 0x57,0x4F,0x54,0x61,0x63,0x62,0x5E,0x5C,0x62,0x60,0x5D,0x5F,0x63,0x5F,0x5F,0x74, - 0x78,0x6B,0x69,0x73,0x81,0x87,0x85,0x8E,0x92,0x8C,0x81,0x7F,0x8F,0x96,0x91,0x87, - 0x81,0x83,0x85,0x82,0x7F,0x7D,0x72,0x76,0x91,0x90,0x79,0x6E,0x71,0x7E,0x7E,0x78, - 0x7D,0x7C,0x75,0x6D,0x76,0x84,0x83,0x79,0x78,0x80,0x89,0x84,0x82,0x88,0x8C,0x8F, - 0x8E,0x9E,0x9E,0x8C,0x8C,0x91,0x95,0x96,0x91,0x96,0x97,0x90,0x81,0x80,0x90,0x8F, - 0x88,0x84,0x81,0x82,0x80,0x7E,0x7F,0x7C,0x6D,0x73,0x8A,0x85,0x6D,0x65,0x6C,0x73, - 0x72,0x6F,0x77,0x72,0x65,0x5D,0x64,0x73,0x70,0x67,0x65,0x69,0x6D,0x67,0x69,0x6D, - 0x6B,0x63,0x65,0x7A,0x7A,0x65,0x60,0x6A,0x73,0x75,0x75,0x7F,0x80,0x75,0x6F,0x77, - 0x86,0x8E,0x8D,0x8E,0x91,0x92,0x96,0x98,0x9C,0x97,0x8A,0xA2,0xB4,0xA3,0x8D,0x88, - 0x95,0x99,0x91,0x90,0x96,0x8F,0x81,0x7E,0x88,0x90,0x8E,0x85,0x85,0x8C,0x8A,0x84, - 0x80,0x83,0x87,0x83,0x92,0x9E,0x92,0x83,0x85,0x91,0x95,0x91,0x91,0x97,0x95,0x8E, - 0x88,0x8F,0x99,0x97,0x97,0x96,0x94,0x92,0x8C,0x8D,0x90,0x82,0x82,0x99,0x9B,0x86, - 0x78,0x7C,0x86,0x87,0x7E,0x81,0x87,0x7B,0x6E,0x6E,0x7C,0x82,0x7D,0x78,0x75,0x77, - 0x74,0x71,0x70,0x72,0x6E,0x6E,0x80,0x7D,0x6B,0x62,0x69,0x74,0x75,0x6E,0x70,0x77, - 0x72,0x66,0x66,0x74,0x76,0x75,0x77,0x76,0x76,0x79,0x79,0x7D,0x80,0x73,0x86,0xA1, - 0x94,0x80,0x7C,0x8A,0x93,0x89,0x88,0x95,0x90,0x81,0x79,0x83,0x90,0x8C,0x85,0x86, - 0x87,0x85,0x7E,0x7A,0x7B,0x7D,0x7B,0x84,0x91,0x87,0x78,0x73,0x7C,0x83,0x81,0x7F, - 0x86,0x85,0x7B,0x78,0x83,0x8C,0x8A,0x85,0x87,0x8A,0x85,0x83,0x83,0x85,0x7E,0x7C, - 0x97,0x9C,0x85,0x7B,0x81,0x89,0x89,0x83,0x8E,0x93,0x84,0x7B,0x7B,0x86,0x8D,0x86, - 0x80,0x83,0x86,0x80,0x78,0x79,0x7E,0x79,0x78,0x8D,0x90,0x7D,0x6E,0x71,0x7E,0x7F, - 0x79,0x7E,0x83,0x7A,0x6F,0x6F,0x7C,0x80,0x7B,0x7A,0x7C,0x79,0x76,0x77,0x77,0x77, - 0x6E,0x7C,0x8F,0x81,0x71,0x72,0x7B,0x7F,0x7A,0x7C,0x8B,0x86,0x77,0x71,0x7D,0x8B, - 0x8A,0x86,0x86,0x89,0x89,0x83,0x7F,0x86,0x8A,0x81,0x8B,0x9B,0x90,0x7B,0x75,0x7F, - 0x86,0x84,0x80,0x88,0x85,0x76,0x70,0x79,0x85,0x81,0x80,0x81,0x7C,0x79,0x76,0x77, - 0x7D,0x76,0x76,0x8F,0x8F,0x7B,0x75,0x79,0x7F,0x7E,0x78,0x83,0x8B,0x7C,0x71,0x71, - 0x80,0x87,0x81,0x81,0x83,0x81,0x7D,0x79,0x7C,0x81,0x7B,0x7C,0x90,0x91,0x7E,0x73, - 0x7B,0x82,0x82,0x7C,0x82,0x89,0x7D,0x71,0x73,0x7F,0x80,0x7E,0x80,0x80,0x7D,0x79, - 0x78,0x7C,0x77,0x70,0x85,0x91,0x7F,0x70,0x74,0x7C,0x80,0x7C,0x7E,0x8B,0x82,0x72, - 0x6F,0x7A,0x81,0x7B,0x7A,0x7F,0x80,0x7A,0x76,0x77,0x7B,0x74,0x76,0x91,0x92,0x7F, - 0x75,0x7E,0x89,0x8B,0x87,0x8D,0x94,0x89,0x7D,0x81,0x8C,0x8B,0x87,0x85,0x87,0x86, - 0x81,0x7D,0x7D,0x78,0x73,0x89,0x92,0x7E,0x6E,0x72,0x7B,0x7C,0x77,0x7B,0x87,0x7D, - 0x71,0x70,0x7C,0x82,0x7D,0x7E,0x81,0x84,0x7F,0x78,0x7A,0x81,0x79,0x7F,0x95,0x8F, - 0x7C,0x76,0x7D,0x82,0x81,0x80,0x8A,0x89,0x79,0x73,0x79,0x81,0x83,0x80,0x81,0x84, - 0x81,0x7E,0x7B,0x7D,0x76,0x7C,0x95,0x92,0x7D,0x75,0x7C,0x80,0x7E,0x7C,0x85,0x88, - 0x79,0x71,0x76,0x80,0x81,0x7E,0x83,0x89,0x83,0x7E,0x7D,0x80,0x7C,0x75,0x8D,0x98, - 0x85,0x76,0x79,0x7E,0x7F,0x7C,0x80,0x8B,0x81,0x74,0x72,0x79,0x80,0x7F,0x7D,0x81, - 0x80,0x7D,0x7E,0x80,0x7D,0x76,0x90,0x9D,0x89,0x7C,0x80,0x85,0x84,0x81,0x87,0x92, - 0x87,0x7A,0x79,0x80,0x83,0x7F,0x7F,0x82,0x80,0x7A,0x77,0x77,0x77,0x6F,0x7D,0x95, - 0x89,0x76,0x76,0x7B,0x7F,0x7B,0x7D,0x8B,0x86,0x78,0x75,0x7C,0x83,0x80,0x80,0x83, - 0x81,0x7C,0x79,0x79,0x7D,0x73,0x7E,0x97,0x8E,0x7D,0x7C,0x82,0x84,0x83,0x84,0x8F, - 0x8C,0x7D,0x78,0x7F,0x87,0x85,0x84,0x88,0x86,0x81,0x7F,0x7C,0x7D,0x76,0x7A,0x94, - 0x90,0x7B,0x76,0x7C,0x7D,0x7D,0x7C,0x89,0x8C,0x7D,0x75,0x7A,0x84,0x82,0x80,0x87, - 0x88,0x81,0x7F,0x7E,0x82,0x7B,0x78,0x90,0x92,0x7D,0x76,0x7B,0x7C,0x7B,0x7B,0x84, - 0x8C,0x82,0x77,0x7A,0x83,0x84,0x82,0x85,0x89,0x80,0x79,0x7A,0x7E,0x7E,0x7C,0x93, - 0x9D,0x89,0x7D,0x80,0x7C,0x78,0x79,0x83,0x92,0x89,0x7D,0x7F,0x85,0x84,0x82,0x85, - 0x88,0x81,0x7A,0x76,0x74,0x71,0x69,0x7C,0x92,0x85,0x78,0x80,0x83,0x82,0x80,0x82, - 0x8E,0x86,0x76,0x75,0x7C,0x7D,0x7C,0x83,0x8B,0x89,0x83,0x81,0x7F,0x7F,0x77,0x84, - 0x9D,0x93,0x7E,0x80,0x86,0x81,0x7A,0x7D,0x8D,0x87,0x76,0x75,0x78,0x7B,0x7B,0x7E, - 0x87,0x86,0x7E,0x7D,0x7B,0x7B,0x73,0x78,0x91,0x8F,0x7B,0x7A,0x7E,0x7C,0x7D,0x81, - 0x90,0x8D,0x7C,0x7D,0x87,0x84,0x7F,0x7F,0x82,0x83,0x81,0x80,0x7A,0x78,0x71,0x79, - 0x95,0x8F,0x75,0x75,0x82,0x7F,0x76,0x79,0x8B,0x8D,0x83,0x7F,0x82,0x83,0x7D,0x7E, - 0x84,0x81,0x7B,0x7D,0x7F,0x92,0x85,0x68,0x71,0x7B,0x7E,0x8C,0x91,0x84,0x7A,0x75, - 0x82,0x84,0x7A,0x81,0x8B,0x92,0x94,0x8F,0x92,0x96,0x8E,0x84,0x81,0x81,0x6F,0x6D, - 0x7F,0x72,0x5E,0x63,0x60,0x5D,0x64,0x6B,0x7D,0x88,0x86,0x83,0x84,0x83,0x87,0x8E, - 0x92,0x8D,0x83,0x7B,0x7C,0x83,0x76,0x81,0x99,0xA5,0x9A,0x8D,0x97,0x8A,0x73,0x71, - 0x7D,0x70,0x7B,0x95,0x8F,0x89,0x80,0x71,0x7C,0x88,0x6D,0x5A,0x57,0x5E,0x63,0x6B, - 0x7F,0x7C,0x75,0x77,0x72,0x7D,0x87,0x92,0xAD,0xA4,0x94,0xB3,0xAA,0x7B,0x81,0x7E, - 0x67,0x66,0x76,0x7F,0x8D,0x9E,0x9E,0x9F,0xA7,0x9C,0x88,0x7A,0x58,0x3D,0x53,0x79, - 0x79,0x7C,0x8E,0x7F,0x6C,0x75,0x71,0x73,0x8E,0x92,0x9A,0x9A,0x8F,0x82,0x7E,0x92, - 0x86,0x75,0x79,0x71,0x73,0x5E,0x4E,0x66,0x72,0x73,0x80,0x88,0x75,0x5E,0x64,0x75, - 0x7D,0x8B,0x88,0x81,0x83,0x7A,0x98,0xB5,0xA2,0x99,0x96,0xA9,0xA8,0x88,0x8E,0x9A, - 0x91,0x88,0x80,0x77,0x76,0x61,0x58,0x61,0x52,0x61,0x76,0x78,0x79,0x86,0xA1,0x98, - 0x7D,0x90,0x95,0x7A,0x75,0x79,0x73,0x71,0x63,0x68,0x82,0x88,0x94,0x94,0x91,0x8D, - 0x85,0x7E,0x81,0x82,0x70,0x81,0xA4,0x97,0x86,0x8C,0x85,0x74,0x67,0x70,0x7F,0x77, - 0x64,0x69,0x7B,0x78,0x6F,0x80,0x97,0x8E,0x72,0x66,0x60,0x58,0x5E,0x73,0x8D,0x8E, - 0x90,0xA1,0x9A,0x8F,0x9C,0x9E,0xAB,0xA6,0x8E,0x95,0x78,0x6B,0x6B,0x59,0x5D,0x65, - 0x73,0x76,0x61,0x5D,0x7C,0x94,0x7C,0x7C,0x89,0x83,0x7D,0x7A,0x97,0xA0,0x94,0x8D, - 0x8B,0x8C,0x84,0x81,0x93,0xAD,0x99,0x85,0x8F,0x8A,0x73,0x6D,0x7B,0x82,0x89,0x79, - 0x6E,0x6A,0x5C,0x58,0x70,0x7B,0x6C,0x76,0x80,0x82,0x8E,0x8A,0x7F,0x8C,0x84,0x6F, - 0x7D,0x75,0x70,0x8A,0x7E,0x75,0x89,0x8D,0x83,0x83,0x7C,0x82,0x9B,0x9D,0x81,0x87, - 0x89,0x6E,0x80,0x85,0x76,0x78,0x73,0x73,0x7B,0x6C,0x71,0x89,0x76,0x6E,0x75,0x77, - 0x73,0x67,0x89,0xAD,0x92,0x8A,0x9A,0x97,0x91,0x84,0x7E,0x84,0x92,0x98,0x83,0x8A, - 0x8B,0x82,0x98,0x88,0x7B,0x7D,0x6B,0x68,0x71,0x77,0x77,0x6E,0x64,0x6D,0x6D,0x65, - 0x69,0x78,0x7B,0x78,0x90,0x86,0x7B,0x8D,0x98,0xAB,0xA5,0x97,0xA3,0x90,0x7D,0x8D, - 0x91,0x9E,0x97,0x89,0x96,0x92,0x81,0x82,0x84,0x84,0x73,0x63,0x6E,0x64,0x55,0x67, - 0x8B,0x84,0x67,0x6A,0x6C,0x66,0x6C,0x77,0x81,0x87,0x7C,0x7A,0x7A,0x84,0x88,0x8B, - 0x8A,0x83,0x88,0x7E,0x8A,0x83,0x7C,0x9F,0x96,0x80,0x90,0x95,0x85,0x7A,0x73,0x75, - 0x75,0x6B,0x6E,0x78,0x81,0x75,0x6D,0x84,0x8B,0x85,0x7A,0x71,0x73,0x7A,0x95,0xA4, - 0x9D,0xA6,0xAA,0x91,0x84,0x7D,0x7F,0x80,0x72,0x7C,0x7C,0x78,0x69,0x66,0x81,0x76, - 0x6E,0x86,0x85,0x77,0x7B,0x8A,0x8C,0x80,0x88,0x8E,0x7C,0x62,0x63,0x77,0x6D,0x63, - 0x81,0x8A,0x88,0x8F,0x86,0x9A,0x9A,0x89,0x82,0x7B,0x7E,0x6E,0x7E,0x87,0x8F,0x97, - 0x93,0xA9,0xA2,0x97,0x9C,0x91,0x82,0x80,0x7A,0x73,0x6A,0x64,0x64,0x5D,0x63,0x5A, - 0x5F,0x66,0x59,0x75,0x80,0x76,0x80,0x86,0x89,0x8C,0x8F,0x99,0x9B,0x8B,0x87,0x95, - 0x93,0x83,0x85,0x88,0x7B,0x71,0x68,0x6A,0x68,0x5C,0x79,0x82,0x7F,0x88,0x84,0x87, - 0x82,0x77,0x84,0x85,0x7F,0x89,0x82,0x8D,0x81,0x78,0x83,0x83,0x88,0x88,0x92,0x88, - 0x81,0x95,0x90,0x7E,0x85,0x87,0x84,0x6C,0x5E,0x72,0x77,0x75,0x74,0x8C,0x85,0x71, - 0x76,0x76,0x85,0x79,0x7C,0x90,0x8A,0x8D,0x8C,0x82,0x81,0x81,0x76,0x73,0x78,0x73, - 0x7A,0x8D,0x8D,0x87,0xA0,0x92,0x81,0x88,0x7E,0x80,0x79,0x71,0x79,0x8F,0x95,0x8F, - 0x9F,0x98,0x8C,0x89,0x7D,0x87,0x87,0x6F,0x61,0x5E,0x61,0x5D,0x64,0x70,0x6E,0x75, - 0x76,0x7A,0x7C,0x72,0x87,0x8E,0x87,0x8E,0x94,0xA0,0x99,0x90,0x92,0x93,0x86,0x7A, - 0x80,0x79,0x71,0x6D,0x61,0x63,0x6C,0x67,0x68,0x73,0x7A,0x75,0x7B,0x85,0x95,0x9F, - 0x88,0x8E,0x93,0x8F,0x86,0x73,0x7D,0x7F,0x7E,0x7E,0x8E,0x96,0x8A,0x8A,0x85,0x89, - 0x7F,0x7C,0x86,0x81,0x75,0x71,0x74,0x72,0x7A,0x72,0x74,0x77,0x6C,0x85,0x86,0x88, - 0x8F,0x9E,0x95,0x78,0x83,0x7C,0x83,0x7E,0x74,0x7E,0x6B,0x63,0x6D,0x7B,0x83,0x7E, - 0x86,0x91,0x83,0x88,0x8E,0x7D,0x77,0x74,0x72,0x79,0x7F,0x80,0x91,0xA4,0xA3,0x9A, - 0xA7,0xB0,0x95,0x84,0x8C,0x88,0x78,0x69,0x6B,0x73,0x67,0x69,0x68,0x68,0x69,0x65, - 0x6F,0x77,0x74,0x71,0x72,0x7C,0x7A,0x7D,0x92,0x8D,0x86,0x8E,0x8A,0x8D,0x8F,0x86, - 0x80,0x74,0x6B,0x6A,0x7F,0x79,0x74,0x87,0x84,0x86,0x7E,0x89,0x87,0x7A,0x83,0x86, - 0x84,0x80,0x8D,0x8F,0x96,0x8F,0x86,0x90,0x83,0x63,0x67,0x8D,0x94,0x82,0x74,0x8D, - 0x79,0x53,0x69,0x79,0x81,0x7A,0x94,0x98,0x79,0x85,0x87,0x89,0x82,0x85,0x95,0x8F, - 0x80,0x7B,0x8E,0x8D,0x88,0x90,0x8D,0x6D,0x5D,0x5C,0x5C,0x64,0x5F,0x77,0x8A,0x80, - 0x83,0x81,0x8D,0x93,0x85,0x8D,0x94,0x92,0x8C,0x97,0xA6,0x94,0x91,0x98,0x8C,0x93, - 0x9C,0x8C,0x89,0x82,0x72,0x6F,0x71,0x61,0x67,0x70,0x68,0x6F,0x6F,0x6C,0x76,0x7B, - 0x71,0x79,0x77,0x6F,0x7E,0x7F,0x81,0x89,0x87,0x82,0x85,0x8A,0x86,0x88,0x8B,0x7C, - 0x7C,0x80,0x7E,0x82,0x87,0x82,0x73,0x78,0x88,0x8D,0x82,0x8A,0x91,0x81,0x80,0x71, - 0x72,0x8D,0x78,0x77,0x8A,0x79,0x7D,0x7E,0x85,0x92,0x8C,0x90,0x82,0x79,0x7C,0x7D, - 0x8C,0x84,0x7E,0x84,0x7B,0x7D,0x7E,0x83,0x8A,0x77,0x6E,0x7F,0x84,0x81,0x84,0x8D, - 0x97,0x8F,0x88,0x95,0x8C,0x7A,0x6D,0x72,0x66,0x50,0x6B,0x73,0x78,0x83,0x7B,0x87, - 0x8F,0x84,0x84,0x7C,0x7D,0x81,0x78,0x92,0x99,0x89,0xA4,0xA5,0x9B,0x9C,0x8E,0x9A, - 0x98,0x88,0x82,0x79,0x71,0x66,0x65,0x66,0x64,0x67,0x70,0x70,0x6D,0x6E,0x6D,0x73, - 0x72,0x72,0x7C,0x88,0x83,0x83,0x99,0x92,0x86,0x87,0x83,0x7F,0x7D,0x74,0x74,0x76, - 0x6E,0x78,0x7E,0x7F,0x85,0x88,0x94,0x94,0x8E,0x97,0x96,0x89,0x82,0x78,0x71,0x6D, - 0x72,0x7B,0x74,0x76,0x85,0x8A,0x7F,0x83,0x91,0x92,0x89,0x7D,0x78,0x77,0x7F,0x83, - 0x82,0x89,0x84,0x73,0x7D,0x88,0x77,0x7B,0x7F,0x7D,0x7F,0x74,0x75,0x7D,0x89,0x8E, - 0x98,0x99,0x86,0x84,0x80,0x7B,0x68,0x60,0x73,0x6F,0x71,0x75,0x7D,0x8D,0x86,0x8C, - 0x99,0x8E,0x7E,0x7F,0x7B,0x75,0x75,0x7B,0x9A,0x96,0x95,0x9F,0x99,0x99,0x90,0x94, - 0x92,0x88,0x77,0x72,0x76,0x64,0x60,0x6A,0x6B,0x61,0x68,0x6F,0x73,0x75,0x74,0x7B, - 0x7E,0x7F,0x83,0x91,0x90,0x84,0x85,0x8D,0x8F,0x7F,0x7C,0x89,0x80,0x6D,0x73,0x78, - 0x6D,0x6C,0x7A,0x84,0x7B,0x7C,0x8F,0x91,0x86,0x86,0x87,0x8F,0x87,0x79,0x8C,0x8D, - 0x74,0x6C,0x82,0x8A,0x78,0x78,0x8C,0x8A,0x7C,0x79,0x7E,0x80,0x77,0x7C,0x8A,0x78, - 0x6B,0x82,0x8C,0x84,0x84,0x8B,0x87,0x79,0x71,0x75,0x7B,0x7A,0x7F,0x8E,0x93,0x92, - 0x93,0x91,0x91,0x7E,0x68,0x70,0x6C,0x5F,0x6C,0x7E,0x7D,0x7B,0x89,0x95,0x88,0x7B, - 0x80,0x87,0x79,0x6E,0x85,0x92,0x81,0x81,0x90,0x95,0x8D,0x8C,0x9A,0xA3,0x9B,0x8D, - 0x84,0x86,0x76,0x61,0x76,0x7B,0x6D,0x67,0x80,0x85,0x65,0x75,0x7C,0x6A,0x6E,0x71, - 0x79,0x83,0x6F,0x7C,0x8D,0x78,0x7A,0x79,0x84,0x87,0x78,0x87,0x81,0x7A,0x77,0x70, - 0x86,0x7B,0x77,0x90,0x8C,0x86,0x8B,0x90,0x8D,0x86,0x7A,0x78,0x76,0x6E,0x7E,0x8C, - 0x85,0x7E,0x89,0x92,0x89,0x7E,0x88,0x8E,0x85,0x7B,0x80,0x8C,0x81,0x7B,0x80,0x89, - 0x80,0x71,0x83,0x7F,0x6F,0x69,0x6B,0x73,0x6D,0x6E,0x80,0x8F,0x95,0x92,0x9B,0x9D, - 0x8B,0x86,0x85,0x79,0x70,0x65,0x67,0x72,0x77,0x83,0x87,0x91,0x93,0x8F,0x92,0x82, - 0x79,0x76,0x70,0x74,0x7B,0x7C,0x8D,0x89,0x8D,0xA3,0x98,0x92,0x9B,0x9F,0x95,0x7C, - 0x7E,0x8B,0x6E,0x5D,0x65,0x70,0x6D,0x60,0x72,0x7B,0x7F,0x72,0x6D,0x87,0x7C,0x6C, - 0x75,0x85,0x83,0x76,0x82,0x8F,0x89,0x84,0x89,0x85,0x7D,0x76,0x7D,0x82,0x70,0x83, - 0x92,0x7D,0x82,0x87,0x83,0x92,0x84,0x7A,0x8C,0x7E,0x73,0x78,0x7A,0x7A,0x6D,0x72, - 0x83,0x80,0x7C,0x89,0x90,0x8C,0x88,0x86,0x8D,0x84,0x7C,0x8B,0x8B,0x82,0x83,0x8E, - 0x93,0x7F,0x74,0x73,0x6C,0x68,0x6B,0x78,0x81,0x86,0x86,0x90,0x96,0x8E,0x94,0x95, - 0x8B,0x7E,0x78,0x73,0x69,0x6A,0x74,0x78,0x77,0x7D,0x88,0x8A,0x7F,0x7F,0x88,0x80, - 0x78,0x73,0x76,0x7F,0x7C,0x85,0x8F,0x98,0xA4,0x97,0x9E,0xAA,0x9A,0x8E,0x85,0x80, - 0x74,0x70,0x6D,0x6C,0x71,0x71,0x6C,0x6A,0x6A,0x70,0x73,0x69,0x77,0x85,0x82,0x7D, - 0x81,0x8A,0x83,0x82,0x8C,0x8A,0x8C,0x8A,0x82,0x88,0x84,0x6F,0x6F,0x78,0x77,0x73, - 0x7A,0x88,0x83,0x85,0x8F,0x88,0x85,0x7C,0x74,0x7C,0x7B,0x7A,0x7D,0x84,0x7E,0x78, - 0x7E,0x7D,0x89,0x8D,0x89,0x90,0x92,0x88,0x80,0x85,0x86,0x83,0x84,0x85,0x84,0x81, - 0x78,0x6D,0x6B,0x70,0x6C,0x6A,0x79,0x7C,0x85,0x89,0x8A,0x9B,0xA0,0x99,0x91,0x91, - 0x82,0x6E,0x71,0x73,0x73,0x78,0x76,0x82,0x7E,0x7B,0x85,0x82,0x82,0x78,0x74,0x78, - 0x77,0x6F,0x78,0x86,0x84,0x8B,0x8F,0x9C,0x9D,0x96,0x99,0x9C,0x94,0x87,0x86,0x7F, - 0x77,0x77,0x78,0x75,0x77,0x77,0x76,0x7A,0x76,0x6A,0x6D,0x70,0x6B,0x6B,0x72,0x79, - 0x76,0x77,0x87,0x86,0x81,0x8D,0x90,0x87,0x7A,0x82,0x88,0x7C,0x71,0x76,0x7E,0x75, - 0x7D,0x88,0x8F,0x93,0x82,0x89,0x8B,0x7D,0x73,0x7A,0x8F,0x82,0x82,0x92,0x84,0x81, - 0x7F,0x84,0x89,0x7B,0x7E,0x82,0x83,0x83,0x7C,0x7F,0x8C,0x7F,0x7C,0x88,0x76,0x75, - 0x77,0x73,0x77,0x73,0x72,0x73,0x79,0x7D,0x7F,0x8A,0x94,0x90,0x90,0x93,0x83,0x80, - 0x82,0x71,0x6E,0x73,0x7B,0x81,0x7C,0x82,0x87,0x8D,0x87,0x80,0x8B,0x7F,0x72,0x7C, - 0x81,0x7E,0x85,0x82,0x80,0x87,0x86,0x84,0x88,0x8E,0x8B,0x87,0x86,0x81,0x7A,0x80, - 0x83,0x79,0x7B,0x8A,0x83,0x79,0x81,0x81,0x7B,0x76,0x74,0x76,0x76,0x73,0x79,0x80, - 0x80,0x83,0x84,0x86,0x88,0x80,0x7C,0x7E,0x70,0x72,0x7E,0x73,0x72,0x71,0x7B,0x8B, - 0x7B,0x7B,0x91,0x8A,0x7D,0x7E,0x89,0x8C,0x81,0x7D,0x84,0x84,0x7B,0x77,0x88,0x8D, - 0x87,0x8B,0x88,0x8C,0x82,0x76,0x83,0x85,0x82,0x83,0x82,0x81,0x81,0x81,0x7B,0x77, - 0x76,0x72,0x78,0x79,0x77,0x82,0x89,0x72,0x70,0x8A,0x83,0x6F,0x76,0x87,0x8D,0x91, - 0x8F,0x8C,0x88,0x80,0x89,0x97,0x93,0x91,0x91,0x91,0x8B,0x85,0x7E,0x77,0x70,0x64, - 0x65,0x69,0x67,0x61,0x68,0x79,0x7C,0x7B,0x75,0x77,0x77,0x6D,0x6E,0x76,0x7A,0x7E, - 0x82,0x8B,0x93,0x87,0x8D,0x9A,0x8E,0xA0,0xB4,0xAE,0x9D,0x9F,0xAC,0x90,0x8D,0x93, - 0x85,0x89,0x89,0x8B,0x86,0x7F,0x79,0x78,0x79,0x69,0x5E,0x62,0x5F,0x5D,0x6A,0x68, - 0x69,0x5A,0x49,0x50,0x51,0x4D,0x4C,0x59,0x5D,0x61,0x67,0x76,0x81,0x73,0x7A,0x8A, - 0x8E,0x92,0x94,0x94,0x99,0x95,0x8F,0xA2,0xAE,0xB5,0xBC,0xC2,0xC9,0xC7,0xC9,0xC5, - 0xC0,0xBA,0xA7,0x95,0x8D,0x92,0x93,0x90,0x98,0x93,0x88,0x80,0x74,0x70,0x69,0x60, - 0x57,0x57,0x5B,0x4A,0x43,0x4B,0x47,0x43,0x42,0x4A,0x52,0x4F,0x51,0x55,0x5F,0x64, - 0x69,0x78,0x80,0x7F,0x80,0x8D,0x8F,0x8E,0x90,0x8A,0x92,0x90,0x8E,0x96,0x86,0x7F, - 0x86,0x8C,0x8E,0x8A,0x84,0x76,0x75,0x79,0x75,0x70,0x69,0x69,0x6A,0x73,0x75,0x71, - 0x72,0x71,0x74,0x73,0x78,0x7B,0x83,0x8C,0x8C,0x89,0x7F,0x7D,0x87,0x89,0x8A,0x8B, - 0x8C,0x8C,0x86,0x83,0x86,0x85,0x82,0x82,0x8A,0x8E,0x86,0x89,0x8F,0x91,0x96,0x95, - 0xA0,0xA2,0x9F,0xAA,0xA9,0xAB,0xB3,0xB3,0xB6,0xBA,0xB5,0xAF,0xAF,0xAA,0xA2,0x9D, - 0x9D,0x9A,0x92,0x90,0x8A,0x82,0x7D,0x77,0x73,0x6E,0x65,0x61,0x64,0x5E,0x5A,0x5B, - 0x58,0x54,0x52,0x51,0x4F,0x49,0x46,0x4D,0x51,0x4F,0x55,0x5B,0x62,0x69,0x6C,0x79, - 0x7E,0x7E,0x84,0x89,0x8C,0x8C,0x8C,0x8D,0x91,0x94,0x95,0x9A,0x9D,0x9E,0xA2,0xA1, - 0x9C,0x9D,0x9C,0x9B,0x98,0x93,0x93,0x92,0x92,0x91,0x90,0x8E,0x8B,0x87,0x83,0x81, - 0x7C,0x75,0x74,0x70,0x64,0x61,0x5E,0x5A,0x57,0x50,0x4E,0x4B,0x46,0x46,0x47,0x44, - 0x40,0x40,0x41,0x3E,0x3E,0x42,0x42,0x43,0x46,0x48,0x4A,0x4F,0x56,0x59,0x5E,0x64, - 0x69,0x72,0x78,0x7E,0x85,0x8E,0x95,0x97,0xA1,0xB1,0xB5,0xB7,0xC0,0xCC,0xD1,0xCF, - 0xCF,0xD1,0xD6,0xD2,0xD0,0xD2,0xC7,0xC0,0xC2,0xC3,0xBE,0xB7,0xB3,0xB5,0xB6,0xB1, - 0xAA,0xA9,0xA4,0x9C,0x97,0x92,0x8A,0x86,0x8C,0x8B,0x82,0x7E,0x7F,0x7E,0x7A,0x6D, - 0x64,0x66,0x64,0x64,0x66,0x68,0x6F,0x79,0x7B,0x74,0x75,0x7A,0x75,0x6E,0x69,0x6D, - 0x71,0x6E,0x6C,0x6B,0x6B,0x74,0x79,0x71,0x70,0x73,0x70,0x6F,0x6E,0x6A,0x6F,0x75, - 0x76,0x7B,0x82,0x88,0x90,0x8A,0x85,0x92,0x93,0x8B,0x90,0x98,0x9A,0x98,0x95,0x97, - 0xA2,0xA9,0xA1,0x9D,0x9E,0x99,0x93,0x88,0x7D,0x83,0x8A,0x83,0x7E,0x80,0x81,0x7F, - 0x6D,0x5F,0x67,0x66,0x5D,0x5D,0x60,0x5E,0x53,0x49,0x4D,0x5C,0x59,0x48,0x46,0x4B, - 0x46,0x3E,0x36,0x39,0x46,0x48,0x44,0x4D,0x56,0x58,0x57,0x4E,0x53,0x61,0x5E,0x5D, - 0x66,0x6C,0x69,0x64,0x67,0x75,0x85,0x82,0x7E,0x8C,0x95,0x92,0x8F,0x94,0xA2,0xB1, - 0xB2,0xBA,0xC9,0xD0,0xD0,0xC7,0xC2,0xCB,0xCB,0xC1,0xC5,0xCA,0xC3,0xB8,0xAE,0xAC, - 0xBB,0xBB,0xA6,0xA5,0xAB,0x9D,0x8B,0x80,0x83,0x8D,0x83,0x7A,0x84,0x87,0x7F,0x74, - 0x6E,0x77,0x7C,0x74,0x77,0x82,0x81,0x78,0x76,0x76,0x82,0x91,0x85,0x80,0x8C,0x88, - 0x7C,0x75,0x76,0x82,0x86,0x7C,0x7F,0x87,0x84,0x7C,0x75,0x76,0x7C,0x74,0x71,0x7E, - 0x80,0x77,0x75,0x73,0x7A,0x8B,0x85,0x7C,0x86,0x85,0x75,0x6E,0x6B,0x71,0x79,0x71, - 0x72,0x7F,0x7D,0x77,0x74,0x72,0x79,0x79,0x75,0x7F,0x84,0x7C,0x74,0x70,0x6E,0x7B, - 0x83,0x76,0x7A,0x7F,0x70,0x66,0x63,0x64,0x6E,0x6D,0x6A,0x73,0x77,0x6D,0x69,0x67, - 0x67,0x6C,0x6D,0x71,0x7A,0x75,0x6B,0x6B,0x6B,0x75,0x86,0x7F,0x7A,0x85,0x7E,0x73, - 0x72,0x73,0x7C,0x7F,0x7A,0x81,0x89,0x81,0x79,0x78,0x78,0x7C,0x7D,0x81,0x8C,0x8B, - 0x81,0x80,0x80,0x82,0x94,0x9F,0x96,0x9D,0xA2,0x95,0x8B,0x87,0x8A,0x92,0x90,0x8E, - 0x97,0x94,0x86,0x7F,0x7C,0x7B,0x7B,0x7B,0x81,0x85,0x79,0x6E,0x6D,0x6B,0x76,0x88, - 0x82,0x81,0x8B,0x81,0x77,0x76,0x78,0x80,0x84,0x82,0x8A,0x91,0x86,0x80,0x82,0x80, - 0x83,0x88,0x8D,0x93,0x90,0x87,0x85,0x83,0x83,0x98,0x9E,0x93,0x9B,0x9B,0x8E,0x89, - 0x87,0x8D,0x96,0x95,0x99,0xA4,0xA0,0x96,0x96,0x95,0x94,0x99,0x9D,0xA4,0xA5,0x9B, - 0x94,0x91,0x8D,0x93,0xA3,0x9F,0x97,0x9B,0x93,0x83,0x7C,0x7B,0x7D,0x7D,0x7A,0x7B, - 0x7B,0x71,0x66,0x63,0x5F,0x5F,0x62,0x64,0x66,0x62,0x57,0x52,0x4E,0x4D,0x5E,0x63, - 0x58,0x5F,0x60,0x4F,0x45,0x43,0x47,0x4A,0x49,0x4C,0x55,0x50,0x45,0x48,0x49,0x47, - 0x4B,0x50,0x59,0x5D,0x59,0x56,0x56,0x54,0x5D,0x72,0x6F,0x6D,0x7B,0x77,0x6C,0x6B, - 0x72,0x7E,0x82,0x85,0x93,0x9B,0x92,0x8F,0x95,0x95,0x99,0xA2,0xAB,0xB3,0xB2,0xAC, - 0xA8,0xA3,0xA1,0xAD,0xBB,0xAF,0xAD,0xB5,0xA6,0x97,0x92,0x94,0x98,0x96,0x94,0x9D, - 0x9D,0x8F,0x8C,0x8E,0x8B,0x8B,0x8F,0x94,0x98,0x98,0x92,0x8E,0x8C,0x8D,0x9F,0xA9, - 0x9C,0xA3,0xAB,0x9C,0x91,0x93,0x99,0x9E,0x9B,0x9D,0xA9,0xA5,0x97,0x96,0x96,0x8E, - 0x8F,0x94,0x98,0x9A,0x97,0x90,0x8A,0x84,0x84,0x98,0x9E,0x90,0x97,0x9B,0x89,0x7F, - 0x7F,0x84,0x86,0x81,0x84,0x8E,0x85,0x77,0x78,0x74,0x6B,0x6B,0x70,0x72,0x71,0x6D, - 0x66,0x5C,0x56,0x56,0x64,0x66,0x59,0x60,0x62,0x4E,0x42,0x44,0x47,0x48,0x45,0x4C, - 0x54,0x4B,0x40,0x44,0x42,0x3B,0x40,0x47,0x4D,0x4C,0x49,0x47,0x43,0x3E,0x42,0x58, - 0x5E,0x53,0x5C,0x64,0x56,0x4F,0x55,0x5F,0x63,0x62,0x6B,0x78,0x71,0x6B,0x74,0x77, - 0x77,0x7D,0x87,0x91,0x95,0x95,0x98,0x98,0x98,0x97,0xAE,0xC1,0xB2,0xB8,0xC6,0xBB, - 0xB0,0xB5,0xBE,0xC4,0xC3,0xC4,0xD0,0xC9,0xB8,0xBD,0xBF,0xB6,0xB6,0xBB,0xBC,0xBA, - 0xB1,0xAC,0xA5,0x9E,0x97,0xA0,0xB4,0xA5,0x99,0xA5,0x9B,0x87,0x87,0x8D,0x92,0x91, - 0x90,0x99,0x9A,0x88,0x86,0x8C,0x84,0x84,0x8C,0x90,0x92,0x8D,0x8A,0x87,0x81,0x7B, - 0x7E,0x96,0x96,0x83,0x8E,0x8F,0x79,0x70,0x78,0x7E,0x7E,0x7B,0x82,0x8A,0x7B,0x71, - 0x7B,0x77,0x6F,0x75,0x7D,0x7E,0x7A,0x78,0x76,0x6F,0x6D,0x69,0x78,0x8A,0x77,0x75, - 0x80,0x70,0x5E,0x60,0x66,0x67,0x62,0x61,0x6B,0x63,0x50,0x52,0x55,0x49,0x47,0x50, - 0x52,0x52,0x4E,0x4C,0x49,0x44,0x40,0x44,0x5D,0x5E,0x4C,0x58,0x5B,0x46,0x41,0x4A, - 0x52,0x57,0x56,0x60,0x6D,0x5F,0x58,0x65,0x63,0x5F,0x69,0x73,0x78,0x79,0x78,0x79, - 0x77,0x77,0x75,0x82,0x9E,0x95,0x8E,0xA0,0x98,0x88,0x8B,0x96,0x9F,0xA2,0xA3,0xB2, - 0xB7,0xA8,0xAA,0xB5,0xB0,0xB1,0xBD,0xC2,0xC7,0xC5,0xBF,0xBD,0xB6,0xB2,0xAA,0xB6, - 0xC9,0xB6,0xAB,0xB5,0xA5,0x90,0x8F,0x93,0x96,0x93,0x8F,0x98,0x93,0x7F,0x7E,0x82, - 0x7A,0x79,0x80,0x83,0x84,0x7E,0x7B,0x79,0x74,0x73,0x6F,0x82,0x95,0x82,0x7F,0x8D, - 0x7E,0x6E,0x73,0x7C,0x84,0x83,0x81,0x8D,0x8A,0x77,0x7C,0x82,0x7B,0x7B,0x82,0x87, - 0x87,0x81,0x7F,0x7F,0x7C,0x7A,0x77,0x8D,0x9B,0x85,0x83,0x8E,0x7B,0x6D,0x73,0x7A, - 0x80,0x7D,0x7B,0x83,0x7C,0x6C,0x6F,0x74,0x6E,0x6D,0x73,0x78,0x77,0x6E,0x6B,0x6A, - 0x65,0x61,0x5C,0x70,0x7D,0x65,0x63,0x6D,0x5A,0x4E,0x54,0x5A,0x61,0x5C,0x57,0x62, - 0x5C,0x4D,0x51,0x57,0x52,0x54,0x59,0x5F,0x61,0x5C,0x5D,0x61,0x5F,0x5D,0x5B,0x73, - 0x82,0x6B,0x6B,0x7B,0x6D,0x63,0x6A,0x75,0x81,0x7C,0x7A,0x8D,0x8C,0x7D,0x83,0x8C, - 0x8C,0x8D,0x93,0x9C,0xA0,0x9B,0x9D,0xA0,0x9E,0x9E,0x9C,0xB4,0xC3,0xAB,0xAA,0xB5, - 0xA5,0x9A,0x9C,0xA3,0xAB,0xA0,0x98,0xA2,0x9B,0x86,0x86,0x8C,0x87,0x83,0x83,0x87, - 0x86,0x7A,0x77,0x79,0x78,0x72,0x6F,0x8B,0x93,0x7A,0x7D,0x85,0x77,0x71,0x73,0x7D, - 0x8A,0x81,0x7C,0x89,0x84,0x78,0x7B,0x82,0x84,0x83,0x84,0x8B,0x8D,0x86,0x86,0x89, - 0x88,0x83,0x83,0x9F,0xA7,0x8E,0x92,0x9A,0x8D,0x88,0x89,0x94,0x9F,0x96,0x90,0x99, - 0x94,0x87,0x87,0x8B,0x8D,0x8B,0x89,0x8C,0x8D,0x84,0x81,0x7F,0x7F,0x79,0x75,0x8C, - 0x91,0x78,0x79,0x7B,0x6D,0x68,0x67,0x6F,0x78,0x6D,0x66,0x6C,0x69,0x5E,0x5D,0x5F, - 0x61,0x61,0x5F,0x62,0x64,0x60,0x5C,0x5B,0x5F,0x5A,0x57,0x71,0x77,0x64,0x67,0x69, - 0x62,0x60,0x5E,0x6B,0x77,0x6F,0x6B,0x74,0x73,0x6F,0x70,0x74,0x7E,0x83,0x81,0x87, - 0x8D,0x8B,0x88,0x89,0x90,0x8E,0x91,0xAF,0xB0,0x9E,0xA3,0xA3,0x9C,0x9D,0x9B,0xA6, - 0xB2,0xA7,0xA1,0xA5,0x9F,0x98,0x95,0x95,0x98,0x96,0x92,0x90,0x8F,0x86,0x7E,0x7B, - 0x7C,0x73,0x78,0x90,0x86,0x74,0x77,0x72,0x6E,0x6B,0x6B,0x79,0x80,0x75,0x72,0x74, - 0x72,0x70,0x6E,0x72,0x7B,0x7E,0x7C,0x7E,0x7F,0x7D,0x7A,0x7A,0x7D,0x79,0x88,0xA0, - 0x93,0x88,0x8D,0x84,0x83,0x83,0x85,0x95,0x9C,0x92,0x8D,0x8E,0x8F,0x8D,0x8B,0x8D, - 0x97,0x9A,0x93,0x93,0x95,0x93,0x8D,0x8A,0x8A,0x86,0x96,0xA5,0x93,0x89,0x87,0x7E, - 0x7D,0x78,0x78,0x86,0x88,0x7B,0x71,0x71,0x72,0x6F,0x6A,0x6A,0x73,0x74,0x6D,0x68, - 0x68,0x67,0x61,0x5E,0x5E,0x5C,0x70,0x7E,0x6C,0x62,0x60,0x5C,0x5F,0x5B,0x5D,0x6D, - 0x72,0x68,0x60,0x5F,0x64,0x67,0x63,0x63,0x6D,0x73,0x70,0x6D,0x6F,0x74,0x73,0x74, - 0x73,0x74,0x8D,0x9C,0x8D,0x85,0x87,0x8A,0x8E,0x8A,0x8E,0x9E,0xA6,0xA1,0x9A,0x99, - 0xA0,0xA3,0xA0,0x9E,0xA2,0xA7,0xA5,0x9E,0x9B,0x9A,0x96,0x94,0x8C,0x8A,0xA0,0xA9, - 0x98,0x8C,0x84,0x83,0x86,0x7E,0x79,0x80,0x85,0x80,0x75,0x6E,0x71,0x76,0x73,0x6E, - 0x70,0x78,0x7B,0x77,0x72,0x72,0x73,0x75,0x70,0x72,0x89,0x93,0x89,0x7E,0x74,0x76, - 0x7F,0x7E,0x7D,0x85,0x8B,0x8D,0x87,0x7C,0x7B,0x82,0x83,0x82,0x83,0x87,0x8A,0x8A, - 0x85,0x81,0x81,0x83,0x7F,0x86,0x99,0x9D,0x97,0x8B,0x7F,0x7F,0x85,0x84,0x87,0x8B, - 0x8C,0x8E,0x8A,0x81,0x80,0x81,0x84,0x85,0x84,0x84,0x84,0x84,0x80,0x78,0x74,0x72, - 0x6F,0x7A,0x8A,0x88,0x7F,0x75,0x69,0x6C,0x70,0x6B,0x6E,0x72,0x74,0x78,0x76,0x6F, - 0x6E,0x6F,0x71,0x75,0x76,0x77,0x79,0x7A,0x7A,0x77,0x73,0x72,0x72,0x81,0x8F,0x8B, - 0x86,0x7F,0x78,0x7C,0x7F,0x7B,0x7B,0x7D,0x7E,0x82,0x83,0x80,0x81,0x7F,0x7F,0x84, - 0x84,0x83,0x83,0x84,0x85,0x85,0x86,0x85,0x82,0x8A,0x93,0x91,0x8F,0x8B,0x84,0x86, - 0x89,0x83,0x83,0x81,0x7E,0x81,0x81,0x7F,0x7F,0x7D,0x7C,0x7E,0x7E,0x7C,0x7A,0x79, - 0x78,0x78,0x79,0x78,0x76,0x75,0x79,0x7D,0x79,0x7A,0x7A,0x77,0x7D,0x7E,0x7A,0x7E, - 0x7D,0x7A,0x7E,0x7E,0x7D,0x7E,0x7D,0x7E,0x82,0x82,0x81,0x82,0x83,0x83,0x83,0x83, - 0x83,0x82,0x87,0x8C,0x88,0x88,0x89,0x85,0x8A,0x8D,0x88,0x89,0x87,0x84,0x87,0x86, - 0x82,0x83,0x82,0x82,0x85,0x86,0x85,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x84,0x8A, - 0x8C,0x85,0x86,0x86,0x83,0x89,0x89,0x84,0x85,0x81,0x7C,0x7E,0x7A,0x77,0x79,0x77, - 0x76,0x79,0x79,0x77,0x78,0x78,0x7A,0x7C,0x7D,0x7D,0x7B,0x7B,0x82,0x82,0x7C,0x7F, - 0x7F,0x7E,0x85,0x83,0x7F,0x7E,0x7A,0x79,0x86,0x83,0x60,0x67,0x7E,0x86,0x75,0x77, - 0x92,0x70,0x70,0x86,0x82,0x81,0x88,0x95,0x80,0x80,0x90,0x8D,0x86,0x80,0x8C,0x8B, - 0x7E,0x76,0x7F,0x83,0x7F,0x82,0x84,0x7C,0x6E,0x72,0x71,0x72,0x74,0x7A,0x7B,0x77, - 0x82,0x80,0x81,0x86,0x89,0x87,0x82,0x89,0x86,0x82,0x86,0x7D,0x7F,0x81,0x7A,0x79, - 0x7A,0x78,0x74,0x74,0x72,0x6F,0x74,0x72,0x6D,0x70,0x71,0x6E,0x70,0x75,0x7A,0x87, - 0x8D,0x81,0x7F,0x85,0x8F,0x92,0x8C,0x91,0x8E,0x88,0x90,0x90,0x88,0x8B,0x89,0x81, - 0x85,0x84,0x81,0x82,0x81,0x7C,0x74,0x77,0x80,0x7B,0x77,0x80,0x81,0x7D,0x7F,0x82, - 0x83,0x7F,0x80,0x87,0x85,0x80,0x80,0x7E,0x89,0x90,0x87,0x87,0x85,0x7B,0x7F,0x87, - 0x83,0x80,0x7E,0x7B,0x80,0x85,0x83,0x81,0x83,0x82,0x7F,0x7D,0x7F,0x7E,0x7E,0x7F, - 0x7F,0x84,0x7D,0x80,0x87,0x7F,0x81,0x85,0x81,0x7D,0x81,0x7D,0x78,0x7F,0x79,0x78, - 0x7A,0x79,0x7C,0x79,0x7E,0x81,0x7C,0x84,0x84,0x88,0x8B,0x89,0x8A,0x87,0x84,0x88, - 0x8F,0x81,0x7E,0x8B,0x84,0x81,0x86,0x7F,0x81,0x83,0x7D,0x7C,0x79,0x76,0x78,0x7C, - 0x7A,0x77,0x76,0x77,0x7C,0x78,0x7B,0x82,0x88,0x88,0x83,0x85,0x86,0x84,0x82,0x86, - 0x86,0x84,0x7F,0x7E,0x8A,0x87,0x7B,0x7D,0x78,0x78,0x76,0x71,0x71,0x6E,0x73,0x75, - 0x7A,0x77,0x79,0x7F,0x7B,0x7E,0x81,0x85,0x85,0x85,0x87,0x86,0x86,0x8F,0x91,0x8C, - 0x8F,0x87,0x84,0x88,0x82,0x7D,0x81,0x83,0x7C,0x7E,0x7F,0x79,0x7B,0x79,0x7B,0x80, - 0x7E,0x7D,0x7D,0x83,0x81,0x83,0x88,0x84,0x8A,0x88,0x82,0x85,0x8A,0x8C,0x8B,0x87, - 0x83,0x80,0x82,0x85,0x7C,0x7C,0x7C,0x76,0x79,0x7C,0x80,0x7C,0x7C,0x79,0x75,0x7A, - 0x7B,0x7A,0x7E,0x7F,0x83,0x85,0x82,0x88,0x86,0x87,0x86,0x81,0x86,0x81,0x7E,0x80, - 0x83,0x89,0x8A,0x7F,0x7C,0x7B,0x75,0x78,0x7B,0x79,0x7C,0x7F,0x78,0x7C,0x81,0x80, - 0x81,0x82,0x81,0x86,0x87,0x88,0x88,0x83,0x83,0x80,0x7E,0x86,0x91,0x8B,0x89,0x85, - 0x7C,0x82,0x81,0x82,0x7F,0x73,0x71,0x76,0x7A,0x7F,0x82,0x79,0x77,0x7B,0x7B,0x7D, - 0x7F,0x7E,0x80,0x88,0x83,0x7F,0x82,0x80,0x7E,0x78,0x78,0x84,0x8D,0x90,0x8B,0x7E, - 0x7A,0x80,0x7D,0x76,0x75,0x6B,0x6D,0x7F,0x83,0x85,0x85,0x7E,0x7E,0x86,0x82,0x7F, - 0x7D,0x7B,0x7D,0x81,0x84,0x81,0x84,0x82,0x7F,0x7A,0x77,0x8A,0x9D,0x98,0x8E,0x80, - 0x75,0x7F,0x7D,0x7A,0x7B,0x76,0x78,0x86,0x8D,0x87,0x88,0x85,0x82,0x85,0x84,0x82, - 0x84,0x80,0x81,0x88,0x85,0x81,0x7E,0x7F,0x7E,0x78,0x75,0x82,0x8F,0x90,0x8D,0x7D, - 0x72,0x7E,0x7A,0x73,0x79,0x72,0x76,0x88,0x89,0x81,0x80,0x7F,0x82,0x8A,0x84,0x7D, - 0x79,0x7C,0x81,0x81,0x82,0x82,0x84,0x7D,0x7B,0x75,0x71,0x8B,0x8F,0x88,0x85,0x74, - 0x77,0x7C,0x76,0x73,0x71,0x75,0x7B,0x86,0x85,0x80,0x83,0x82,0x88,0x87,0x81,0x7E, - 0x81,0x86,0x82,0x84,0x83,0x83,0x88,0x82,0x7E,0x7C,0x7C,0x93,0x8E,0x80,0x87,0x78, - 0x7C,0x87,0x79,0x75,0x77,0x76,0x7B,0x7D,0x7C,0x73,0x75,0x82,0x84,0x81,0x7B,0x78, - 0x7D,0x7F,0x7A,0x7F,0x83,0x83,0x86,0x80,0x7D,0x74,0x78,0x94,0x90,0x81,0x85,0x7E, - 0x83,0x86,0x74,0x73,0x74,0x76,0x7E,0x7D,0x7A,0x78,0x80,0x8A,0x83,0x7C,0x7F,0x7E, - 0x82,0x83,0x7D,0x81,0x86,0x81,0x82,0x81,0x7A,0x78,0x8C,0x9A,0x88,0x87,0x88,0x84, - 0x8C,0x81,0x77,0x79,0x76,0x7C,0x7F,0x7C,0x7F,0x7E,0x89,0x8E,0x7F,0x82,0x81,0x7B, - 0x80,0x76,0x7A,0x87,0x82,0x84,0x82,0x7D,0x7B,0x82,0x97,0x8C,0x82,0x86,0x7D,0x84, - 0x81,0x70,0x78,0x7A,0x77,0x80,0x7A,0x7A,0x7F,0x82,0x87,0x85,0x81,0x83,0x82,0x81, - 0x7C,0x78,0x80,0x7F,0x7F,0x7D,0x79,0x77,0x7E,0x91,0x89,0x80,0x87,0x7D,0x85,0x88, - 0x70,0x76,0x78,0x78,0x83,0x79,0x78,0x81,0x82,0x86,0x87,0x80,0x83,0x86,0x84,0x7F, - 0x7C,0x84,0x82,0x81,0x7E,0x79,0x78,0x81,0x93,0x8D,0x84,0x86,0x7F,0x84,0x81,0x6F, - 0x7A,0x7C,0x73,0x7E,0x74,0x71,0x82,0x7F,0x80,0x84,0x7F,0x86,0x84,0x81,0x80,0x7B, - 0x80,0x80,0x7E,0x7D,0x7D,0x79,0x86,0x8D,0x81,0x87,0x88,0x7E,0x88,0x86,0x78,0x7F, - 0x78,0x77,0x7F,0x78,0x7A,0x7E,0x7C,0x83,0x81,0x7C,0x87,0x85,0x7E,0x84,0x84,0x81, - 0x7F,0x7D,0x80,0x7A,0x74,0x87,0x8B,0x84,0x89,0x84,0x80,0x8D,0x84,0x7A,0x85,0x79, - 0x7B,0x7E,0x71,0x7B,0x7D,0x7A,0x85,0x80,0x7D,0x8C,0x84,0x81,0x86,0x7F,0x7E,0x7E, - 0x7C,0x7F,0x7A,0x7B,0x8B,0x87,0x84,0x87,0x7F,0x85,0x8D,0x82,0x7F,0x83,0x78,0x7F, - 0x7A,0x71,0x7C,0x7D,0x7C,0x82,0x7D,0x80,0x89,0x83,0x87,0x85,0x83,0x86,0x7E,0x7D, - 0x7E,0x75,0x79,0x88,0x7F,0x81,0x89,0x83,0x8B,0x89,0x7F,0x80,0x7E,0x7A,0x7F,0x76, - 0x75,0x7D,0x77,0x7E,0x80,0x7D,0x86,0x85,0x82,0x85,0x81,0x83,0x81,0x79,0x7C,0x7B, - 0x78,0x82,0x87,0x82,0x87,0x86,0x85,0x8A,0x7F,0x7E,0x83,0x7B,0x7F,0x79,0x70,0x7B, - 0x76,0x75,0x7C,0x7C,0x80,0x85,0x84,0x86,0x89,0x85,0x86,0x80,0x7F,0x7C,0x78,0x83, - 0x84,0x80,0x88,0x85,0x82,0x8F,0x86,0x81,0x89,0x80,0x7F,0x80,0x76,0x7C,0x7E,0x7B, - 0x7F,0x7D,0x82,0x87,0x86,0x87,0x89,0x85,0x85,0x82,0x7B,0x7B,0x76,0x7F,0x86,0x7E, - 0x85,0x85,0x82,0x8A,0x81,0x7F,0x85,0x7B,0x7B,0x80,0x76,0x7D,0x7F,0x7A,0x7F,0x7E, - 0x7F,0x83,0x81,0x87,0x88,0x86,0x88,0x82,0x7D,0x80,0x7A,0x7D,0x83,0x7F,0x82,0x82, - 0x82,0x86,0x82,0x80,0x85,0x7F,0x7D,0x7F,0x77,0x7A,0x7E,0x7B,0x7E,0x7E,0x80,0x85, - 0x81,0x84,0x89,0x83,0x86,0x85,0x81,0x82,0x7E,0x84,0x85,0x80,0x86,0x83,0x7D,0x85, - 0x81,0x7F,0x82,0x7B,0x7E,0x7E,0x78,0x7D,0x7B,0x7A,0x7B,0x78,0x84,0x87,0x8E,0x90, - 0x90,0x91,0x81,0x80,0x78,0x77,0x78,0x7B,0x83,0x70,0x7E,0x72,0x63,0x8D,0x85,0x72, - 0x8C,0x83,0x7A,0x6C,0x62,0x7B,0x73,0x73,0x79,0x71,0x7F,0x7D,0x78,0x80,0x7E,0x84, - 0x8C,0x84,0x7B,0x73,0x7C,0x88,0x7E,0x7E,0x80,0x77,0x81,0x88,0x82,0x83,0x84,0x93, - 0x91,0x84,0x8F,0x84,0x7C,0x90,0x94,0x92,0xA0,0xA2,0x99,0x9B,0xA3,0xA2,0x8E,0x87, - 0x90,0x90,0x96,0x9D,0x91,0x8C,0x8C,0x86,0x84,0x75,0x72,0x7C,0x7B,0x78,0x6F,0x69, - 0x6D,0x68,0x64,0x69,0x69,0x68,0x68,0x65,0x66,0x65,0x63,0x68,0x6A,0x6C,0x6A,0x68, - 0x6F,0x6F,0x6F,0x6A,0x62,0x68,0x6C,0x6B,0x69,0x62,0x67,0x69,0x66,0x6C,0x6C,0x70, - 0x76,0x75,0x77,0x7B,0x80,0x8A,0x97,0xA8,0xB2,0xAA,0x9F,0x9C,0x9B,0x9C,0x9A,0x99, - 0x98,0x94,0x8F,0x8C,0x8D,0x8F,0x8C,0x87,0x85,0x87,0x8C,0x8A,0x83,0x84,0x85,0x83, - 0x82,0x82,0x87,0x8C,0x89,0x86,0x85,0x83,0x84,0x8A,0x8C,0x87,0x8A,0x88,0x86,0x87, - 0x82,0x7F,0x84,0x7F,0x7A,0x7F,0x79,0x79,0x7C,0x7B,0x7D,0x82,0x86,0x8B,0x8C,0x8C, - 0x8E,0x90,0x90,0x91,0x92,0x8E,0x95,0x92,0x94,0x96,0x90,0x90,0x8F,0x8D,0x8A,0x8B, - 0x88,0x83,0x7C,0x71,0x73,0x70,0x65,0x67,0x69,0x69,0x6C,0x65,0x67,0x6B,0x63,0x5F, - 0x60,0x55,0x56,0x6A,0x62,0x5D,0x63,0x61,0x68,0x61,0x55,0x62,0x66,0x5F,0x5B,0x55, - 0x62,0x67,0x5B,0x5F,0x67,0x67,0x65,0x62,0x6B,0x6F,0x65,0x6A,0x69,0x6F,0x6D,0x81, - 0x9C,0x91,0x9D,0xA7,0xAB,0xAA,0x8F,0x98,0xA9,0x98,0x9C,0xA1,0xA4,0xAD,0x96,0x8E, - 0x98,0x8F,0x89,0x88,0x92,0x9A,0x92,0x8D,0x88,0x7B,0x83,0xA0,0x98,0x8E,0xA0,0x98, - 0x92,0x7E,0x75,0x8F,0x88,0x84,0x91,0x95,0x9E,0x8F,0x7D,0x8E,0x8B,0x7E,0x82,0x86, - 0x92,0x86,0x7F,0x84,0x80,0x86,0x7B,0x8F,0xAD,0x94,0x91,0x9C,0x92,0x92,0x84,0x8B, - 0xA4,0x94,0x91,0x9B,0x99,0x98,0x86,0x83,0x94,0x8B,0x8A,0x93,0x90,0x8C,0x7E,0x74, - 0x76,0x6A,0x6F,0x8C,0x7E,0x7A,0x80,0x6F,0x6A,0x58,0x5A,0x6E,0x62,0x5E,0x69,0x66, - 0x60,0x50,0x50,0x5C,0x57,0x5B,0x65,0x6C,0x68,0x5C,0x59,0x5A,0x5C,0x62,0x59,0x73, - 0x7C,0x5D,0x67,0x66,0x5C,0x5F,0x5B,0x70,0x7C,0x6C,0x77,0x7E,0x75,0x7C,0x7D,0x90, - 0x9C,0x9B,0xAA,0xAF,0xA5,0xA0,0x97,0x9A,0x9C,0x8E,0xAA,0xB0,0x96,0xA1,0x99,0x8E, - 0x88,0x7C,0x93,0x97,0x84,0x93,0x93,0x89,0x82,0x7C,0x8C,0x8B,0x87,0x90,0x93,0x8E, - 0x84,0x80,0x84,0x80,0x8A,0x84,0x89,0xA1,0x84,0x80,0x8B,0x7A,0x7B,0x78,0x80,0x93, - 0x85,0x84,0x94,0x8A,0x84,0x87,0x8C,0x93,0x8F,0x97,0x9E,0x92,0x8F,0x8C,0x88,0x8F, - 0x83,0x93,0xA9,0x90,0x93,0x97,0x87,0x81,0x78,0x86,0x91,0x7B,0x83,0x8B,0x77,0x71, - 0x6D,0x71,0x75,0x6D,0x73,0x7A,0x6F,0x68,0x62,0x5E,0x58,0x5D,0x5B,0x5F,0x79,0x62, - 0x5D,0x69,0x58,0x55,0x54,0x5A,0x6B,0x62,0x61,0x71,0x63,0x5A,0x5C,0x5C,0x5E,0x5D, - 0x65,0x70,0x69,0x66,0x66,0x64,0x67,0x62,0x82,0x92,0x7E,0x94,0x9F,0x8E,0x8E,0x8E, - 0x9E,0xA6,0x9A,0xAC,0xAE,0x9B,0x99,0x97,0x94,0x90,0x8C,0x9B,0x9D,0x92,0x91,0x8C, - 0x85,0x7E,0x84,0x81,0x92,0x9F,0x89,0x95,0x92,0x7E,0x7E,0x7C,0x85,0x8B,0x85,0x92, - 0x93,0x85,0x88,0x84,0x82,0x83,0x83,0x8B,0x8A,0x84,0x8B,0x81,0x7D,0x7B,0x84,0xA3, - 0x89,0x8D,0xA8,0x90,0x84,0x87,0x89,0x8C,0x86,0x8D,0x9F,0x90,0x8B,0x93,0x8A,0x87, - 0x86,0x8C,0x96,0x8D,0x8D,0x91,0x84,0x7D,0x7E,0x7A,0x77,0x8D,0x87,0x79,0x89,0x78, - 0x6A,0x6C,0x66,0x6C,0x68,0x64,0x74,0x6B,0x5E,0x67,0x61,0x5C,0x5C,0x60,0x67,0x62, - 0x66,0x6B,0x5D,0x5C,0x59,0x5F,0x77,0x5F,0x64,0x7A,0x63,0x5C,0x65,0x63,0x62,0x62, - 0x6B,0x78,0x6D,0x71,0x7E,0x74,0x75,0x80,0x85,0x8A,0x90,0x98,0x9B,0x95,0x95,0x9A, - 0x93,0x96,0xB0,0xA1,0x9A,0xAE,0x97,0x8D,0x8C,0x86,0x8C,0x84,0x85,0x97,0x8B,0x81, - 0x8D,0x84,0x7F,0x81,0x84,0x88,0x84,0x86,0x89,0x7C,0x7C,0x7C,0x7A,0x97,0x88,0x82, - 0x9C,0x86,0x79,0x83,0x7D,0x7D,0x7D,0x80,0x90,0x89,0x82,0x90,0x89,0x80,0x89,0x8B, - 0x8B,0x8F,0x93,0x94,0x8D,0x88,0x8D,0x87,0x86,0xA3,0x96,0x8D,0xA4,0x8F,0x83,0x88, - 0x84,0x85,0x80,0x83,0x91,0x85,0x7D,0x88,0x7E,0x73,0x78,0x78,0x75,0x73,0x71,0x74, - 0x6B,0x61,0x66,0x5D,0x70,0x75,0x60,0x76,0x73,0x59,0x62,0x63,0x5D,0x5F,0x5D,0x6D, - 0x6D,0x5F,0x69,0x6A,0x5D,0x60,0x65,0x63,0x65,0x6A,0x6E,0x6A,0x67,0x6A,0x68,0x67, - 0x84,0x85,0x76,0x92,0x8E,0x7D,0x88,0x8B,0x8C,0x8D,0x91,0xA0,0x9E,0x96,0xA0,0x9C, - 0x93,0x95,0x95,0x92,0x92,0x94,0x93,0x8E,0x86,0x8A,0x7F,0x85,0x9B,0x86,0x89,0x98, - 0x82,0x7E,0x82,0x7D,0x80,0x7D,0x84,0x8D,0x82,0x82,0x88,0x7E,0x7B,0x80,0x7E,0x80, - 0x84,0x87,0x86,0x81,0x80,0x83,0x7C,0x8B,0x9B,0x87,0x92,0x9D,0x88,0x87,0x8C,0x88, - 0x8A,0x89,0x91,0x97,0x8D,0x92,0x94,0x8A,0x8A,0x8D,0x8C,0x8C,0x8E,0x8E,0x8C,0x85, - 0x83,0x7F,0x79,0x91,0x8F,0x7D,0x90,0x89,0x75,0x79,0x71,0x6E,0x70,0x6D,0x75,0x72, - 0x69,0x6F,0x6D,0x62,0x67,0x69,0x65,0x6A,0x6A,0x68,0x66,0x63,0x64,0x5D,0x5D,0x73, - 0x6A,0x63,0x78,0x69,0x5D,0x68,0x64,0x65,0x66,0x6A,0x78,0x72,0x6F,0x79,0x76,0x78, - 0x7B,0x89,0x91,0x8B,0x9D,0x88,0x82,0x95,0x8A,0x7A,0x8D,0xAA,0x9C,0xAB,0xB6,0x9E, - 0x94,0x9D,0xA4,0xA4,0x9F,0xA0,0xB1,0xA1,0x90,0x92,0x73,0x72,0x80,0x65,0x61,0x70, - 0x6B,0x5B,0x54,0x4D,0x51,0x5E,0x74,0x7C,0x5D,0x76,0x86,0x6C,0x74,0x82,0x8D,0x9B, - 0x95,0x94,0xB2,0xAE,0xC0,0xC1,0x97,0xC4,0xB8,0xA8,0xBD,0xA6,0xB9,0xB9,0x9A,0x94, - 0x8E,0x8E,0xA8,0x8A,0x7D,0x91,0x79,0x75,0x70,0x78,0x88,0x74,0x71,0x76,0x6F,0x74, - 0x67,0x4E,0x50,0x55,0x58,0x58,0x53,0x4D,0x4C,0x50,0x51,0x52,0x5D,0x6A,0x85,0x83, - 0x81,0x8A,0x73,0x6F,0x74,0x7D,0x91,0x99,0x9C,0x9C,0x8E,0x91,0x94,0x92,0x87,0x80, - 0x83,0x7E,0x80,0x70,0x73,0x6F,0x5C,0x64,0x60,0x7F,0x8B,0x65,0x68,0x65,0x4F,0x59, - 0x61,0x57,0x61,0x6B,0x6F,0x7E,0x79,0x8F,0x9C,0x8F,0x9B,0xA0,0x98,0xA1,0xA5,0x9B, - 0x95,0x84,0x80,0x82,0x84,0x98,0x9D,0x98,0xB1,0xB2,0xA9,0xB5,0xA1,0xA0,0xA2,0x89, - 0x9C,0x96,0x71,0x88,0x85,0x76,0x8A,0x80,0x74,0x71,0x6B,0x75,0x85,0x7E,0x7A,0x6B, - 0x6C,0x8B,0x73,0x66,0x6D,0x67,0x69,0x60,0x5C,0x5B,0x58,0x67,0x6F,0x71,0x6A,0x6F, - 0x82,0x85,0x81,0x8C,0x86,0x87,0x92,0x8E,0x9E,0x9D,0xA3,0xA5,0xAB,0xBA,0xAE,0xB7, - 0xBB,0xAC,0xB8,0xB4,0xB2,0xB5,0xA2,0x9F,0x9E,0x97,0x97,0x8D,0x81,0x6F,0x61,0x59, - 0x60,0x68,0x4F,0x57,0x64,0x5C,0x4D,0x32,0x31,0x36,0x38,0x4B,0x4C,0x36,0x2C,0x35, - 0x40,0x3D,0x3E,0x4B,0x4D,0x47,0x46,0x52,0x5C,0x66,0x6B,0x73,0x91,0x9A,0x96,0x8C, - 0x84,0x97,0x9F,0xAF,0xCD,0xC0,0xCB,0xDC,0xC2,0xB1,0xB2,0xB6,0xBE,0xCB,0xC7,0xBE, - 0xC0,0xBF,0xC3,0xC5,0xC1,0xC2,0xB5,0xB0,0xB0,0x9C,0x8B,0x76,0x65,0x6F,0x7D,0x84, - 0x78,0x5A,0x5D,0x65,0x5D,0x57,0x53,0x58,0x5C,0x63,0x52,0x51,0x44,0x3D,0x4D,0x49, - 0x58,0x57,0x53,0x60,0x6D,0x68,0x5A,0x5B,0x64,0x65,0x79,0x8D,0x78,0x83,0x8C,0x7F, - 0x8D,0x88,0x90,0x9F,0xA3,0xA8,0xAA,0xA6,0xA8,0xA9,0xA9,0xB6,0xB1,0xB2,0xB1,0xB6, - 0xB4,0xAB,0xA9,0x9C,0x9B,0x98,0x9B,0x9C,0x8C,0x87,0x87,0x7C,0x73,0x78,0x78,0x7B, - 0x7B,0x69,0x67,0x63,0x63,0x5D,0x53,0x5D,0x64,0x66,0x66,0x5C,0x59,0x5B,0x57,0x59, - 0x5B,0x55,0x60,0x5F,0x59,0x67,0x71,0x71,0x62,0x5C,0x68,0x72,0x76,0x6C,0x68,0x73, - 0x78,0x76,0x77,0x82,0x82,0x76,0x7B,0x79,0x81,0x86,0x82,0x88,0x7B,0x8B,0xA2,0x95, - 0x97,0x9D,0x95,0x91,0x89,0x91,0x9B,0xA3,0xAA,0xA1,0x9F,0xAB,0xAB,0x9B,0x9A,0x97, - 0x94,0xA4,0xA3,0xA1,0x9E,0x8F,0x94,0x97,0x98,0xA3,0x98,0x8B,0x97,0x9B,0x91,0x8E, - 0x92,0x94,0x9D,0x91,0x82,0x80,0x73,0x73,0x68,0x64,0x76,0x77,0x74,0x7C,0x7E,0x74, - 0x74,0x6A,0x66,0x6F,0x6F,0x78,0x6F,0x6A,0x6C,0x64,0x60,0x55,0x55,0x63,0x6A,0x6A, - 0x64,0x6B,0x71,0x69,0x70,0x73,0x78,0x80,0x7F,0x87,0x83,0x7A,0x72,0x67,0x6C,0x72, - 0x84,0x8E,0x7B,0x79,0x7B,0x71,0x70,0x60,0x6A,0x7B,0x6C,0x6D,0x67,0x6C,0x83,0x79, - 0x6F,0x7B,0x81,0x8A,0x97,0x8B,0x86,0x94,0x8C,0x98,0xA5,0x9F,0xAE,0xAD,0xA2,0xB3, - 0xB4,0xAD,0xA3,0x91,0x9C,0xA5,0x98,0x91,0x8D,0x8F,0x91,0x8F,0x88,0x88,0x89,0x7D, - 0x77,0x74,0x6F,0x70,0x70,0x63,0x58,0x67,0x6F,0x60,0x6D,0x76,0x6E,0x65,0x54,0x66, - 0x71,0x72,0x64,0x4B,0x4E,0x5B,0x6F,0x71,0x6C,0x78,0x7A,0x7B,0x84,0x83,0x85,0x8C, - 0x8D,0x92,0x97,0xAA,0xB3,0xAB,0x9D,0x9B,0xAB,0xA7,0x9D,0xA2,0xA8,0xA3,0x96,0x90, - 0x91,0x98,0xA0,0x97,0x89,0x98,0x9A,0x92,0x8F,0x8A,0x93,0x97,0x8F,0x8A,0x92,0x91, - 0x8B,0x87,0x7D,0x7B,0x76,0x6B,0x6E,0x7A,0x85,0x7E,0x72,0x6B,0x63,0x69,0x6F,0x61, - 0x58,0x5C,0x5E,0x5E,0x54,0x4B,0x4D,0x56,0x55,0x5A,0x67,0x71,0x76,0x6E,0x6B,0x63, - 0x62,0x6F,0x6E,0x74,0x73,0x70,0x76,0x7A,0x85,0x89,0x85,0x7F,0x86,0x8C,0x88,0x8B, - 0x7A,0x6B,0x76,0x79,0x80,0x93,0x94,0x8E,0x86,0x7D,0x81,0x7D,0x73,0x74,0x76,0x74, - 0x74,0x73,0x6A,0x64,0x6E,0x78,0x7B,0x7C,0x81,0x82,0x78,0x6F,0x6E,0x71,0x7A,0x84, - 0x8E,0x9A,0x9D,0x95,0x90,0x95,0x94,0x96,0x94,0x96,0xA0,0x9B,0x91,0x90,0x88,0x8E, - 0xA1,0xA2,0xA5,0xA3,0xA4,0xAE,0xA9,0xA7,0xA3,0x9F,0x9B,0x9C,0xAB,0xAB,0xA9,0xA9, - 0x98,0x92,0x98,0x99,0x98,0x91,0x89,0x84,0x7D,0x79,0x72,0x6E,0x70,0x72,0x78,0x7C, - 0x79,0x74,0x73,0x70,0x6D,0x65,0x5A,0x61,0x71,0x70,0x65,0x64,0x56,0x4C,0x51,0x56, - 0x60,0x63,0x5F,0x58,0x5B,0x5C,0x5C,0x60,0x55,0x58,0x63,0x66,0x6D,0x6E,0x67,0x6A, - 0x6E,0x74,0x7A,0x7A,0x7F,0x7B,0x78,0x78,0x72,0x6F,0x69,0x68,0x72,0x7A,0x73,0x77, - 0x76,0x74,0x83,0x83,0x78,0x71,0x75,0x77,0x7B,0x7E,0x7D,0x83,0x82,0x89,0x84,0x77, - 0x7D,0x7A,0x7D,0x82,0x7E,0x83,0x81,0x7F,0x8C,0x94,0x94,0x92,0x8F,0x92,0x9E,0x9D, - 0x93,0x97,0x96,0x9C,0xAA,0xA2,0x9E,0xA1,0xA6,0xAD,0xA9,0xA1,0xA2,0xA8,0xA5,0xAA, - 0xA2,0x99,0xA4,0xA1,0x9F,0xA0,0x9D,0x97,0x97,0x95,0x97,0x9D,0x94,0x94,0x94,0x8C, - 0x93,0x92,0x8A,0x8D,0x8E,0x8A,0x86,0x81,0x81,0x85,0x84,0x81,0x7F,0x7D,0x81,0x82, - 0x72,0x6F,0x71,0x68,0x6B,0x6C,0x6B,0x67,0x63,0x6B,0x62,0x65,0x6D,0x65,0x65,0x5F, - 0x60,0x5F,0x58,0x5A,0x52,0x5C,0x63,0x5C,0x5F,0x60,0x64,0x67,0x69,0x65,0x65,0x6B, - 0x6B,0x6E,0x6B,0x65,0x66,0x6E,0x6D,0x6F,0x6E,0x69,0x6F,0x75,0x79,0x7A,0x73,0x70, - 0x75,0x75,0x79,0x77,0x6E,0x72,0x79,0x7D,0x83,0x83,0x83,0x87,0x89,0x86,0x85,0x88, - 0x85,0x85,0x8A,0x87,0x87,0x86,0x85,0x8C,0x8D,0x8E,0x93,0x8E,0x8F,0x98,0x99,0x9A, - 0x9B,0x9C,0x9E,0xA2,0xA8,0xA3,0xA0,0xA0,0xA5,0xAB,0xA7,0xA3,0xA2,0x9E,0x9E,0xA3, - 0x9E,0x99,0x97,0x94,0x99,0x9C,0x97,0x9A,0x99,0x9B,0x9C,0x96,0x9C,0x98,0x98,0x9F, - 0x9B,0x98,0x97,0x93,0x92,0x91,0x89,0x88,0x85,0x80,0x82,0x7E,0x7B,0x79,0x74,0x77, - 0x74,0x72,0x76,0x72,0x74,0x70,0x6C,0x73,0x6B,0x6B,0x76,0x73,0x75,0x7A,0x73,0x74, - 0x79,0x73,0x74,0x72,0x6C,0x70,0x6A,0x62,0x63,0x60,0x67,0x68,0x60,0x5F,0x62,0x65, - 0x63,0x60,0x5D,0x5C,0x66,0x69,0x64,0x6D,0x65,0x5D,0x69,0x67,0x67,0x72,0x66,0x5F, - 0x6B,0x69,0x6B,0x6D,0x64,0x66,0x6C,0x70,0x6F,0x68,0x68,0x6C,0x72,0x77,0x77,0x76, - 0x7A,0x80,0x84,0x7E,0x7C,0x82,0x85,0x8F,0x94,0x8E,0x8F,0x8F,0x8A,0x92,0x92,0x8C, - 0x8E,0x8C,0x8A,0x90,0x8C,0x86,0x8A,0x8C,0x94,0x9A,0x97,0x98,0x9A,0x99,0x9F,0xA1, - 0xA0,0x9B,0x9D,0xA7,0xA3,0xA1,0x9D,0x94,0x99,0x9C,0x9C,0x9E,0x99,0x95,0x95,0x94, - 0x91,0x8B,0x89,0x89,0x8E,0x8F,0x89,0x89,0x87,0x87,0x8C,0x89,0x8D,0x8E,0x8C,0x8C, - 0x88,0x8D,0x8B,0x87,0x8D,0x8D,0x8C,0x8F,0x86,0x82,0x85,0x7F,0x7D,0x7D,0x79,0x7A, - 0x7A,0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x7D,0x80,0x7E,0x80,0x7F,0x79,0x77,0x7C, - 0x7C,0x75,0x77,0x77,0x73,0x78,0x76,0x72,0x71,0x6E,0x74,0x74,0x6F,0x6C,0x6B,0x6E, - 0x73,0x77,0x73,0x6F,0x71,0x75,0x7A,0x7A,0x76,0x78,0x7A,0x7C,0x7C,0x79,0x7B,0x78, - 0x77,0x7D,0x79,0x78,0x7A,0x76,0x76,0x78,0x74,0x72,0x6E,0x6B,0x71,0x74,0x71,0x71, - 0x74,0x78,0x80,0x82,0x7D,0x7C,0x7C,0x82,0x87,0x83,0x7E,0x7C,0x81,0x84,0x82,0x7F, - 0x7F,0x7F,0x80,0x82,0x80,0x7F,0x7E,0x7E,0x80,0x7E,0x79,0x79,0x76,0x79,0x82,0x7D, - 0x7D,0x81,0x7D,0x80,0x85,0x86,0x88,0x85,0x83,0x80,0x82,0x85,0x80,0x85,0x85,0x85, - 0x8A,0x88,0x89,0x85,0x82,0x7F,0x7E,0x83,0x7D,0x81,0x85,0x7F,0x84,0x86,0x86,0x89, - 0x88,0x89,0x89,0x87,0x8A,0x8A,0x84,0x81,0x7B,0x81,0x91,0x89,0x82,0x85,0x81,0x89, - 0x8C,0x7D,0x7F,0x81,0x7E,0x85,0x7E,0x77,0x7D,0x7D,0x84,0x88,0x80,0x82,0x87,0x86, - 0x83,0x82,0x80,0x7F,0x81,0x80,0x7F,0x75,0x7E,0x92,0x89,0x88,0x86,0x7B,0x85,0x82, - 0x6F,0x76,0x77,0x76,0x81,0x77,0x75,0x86,0x87,0x87,0x83,0x7C,0x85,0x88,0x7D,0x7B, - 0x7E,0x81,0x85,0x81,0x7C,0x75,0x7A,0x91,0x92,0x88,0x88,0x83,0x85,0x89,0x76,0x70, - 0x79,0x7C,0x85,0x84,0x7B,0x82,0x8B,0x86,0x81,0x7C,0x7D,0x84,0x80,0x7C,0x88,0x8B, - 0x84,0x80,0x80,0x7E,0x74,0x83,0x95,0x8B,0x89,0x8A,0x82,0x87,0x7C,0x6B,0x78,0x7D, - 0x7B,0x81,0x7C,0x7D,0x88,0x82,0x78,0x77,0x76,0x79,0x7C,0x74,0x79,0x82,0x7C,0x79, - 0x76,0x72,0x6D,0x78,0x8F,0x8B,0x83,0x83,0x81,0x87,0x7D,0x6C,0x73,0x7D,0x7E,0x80, - 0x7C,0x7F,0x8C,0x8B,0x7E,0x7E,0x84,0x82,0x80,0x7B,0x7D,0x87,0x82,0x7C,0x7C,0x7B, - 0x75,0x70,0x86,0x8F,0x85,0x88,0x84,0x82,0x81,0x6F,0x6C,0x78,0x78,0x78,0x7B,0x79, - 0x85,0x8E,0x80,0x7C,0x80,0x7E,0x7B,0x79,0x79,0x82,0x82,0x7E,0x7F,0x7C,0x77,0x72, - 0x85,0x93,0x87,0x87,0x88,0x87,0x87,0x75,0x6B,0x78,0x7C,0x79,0x7C,0x7E,0x86,0x8E, - 0x82,0x7C,0x81,0x80,0x7D,0x79,0x78,0x85,0x86,0x7E,0x80,0x81,0x7E,0x76,0x80,0x97, - 0x8F,0x88,0x8B,0x87,0x8A,0x7E,0x6E,0x7A,0x81,0x7B,0x7C,0x7C,0x81,0x8C,0x84,0x7B, - 0x81,0x83,0x81,0x7B,0x77,0x80,0x85,0x7F,0x7F,0x83,0x83,0x78,0x7E,0x9A,0x92,0x88, - 0x8C,0x88,0x8F,0x86,0x71,0x7A,0x85,0x7E,0x7F,0x7E,0x80,0x8D,0x86,0x7D,0x84,0x88, - 0x85,0x7D,0x7A,0x82,0x85,0x7C,0x7C,0x81,0x80,0x78,0x75,0x8F,0x94,0x83,0x87,0x86, - 0x8B,0x89,0x74,0x76,0x81,0x7A,0x76,0x78,0x7B,0x88,0x86,0x79,0x80,0x89,0x88,0x82, - 0x7B,0x81,0x86,0x7A,0x7B,0x86,0x82,0x7D,0x74,0x83,0x94,0x81,0x82,0x87,0x87,0x8A, - 0x7A,0x74,0x81,0x7F,0x77,0x79,0x7B,0x81,0x85,0x7C,0x7F,0x87,0x85,0x84,0x80,0x84, - 0x89,0x7F,0x7E,0x83,0x84,0x85,0x7E,0x80,0x8E,0x87,0x81,0x87,0x84,0x85,0x82,0x7B, - 0x80,0x83,0x7D,0x7D,0x7E,0x7C,0x81,0x7E,0x79,0x7E,0x7F,0x7F,0x81,0x7D,0x81,0x83, - 0x7D,0x81,0x82,0x81,0x82,0x81,0x87,0x85,0x81,0x84,0x84,0x83,0x84,0x81,0x81,0x85, - 0x83,0x7F,0x80,0x7E,0x7F,0x81,0x7D,0x7E,0x7F,0x7C,0x7B,0x7E,0x7E,0x7E,0x7D,0x7D, - 0x80,0x80,0x7F,0x7D,0x7F,0x82,0x81,0x7E,0x80,0x81,0x7F,0x7F,0x7F,0x80,0x81,0x7F, - 0x80,0x80,0x7F,0x7F,0x7E,0x7C,0x7D,0x80,0x7F,0x7E,0x7F,0x81,0x82,0x81,0x80,0x81, - 0x82,0x81,0x80,0x82,0x82,0x81,0x80,0x82,0x82,0x81,0x82,0x80,0x80,0x82,0x81,0x80, - 0x7E,0x7C,0x7C,0x7D,0x7A,0x7B,0x7B,0x7B,0x7E,0x7D,0x7D,0x7D,0x7D,0x7F,0x7F,0x7E, - 0x80,0x7F,0x80,0x82,0x80,0x7E,0x80,0x80,0x81,0x82,0x81,0x81,0x81,0x7F,0x7E,0x7E, - 0x7D,0x7F,0x7E,0x7C,0x7D,0x7E,0x7B,0x7D,0x7D,0x7E,0x81,0x7F,0x80,0x80,0x80,0x83, - 0x82,0x81,0x84,0x84,0x82,0x85,0x83,0x82,0x83,0x80,0x81,0x83,0x80,0x81,0x81,0x7E, - 0x80,0x7F,0x7B,0x7C,0x7B,0x7C,0x7D,0x7A,0x7C,0x7F,0x7F,0x7E,0x7E,0x7D,0x81,0x83, - 0x80,0x81,0x80,0x80,0x81,0x80,0x80,0x81,0x81,0x83,0x8D,0x8C,0x8F,0x8F,0x7C,0x77, - 0x70,0x70,0x78,0x7F,0x75,0x76,0x64,0x61,0x8A,0x75,0x6F,0x7E,0x77,0x6E,0x6C,0x82, - 0x82,0x85,0x82,0x77,0x7B,0x80,0x85,0x83,0x89,0x93,0x94,0x90,0x8E,0x90,0x86,0x82, - 0x81,0x7B,0x84,0x8F,0x89,0x8C,0xA4,0x99,0x8D,0x93,0x7C,0x7D,0x96,0x8E,0x8F,0x8E, - 0x87,0x8F,0x90,0x88,0x7A,0x81,0x89,0x84,0x88,0x83,0x7F,0x7B,0x79,0x73,0x6C,0x72, - 0x74,0x75,0x74,0x6D,0x6D,0x6A,0x68,0x71,0x6B,0x65,0x67,0x62,0x64,0x6C,0x70,0x75, - 0x74,0x6B,0x6E,0x76,0x70,0x67,0x6B,0x72,0x7A,0x6C,0x61,0x6B,0x68,0x63,0x69,0x67, - 0x65,0x6E,0x6D,0x70,0x81,0x85,0x97,0xB7,0xAF,0x9B,0x96,0x8E,0x91,0x8B,0x8A,0x95, - 0x8B,0x85,0x8B,0x8F,0x8D,0x83,0x7B,0x90,0x92,0x7C,0x85,0x8B,0x87,0x86,0x84,0x8C, - 0x98,0x8F,0x89,0x8E,0x8F,0x98,0x98,0x92,0x9F,0x9C,0x94,0x93,0x8D,0xA0,0x9D,0x8A, - 0x98,0x97,0x92,0x95,0x86,0x97,0xA8,0x88,0x8A,0x95,0x86,0x89,0x84,0x8B,0x99,0x80, - 0x7E,0x97,0x92,0x8B,0x86,0x86,0x84,0x74,0x71,0x76,0x89,0x80,0x72,0x83,0x82,0x7A, - 0x6C,0x65,0x72,0x67,0x4E,0x57,0x61,0x5F,0x5E,0x59,0x6B,0x73,0x5D,0x64,0x6C,0x5F, - 0x5A,0x5A,0x61,0x67,0x5E,0x60,0x79,0x74,0x5A,0x66,0x6D,0x6A,0x61,0x57,0x6D,0x64, - 0x55,0x69,0x74,0x7B,0x7B,0x86,0xA3,0xA9,0x97,0x9C,0x9E,0x8D,0x89,0x89,0x8D,0x86, - 0x7A,0x87,0x9D,0x8E,0x83,0x91,0x8E,0x85,0x79,0x80,0x91,0x7B,0x7A,0x94,0x94,0x91, - 0x8E,0x97,0xA0,0x91,0x95,0xA5,0x9D,0x95,0x98,0xA0,0x98,0x8A,0x89,0x9D,0xA9,0x92, - 0x9B,0xA6,0x99,0x8D,0x88,0x98,0x8E,0x7B,0x91,0x9C,0x8D,0x8B,0x94,0x9A,0x8C,0x7E, - 0x8C,0x8D,0x81,0x83,0x8B,0x84,0x7D,0x79,0x7B,0x8F,0x7D,0x71,0x88,0x7F,0x70,0x69, - 0x6C,0x71,0x64,0x61,0x72,0x6D,0x64,0x6E,0x6F,0x6C,0x62,0x61,0x68,0x59,0x5D,0x66, - 0x67,0x65,0x68,0x62,0x68,0x77,0x61,0x6B,0x74,0x5B,0x5B,0x5C,0x5E,0x5C,0x54,0x64, - 0x73,0x6E,0x75,0x87,0x8C,0x8B,0x8D,0xA1,0x9E,0x8F,0x99,0x99,0x8F,0x8C,0x89,0x84, - 0x96,0x92,0x80,0x92,0x8A,0x75,0x7A,0x7B,0x7A,0x79,0x7C,0x8F,0x93,0x8A,0x94,0x96, - 0x91,0x8A,0x8C,0x9B,0x8F,0x96,0xA2,0x99,0x97,0x97,0x90,0x93,0xA9,0x9C,0x99,0xAA, - 0x96,0x8C,0x92,0x91,0x90,0x88,0x94,0xA0,0x94,0x95,0x9B,0x94,0x8E,0x8A,0x8A,0x8A, - 0x83,0x8C,0x90,0x85,0x82,0x80,0x76,0x87,0x90,0x7B,0x8B,0x8F,0x74,0x71,0x6F,0x67, - 0x68,0x61,0x6B,0x72,0x64,0x6E,0x6E,0x64,0x66,0x62,0x65,0x60,0x5A,0x63,0x63,0x5F, - 0x60,0x62,0x59,0x6D,0x70,0x5A,0x72,0x6A,0x53,0x5C,0x57,0x56,0x55,0x56,0x68,0x6A, - 0x66,0x75,0x7A,0x78,0x7F,0x89,0x90,0x93,0x9A,0xA2,0xA0,0x90,0x94,0x8C,0x83,0x9C, - 0x88,0x85,0x9A,0x82,0x79,0x7D,0x79,0x7F,0x78,0x7F,0x93,0x84,0x88,0x9D,0x8C,0x88, - 0x91,0x91,0x8F,0x93,0x9C,0x99,0x96,0x98,0x97,0x8D,0x9E,0xAC,0x93,0xA4,0xAB,0x94, - 0x98,0x92,0x8D,0x91,0x89,0x96,0xA0,0x8F,0x9C,0x9E,0x8E,0x91,0x8D,0x8B,0x87,0x86, - 0x8E,0x88,0x7D,0x85,0x7E,0x77,0x94,0x84,0x7B,0x97,0x7F,0x6F,0x7A,0x71,0x6C,0x66, - 0x68,0x78,0x68,0x65,0x79,0x67,0x5E,0x67,0x61,0x5F,0x5C,0x62,0x63,0x5C,0x5E,0x5F, - 0x53,0x65,0x72,0x57,0x6B,0x73,0x59,0x5A,0x5C,0x57,0x53,0x51,0x63,0x68,0x5E,0x6F, - 0x78,0x6E,0x78,0x7E,0x83,0x89,0x8E,0x9F,0x9B,0x91,0x99,0x8E,0x86,0xA5,0x90,0x84, - 0xA3,0x8B,0x78,0x85,0x7F,0x7B,0x78,0x79,0x87,0x80,0x7F,0x91,0x88,0x83,0x93,0x8B, - 0x8A,0x90,0x90,0x96,0x8E,0x8E,0x95,0x85,0x94,0xAA,0x90,0x9C,0xAF,0x95,0x96,0x9A, - 0x8E,0x91,0x8C,0x93,0x9B,0x8F,0x98,0x9B,0x8C,0x90,0x92,0x89,0x89,0x8C,0x8C,0x87, - 0x82,0x84,0x81,0x77,0x93,0x8E,0x79,0x97,0x89,0x70,0x7B,0x75,0x70,0x6C,0x66,0x71, - 0x72,0x6A,0x74,0x72,0x63,0x68,0x67,0x5E,0x5F,0x64,0x65,0x5E,0x5C,0x63,0x56,0x61, - 0x7E,0x61,0x64,0x7A,0x5B,0x55,0x5D,0x54,0x53,0x53,0x59,0x65,0x5D,0x64,0x71,0x69, - 0x6C,0x74,0x78,0x7B,0x82,0x8C,0x92,0x91,0x95,0x97,0x8A,0xA6,0xA8,0x8C,0xA4,0x9C, - 0x86,0x8B,0x82,0x7F,0x7F,0x79,0x8B,0x8B,0x7E,0x8E,0x90,0x86,0x8C,0x90,0x8E,0x8F, - 0x91,0x96,0x90,0x8A,0x93,0x86,0x8A,0xAF,0x9B,0x94,0xB5,0x9C,0x8F,0x99,0x8F,0x92, - 0x8C,0x8E,0xA2,0x94,0x90,0xA1,0x95,0x8F,0x92,0x90,0x90,0x8D,0x90,0x91,0x8A,0x86, - 0x88,0x7A,0x8C,0x9D,0x81,0x92,0x9B,0x7D,0x7F,0x7B,0x76,0x78,0x6A,0x77,0x7E,0x6E, - 0x75,0x78,0x6B,0x6B,0x69,0x68,0x67,0x64,0x66,0x65,0x61,0x5A,0x57,0x52,0x6D,0x6A, - 0x57,0x76,0x69,0x54,0x5B,0x52,0x53,0x50,0x4B,0x60,0x60,0x56,0x65,0x64,0x60,0x67, - 0x69,0x74,0x77,0x7D,0x8A,0x8D,0x92,0x92,0x8D,0x95,0xB0,0x9B,0x96,0xAD,0x9A,0x8A, - 0x87,0x86,0x86,0x7C,0x7E,0x93,0x89,0x83,0x8E,0x88,0x87,0x82,0x85,0x8F,0x8B,0x8B, - 0x93,0x90,0x8B,0x8B,0x80,0x92,0xAB,0x92,0x9B,0xB0,0x9C,0x91,0x8D,0x91,0x97,0x86, - 0x92,0xA3,0x96,0x96,0x93,0x92,0x94,0x8A,0x8E,0x94,0x91,0x91,0x8F,0x8E,0x86,0x80, - 0x7C,0x92,0xA1,0x84,0x92,0x9C,0x84,0x7D,0x74,0x80,0x85,0x6E,0x7B,0x84,0x79,0x74, - 0x6B,0x72,0x71,0x62,0x69,0x6F,0x6C,0x63,0x60,0x62,0x5B,0x51,0x4C,0x6A,0x75,0x59, - 0x67,0x6B,0x5B,0x52,0x46,0x5A,0x5C,0x4D,0x5B,0x63,0x60,0x5B,0x56,0x62,0x69,0x63, - 0x6D,0x79,0x80,0x7C,0x7F,0x86,0x87,0x85,0x8F,0xB2,0xAF,0x9D,0xA9,0xA1,0x94,0x84, - 0x7C,0x95,0x94,0x86,0x8D,0x91,0x90,0x84,0x7C,0x86,0x8A,0x88,0x88,0x8F,0x90,0x89, - 0x89,0x87,0x88,0x81,0x92,0xAD,0x9E,0x97,0x9E,0x95,0x91,0x84,0x89,0x9D,0x98,0x98, - 0x99,0x99,0x98,0x8A,0x86,0x90,0x94,0x92,0x90,0x96,0x91,0x8A,0x86,0x7E,0x80,0x82, - 0x98,0x9F,0x8E,0x92,0x8E,0x88,0x7B,0x6F,0x7E,0x89,0x80,0x7E,0x7D,0x7B,0x7A,0x6C, - 0x6C,0x71,0x72,0x71,0x6C,0x6D,0x69,0x62,0x5A,0x5B,0x56,0x5E,0x78,0x6D,0x66,0x67, - 0x5B,0x59,0x4D,0x4B,0x5D,0x60,0x5D,0x5A,0x5A,0x5F,0x5B,0x57,0x5C,0x67,0x6A,0x6A, - 0x70,0x74,0x7B,0x79,0x79,0x7F,0x83,0xA3,0xB1,0xA4,0xA2,0x96,0x97,0x92,0x83,0x8A, - 0x95,0x96,0x91,0x88,0x88,0x8E,0x86,0x80,0x82,0x8A,0x91,0x8A,0x84,0x87,0x8A,0x83, - 0x7F,0x7A,0x89,0xA5,0xA3,0x95,0x8F,0x8E,0x92,0x8B,0x83,0x8D,0x9A,0xA0,0x98,0x8B, - 0x91,0x95,0x91,0x89,0x88,0x96,0x99,0x90,0x8A,0x8A,0x89,0x86,0x7E,0x7C,0x97,0xA3, - 0x98,0x8E,0x81,0x85,0x89,0x7C,0x7A,0x80,0x8B,0x8D,0x81,0x78,0x79,0x7F,0x7C,0x73, - 0x71,0x79,0x7B,0x71,0x6B,0x6B,0x68,0x63,0x59,0x64,0x7C,0x7A,0x6E,0x5D,0x59,0x5D, - 0x5B,0x55,0x54,0x5D,0x64,0x64,0x5C,0x56,0x5A,0x64,0x62,0x5D,0x63,0x6A,0x6F,0x70, - 0x6E,0x70,0x75,0x72,0x7C,0x98,0xA5,0xA1,0x98,0x90,0x91,0x93,0x8D,0x8C,0x8E,0x94, - 0x96,0x90,0x8A,0x85,0x8A,0x8A,0x85,0x84,0x86,0x88,0x8B,0x86,0x80,0x7F,0x7B,0x7A, - 0x90,0xA1,0x9B,0x96,0x8B,0x89,0x8D,0x8A,0x87,0x89,0x8F,0x97,0x9B,0x95,0x90,0x90, - 0x91,0x92,0x91,0x8F,0x93,0x95,0x92,0x8F,0x88,0x85,0x7F,0x8E,0xA3,0xA3,0x9B,0x8E, - 0x86,0x89,0x88,0x85,0x83,0x83,0x89,0x8B,0x8B,0x88,0x81,0x7E,0x7E,0x7E,0x7C,0x7A, - 0x79,0x77,0x74,0x6D,0x6A,0x64,0x66,0x77,0x79,0x71,0x6A,0x60,0x60,0x62,0x5D,0x5D, - 0x5B,0x59,0x5B,0x5B,0x5C,0x5F,0x5E,0x5E,0x61,0x60,0x63,0x66,0x67,0x6B,0x70,0x73, - 0x76,0x77,0x7A,0x87,0x8E,0x8E,0x93,0x95,0x98,0x9F,0x9D,0x99,0x9C,0x93,0x95,0x96, - 0x8E,0x8F,0x8B,0x86,0x87,0x84,0x82,0x85,0x83,0x83,0x83,0x83,0x85,0x82,0x85,0x8B, - 0x89,0x89,0x8B,0x8A,0x91,0x8F,0x8E,0x92,0x8F,0x8E,0x91,0x90,0x8F,0x8E,0x8B,0x8B, - 0x8C,0x8D,0x8C,0x8F,0x8F,0x8E,0x8F,0x8D,0x8E,0x89,0x8F,0x94,0x8E,0x90,0x90,0x8D, - 0x92,0x91,0x8B,0x8D,0x88,0x87,0x89,0x86,0x84,0x81,0x7D,0x7C,0x7D,0x79,0x7A,0x7B, - 0x78,0x78,0x76,0x73,0x71,0x6C,0x6F,0x72,0x6B,0x6C,0x6B,0x66,0x6C,0x6A,0x65,0x66, - 0x62,0x5F,0x60,0x5C,0x5E,0x5C,0x5B,0x60,0x60,0x64,0x67,0x69,0x6C,0x71,0x75,0x77, - 0x7A,0x7C,0x82,0x8B,0x8C,0x8F,0x95,0x92,0x99,0x9C,0x96,0x9A,0x95,0x92,0x94,0x8C, - 0x8A,0x88,0x82,0x85,0x83,0x80,0x84,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x86, - 0x87,0x85,0x89,0x88,0x89,0x8E,0x8B,0x8B,0x8D,0x88,0x8B,0x8A,0x87,0x8A,0x85,0x86, - 0x8B,0x88,0x8B,0x8C,0x8B,0x8D,0x8D,0x8E,0x8B,0x8D,0x8D,0x8D,0x90,0x90,0x8E,0x8F, - 0x8F,0x8B,0x8E,0x8B,0x8C,0x8A,0x86,0x89,0x84,0x80,0x82,0x7F,0x7B,0x7D,0x7A,0x79, - 0x79,0x75,0x75,0x75,0x74,0x72,0x6F,0x6F,0x6D,0x6C,0x6E,0x6A,0x69,0x69,0x64,0x65, - 0x65,0x60,0x63,0x63,0x61,0x64,0x64,0x64,0x66,0x66,0x69,0x6C,0x6D,0x72,0x74,0x75, - 0x7C,0x7D,0x82,0x87,0x86,0x8B,0x8E,0x8D,0x8F,0x8F,0x8D,0x8D,0x8B,0x8B,0x8C,0x89, - 0x89,0x8A,0x88,0x87,0x87,0x85,0x84,0x85,0x82,0x83,0x83,0x82,0x83,0x85,0x84,0x84, - 0x86,0x86,0x87,0x89,0x89,0x89,0x89,0x88,0x89,0x8B,0x89,0x88,0x88,0x88,0x86,0x87, - 0x87,0x85,0x84,0x85,0x84,0x82,0x83,0x82,0x81,0x81,0x81,0x80,0x80,0x82,0x82,0x83, - 0x85,0x82,0x82,0x84,0x84,0x87,0x85,0x81,0x84,0x83,0x83,0x82,0x7F,0x7F,0x7F,0x7D, - 0x7E,0x7C,0x78,0x79,0x77,0x77,0x75,0x75,0x73,0x73,0x73,0x73,0x74,0x72,0x72,0x73, - 0x73,0x73,0x75,0x74,0x76,0x78,0x78,0x79,0x77,0x7A,0x7C,0x7C,0x7D,0x7E,0x7E,0x7F, - 0x7F,0x80,0x80,0x81,0x82,0x82,0x83,0x82,0x81,0x81,0x81,0x80,0x81,0x82,0x81,0x80, - 0x80,0x81,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7E,0x80,0x80, - 0x80,0x7F,0x80,0x7F,0x7E,0x7F,0x7F,0x7E,0x7E,0x80,0x7F,0x7E,0x7F,0x80,0x80,0x81, - 0x80,0x80,0x82,0x81,0x82,0x82,0x83,0x83,0x83,0x84,0x83,0x85,0x86,0x86,0x87,0x86, - 0x85,0x85,0x86,0x85,0x85,0x83,0x85,0x85,0x83,0x84,0x84,0x82,0x82,0x82,0x80,0x81, - 0x80,0x80,0x7E,0x7E,0x7F,0x7E,0x7F,0x7E,0x7E,0x80,0x80,0x7E,0x7F,0x7F,0x7E,0x7F, - 0x7E,0x7E,0x80,0x80,0x7F,0x80,0x81,0x7F,0x7F,0x82,0x81,0x7F,0x80,0x80,0x81,0x80, - 0x81,0x81,0x83,0x84,0x82,0x84,0x84,0x82,0x82,0x84,0x84,0x83,0x82,0x83,0x82,0x84, - 0x84,0x82,0x83,0x83,0x83,0x80,0x80,0x80,0x7F,0x80,0x7F,0x7D,0x7F,0x7E,0x7F,0x80, - 0x7E,0x7D,0x7D,0x7D,0x7E,0x7D,0x7E,0x7E,0x7D,0x7E,0x7C,0x7D,0x7F,0x7F,0x81,0x81, - 0x7F,0x81,0x82,0x82,0x83,0x81,0x83,0x82,0x81,0x94,0x83,0x86,0x84,0x65,0x7F,0x81, - 0x6C,0x6A,0x78,0x80,0x87,0x8C,0x8F,0x8D,0x89,0x97,0xA0,0x9D,0x98,0x93,0x90,0x8B, - 0x89,0x86,0x81,0x78,0x6E,0x63,0x5E,0x5C,0x5A,0x56,0x54,0x5E,0x64,0x68,0x6E,0x70, - 0x76,0x7B,0x7E,0x82,0x85,0x87,0x8A,0x8A,0x8C,0x8F,0x9A,0xA2,0xAC,0xB6,0xB2,0xB3, - 0xB1,0xAB,0xA5,0xA0,0x9B,0x94,0x91,0x8C,0x87,0x82,0x7E,0x7B,0x76,0x77,0x76,0x72, - 0x71,0x72,0x6F,0x6C,0x68,0x5D,0x57,0x50,0x48,0x4C,0x49,0x4C,0x51,0x56,0x5D,0x5F, - 0x66,0x6D,0x70,0x76,0x7B,0x7D,0x85,0x85,0x86,0x8D,0x8E,0x8F,0x90,0x97,0xA0,0xA7, - 0xAC,0xAF,0xAF,0xB1,0xB2,0xAF,0xAC,0xA9,0xA1,0x9D,0x96,0x8F,0x8B,0x86,0x83,0x7F, - 0x7A,0x7A,0x76,0x71,0x6C,0x60,0x5B,0x53,0x4D,0x51,0x50,0x50,0x56,0x5A,0x61,0x6C, - 0x72,0x78,0x7D,0x80,0x85,0x88,0x8A,0x89,0x8A,0x8A,0x89,0x8B,0x83,0x87,0x90,0x9A, - 0xA6,0xA7,0xA6,0xA4,0xA4,0xA6,0x9F,0x97,0x92,0x90,0x8B,0x8A,0x8B,0x86,0x80,0x7F, - 0x7F,0x7B,0x79,0x78,0x78,0x7A,0x76,0x78,0x76,0x6D,0x6D,0x69,0x61,0x5C,0x56,0x52, - 0x4D,0x4D,0x4D,0x4E,0x54,0x57,0x5E,0x62,0x64,0x6E,0x70,0x72,0x77,0x7A,0x7F,0x85, - 0x87,0x8C,0x97,0x9C,0xA3,0xAB,0xAD,0xB1,0xB6,0xBB,0xBD,0xBE,0xBB,0xBE,0xBD,0xB4, - 0xB6,0xB4,0xAE,0xA8,0x9E,0x99,0x96,0x88,0x7F,0x7C,0x75,0x73,0x71,0x6B,0x68,0x63, - 0x5C,0x56,0x55,0x54,0x4F,0x4A,0x49,0x48,0x46,0x47,0x44,0x41,0x52,0x5F,0x57,0x57, - 0x5A,0x5F,0x67,0x60,0x62,0x6C,0x6E,0x77,0x7C,0x82,0x92,0x95,0x97,0x9F,0xA2,0xA5, - 0xA9,0xAE,0xB4,0xB8,0xB9,0xBC,0xBA,0xBC,0xCA,0xC8,0xC1,0xC5,0xC0,0xBC,0xB3,0xA8, - 0xAA,0xA5,0x9A,0x99,0x96,0x90,0x90,0x83,0x77,0x76,0x69,0x63,0x5F,0x55,0x59,0x56, - 0x53,0x50,0x48,0x55,0x58,0x4C,0x51,0x50,0x49,0x47,0x37,0x3D,0x4E,0x45,0x48,0x55, - 0x5D,0x69,0x65,0x64,0x6E,0x6B,0x67,0x68,0x6D,0x75,0x75,0x75,0x7B,0x7F,0x88,0x90, - 0x8F,0x95,0x9D,0x9E,0x9F,0x9B,0xA2,0xAD,0xA9,0xAB,0xB6,0xBA,0xBE,0xBB,0xB6,0xBF, - 0xBC,0xB3,0xB6,0xB5,0xB3,0xAB,0xA3,0xA6,0x9A,0x93,0xA2,0x98,0x8F,0x91,0x84,0x7F, - 0x71,0x63,0x68,0x62,0x56,0x5B,0x5D,0x61,0x62,0x52,0x56,0x58,0x4E,0x50,0x51,0x52, - 0x54,0x50,0x53,0x5A,0x55,0x65,0x70,0x62,0x6E,0x72,0x6F,0x70,0x62,0x6B,0x76,0x6B, - 0x72,0x7F,0x84,0x8D,0x88,0x88,0x96,0x8C,0x87,0x8E,0x8D,0x90,0x8E,0x8D,0x96,0x90, - 0x9B,0xB0,0xA4,0xA4,0xAB,0xA4,0xA2,0x98,0x97,0xA3,0x9A,0x92,0x9C,0x9B,0x9E,0x98, - 0x90,0x9A,0x91,0x85,0x88,0x87,0x84,0x7F,0x7C,0x7E,0x7D,0x75,0x7F,0x86,0x77,0x79, - 0x7A,0x77,0x74,0x60,0x6B,0x74,0x64,0x6A,0x75,0x78,0x78,0x71,0x75,0x7A,0x6D,0x6B, - 0x72,0x72,0x6F,0x6C,0x6C,0x70,0x65,0x67,0x80,0x71,0x69,0x76,0x70,0x6E,0x5F,0x60, - 0x75,0x66,0x5F,0x73,0x78,0x78,0x75,0x78,0x85,0x7B,0x76,0x7F,0x83,0x82,0x81,0x88, - 0x8B,0x8F,0x8D,0x97,0xAD,0x9D,0x9F,0xB1,0xA7,0xA1,0x98,0x9F,0xAA,0x97,0x97,0xA5, - 0xA2,0xA0,0x9E,0x9F,0xA0,0x93,0x8D,0x94,0x8E,0x88,0x8E,0x8C,0x89,0x83,0x7D,0x9A, - 0x8D,0x7A,0x91,0x89,0x7E,0x71,0x6C,0x80,0x6C,0x60,0x78,0x74,0x6D,0x6E,0x70,0x76, - 0x67,0x61,0x6A,0x61,0x5E,0x61,0x63,0x5F,0x5B,0x61,0x64,0x73,0x67,0x62,0x77,0x6C, - 0x64,0x65,0x67,0x6F,0x66,0x6B,0x80,0x7C,0x7A,0x8B,0x90,0x8D,0x89,0x8D,0x92,0x8D, - 0x8C,0x94,0x91,0x8F,0x91,0x85,0x9E,0xA4,0x87,0xA0,0xA5,0x91,0x8E,0x87,0x95,0x8A, - 0x79,0x95,0x95,0x87,0x94,0x98,0x9A,0x90,0x8D,0x99,0x8B,0x89,0x91,0x8D,0x8C,0x8B, - 0x8B,0x86,0x98,0x94,0x85,0x99,0x8F,0x81,0x82,0x7E,0x80,0x73,0x71,0x81,0x78,0x74, - 0x81,0x81,0x7B,0x76,0x78,0x76,0x6D,0x6F,0x71,0x6C,0x69,0x70,0x63,0x6F,0x87,0x67, - 0x76,0x85,0x6D,0x6E,0x67,0x6E,0x69,0x57,0x6F,0x71,0x60,0x6F,0x75,0x71,0x6C,0x6C, - 0x73,0x64,0x63,0x6B,0x65,0x62,0x66,0x6B,0x61,0x79,0x7D,0x68,0x83,0x7D,0x70,0x76, - 0x71,0x79,0x6E,0x6D,0x83,0x7B,0x7A,0x8D,0x90,0x8C,0x8D,0x94,0x92,0x8B,0x91,0x93, - 0x90,0x91,0x99,0x8D,0x94,0xB3,0x96,0x9D,0xB4,0x9D,0x9C,0x99,0x9B,0x98,0x84,0x96, - 0x9C,0x88,0x95,0xA1,0x9B,0x95,0x9A,0xA0,0x91,0x8F,0x97,0x8D,0x8A,0x8D,0x91,0x81, - 0x8E,0xA3,0x85,0x93,0xA2,0x8D,0x87,0x85,0x88,0x7D,0x70,0x81,0x7E,0x70,0x7D,0x82, - 0x77,0x71,0x79,0x77,0x66,0x6B,0x6D,0x65,0x62,0x66,0x64,0x58,0x73,0x6D,0x5B,0x77, - 0x6D,0x63,0x65,0x63,0x68,0x59,0x5E,0x6D,0x5D,0x5F,0x6F,0x6A,0x66,0x69,0x70,0x68, - 0x60,0x6D,0x66,0x61,0x66,0x68,0x62,0x64,0x81,0x6F,0x6E,0x87,0x76,0x74,0x74,0x77, - 0x76,0x6A,0x7A,0x80,0x72,0x80,0x8A,0x82,0x82,0x86,0x8D,0x81,0x83,0x91,0x86,0x87, - 0x8D,0x8D,0x84,0x8F,0xA6,0x8C,0x9C,0xAC,0x95,0x99,0x9A,0x9B,0x93,0x8D,0xA0,0x99, - 0x92,0xA4,0xA4,0x9C,0x9E,0xA4,0xA3,0x96,0x9D,0xA3,0x94,0x99,0x9A,0x95,0x8C,0x9D, - 0xAB,0x8D,0xA5,0xAC,0x94,0x98,0x98,0x96,0x88,0x86,0x96,0x8A,0x84,0x95,0x8F,0x86, - 0x88,0x8C,0x87,0x7A,0x84,0x84,0x76,0x7B,0x7A,0x72,0x69,0x82,0x82,0x6B,0x89,0x80, - 0x6D,0x74,0x71,0x6F,0x60,0x66,0x72,0x60,0x64,0x71,0x67,0x63,0x66,0x68,0x61,0x5A, - 0x64,0x5F,0x57,0x5D,0x5A,0x55,0x4F,0x6B,0x64,0x54,0x77,0x67,0x5A,0x64,0x62,0x5F, - 0x53,0x5F,0x68,0x5A,0x65,0x72,0x69,0x69,0x70,0x75,0x6E,0x6B,0x7A,0x72,0x6F,0x77, - 0x77,0x6F,0x6F,0x90,0x80,0x7A,0x9C,0x87,0x81,0x8A,0x89,0x85,0x7A,0x8A,0x8E,0x80, - 0x8F,0x97,0x8C,0x90,0x96,0x98,0x91,0x91,0xA0,0x96,0x95,0x9C,0x9B,0x93,0x95,0xB5, - 0x9E,0x9F,0xBD,0xA2,0xA0,0xA7,0xA4,0x9B,0x94,0xA4,0xA1,0x95,0xA3,0xA8,0x9D,0x9D, - 0xA4,0xA2,0x97,0x98,0xA1,0x95,0x92,0x97,0x94,0x87,0x8C,0xA9,0x8D,0x93,0xAB,0x8C, - 0x8E,0x92,0x8C,0x83,0x7D,0x8C,0x85,0x7C,0x8B,0x8A,0x7E,0x82,0x85,0x81,0x77,0x79, - 0x80,0x71,0x71,0x76,0x6F,0x63,0x6C,0x85,0x67,0x72,0x87,0x68,0x6C,0x70,0x6A,0x61, - 0x5E,0x6B,0x63,0x5D,0x6D,0x6B,0x61,0x68,0x6B,0x66,0x5F,0x64,0x69,0x5B,0x5E,0x61, - 0x5A,0x51,0x60,0x73,0x56,0x6B,0x78,0x5C,0x66,0x6A,0x63,0x5C,0x60,0x6B,0x63,0x62, - 0x73,0x71,0x6A,0x75,0x78,0x73,0x72,0x7A,0x7D,0x74,0x7A,0x7C,0x77,0x6F,0x85,0x92, - 0x76,0x94,0x9A,0x7F,0x8C,0x8D,0x84,0x7D,0x85,0x8C,0x83,0x86,0x94,0x8F,0x89,0x95, - 0x96,0x8F,0x8F,0x99,0x95,0x8D,0x95,0x93,0x8C,0x87,0xA2,0xA1,0x8D,0xB0,0xA9,0x93, - 0xA2,0x9F,0x93,0x8F,0x98,0x98,0x8E,0x95,0x9F,0x95,0x93,0x9B,0x97,0x91,0x93,0x97, - 0x8E,0x8C,0x8F,0x8A,0x81,0x80,0x99,0x8A,0x81,0xA4,0x8C,0x7E,0x91,0x86,0x78,0x7E, - 0x85,0x7E,0x7A,0x85,0x87,0x7D,0x83,0x8A,0x82,0x81,0x86,0x85,0x7D,0x7F,0x7F,0x7A, - 0x71,0x7A,0x8E,0x75,0x80,0x96,0x74,0x77,0x87,0x71,0x6A,0x75,0x71,0x6B,0x6E,0x75, - 0x72,0x6D,0x75,0x77,0x6E,0x72,0x75,0x70,0x6E,0x71,0x6F,0x6C,0x65,0x7A,0x80,0x6B, - 0x87,0x8A,0x6C,0x7F,0x85,0x6C,0x73,0x7C,0x72,0x74,0x7A,0x7C,0x79,0x79,0x80,0x7F, - 0x7A,0x7D,0x7E,0x78,0x78,0x78,0x76,0x71,0x6F,0x85,0x7C,0x74,0x91,0x81,0x71,0x88, - 0x7E,0x6B,0x7A,0x77,0x6F,0x77,0x79,0x79,0x7A,0x7E,0x81,0x80,0x7F,0x81,0x80,0x7D, - 0x7D,0x7C,0x7C,0x74,0x7C,0x8C,0x7B,0x86,0x95,0x7E,0x80,0x8F,0x78,0x77,0x85,0x76, - 0x76,0x81,0x7B,0x7B,0x82,0x81,0x84,0x86,0x83,0x85,0x85,0x82,0x7F,0x81,0x7E,0x79, - 0x88,0x8A,0x81,0x92,0x92,0x80,0x8D,0x8F,0x79,0x83,0x88,0x79,0x81,0x87,0x7F,0x83, - 0x87,0x84,0x87,0x89,0x85,0x87,0x87,0x81,0x81,0x82,0x7D,0x7D,0x87,0x85,0x83,0x8F, - 0x8B,0x80,0x8A,0x86,0x7A,0x84,0x82,0x79,0x81,0x82,0x7D,0x83,0x83,0x80,0x86,0x85, - 0x83,0x88,0x85,0x81,0x85,0x83,0x7D,0x81,0x87,0x86,0x85,0x8A,0x88,0x84,0x88,0x83, - 0x7F,0x85,0x7E,0x79,0x80,0x7C,0x79,0x7F,0x7C,0x7B,0x82,0x80,0x7D,0x82,0x81,0x7E, - 0x7F,0x7D,0x7B,0x7F,0x83,0x83,0x85,0x89,0x85,0x85,0x89,0x82,0x82,0x86,0x7E,0x7E, - 0x81,0x7B,0x7E,0x81,0x7C,0x80,0x84,0x81,0x82,0x84,0x80,0x80,0x7F,0x7C,0x7C,0x7E, - 0x83,0x82,0x83,0x87,0x82,0x82,0x85,0x7F,0x80,0x81,0x79,0x7B,0x7C,0x76,0x79,0x7C, - 0x77,0x7D,0x81,0x7D,0x81,0x81,0x7D,0x7E,0x7C,0x7A,0x7A,0x7C,0x81,0x80,0x82,0x86, - 0x81,0x82,0x84,0x7E,0x80,0x80,0x78,0x7B,0x7B,0x75,0x7B,0x7B,0x78,0x7F,0x80,0x7E, - 0x82,0x82,0x7F,0x80,0x7D,0x7C,0x7C,0x7E,0x84,0x81,0x83,0x88,0x81,0x83,0x85,0x7E, - 0x80,0x80,0x77,0x7B,0x7B,0x75,0x7B,0x7B,0x77,0x7F,0x80,0x7D,0x82,0x81,0x7F,0x80, - 0x7E,0x7D,0x7C,0x7F,0x85,0x82,0x84,0x8A,0x84,0x85,0x88,0x81,0x83,0x82,0x7A,0x7D, - 0x7D,0x77,0x7C,0x7C,0x78,0x7F,0x80,0x7D,0x83,0x81,0x7E,0x80,0x7D,0x7B,0x7B,0x7D, - 0x84,0x80,0x81,0x89,0x83,0x82,0x87,0x80,0x80,0x82,0x79,0x7B,0x7E,0x77,0x7C,0x7E, - 0x7A,0x81,0x84,0x80,0x86,0x86,0x82,0x85,0x82,0x7F,0x80,0x81,0x86,0x84,0x84,0x8C, - 0x87,0x84,0x8A,0x84,0x81,0x84,0x7D,0x7B,0x7F,0x78,0x79,0x7E,0x79,0x7E,0x82,0x7E, - 0x83,0x85,0x81,0x84,0x82,0x7F,0x80,0x80,0x85,0x85,0x85,0x8B,0x8A,0x85,0x8A,0x87, - 0x82,0x86,0x81,0x7C,0x81,0x7C,0x7A,0x80,0x7B,0x7C,0x82,0x7E,0x80,0x83,0x7E,0x80, - 0x80,0x7B,0x7C,0x7D,0x7F,0x82,0x81,0x85,0x86,0x82,0x86,0x86,0x7F,0x84,0x81,0x7A, - 0x80,0x7D,0x78,0x80,0x7D,0x7C,0x83,0x80,0x80,0x85,0x81,0x81,0x83,0x7F,0x7F,0x7F, - 0x7F,0x83,0x82,0x84,0x87,0x82,0x85,0x86,0x7E,0x82,0x82,0x7A,0x7E,0x7D,0x78,0x7E, - 0x7D,0x7A,0x81,0x81,0x80,0x84,0x83,0x82,0x84,0x81,0x80,0x82,0x81,0x85,0x84,0x84, - 0x88,0x85,0x85,0x87,0x81,0x82,0x83,0x7B,0x7B,0x7C,0x76,0x79,0x7B,0x77,0x7B,0x7E, - 0x7B,0x7F,0x80,0x7E,0x81,0x7F,0x7E,0x80,0x7F,0x83,0x84,0x82,0x87,0x85,0x84,0x87, - 0x82,0x81,0x84,0x7E,0x7C,0x7F,0x7A,0x7A,0x7C,0x79,0x7B,0x7F,0x7D,0x7E,0x81,0x7F, - 0x7F,0x7F,0x7D,0x7E,0x7E,0x80,0x81,0x7F,0x82,0x83,0x81,0x83,0x82,0x7F,0x81,0x7F, - 0x7B,0x7E,0x7C,0x79,0x7D,0x7D,0x7B,0x80,0x80,0x7F,0x84,0x84,0x82,0x84,0x83,0x83, - 0x83,0x83,0x85,0x83,0x83,0x85,0x82,0x81,0x83,0x81,0x80,0x80,0x7D,0x7C,0x7C,0x78, - 0x78,0x7B,0x78,0x79,0x7B,0x79,0x7C,0x7E,0x7D,0x7E,0x7F,0x7F,0x80,0x81,0x82,0x83, - 0x82,0x82,0x83,0x81,0x82,0x83,0x80,0x81,0x81,0x7E,0x7E,0x7D,0x7B,0x7B,0x7B,0x79, - 0x7C,0x7C,0x7C,0x7F,0x7F,0x7F,0x81,0x80,0x81,0x82,0x81,0x83,0x83,0x81,0x82,0x82, - 0x81,0x83,0x82,0x81,0x83,0x81,0x7F,0x7F,0x7F,0x7D,0x7C,0x7D,0x7C,0x7C,0x7D,0x7E, - 0x7E,0x80,0x7F,0x81,0x82,0x81,0x83,0x81,0x81,0x82,0x81,0x82,0x83,0x80,0x80,0x80, - 0x81,0x82,0x8C,0x88,0x66,0x6F,0x86,0x88,0x71,0x78,0x8E,0x6E,0x71,0x81,0x7E,0x7A, - 0x83,0x94,0x83,0x7C,0x87,0x8B,0x80,0x7A,0x8B,0x82,0x75,0x73,0x7B,0x83,0x7F,0x81, - 0x86,0x7F,0x70,0x7B,0x7D,0x7F,0x84,0x7E,0x82,0x79,0x75,0x71,0x6D,0x81,0x8A,0x93, - 0x8D,0x80,0x8B,0x71,0x71,0x93,0x7F,0x75,0x8C,0x80,0x81,0x7B,0x76,0x8A,0x80,0x79, - 0x80,0x7A,0x7C,0x7C,0x7C,0x76,0x6B,0x6F,0x7C,0x86,0x84,0x75,0x73,0x86,0x89,0x88, - 0x8C,0x89,0x8B,0x8F,0x90,0x87,0x86,0x97,0x98,0x8F,0x92,0x8A,0x82,0x92,0x9C,0x8E, - 0x8B,0x94,0x8F,0x8B,0x8C,0x86,0x7A,0x78,0x83,0x89,0x88,0x88,0x7F,0x71,0x6D,0x6C, - 0x61,0x5E,0x70,0x7B,0x75,0x77,0x71,0x69,0x73,0x71,0x66,0x6C,0x68,0x63,0x6C,0x6F, - 0x6D,0x73,0x75,0x77,0x7B,0x72,0x72,0x76,0x74,0x7A,0x81,0x77,0x69,0x72,0x8E,0x9B, - 0x92,0x8D,0x88,0x7C,0x7C,0x78,0x6A,0x6F,0x72,0x73,0x7F,0x84,0x89,0x8E,0x98,0xA2, - 0xB2,0xB1,0x9D,0x93,0x92,0x96,0x90,0x8B,0x85,0x8B,0x9D,0xA1,0x97,0x8E,0x85,0x7D, - 0x83,0x7E,0x7C,0x7C,0x76,0x7E,0x88,0x82,0x7C,0x80,0x84,0x86,0x89,0x85,0x7E,0x83, - 0x88,0x86,0x8C,0x88,0x77,0x79,0x88,0x91,0x8F,0x8D,0x84,0x82,0x8D,0x8B,0x85,0x83, - 0x80,0x80,0x86,0x86,0x86,0x88,0x83,0x8C,0x8D,0x85,0x85,0x82,0x86,0x8D,0x8B,0x87, - 0x80,0x7D,0x89,0x96,0x92,0x91,0x85,0x75,0x7A,0x76,0x71,0x6C,0x65,0x66,0x67,0x68, - 0x69,0x64,0x5B,0x5F,0x5F,0x5E,0x60,0x5E,0x5B,0x5C,0x5F,0x61,0x56,0x56,0x6C,0x75, - 0x77,0x7A,0x6F,0x66,0x6E,0x74,0x71,0x75,0x72,0x70,0x7C,0x80,0x7C,0x7C,0x72,0x69, - 0x70,0x76,0x78,0x7B,0x7A,0x78,0x7A,0x77,0x76,0x80,0x93,0xA8,0xAE,0xB3,0xA8,0x97, - 0x98,0x96,0x92,0x96,0x9D,0x9B,0x9E,0xA1,0x9B,0x97,0x89,0x7E,0x85,0x8C,0x88,0x88, - 0x8A,0x84,0x80,0x85,0x81,0x81,0x8F,0x9C,0x9E,0x9A,0x91,0x81,0x80,0x86,0x82,0x8B, - 0x8E,0x86,0x92,0x97,0x91,0x90,0x8B,0x86,0x8F,0x96,0x95,0x96,0x95,0x8D,0x86,0x88, - 0x80,0x84,0x99,0xA4,0xA4,0xA0,0x99,0x8B,0x86,0x86,0x87,0x8D,0x8E,0x88,0x8C,0x8C, - 0x87,0x8B,0x7F,0x76,0x7C,0x81,0x82,0x7F,0x74,0x64,0x5A,0x56,0x55,0x58,0x6B,0x75, - 0x76,0x74,0x65,0x53,0x4A,0x49,0x52,0x60,0x65,0x62,0x63,0x62,0x60,0x65,0x5D,0x5B, - 0x68,0x6F,0x76,0x76,0x75,0x6E,0x68,0x69,0x63,0x6C,0x79,0x85,0x85,0x83,0x7A,0x69, - 0x6B,0x6C,0x6F,0x79,0x7E,0x81,0x87,0x89,0x8B,0x92,0x92,0x93,0x9D,0xA4,0xA8,0xAB, - 0xA3,0x99,0x91,0x90,0x8F,0x91,0x98,0xA0,0xA2,0x97,0x8C,0x76,0x71,0x74,0x77,0x85, - 0x86,0x89,0x8B,0x89,0x88,0x87,0x80,0x81,0x86,0x8A,0x8E,0x96,0x96,0x8D,0x85,0x82, - 0x85,0x86,0x93,0xA3,0xA6,0xA1,0x99,0x86,0x7D,0x7F,0x84,0x90,0x95,0x98,0x94,0x8D, - 0x8F,0x90,0x8A,0x89,0x8E,0x8F,0x95,0x9A,0x95,0x8E,0x84,0x80,0x7E,0x7D,0x8D,0x9B, - 0x9A,0x92,0x85,0x73,0x66,0x64,0x66,0x6F,0x72,0x72,0x6A,0x62,0x61,0x60,0x5E,0x5B, - 0x5C,0x5D,0x60,0x64,0x63,0x60,0x57,0x51,0x51,0x59,0x68,0x76,0x81,0x7E,0x6E,0x60, - 0x5B,0x57,0x64,0x76,0x77,0x79,0x75,0x72,0x6F,0x6E,0x6E,0x6C,0x6D,0x6D,0x75,0x7A, - 0x7D,0x78,0x76,0x76,0x74,0x7B,0x90,0xA1,0xA6,0xAA,0xA0,0x94,0x8C,0x8F,0x9A,0xA0, - 0xA4,0xA2,0x9B,0x91,0x8F,0x8D,0x88,0x84,0x84,0x82,0x81,0x86,0x88,0x85,0x82,0x7D, - 0x78,0x80,0x91,0x9B,0xA1,0x9E,0x8B,0x7D,0x78,0x7D,0x87,0x91,0x9B,0x98,0x91,0x8C, - 0x8B,0x8E,0x90,0x90,0x8F,0x8F,0x90,0x95,0x95,0x94,0x8F,0x89,0x86,0x8B,0x9B,0xA8, - 0xAA,0x9F,0x91,0x82,0x7A,0x7E,0x86,0x91,0x95,0x90,0x89,0x82,0x82,0x86,0x83,0x80, - 0x79,0x74,0x74,0x71,0x72,0x6E,0x66,0x5C,0x58,0x60,0x6B,0x75,0x75,0x6B,0x5B,0x4E, - 0x4A,0x4E,0x57,0x64,0x6B,0x65,0x61,0x5F,0x62,0x66,0x67,0x67,0x67,0x68,0x6B,0x70, - 0x73,0x70,0x6C,0x68,0x69,0x6E,0x79,0x86,0x87,0x7D,0x71,0x64,0x62,0x6A,0x76,0x82, - 0x86,0x85,0x83,0x81,0x85,0x8B,0x90,0x99,0x9A,0x9A,0x9C,0xA0,0xA0,0x98,0x97,0x8D, - 0x87,0x91,0x9E,0xA1,0x9A,0x8F,0x82,0x74,0x70,0x7B,0x81,0x8C,0x90,0x87,0x84,0x7E, - 0x82,0x87,0x89,0x8A,0x83,0x88,0x8C,0x8B,0x8D,0x89,0x88,0x83,0x87,0x96,0x9E,0xA8, - 0xA4,0x98,0x8A,0x7C,0x7D,0x8A,0x94,0x9A,0x9D,0x94,0x8B,0x8C,0x90,0x91,0x93,0x95, - 0x90,0x8B,0x8E,0x8E,0x89,0x8B,0x89,0x80,0x86,0x8E,0x94,0x97,0x8B,0x7C,0x6D,0x63, - 0x67,0x70,0x78,0x78,0x73,0x6C,0x5E,0x5B,0x5D,0x62,0x67,0x62,0x61,0x5F,0x5F,0x5F, - 0x5D,0x60,0x5B,0x58,0x66,0x6D,0x74,0x7A,0x72,0x68,0x5C,0x59,0x62,0x6F,0x78,0x7B, - 0x77,0x6E,0x68,0x6A,0x72,0x76,0x7B,0x78,0x72,0x74,0x76,0x75,0x76,0x76,0x72,0x75, - 0x86,0x95,0x9F,0xA5,0x9B,0x8F,0x87,0x87,0x93,0xA1,0xA7,0xA5,0x9E,0x91,0x8A,0x89, - 0x8C,0x8F,0x8D,0x8A,0x84,0x82,0x83,0x80,0x82,0x81,0x7A,0x81,0x8B,0x94,0x98,0x97, - 0x8E,0x7C,0x75,0x74,0x83,0x91,0x97,0x99,0x90,0x89,0x85,0x89,0x92,0x96,0x96,0x94, - 0x90,0x8E,0x8E,0x8F,0x93,0x8C,0x88,0x91,0x9C,0xA2,0xA8,0xA4,0x91,0x83,0x7C,0x7E, - 0x8B,0x98,0x9D,0x96,0x8C,0x7F,0x7E,0x7F,0x83,0x85,0x80,0x7B,0x75,0x72,0x70,0x6E, - 0x69,0x62,0x60,0x69,0x72,0x77,0x7A,0x6E,0x5C,0x4E,0x48,0x53,0x64,0x6F,0x75,0x71, - 0x65,0x5E,0x62,0x64,0x67,0x6F,0x6C,0x68,0x69,0x6B,0x6B,0x6B,0x6B,0x66,0x6A,0x78, - 0x81,0x87,0x86,0x76,0x66,0x5E,0x5D,0x68,0x77,0x7F,0x83,0x7B,0x73,0x77,0x7E,0x87, - 0x8F,0x97,0x93,0x91,0x9A,0x98,0x97,0x9A,0x95,0x91,0x94,0x9F,0xA7,0xAA,0xA3,0x90, - 0x7F,0x75,0x74,0x82,0x8C,0x91,0x8F,0x85,0x7D,0x7D,0x81,0x87,0x8D,0x8B,0x88,0x84, - 0x85,0x85,0x85,0x85,0x80,0x80,0x8A,0x96,0xA0,0xA5,0x9B,0x8B,0x7E,0x78,0x82,0x8F, - 0x99,0x9E,0x98,0x8D,0x8A,0x8D,0x90,0x96,0x98,0x93,0x8D,0x8D,0x8E,0x8F,0x8F,0x8C, - 0x84,0x81,0x8C,0x92,0x9B,0x9C,0x8C,0x78,0x69,0x64,0x69,0x77,0x7D,0x7A,0x72,0x67, - 0x60,0x64,0x69,0x6A,0x69,0x65,0x62,0x63,0x68,0x68,0x66,0x63,0x5B,0x5A,0x6A,0x77, - 0x7F,0x81,0x73,0x62,0x58,0x5C,0x64,0x73,0x7B,0x78,0x72,0x6C,0x69,0x6E,0x73,0x74, - 0x74,0x6E,0x6F,0x74,0x74,0x78,0x78,0x76,0x6F,0x76,0x86,0x91,0x9A,0x9C,0x8E,0x7E, - 0x76,0x7A,0x8A,0x99,0x9D,0x98,0x91,0x89,0x8B,0x91,0x94,0x93,0x8D,0x87,0x88,0x8E, - 0x8C,0x8B,0x86,0x80,0x79,0x80,0x90,0x97,0x9C,0x97,0x86,0x75,0x71,0x75,0x83,0x8D, - 0x8C,0x86,0x80,0x7E,0x83,0x87,0x8A,0x88,0x83,0x84,0x88,0x8E,0x8C,0x8A,0x87,0x82, - 0x81,0x8A,0x97,0x9F,0xA1,0x96,0x87,0x79,0x76,0x7D,0x8A,0x90,0x8C,0x85,0x7E,0x7F, - 0x84,0x85,0x86,0x80,0x77,0x78,0x79,0x7C,0x7C,0x77,0x75,0x71,0x6D,0x77,0x82,0x88, - 0x89,0x7D,0x6E,0x64,0x66,0x6D,0x79,0x7E,0x78,0x74,0x70,0x71,0x78,0x7A,0x78,0x76, - 0x70,0x71,0x74,0x77,0x79,0x75,0x71,0x6E,0x68,0x77,0x84,0x88,0x8E,0x80,0x74,0x69, - 0x69,0x72,0x7C,0x82,0x7E,0x7D,0x7B,0x7C,0x83,0x86,0x84,0x81,0x7E,0x80,0x85,0x88, - 0x8A,0x88,0x81,0x7C,0x78,0x82,0x94,0x94,0x99,0x8D,0x7C,0x77,0x70,0x79,0x7F,0x84, - 0x81,0x7B,0x7B,0x7A,0x7E,0x82,0x7F,0x7A,0x78,0x78,0x7C,0x80,0x81,0x7E,0x7B,0x77, - 0x73,0x7E,0x8E,0x93,0x98,0x8E,0x7D,0x7A,0x76,0x7B,0x85,0x8A,0x89,0x84,0x83,0x84, - 0x8A,0x8F,0x8D,0x88,0x84,0x83,0x85,0x88,0x8B,0x89,0x84,0x83,0x7C,0x82,0x93,0x95, - 0x98,0x8F,0x84,0x7D,0x77,0x7F,0x86,0x82,0x83,0x82,0x7B,0x7B,0x82,0x87,0x85,0x85, - 0x81,0x7E,0x7D,0x7F,0x81,0x7E,0x7E,0x7B,0x73,0x78,0x87,0x8B,0x91,0x8C,0x7F,0x7A, - 0x70,0x73,0x7B,0x7C,0x7E,0x7A,0x76,0x78,0x7B,0x80,0x84,0x87,0x82,0x7D,0x7D,0x7D, - 0x80,0x7E,0x81,0x80,0x76,0x7C,0x88,0x90,0x98,0x95,0x87,0x81,0x79,0x79,0x7F,0x81, - 0x85,0x80,0x7B,0x7B,0x7E,0x82,0x85,0x86,0x83,0x7E,0x7C,0x7C,0x7C,0x7A,0x79,0x7A, - 0x72,0x78,0x82,0x86,0x8F,0x8C,0x80,0x7B,0x74,0x76,0x7A,0x7C,0x7E,0x7A,0x78,0x77, - 0x7A,0x80,0x83,0x84,0x83,0x81,0x80,0x81,0x81,0x7F,0x7F,0x7E,0x7A,0x7D,0x87,0x8B, - 0x92,0x91,0x88,0x83,0x7D,0x7C,0x82,0x81,0x81,0x7F,0x7D,0x7B,0x7A,0x81,0x81,0x84, - 0x86,0x82,0x82,0x83,0x80,0x7F,0x7F,0x7E,0x7C,0x7B,0x85,0x87,0x88,0x88,0x81,0x80, - 0x7C,0x7C,0x80,0x81,0x80,0x7D,0x79,0x78,0x78,0x79,0x79,0x7A,0x7C,0x7B,0x7B,0x7B, - 0x7B,0x7E,0x7E,0x7E,0x7D,0x7D,0x84,0x83,0x85,0x86,0x7F,0x80,0x81,0x80,0x85,0x86, - 0x86,0x85,0x81,0x80,0x7D,0x7E,0x7F,0x7F,0x81,0x80,0x7F,0x80,0x80,0x83,0x83,0x83, - 0x82,0x7F,0x86,0x85,0x85,0x87,0x7F,0x7E,0x7E,0x7D,0x83,0x81,0x80,0x7F,0x7A,0x79, - 0x77,0x77,0x76,0x7A,0x7A,0x79,0x7A,0x7B,0x7C,0x7F,0x80,0x80,0x81,0x7D,0x84,0x86, - 0x86,0x89,0x84,0x82,0x84,0x81,0x85,0x87,0x83,0x83,0x80,0x7E,0x7D,0x7C,0x7C,0x7E, - 0x7F,0x7F,0x7F,0x7E,0x7E,0x80,0x82,0x83,0x83,0x80,0x84,0x88,0x84,0x89,0x87,0x82, - 0x85,0x82,0x84,0x87,0x83,0x82,0x81,0x7C,0x7C,0x79,0x7A,0x7B,0x7B,0x7C,0x7B,0x7B, - 0x7C,0x7D,0x7F,0x81,0x80,0x7F,0x80,0x85,0x83,0x85,0x85,0x7F,0x82,0x82,0x80,0x85, - 0x82,0x80,0x80,0x7A,0x7C,0x7B,0x7A,0x7E,0x7C,0x7D,0x7D,0x7B,0x7E,0x7F,0x80,0x83, - 0x82,0x82,0x82,0x85,0x85,0x86,0x87,0x82,0x83,0x84,0x81,0x85,0x84,0x80,0x81,0x7C, - 0x7C,0x7C,0x79,0x7D,0x7B,0x7B,0x7B,0x78,0x7B,0x7D,0x7C,0x7E,0x7F,0x7E,0x7F,0x82, - 0x82,0x82,0x84,0x81,0x80,0x81,0x80,0x83,0x82,0x80,0x80,0x7C,0x7C,0x7D,0x7A,0x7D, - 0x7D,0x7A,0x7C,0x7B,0x7B,0x7E,0x7F,0x81,0x81,0x81,0x81,0x83,0x85,0x86,0x87,0x86, - 0x84,0x86,0x84,0x85,0x86,0x82,0x82,0x80,0x7E,0x80,0x7E,0x7E,0x7E,0x7B,0x7C,0x7C, - 0x7C,0x7E,0x7E,0x80,0x80,0x81,0x81,0x81,0x83,0x84,0x85,0x85,0x82,0x82,0x83,0x82, - 0x83,0x81,0x80,0x7F,0x7D,0x7E,0x7D,0x7C,0x7E,0x7C,0x7A,0x7C,0x7A,0x7C,0x7F,0x7E, - 0x7F,0x80,0x81,0x80,0x82,0x84,0x83,0x85,0x85,0x83,0x84,0x83,0x84,0x84,0x82,0x83, - 0x80,0x7F,0x81,0x7E,0x7D,0x7E,0x7B,0x7B,0x7C,0x7D,0x7E,0x7D,0x7E,0x7F,0x80,0x81, - 0x80,0x82,0x83,0x83,0x86,0x84,0x82,0x83,0x82,0x83,0x83,0x81,0x81,0x7F,0x7F,0x7F, - 0x7C,0x7C,0x7C,0x79,0x7B,0x7C,0x7B,0x7B,0x7C,0x7D,0x7D,0x7F,0x7F,0x7D,0x81,0x84, - 0x84,0x86,0x84,0x82,0x83,0x83,0x85,0x85,0x83,0x83,0x81,0x80,0x80,0x7E,0x7F,0x7D, - 0x7C,0x7F,0x7D,0x7E,0x80,0x7F,0x7E,0x80,0x81,0x80,0x80,0x83,0x83,0x84,0x85,0x82, - 0x81,0x82,0x82,0x85,0x85,0x83,0x82,0x80,0x7F,0x7F,0x7E,0x7E,0x7E,0x7C,0x7E,0x7D, - 0x7D,0x7F,0x7E,0x7C,0x7D,0x7F,0x80,0x82,0x81,0x82,0x82,0x82,0x84,0x82,0x84,0x84, - 0x84,0x86,0x83,0x81,0x80,0x80,0x80,0x80,0x7E,0x7E,0x7E,0x7E,0x7C,0x7D,0x7E,0x7C, - 0x8D,0x80,0x83,0x82,0x65,0x7F,0x7F,0x6B,0x6B,0x7B,0x83,0x89,0x8E,0x8E,0x8F,0x8A, - 0x97,0xA3,0x9E,0xA8,0xA3,0x91,0x88,0x76,0x82,0x8C,0x69,0x62,0x71,0x63,0x51,0x52, - 0x49,0x52,0x6D,0x6A,0x5D,0x50,0x63,0x73,0x6B,0x71,0x7B,0x99,0x8E,0x8A,0xA7,0x91, - 0x9C,0xA6,0x9B,0x9F,0xA7,0xAB,0x95,0xAA,0xAF,0x9C,0xA6,0xA3,0x85,0x88,0x8F,0x7E, - 0x7D,0x5B,0x6E,0x8E,0x77,0x76,0x6D,0x77,0x79,0x72,0x78,0x78,0x79,0x65,0x55,0x5D, - 0x51,0x59,0x6A,0x60,0x67,0x6F,0x65,0x64,0x7A,0x78,0x77,0x80,0x93,0x99,0x96,0xA5, - 0x9F,0xA4,0xA2,0x9B,0xA9,0xAC,0xA9,0x99,0x91,0xA2,0x9D,0x9D,0x9F,0x94,0x9A,0x95, - 0x92,0x91,0x7E,0x7C,0x74,0x76,0x73,0x6F,0x5F,0x45,0x47,0x4A,0x5A,0x5F,0x4C,0x37, - 0x40,0x45,0x34,0x38,0x3F,0x4B,0x58,0x61,0x6B,0x6C,0x7D,0x8E,0xA4,0xAE,0x99,0x8C, - 0x9A,0xA1,0x9A,0xA3,0xA0,0xA9,0xBF,0xCB,0xD1,0xC1,0xBA,0xAC,0xAE,0xA7,0x90,0x80, - 0x74,0x82,0x82,0x83,0x89,0x6F,0x69,0x6D,0x64,0x76,0x78,0x5B,0x57,0x5C,0x68,0x6D, - 0x5B,0x5C,0x65,0x6F,0x75,0x6E,0x69,0x68,0x7E,0x86,0x7C,0x7B,0x7C,0x93,0x9D,0x91, - 0x91,0x99,0x9A,0x9F,0x97,0x96,0xA7,0x9E,0x9D,0xA5,0x97,0xA4,0xA9,0x8D,0xA4,0xAF, - 0xA8,0xAE,0x98,0x94,0x93,0x89,0x8C,0x88,0x7E,0x79,0x69,0x57,0x5B,0x61,0x60,0x60, - 0x5B,0x66,0x6B,0x56,0x4A,0x38,0x3A,0x52,0x56,0x59,0x5B,0x59,0x62,0x57,0x47,0x57, - 0x55,0x50,0x4A,0x46,0x5A,0x61,0x75,0x79,0x7E,0xA2,0xB2,0xB5,0x9F,0x92,0xA3,0xA1, - 0xA4,0xA7,0xA6,0xB8,0xA3,0x91,0x99,0x9A,0xA1,0x96,0x97,0x98,0x88,0x97,0xA1,0xA2, - 0xA9,0xAC,0xB0,0xAD,0xA1,0x98,0x8D,0x74,0x66,0x63,0x71,0x85,0x72,0x63,0x5C,0x51, - 0x5B,0x64,0x62,0x67,0x69,0x6C,0x6F,0x63,0x5B,0x56,0x5F,0x71,0x74,0x83,0x8A,0x80, - 0x8B,0x91,0x83,0x79,0x83,0x8D,0x8E,0x9A,0x98,0x86,0x91,0x8E,0x7B,0x97,0xAB,0x9C, - 0xA4,0x9F,0x90,0x97,0x85,0x88,0x92,0x8E,0xA2,0x9E,0x97,0x9B,0x94,0x8C,0x8A,0x8D, - 0x85,0x8A,0x95,0x8E,0x83,0x79,0x7D,0x80,0x77,0x81,0x97,0x8C,0x83,0x73,0x5A,0x59, - 0x59,0x61,0x5D,0x55,0x65,0x66,0x60,0x5A,0x4D,0x59,0x66,0x64,0x68,0x6A,0x60,0x54, - 0x50,0x51,0x61,0x74,0x6B,0x62,0x6A,0x70,0x74,0x6B,0x5A,0x5C,0x6E,0x79,0x75,0x77, - 0x83,0x81,0x79,0x73,0x77,0x84,0x8E,0x96,0x95,0x95,0x97,0x99,0x99,0x9F,0xAC,0xAC, - 0xA1,0xA0,0xAD,0xBC,0xC3,0xC3,0xB6,0xBA,0xD2,0xD1,0xCA,0xC8,0xC1,0xCA,0xCD,0xC2, - 0xBC,0xBF,0xBA,0xB9,0xBF,0xB8,0xAB,0x96,0x97,0xA1,0x9F,0x9B,0x8D,0x86,0x85,0x81, - 0x77,0x5D,0x4C,0x40,0x43,0x3D,0x3D,0x47,0x43,0x4C,0x4E,0x41,0x40,0x49,0x4D,0x50, - 0x50,0x49,0x46,0x43,0x44,0x4F,0x4A,0x48,0x45,0x2D,0x4D,0x65,0x55,0x55,0x4A,0x51, - 0x5D,0x62,0x64,0x68,0x73,0x7E,0x84,0x79,0x7C,0x87,0x8B,0x9F,0xA6,0xA7,0xA9,0x9F, - 0x9F,0xA5,0xA8,0x9E,0x9C,0x9B,0x90,0xA4,0xA9,0x95,0x95,0x97,0x9A,0x9D,0x99,0x99, - 0xAC,0xB2,0xA3,0x8E,0x87,0x95,0xA5,0xAC,0x9B,0x8D,0x94,0x96,0x9C,0x9B,0x93,0x8E, - 0x85,0x80,0x80,0x83,0x90,0x92,0x82,0x7F,0x89,0x92,0x90,0x8C,0x8E,0x98,0x99,0x84, - 0x82,0x86,0x8B,0x8B,0x80,0x81,0x84,0x9B,0x94,0x84,0x87,0x7D,0x85,0x85,0x6B,0x5C, - 0x62,0x61,0x65,0x63,0x57,0x5B,0x5D,0x56,0x53,0x62,0x5F,0x4D,0x45,0x45,0x59,0x5B, - 0x58,0x61,0x62,0x5F,0x5E,0x62,0x63,0x6C,0x71,0x66,0x5A,0x53,0x60,0x7B,0x7B,0x71, - 0x66,0x65,0x7B,0x7A,0x77,0x8A,0x9A,0xA0,0xA2,0x98,0x9E,0xAF,0xA9,0xAB,0xAF,0xAD, - 0xA6,0x93,0x85,0x97,0xAB,0xA9,0x9B,0x8E,0x88,0x95,0xA7,0x97,0x7D,0x75,0x7F,0x88, - 0x81,0x7B,0x82,0x83,0x85,0x7D,0x6B,0x7B,0x92,0x98,0x99,0x94,0x85,0x7F,0x7A,0x79, - 0x82,0x7B,0x78,0x7B,0x79,0x85,0x92,0x8D,0x81,0x7C,0x80,0x89,0x86,0x78,0x7A,0x88, - 0x8F,0x88,0x78,0x7A,0x8B,0x8F,0x93,0x93,0x84,0x7E,0x74,0x6A,0x72,0x77,0x73,0x66, - 0x60,0x61,0x6F,0x7F,0x7B,0x71,0x65,0x5B,0x5C,0x5A,0x5C,0x75,0x81,0x71,0x62,0x5F, - 0x64,0x77,0x83,0x7A,0x74,0x75,0x75,0x6D,0x60,0x62,0x6E,0x6A,0x6C,0x71,0x6A,0x7E, - 0x8F,0x86,0x85,0x81,0x82,0x8F,0x8D,0x94,0xAB,0xA8,0x9E,0x9E,0x99,0xA0,0xAC,0xAC, - 0xA7,0xA7,0xA0,0x8C,0x7D,0x78,0x80,0x88,0x7C,0x76,0x77,0x71,0x8A,0x9A,0x89,0x83, - 0x7C,0x77,0x7E,0x78,0x7E,0x8F,0x87,0x7A,0x78,0x70,0x76,0x85,0x86,0x8F,0x91,0x85, - 0x7C,0x77,0x7B,0x8E,0x8B,0x7B,0x7C,0x76,0x77,0x99,0x9D,0x85,0x80,0x7C,0x87,0x8E, - 0x7F,0x82,0x8C,0x84,0x7C,0x71,0x63,0x6B,0x79,0x7D,0x7C,0x7B,0x76,0x68,0x6B,0x78, - 0x7A,0x71,0x67,0x67,0x64,0x6A,0x84,0x89,0x76,0x73,0x6D,0x69,0x6B,0x64,0x6D,0x7D, - 0x71,0x69,0x5D,0x53,0x69,0x7A,0x78,0x77,0x72,0x6C,0x6D,0x6B,0x6D,0x75,0x75,0x71, - 0x78,0x75,0x75,0x90,0x9A,0x91,0x8F,0x8F,0x93,0xA0,0xA5,0xAE,0xBA,0xAE,0x9F,0x9C, - 0x9C,0xA5,0xAC,0xA2,0x9F,0xA0,0x99,0x99,0x93,0x96,0x9C,0x95,0x91,0x93,0x8C,0x88, - 0xA3,0xA7,0x91,0x88,0x80,0x85,0x92,0x8E,0x8E,0x96,0x95,0x8D,0x7F,0x79,0x86,0x8D, - 0x88,0x8C,0x8E,0x86,0x7F,0x83,0x88,0x89,0x90,0x87,0x7E,0x7A,0x73,0x8C,0x8E,0x79, - 0x6D,0x65,0x72,0x76,0x6F,0x73,0x7D,0x78,0x71,0x64,0x47,0x5E,0x7E,0x78,0x63,0x63, - 0x6E,0x4E,0x4F,0x63,0x61,0x5B,0x5B,0x6A,0x5C,0x51,0x68,0x73,0x63,0x54,0x56,0x4E, - 0x48,0x46,0x54,0x68,0x68,0x5F,0x5B,0x55,0x55,0x6A,0x66,0x5B,0x63,0x66,0x66,0x65, - 0x6B,0x72,0x76,0x7B,0x84,0x87,0x83,0x96,0xAF,0xB3,0xAD,0x9F,0x9D,0xA9,0xAA,0xA8, - 0xBE,0xBF,0xA4,0xA0,0x9E,0xA7,0xB6,0xAA,0x9F,0xA0,0xA2,0x9D,0x93,0x95,0x9C,0xA2, - 0xA0,0x94,0x95,0x95,0x97,0xB0,0xBA,0xAC,0x9C,0x95,0x9F,0xAB,0xA9,0xAF,0xB4,0xAA, - 0xA2,0x9A,0x9C,0xA9,0xAD,0xA2,0x9B,0xA3,0x9F,0x94,0x91,0x96,0x9A,0x92,0x90,0x8E, - 0x89,0x81,0x83,0x96,0x8B,0x77,0x72,0x71,0x81,0x86,0x7E,0x7F,0x7B,0x70,0x65,0x60, - 0x6A,0x6F,0x64,0x5C,0x5B,0x5A,0x57,0x55,0x50,0x53,0x50,0x4A,0x47,0x42,0x3B,0x37, - 0x4D,0x59,0x48,0x40,0x36,0x38,0x44,0x40,0x3D,0x49,0x46,0x35,0x33,0x3A,0x48,0x50, - 0x4B,0x52,0x5B,0x5F,0x62,0x62,0x6C,0x7E,0x83,0x83,0x87,0x88,0x83,0x8A,0xA7,0xA8, - 0x91,0x88,0x89,0x98,0xA0,0x93,0x98,0xA1,0x93,0x8F,0x8B,0x8B,0x94,0x8E,0x90,0x99, - 0x97,0x8D,0x89,0x8D,0x9B,0xA0,0x9A,0x9E,0xA0,0x9F,0x96,0x9F,0xC0,0xBA,0xA3,0xA7, - 0xA8,0xB0,0xB0,0xA3,0xB0,0xBB,0xB2,0xAA,0xA3,0xA9,0xB4,0xAF,0xAA,0xA8,0xA2,0xA2, - 0x9E,0x9F,0xA4,0x9E,0x9C,0x98,0x95,0x96,0x8B,0x98,0xAD,0x9A,0x85,0x82,0x80,0x86, - 0x82,0x7C,0x83,0x7F,0x6E,0x65,0x60,0x67,0x69,0x60,0x5E,0x5D,0x5C,0x54,0x4D,0x55, - 0x5A,0x58,0x55,0x52,0x55,0x56,0x4E,0x5A,0x72,0x64,0x53,0x54,0x54,0x59,0x59,0x59, - 0x68,0x6E,0x68,0x63,0x65,0x75,0x81,0x80,0x82,0x87,0x89,0x86,0x83,0x89,0x8A,0x84, - 0x83,0x82,0x85,0x80,0x71,0x7C,0x94,0x8D,0x7C,0x76,0x75,0x7C,0x7B,0x77,0x80,0x80, - 0x7B,0x74,0x72,0x7C,0x80,0x7E,0x7D,0x82,0x89,0x86,0x82,0x85,0x8C,0x8D,0x8F,0x90, - 0x8C,0x8B,0x84,0x8D,0xA9,0xA6,0x8F,0x88,0x8B,0x94,0x91,0x89,0x92,0x9A,0x91,0x84, - 0x82,0x89,0x92,0x91,0x8E,0x8E,0x90,0x8C,0x7E,0x85,0x8F,0x8C,0x85,0x7E,0x7B,0x7F, - 0x7D,0x72,0x83,0x90,0x7B,0x6C,0x67,0x66,0x67,0x62,0x65,0x6D,0x69,0x5A,0x55,0x58, - 0x60,0x5D,0x59,0x5A,0x60,0x65,0x5A,0x5B,0x63,0x64,0x66,0x66,0x69,0x6B,0x6D,0x65, - 0x73,0x94,0x8D,0x79,0x7E,0x8A,0x91,0x90,0x8A,0x9A,0xA7,0x98,0x8E,0x91,0x96,0x98, - 0x93,0x91,0x93,0x92,0x8A,0x84,0x88,0x8A,0x86,0x82,0x82,0x89,0x89,0x7F,0x78,0x8F, - 0x9F,0x8A,0x7F,0x81,0x87,0x8B,0x86,0x8E,0x9A,0x95,0x89,0x85,0x8F,0x99,0x98,0x95, - 0x98,0x9F,0x9D,0x96,0x96,0x99,0x9A,0x9A,0x98,0x94,0x90,0x8E,0x86,0x8A,0xA8,0xA4, - 0x88,0x85,0x87,0x88,0x84,0x80,0x8C,0x93,0x86,0x78,0x7B,0x82,0x80,0x7E,0x7F,0x7E, - 0x80,0x78,0x6E,0x72,0x75,0x74,0x6E,0x6A,0x6F,0x70,0x6A,0x5B,0x62,0x81,0x78,0x5E, - 0x5D,0x60,0x63,0x60,0x5D,0x6C,0x74,0x66,0x60,0x65,0x6F,0x71,0x6E,0x74,0x7C,0x7E, - 0x79,0x77,0x7C,0x7F,0x82,0x83,0x83,0x88,0x86,0x81,0x78,0x83,0x9E,0x92,0x7C,0x80, - 0x82,0x7E,0x78,0x7B,0x8B,0x8F,0x7F,0x76,0x7A,0x82,0x83,0x7D,0x7D,0x85,0x85,0x80, - 0x7C,0x81,0x87,0x84,0x83,0x85,0x8A,0x86,0x82,0x7C,0x82,0x9F,0x98,0x7F,0x82,0x87, - 0x89,0x86,0x83,0x8F,0x97,0x8B,0x7F,0x82,0x8A,0x8A,0x85,0x87,0x8D,0x8C,0x84,0x82, - 0x85,0x86,0x83,0x83,0x83,0x86,0x88,0x83,0x7A,0x79,0x96,0x99,0x7F,0x7B,0x7F,0x7E, - 0x80,0x7D,0x82,0x8C,0x83,0x75,0x76,0x7D,0x7C,0x77,0x79,0x7F,0x7F,0x77,0x71,0x74, - 0x76,0x75,0x76,0x77,0x7B,0x7A,0x75,0x72,0x6F,0x84,0x93,0x7E,0x78,0x7F,0x7C,0x7C, - 0x7B,0x82,0x8E,0x8C,0x80,0x7E,0x86,0x87,0x82,0x83,0x88,0x8B,0x86,0x7F,0x80,0x85, - 0x83,0x81,0x82,0x85,0x83,0x7D,0x7B,0x76,0x7D,0x95,0x89,0x75,0x7C,0x7B,0x75,0x73, - 0x74,0x83,0x89,0x7A,0x72,0x79,0x7A,0x78,0x79,0x7F,0x84,0x84,0x7F,0x7D,0x84,0x83, - 0x7E,0x82,0x85,0x86,0x83,0x7E,0x7F,0x79,0x8A,0x9F,0x86,0x7C,0x88,0x81,0x7C,0x7A, - 0x7E,0x8A,0x87,0x78,0x7A,0x80,0x7B,0x7A,0x7E,0x83,0x85,0x82,0x7D,0x7E,0x81,0x7D, - 0x7E,0x83,0x83,0x83,0x7F,0x7E,0x7B,0x75,0x8E,0x96,0x7D,0x7D,0x82,0x77,0x76,0x78, - 0x7D,0x86,0x7D,0x75,0x7C,0x7F,0x7A,0x79,0x7C,0x81,0x83,0x7E,0x7B,0x7F,0x7E,0x7B, - 0x7F,0x85,0x86,0x83,0x80,0x83,0x7E,0x7A,0x95,0x96,0x7B,0x83,0x86,0x7A,0x7B,0x7C, - 0x84,0x8E,0x81,0x78,0x80,0x80,0x7B,0x7B,0x7E,0x84,0x82,0x7C,0x7C,0x7F,0x7D,0x7B, - 0x7C,0x7E,0x7E,0x7D,0x7C,0x7B,0x75,0x74,0x90,0x90,0x75,0x7E,0x84,0x7A,0x76,0x7C, - 0x86,0x8B,0x84,0x72,0x7D,0x87,0x7C,0x7F,0x87,0x8A,0x88,0x89,0x87,0x8A,0x86,0x7C, - 0x84,0x86,0x84,0x84,0x80,0x83,0x7D,0x73,0x8F,0x94,0x79,0x80,0x86,0x78,0x72,0x73, - 0x7F,0x89,0x81,0x7C,0x84,0x82,0x79,0x79,0x7F,0x84,0x80,0x7D,0x7F,0x84,0x80,0x79, - 0x7D,0x80,0x7F,0x80,0x7D,0x7E,0x7B,0x6F,0x89,0x96,0x77,0x7C,0x8B,0x79,0x76,0x7A, - 0x7E,0x8C,0x85,0x78,0x83,0x88,0x7A,0x78,0x84,0x89,0x83,0x82,0x85,0x86,0x82,0x7B, - 0x85,0x83,0x7C,0x7F,0x82,0x81,0x7C,0x73,0x7F,0x9B,0x81,0x73,0x8F,0x82,0x72,0x76, - 0x80,0x89,0x84,0x77,0x7D,0x88,0x74,0x6E,0x7C,0x78,0x73,0x77,0x79,0x7E,0x80,0x75, - 0x7F,0x8C,0x81,0x86,0x8E,0x88,0x8B,0x80,0x80,0x9C,0x88,0x6A,0x84,0x80,0x69,0x73, - 0x79,0x80,0x88,0x73,0x77,0x98,0x8B,0x72,0x80,0x91,0x84,0x77,0x71,0x7C,0x8F,0x7C, - 0x70,0x8A,0x95,0x83,0x74,0x79,0x89,0x7A,0x65,0x8C,0x9B,0x82,0x85,0x81,0x68,0x70, - 0x83,0x7A,0x7A,0x77,0x7B,0x7D,0x6F,0x77,0x8B,0x88,0x74,0x7D,0x94,0x9D,0x8D,0x74, - 0x77,0x90,0x8B,0x77,0x82,0x83,0x7D,0x82,0x6D,0x7A,0xA2,0x7B,0x64,0x96,0x91,0x6A, - 0x68,0x7B,0x93,0x83,0x68,0x84,0xA4,0x83,0x6B,0x8A,0x8C,0x6E,0x6B,0x87,0x8D,0x75, - 0x6E,0x7E,0x88,0x7F,0x83,0x87,0x77,0x72,0x6F,0x79,0x98,0x8D,0x77,0x8B,0x82,0x70, - 0x82,0x84,0x7E,0x79,0x76,0x81,0x78,0x6F,0x7D,0x90,0x8D,0x8F,0x8F,0x76,0x68,0x76, - 0x7C,0x87,0x9B,0x80,0x82,0x99,0x88,0x7C,0x97,0x84,0x62,0x8E,0x75,0x6A,0x91,0x74, - 0x69,0x76,0x72,0x6F,0x66,0x77,0x88,0x91,0xAC,0xA5,0xAA,0xAF,0x96,0x6C,0x6F,0x80, - 0x5E,0x5C,0x6F,0x73,0x6B,0x7E,0x93,0x99,0x9D,0x95,0x92,0x7F,0x5B,0x49,0x5A,0x81, - 0x91,0x80,0x76,0x77,0x81,0x7D,0x85,0x93,0x92,0x96,0x8F,0x84,0x93,0x98,0x8A,0x9F, - 0xA8,0x9C,0x8D,0x6D,0x68,0x70,0x7C,0x76,0x5A,0x5B,0x6F,0x69,0x6F,0x8C,0x7D,0x5C, - 0x77,0x87,0x73,0x7E,0x78,0x7A,0x99,0xA2,0x96,0x90,0x82,0x6E,0x8B,0xAE,0x9C,0x80, - 0x79,0x83,0x82,0x72,0x8B,0x95,0x71,0x6E,0x72,0x76,0x71,0x6A,0x7C,0x7E,0x89,0x93, - 0x77,0x6F,0x72,0x69,0x75,0x86,0x7D,0x70,0x6B,0x73,0x8B,0x9C,0xA3,0xA1,0x98,0x99, - 0x88,0x76,0x6E,0x80,0x92,0x89,0x95,0x95,0x7A,0x64,0x77,0x84,0x78,0x76,0x60,0x6C, - 0x88,0x70,0x6F,0x89,0x74,0x6E,0x7E,0x65,0x76,0x98,0x84,0x7F,0x8C,0x7D,0x7D,0x93, - 0x8E,0x9C,0xAF,0x9A,0x90,0x99,0x8A,0x7B,0x7C,0x7C,0x72,0x70,0x7C,0x73,0x67,0x69, - 0x7B,0x88,0x9F,0xA1,0x88,0x94,0x8E,0x67,0x6A,0x7C,0x7B,0x74,0x5F,0x68,0x78,0x66, - 0x6D,0x8F,0x82,0x76,0x8F,0x88,0x8E,0x92,0x7E,0x92,0x88,0x79,0x93,0x81,0x62,0x6F, - 0x95,0x9F,0x89,0x80,0x75,0x71,0x81,0x85,0xA2,0xA6,0x84,0x92,0x90,0x73,0x6A,0x6B, - 0x6B,0x68,0x71,0x72,0x76,0x6A,0x65,0x83,0x91,0x89,0x82,0x8D,0x88,0x86,0x90,0x94, - 0x89,0x7D,0x88,0x87,0x80,0x6E,0x6E,0x89,0x80,0x78,0x96,0x92,0x6F,0x72,0x7A,0x8D, - 0xA0,0x89,0x82,0x7D,0x71,0x75,0x8B,0x9D,0x84,0x91,0xAF,0x97,0x8E,0x82,0x7E,0x94, - 0x8B,0x81,0x81,0x66,0x54,0x64,0x6E,0x68,0x5E,0x65,0x67,0x69,0x71,0x71,0x87,0x87, - 0x85,0x93,0x85,0x7E,0x7D,0x7D,0x92,0x87,0x83,0x94,0x82,0x79,0x8A,0x99,0x99,0x8D, - 0x82,0x92,0x91,0x82,0x94,0x9D,0x87,0x6A,0x75,0x74,0x5A,0x6E,0x7A,0x7D,0x87,0x88, - 0x90,0x7A,0x63,0x74,0x87,0x80,0x71,0x7F,0x82,0x79,0x7D,0x7A,0x86,0x8F,0x8A,0x8C, - 0x94,0x85,0x78,0x96,0xA4,0x96,0x94,0x93,0x83,0x6E,0x6D,0x80,0x8D,0x8C,0x7F,0x74, - 0x6B,0x5D,0x69,0x81,0x77,0x6F,0x76,0x6E,0x75,0x76,0x86,0xA2,0x9D,0x99,0x9A,0x8B, - 0x61,0x59,0x78,0x84,0x74,0x75,0x86,0x7B,0x69,0x75,0x8F,0x88,0x7E,0x87,0x88,0x78, - 0x62,0x6B,0x7A,0x83,0x7B,0x84,0x90,0x77,0x74,0x73,0x7C,0x86,0x8F,0x98,0xA0,0x93, - 0x88,0x9B,0x91,0x7C,0x80,0x8E,0x82,0x7A,0x7C,0x88,0xA5,0xA4,0x92,0x94,0x83,0x6E, - 0x7E,0x7F,0x68,0x6F,0x6B,0x5E,0x6B,0x5D,0x67,0x7F,0x69,0x7A,0x82,0x6B,0x69,0x75, - 0x90,0x8F,0x8A,0x8E,0x88,0x7D,0x75,0x7C,0x87,0x96,0x8A,0x80,0x7E,0x74,0x89,0x90, - 0x88,0x7D,0x7F,0x92,0x86,0x75,0x79,0x75,0x7C,0x7D,0x76,0x7F,0x6D,0x56,0x67,0x88, - 0x8D,0x7A,0x80,0x81,0x7D,0x7D,0x76,0x84,0x99,0xA8,0xAF,0x9F,0x7F,0x67,0x6E,0x75, - 0x6F,0x7A,0x91,0x7F,0x75,0x86,0x80,0x86,0x7D,0x7F,0x8E,0x8A,0x79,0x74,0x77,0x62, - 0x64,0x75,0x77,0x6C,0x76,0x7C,0x80,0xA1,0x9C,0xA1,0x9A,0x73,0x87,0x94,0x8B,0x81, - 0x80,0x78,0x70,0x6F,0x6A,0x71,0x73,0x82,0x9A,0xA4,0x8D,0x7E,0x8B,0x97,0x9F,0x87, - 0x7E,0x7F,0x63,0x55,0x5A,0x73,0x7E,0x72,0x6A,0x69,0x6C,0x73,0x87,0x8E,0x82,0x89, - 0x98,0x8E,0x8C,0x85,0x7B,0x97,0x8C,0x7E,0x89,0x6E,0x60,0x77,0x8A,0x7C,0x75,0x75, - 0x70,0x7D,0x6F,0x6F,0x80,0x84,0x94,0x92,0x82,0x7C,0x78,0x76,0x87,0x97,0x96,0x85, - 0x77,0x69,0x6D,0x7B,0x88,0x99,0x90,0x94,0x9C,0x84,0x81,0x7D,0x62,0x6C,0x7E,0x7E, - 0x78,0x75,0x74,0x81,0x95,0xA6,0x9D,0x81,0x79,0x6F,0x75,0x76,0x71,0x74,0x74,0x82, - 0x6B,0x68,0x7D,0x75,0x84,0x9A,0x91,0x82,0x7C,0x7F,0x94,0xA3,0x93,0x88,0x7E,0x73, - 0x72,0x63,0x72,0x96,0x93,0x8B,0x95,0x99,0x9A,0x9A,0x7E,0x7D,0x9B,0x86,0x75,0x77, - 0x67,0x6F,0x78,0x82,0x80,0x6F,0x76,0x5D,0x65,0x7F,0x71,0x7F,0x7A,0x78,0x7E,0x72, - 0x83,0x85,0x85,0xA0,0x8B,0x6E,0x83,0x70,0x71,0x8C,0x87,0x8C,0x7F,0x76,0x78,0x79, - 0x86,0x97,0xA0,0x8C,0x82,0x7B,0x71,0x89,0x80,0x71,0x7F,0x84,0x88,0x83,0x72,0x76, - 0x88,0x94,0xA9,0x98,0x8A,0x86,0x6A,0x73,0x71,0x6D,0x74,0x6D,0x75,0x69,0x68,0x7C, - 0x7F,0x98,0xA8,0x92,0x81,0x79,0x80,0x92,0x9C,0x9E,0x94,0x78,0x70,0x67,0x57,0x73, - 0x8F,0x85,0x74,0x83,0x88,0x81,0x86,0x7A,0x83,0x9A,0x8B,0x85,0x86,0x73,0x70,0x7E, - 0x95,0x99,0x81,0x88,0x8D,0x94,0x98,0x8F,0x92,0x7F,0x86,0x7B,0x6D,0x76,0x6D,0x87, - 0x8C,0x78,0x7D,0x55,0x43,0x78,0x8E,0x7A,0x77,0x86,0x73,0x6F,0x7F,0x85,0x99,0xA4, - 0xA7,0x92,0x68,0x72,0x86,0x6E,0x60,0x74,0x77,0x72,0x6F,0x67,0x78,0x8E,0xA4,0xA9, - 0x88,0x7A,0x85,0x75,0x79,0x89,0x89,0x88,0x7F,0x82,0x75,0x79,0x78,0x7E,0xA1,0x9C, - 0x8A,0x87,0x79,0x81,0x9E,0x96,0x90,0x7E,0x5F,0x6D,0x70,0x62,0x87,0xA6,0x81,0x84, - 0x98,0x78,0x75,0x72,0x63,0x7C,0x88,0x76,0x7A,0x7C,0x65,0x5E,0x75,0x8E,0x89,0x77, - 0x79,0x82,0x82,0x8E,0x94,0x84,0x97,0x9E,0x83,0x74,0x70,0x7D,0x88,0x88,0x82,0x7E, - 0x75,0x71,0x8D,0xA3,0xA8,0x9D,0x81,0x7F,0x85,0x73,0x74,0x86,0x76,0x6C,0x76,0x6B, - 0x65,0x62,0x5E,0x5F,0x70,0x6C,0x64,0x76,0x7A,0x80,0x97,0xAA,0xA4,0x8D,0x8A,0x8B, - 0x7E,0x77,0x79,0x7C,0x7C,0x80,0x79,0x73,0x7A,0x7A,0x6F,0x87,0x96,0x76,0x71,0x6E, - 0x87,0xA4,0x8F,0x94,0x8A,0x6E,0x76,0x73,0x76,0x99,0x9F,0x82,0x89,0x99,0x82,0x6F, - 0x6F,0x75,0x79,0x7C,0x76,0x76,0x75,0x71,0x74,0x90,0x9F,0x8B,0x81,0x82,0x81,0x7A, - 0x87,0x86,0x83,0x94,0x87,0x78,0x62,0x62,0x78,0x7C,0x7E,0x79,0x76,0x62,0x59,0x76, - 0x8E,0x98,0x99,0x87,0x89,0x96,0x81,0x82,0x8F,0x83,0x81,0x87,0x86,0x81,0x85,0x83, - 0x7E,0x96,0x99,0x89,0x89,0x75,0x73,0x85,0x93,0x91,0x7F,0x79,0x77,0x6A,0x5D,0x6A, - 0x6A,0x6E,0x7A,0x77,0x79,0x73,0x72,0x7B,0x8B,0x90,0x8B,0x85,0x70,0x86,0x91,0x7B, - 0x85,0x72,0x6A,0x79,0x67,0x6E,0x92,0x8D,0x84,0xA0,0x9F,0x89,0x7C,0x74,0x7D,0x82, - 0x89,0x8A,0x8D,0x88,0x73,0x79,0x8D,0x99,0x8A,0x7F,0x79,0x7A,0x80,0x7E,0x87,0x7E, - 0x80,0x82,0x6B,0x5D,0x70,0x73,0x73,0x87,0x8F,0x8B,0x76,0x6C,0x7D,0x8D,0x94,0x99, - 0x88,0x8A,0x94,0x7C,0x80,0x82,0x74,0x7C,0x7A,0x71,0x6F,0x68,0x60,0x68,0x81,0x90, - 0xA0,0x8D,0x70,0x81,0x8A,0x8D,0x96,0x8F,0x83,0x82,0x79,0x73,0x83,0x84,0x8E,0xA3, - 0xA0,0x92,0x89,0x86,0x7E,0x8B,0x91,0x83,0x6C,0x5D,0x75,0x74,0x6E,0x73,0x69,0x70, - 0x74,0x65,0x71,0x93,0x7E,0x77,0x9D,0xA0,0x8B,0x7E,0x76,0x6E,0x69,0x6E,0x79,0x81, - 0x71,0x67,0x73,0x7A,0x81,0x95,0x8D,0x78,0x88,0x8A,0x8B,0x98,0x84,0x97,0xA1,0x79, - 0x71,0x7C,0x80,0x70,0x71,0x85,0x82,0x67,0x69,0x83,0x7D,0x8D,0x8F,0x83,0x8F,0x7B, - 0x72,0x8B,0x82,0x6F,0x91,0x9F,0x8A,0x93,0x80,0x6F,0x72,0x6A,0x7A,0x98,0x81,0x68, - 0x80,0x83,0x86,0x93,0x97,0x86,0x6F,0x62,0x64,0x74,0x69,0x70,0x91,0x97,0x94,0x90, - 0x95,0x96,0x84,0x8E,0x95,0x7B,0x69,0x6E,0x73,0x79,0x82,0x8A,0x8E,0x8D,0x8B,0x92, - 0xA7,0x90,0x81,0x9A,0x9B,0x8C,0x7A,0x6A,0x5E,0x52,0x58,0x73,0x85,0x71,0x63,0x6E, - 0x6A,0x70,0x88,0x93,0x89,0x7F,0x7F,0x91,0x95,0x74,0x7E,0x8C,0x70,0x69,0x76,0x81, - 0x6B,0x6C,0x93,0x97,0x81,0x74,0x8A,0x90,0x85,0x92,0x9A,0x9E,0x8D,0x77,0x7D,0x85, - 0x69,0x6F,0x97,0x8B,0x82,0x89,0x77,0x6B,0x69,0x7C,0x94,0x89,0x72,0x78,0x7C,0x71, - 0x85,0xA0,0x9E,0x7C,0x6F,0x82,0x86,0x80,0x70,0x7F,0x8A,0x7D,0x82,0x8B,0x8A,0x81, - 0x91,0x97,0x8B,0x77,0x60,0x67,0x6E,0x67,0x7E,0x8E,0x7A,0x80,0x83,0x88,0x8D,0x85, - 0x90,0x9D,0x91,0x7C,0x80,0x6F,0x54,0x5A,0x77,0x90,0x95,0x80,0x87,0x90,0x81,0x92, - 0xAA,0xA5,0x90,0x84,0x86,0x89,0x80,0x6E,0x75,0x6F,0x64,0x74,0x66,0x63,0x64,0x6D, - 0x8B,0x80,0x73,0x7B,0x85,0x80,0x86,0x97,0x90,0x7F,0x6D,0x70,0x6C,0x66,0x77,0x7E, - 0x8A,0x97,0x95,0x8D,0x7D,0x6C,0x75,0x83,0x87,0x92,0x8D,0x78,0x6B,0x71,0x90,0x9A, - 0x8A,0x78,0x72,0x84,0x88,0x7B,0x85,0x8E,0x78,0x80,0x88,0x7B,0x81,0x75,0x75,0x8D, - 0x8F,0x7F,0x75,0x7B,0x84,0x90,0x88,0x81,0x74,0x68,0x78,0x7A,0x80,0x8D,0x95,0x96, - 0x8C,0x7D,0x80,0x73,0x5C,0x65,0x77,0x85,0x87,0x7B,0x78,0x82,0x87,0x93,0xA0,0x99, - 0x85,0x6C,0x72,0x80,0x72,0x6C,0x78,0x84,0x8E,0x83,0x85,0x9B,0x90,0x8B,0x9F,0xA2, - 0x8A,0x7A,0x84,0x7F,0x7A,0x77,0x76,0x7B,0x69,0x5E,0x6F,0x74,0x68,0x76,0x8B,0x8C, - 0x7E,0x79,0x8A,0x8C,0x74,0x70,0x8B,0x89,0x6A,0x6B,0x7A,0x7E,0x87,0x93,0x92,0x7F, - 0x72,0x80,0x8A,0x7F,0x78,0x83,0x94,0x93,0x7C,0x7C,0x89,0x71,0x6C,0x88,0x8C,0x75, - 0x70,0x84,0x84,0x7F,0x7C,0x8C,0x97,0x7D,0x76,0x87,0x8D,0x87,0x86,0x8C,0x8A,0x7D, - 0x7A,0x84,0x80,0x6F,0x77,0x84,0x79,0x70,0x6F,0x77,0x84,0x92,0x9D,0xA2,0x89,0x73, - 0x7D,0x7A,0x65,0x60,0x71,0x82,0x7C,0x6F,0x7E,0x90,0x89,0x8F,0xA1,0x9B,0x78,0x6F, - 0x81,0x7A,0x72,0x76,0x85,0x88,0x77,0x75,0x88,0x93,0x8A,0x94,0xA1,0x95,0x8A,0x91, - 0x95,0x89,0x73,0x74,0x7D,0x70,0x62,0x60,0x69,0x6D,0x76,0x86,0x84,0x71,0x70,0x7F, - 0x84,0x7E,0x80,0x8B,0x8A,0x7C,0x73,0x75,0x76,0x77,0x88,0x98,0x89,0x75,0x7B,0x89, - 0x7F,0x72,0x7E,0x88,0x81,0x72,0x70,0x7F,0x81,0x79,0x8A,0x95,0x83,0x7E,0x8A,0x92, - 0x89,0x80,0x89,0x8E,0x7E,0x70,0x76,0x7F,0x7D,0x7E,0x94,0x93,0x77,0x73,0x80,0x7D, - 0x77,0x79,0x78,0x73,0x68,0x68,0x79,0x84,0x85,0x91,0xA2,0x9C,0x8C,0x87,0x82,0x75, - 0x73,0x80,0x7E,0x76,0x70,0x78,0x83,0x7E,0x7B,0x85,0x8B,0x81,0x7C,0x7A,0x79,0x89, - 0x8E,0x80,0x82,0x7D,0x75,0x7D,0x74,0x6A,0x82,0x99,0x95,0x91,0x8E,0x96,0xA3,0x9B, - 0x89,0x7C,0x83,0x78,0x6C,0x72,0x6D,0x7C,0x62,0x5D,0x73,0x70,0x7A,0x75,0x73,0x7B, - 0x8A,0x89,0x7F,0x6D,0x70,0x9C,0xA1,0x91,0x9B,0xA1,0x9E,0x9B,0x87,0x7B,0x7E,0x6E, - 0x59,0x5B,0x60,0x5F,0x66,0x5B,0x51,0x79,0x90,0x77,0x70,0x79,0x78,0x7F,0x76,0x6B, - 0x8B,0x8A,0x7C,0x8B,0x88,0x94,0xB5,0xBC,0x9E,0xA9,0xCA,0xB0,0x9B,0x97,0x88,0x8B, - 0x87,0x71,0x7F,0x8D,0x73,0x68,0x7E,0x83,0x74,0x6F,0x69,0x77,0x84,0x73,0x6D,0x72, - 0x72,0x59,0x41,0x42,0x42,0x4F,0x58,0x54,0x59,0x64,0x6B,0x6A,0x6B,0x78,0x8F,0x8D, - 0x80,0x92,0x9C,0x8F,0x86,0x90,0xAC,0xB6,0xAF,0xBB,0xD4,0xDC,0xDA,0xD5,0xD6,0xD9, - 0xCC,0xB6,0xB4,0xB5,0xA7,0x98,0x94,0x84,0x75,0x79,0x6D,0x62,0x65,0x57,0x41,0x38, - 0x2F,0x2F,0x3A,0x33,0x31,0x38,0x38,0x3C,0x40,0x42,0x4E,0x5C,0x60,0x69,0x75,0x7A, - 0x7D,0x81,0x86,0x89,0x91,0x93,0x91,0x9B,0x9F,0x9E,0xA6,0xAB,0xA8,0xA9,0xA5,0xAB, - 0xB6,0xB1,0x9F,0x90,0x8B,0x85,0x80,0x7A,0x7C,0x7C,0x6F,0x5F,0x5B,0x57,0x52,0x64, - 0x70,0x6E,0x6A,0x69,0x66,0x67,0x5C,0x53,0x59,0x5C,0x5E,0x5D,0x5E,0x5D,0x62,0x68, - 0x71,0x77,0x7A,0x88,0x8E,0x90,0x91,0x92,0x91,0x90,0xA0,0xAF,0xAA,0xA8,0xAF,0xAE, - 0xAF,0xB2,0xB4,0xBF,0xC3,0xBE,0xC0,0xC3,0xB9,0xAD,0xAB,0xAB,0xAD,0xAA,0xA3,0xA5, - 0x9B,0x85,0x7E,0x81,0x80,0x73,0x6F,0x7B,0x7B,0x66,0x5C,0x5A,0x4F,0x4D,0x54,0x59, - 0x5A,0x54,0x4D,0x53,0x54,0x49,0x4D,0x59,0x5D,0x62,0x69,0x71,0x71,0x70,0x78,0x80, - 0x82,0x86,0x8E,0x91,0x8B,0x8C,0x89,0x89,0x8F,0x8E,0x95,0xA1,0xA1,0x9D,0xA1,0xA0, - 0x9A,0x9A,0x9C,0xA0,0xA4,0xA7,0xA8,0xA6,0x9C,0x93,0x94,0x93,0x93,0x8A,0x86,0x8F, - 0x7E,0x6A,0x6B,0x69,0x5A,0x57,0x59,0x56,0x58,0x4C,0x46,0x4E,0x48,0x45,0x52,0x55, - 0x4F,0x56,0x52,0x4A,0x48,0x43,0x47,0x4F,0x52,0x56,0x68,0x6A,0x5D,0x65,0x67,0x60, - 0x64,0x6C,0x78,0x85,0x85,0x87,0x95,0x96,0x92,0xA8,0xB7,0xB9,0xC6,0xCE,0xCC,0xC9, - 0xBE,0xBF,0xC6,0xBE,0xC0,0xB9,0xB3,0xC2,0xB4,0xA1,0xA6,0x9F,0x8F,0x97,0x9C,0x96, - 0x95,0x8B,0x88,0x88,0x78,0x79,0x86,0x7E,0x7B,0x81,0x7C,0x78,0x74,0x70,0x75,0x70, - 0x73,0x78,0x76,0x81,0x74,0x65,0x72,0x72,0x6B,0x77,0x81,0x83,0x86,0x7F,0x80,0x87, - 0x7F,0x82,0x8E,0x8E,0x8E,0x94,0x94,0x8E,0x8D,0x8A,0x8A,0x8B,0x92,0x91,0x91,0xA4, - 0x97,0x87,0x95,0x8B,0x7A,0x84,0x8B,0x8C,0x8B,0x83,0x86,0x87,0x76,0x78,0x89,0x84, - 0x7E,0x85,0x84,0x7E,0x76,0x71,0x73,0x73,0x76,0x7D,0x7B,0x89,0x85,0x6A,0x6E,0x6F, - 0x60,0x62,0x68,0x67,0x6A,0x61,0x59,0x60,0x53,0x48,0x56,0x5A,0x56,0x5C,0x5C,0x5B, - 0x58,0x55,0x5A,0x5A,0x5B,0x5A,0x58,0x6F,0x6A,0x51,0x61,0x64,0x51,0x57,0x62,0x66, - 0x6C,0x68,0x6A,0x73,0x69,0x68,0x79,0x7C,0x7B,0x86,0x8D,0x8F,0x8C,0x8D,0x97,0x9A, - 0xA1,0xA8,0xAA,0xC0,0xC0,0xAB,0xB6,0xB6,0xA0,0xA3,0xB0,0xB0,0xB0,0xA9,0xA8,0xB0, - 0xA3,0x9B,0xA9,0xA4,0x9C,0xA2,0xA6,0xA5,0x9C,0x94,0x97,0x94,0x92,0x90,0x92,0xA4, - 0x9A,0x86,0x93,0x8E,0x79,0x7E,0x89,0x8D,0x90,0x8E,0x90,0x93,0x84,0x86,0x94,0x8A, - 0x82,0x85,0x83,0x81,0x78,0x6F,0x6D,0x67,0x67,0x67,0x6A,0x7C,0x70,0x60,0x73,0x6F, - 0x59,0x60,0x6A,0x6B,0x6F,0x70,0x73,0x73,0x66,0x68,0x76,0x72,0x73,0x7D,0x7F,0x80, - 0x7E,0x7C,0x7D,0x79,0x79,0x76,0x83,0x95,0x80,0x78,0x86,0x76,0x6A,0x76,0x79,0x7A, - 0x79,0x76,0x7E,0x7B,0x69,0x6D,0x75,0x6E,0x75,0x7A,0x77,0x78,0x71,0x73,0x74,0x71, - 0x73,0x71,0x83,0x91,0x7C,0x80,0x8F,0x7E,0x77,0x85,0x8B,0x8B,0x8A,0x89,0x90,0x88, - 0x7C,0x85,0x84,0x7A,0x81,0x87,0x83,0x80,0x7A,0x76,0x75,0x76,0x72,0x74,0x8C,0x86, - 0x74,0x85,0x86,0x72,0x76,0x82,0x87,0x8C,0x89,0x88,0x89,0x7D,0x7A,0x80,0x77,0x72, - 0x77,0x74,0x71,0x6E,0x67,0x64,0x65,0x64,0x60,0x72,0x7E,0x68,0x69,0x79,0x6C,0x64, - 0x70,0x75,0x79,0x7D,0x7E,0x85,0x81,0x76,0x7E,0x85,0x7E,0x85,0x8E,0x8D,0x91,0x95, - 0x95,0x92,0x92,0x8E,0x95,0xB0,0xA8,0x98,0xAA,0xA5,0x90,0x95,0x9C,0x9B,0x9D,0x9D, - 0xA2,0xA7,0x9A,0x96,0xA2,0x9D,0x9B,0xA7,0xA6,0xA3,0xA3,0x9F,0x9C,0x9C,0x98,0x92, - 0xA6,0xAE,0x96,0x99,0xA0,0x8A,0x7E,0x87,0x8A,0x87,0x85,0x83,0x86,0x79,0x6C,0x73, - 0x6F,0x62,0x66,0x6D,0x69,0x65,0x62,0x5C,0x56,0x55,0x4D,0x55,0x6B,0x59,0x4D,0x5F, - 0x53,0x3F,0x45,0x4E,0x52,0x51,0x51,0x59,0x59,0x4D,0x53,0x5D,0x55,0x57,0x60,0x5F, - 0x5F,0x5F,0x5C,0x5A,0x57,0x53,0x54,0x6F,0x73,0x5B,0x65,0x6D,0x58,0x55,0x60,0x65, - 0x68,0x69,0x71,0x7E,0x77,0x71,0x80,0x86,0x86,0x91,0x98,0x9B,0x9E,0x9D,0x9D,0x9C, - 0x9D,0x97,0xA9,0xC1,0xA9,0x9D,0xAF,0xA0,0x8D,0x95,0x9B,0x9D,0x9B,0x95,0x9B,0x9C, - 0x8D,0x8E,0x96,0x91,0x93,0x9C,0x9C,0x9D,0x9C,0x99,0x96,0x98,0x97,0x99,0xB4,0xB4, - 0xA0,0xB0,0xB3,0x9F,0x9D,0xA7,0xAE,0xAE,0xA8,0xAC,0xB2,0xA3,0x99,0xA2,0xA1,0x9B, - 0x9F,0xA2,0xA2,0x9D,0x94,0x91,0x90,0x90,0x89,0x98,0xAF,0x98,0x8C,0x9A,0x8B,0x78, - 0x7A,0x7F,0x80,0x7C,0x74,0x7A,0x7B,0x6A,0x69,0x70,0x6B,0x69,0x6C,0x6A,0x68,0x63, - 0x5E,0x5C,0x5B,0x53,0x50,0x69,0x6B,0x51,0x58,0x5D,0x48,0x41,0x47,0x4E,0x53,0x4D, - 0x4D,0x56,0x4D,0x3F,0x44,0x47,0x44,0x48,0x4C,0x50,0x52,0x4C,0x4D,0x51,0x53,0x50, - 0x5A,0x78,0x72,0x5F,0x6F,0x6F,0x61,0x64,0x6C,0x74,0x78,0x6F,0x71,0x7B,0x73,0x70, - 0x79,0x7B,0x7D,0x82,0x82,0x88,0x8C,0x87,0x8A,0x90,0x95,0x92,0xA6,0xC3,0xB6,0xB0, - 0xC0,0xB9,0xAE,0xB1,0xB5,0xC1,0xC2,0xB7,0xBC,0xC0,0xB4,0xAE,0xAD,0xAC,0xAE,0xAA, - 0xA6,0xAA,0xA3,0x9A,0x97,0x9A,0x9B,0x92,0xA6,0xB4,0x9A,0x97,0xA1,0x94,0x8F,0x91, - 0x95,0xA0,0x9D,0x94,0x9C,0xA1,0x99,0x96,0x99,0x9C,0x9F,0x9C,0x9C,0xA2,0x9D,0x94, - 0x90,0x93,0x8C,0x88,0xA2,0xA2,0x8B,0x8F,0x8C,0x7F,0x7C,0x76,0x7E,0x89,0x7E,0x75, - 0x7B,0x77,0x6D,0x6A,0x6C,0x71,0x70,0x68,0x69,0x6B,0x65,0x60,0x5F,0x68,0x5E,0x5D, - 0x7C,0x76,0x5E,0x62,0x61,0x58,0x54,0x4F,0x59,0x63,0x57,0x51,0x59,0x58,0x4F,0x4B, - 0x4B,0x4F,0x52,0x4E,0x4E,0x52,0x4F,0x4A,0x47,0x4F,0x48,0x4B,0x6C,0x66,0x54,0x5C, - 0x5D,0x59,0x5B,0x5C,0x6A,0x76,0x6C,0x68,0x70,0x73,0x73,0x72,0x73,0x7C,0x82,0x7E, - 0x7D,0x82,0x82,0x7F,0x7C,0x82,0x80,0x81,0x9D,0x9F,0x8F,0x95,0x95,0x94,0x97,0x94, - 0xA0,0xAF,0xAC,0xA6,0xAC,0xB1,0xB1,0xAC,0xA9,0xB2,0xB9,0xB5,0xAE,0xAE,0xAF,0xAB, - 0xA2,0xA5,0xA4,0x9D,0xB1,0xB5,0x9C,0x98,0x95,0x8E,0x91,0x8C,0x8C,0x99,0x96,0x89, - 0x87,0x88,0x87,0x85,0x7F,0x81,0x8D,0x8E,0x86,0x89,0x8E,0x8E,0x8A,0x88,0x8A,0x86, - 0x98,0xAA,0x97,0x8D,0x8E,0x8A,0x8A,0x81,0x7F,0x8F,0x93,0x87,0x7E,0x7F,0x82,0x80, - 0x7C,0x7C,0x85,0x87,0x7D,0x76,0x76,0x78,0x75,0x73,0x75,0x6C,0x78,0x92,0x83,0x70, - 0x72,0x72,0x72,0x6B,0x64,0x70,0x7A,0x74,0x6C,0x6B,0x6B,0x6D,0x69,0x62,0x64,0x6B, - 0x6B,0x66,0x60,0x61,0x63,0x5D,0x59,0x54,0x59,0x77,0x78,0x61,0x5C,0x5A,0x5B,0x61, - 0x5C,0x5B,0x65,0x6A,0x66,0x5F,0x5A,0x62,0x6C,0x69,0x62,0x67,0x72,0x71,0x69,0x64, - 0x6A,0x6D,0x68,0x65,0x5F,0x71,0x89,0x81,0x73,0x6D,0x6C,0x76,0x79,0x70,0x74,0x85, - 0x8E,0x8A,0x80,0x7E,0x88,0x90,0x8F,0x91,0x9C,0xA2,0xA3,0x9F,0x99,0x9A,0x9E,0xA0, - 0x9A,0x96,0xA8,0xB2,0xA6,0x96,0x88,0x8A,0x93,0x8E,0x85,0x86,0x89,0x8A,0x87,0x7D, - 0x74,0x75,0x7A,0x79,0x79,0x7A,0x80,0x85,0x81,0x7D,0x7C,0x80,0x81,0x7E,0x8E,0xA3, - 0xA1,0x99,0x8F,0x85,0x89,0x91,0x95,0x99,0x9A,0x9A,0x9D,0x9A,0x92,0x8E,0x8F,0x92, - 0x93,0x92,0x8F,0x8F,0x90,0x8D,0x8A,0x8A,0x8A,0x84,0x86,0x98,0x9D,0x97,0x93,0x85, - 0x7C,0x83,0x83,0x81,0x83,0x82,0x86,0x8B,0x87,0x7E,0x7A,0x78,0x78,0x7D,0x7D,0x7A, - 0x79,0x75,0x72,0x6F,0x6E,0x71,0x6E,0x74,0x7E,0x7A,0x74,0x70,0x67,0x68,0x6F,0x6B, - 0x67,0x65,0x62,0x64,0x66,0x68,0x6C,0x6A,0x69,0x6C,0x6E,0x6D,0x6C,0x6D,0x6F,0x6E, - 0x6E,0x6E,0x6E,0x70,0x76,0x7D,0x79,0x75,0x75,0x71,0x74,0x79,0x75,0x78,0x79,0x75, - 0x76,0x78,0x76,0x79,0x7F,0x81,0x84,0x86,0x86,0x89,0x8E,0x90,0x96,0x9B,0x99,0x98, - 0x99,0x9E,0xA1,0x9C,0x9D,0x9F,0x9B,0x9D,0x9C,0x94,0x93,0x90,0x8A,0x89,0x84,0x7E, - 0x7C,0x78,0x75,0x76,0x77,0x77,0x75,0x72,0x73,0x75,0x75,0x75,0x78,0x78,0x7B,0x7F, - 0x7B,0x7D,0x81,0x83,0x8D,0x90,0x89,0x8A,0x8B,0x89,0x8B,0x8E,0x8D,0x8D,0x8A,0x88, - 0x8A,0x8C,0x8B,0x8F,0x92,0x91,0x90,0x90,0x90,0x8F,0x8B,0x8D,0x95,0x8E,0x88,0x8D, - 0x88,0x88,0x8D,0x8B,0x8D,0x8C,0x84,0x86,0x87,0x82,0x82,0x81,0x7D,0x7C,0x7B,0x7C, - 0x7E,0x7E,0x80,0x82,0x85,0x82,0x7E,0x7E,0x7B,0x7F,0x82,0x7B,0x7B,0x77,0x6F,0x77, - 0x76,0x6D,0x70,0x71,0x6B,0x6C,0x69,0x66,0x67,0x63,0x62,0x66,0x67,0x67,0x68,0x69, - 0x69,0x6D,0x73,0x75,0x76,0x75,0x76,0x81,0x7F,0x78,0x7E,0x7C,0x7A,0x7F,0x7C,0x7C, - 0x7F,0x7A,0x7D,0x83,0x7D,0x7C,0x7E,0x7C,0x7D,0x7F,0x80,0x84,0x84,0x83,0x88,0x8D, - 0x8C,0x8D,0x90,0x8E,0x8E,0x95,0x91,0x90,0x92,0x8C,0x8F,0x95,0x8C,0x8A,0x8A,0x84, - 0x86,0x87,0x85,0x84,0x7F,0x7D,0x7F,0x7E,0x7D,0x7C,0x7D,0x7D,0x7D,0x7E,0x7E,0x7D, - 0x7C,0x7C,0x83,0x87,0x80,0x80,0x82,0x7E,0x84,0x88,0x83,0x84,0x83,0x83,0x89,0x87, - 0x85,0x88,0x85,0x83,0x82,0x84,0x88,0x88,0x87,0x89,0x8A,0x89,0x86,0x86,0x86,0x83, - 0x8A,0x91,0x89,0x87,0x89,0x83,0x87,0x88,0x82,0x85,0x83,0x7E,0x80,0x7E,0x7C,0x7C, - 0x7D,0x7F,0x80,0x81,0x81,0x83,0x84,0x83,0x83,0x85,0x84,0x83,0x85,0x83,0x86,0x8A, - 0x84,0x83,0x84,0x7C,0x81,0x85,0x7D,0x7D,0x7E,0x78,0x78,0x76,0x74,0x75,0x72,0x71, - 0x75,0x76,0x76,0x76,0x77,0x78,0x78,0x7B,0x7D,0x7D,0x7C,0x77,0x78,0x7F,0x7A,0x79, - 0x81,0x7C,0x7A,0x84,0x80,0x7D,0x7E,0x78,0x78,0x7B,0x77,0x79,0x7B,0x77,0x78,0x7B, - 0x7D,0x7E,0x7F,0x80,0x84,0x86,0x83,0x84,0x85,0x81,0x7D,0x84,0x88,0x83,0x84,0x85, - 0x83,0x87,0x86,0x81,0x82,0x7E,0x78,0x7D,0x7C,0x79,0x79,0x75,0x74,0x75,0x77,0x7B, - 0x7C,0x79,0x79,0x7D,0x7D,0x7B,0x79,0x79,0x78,0x78,0x81,0x81,0x7C,0x7E,0x7A,0x7C, - 0x82,0x7C,0x7B,0x80,0x7A,0x78,0x7D,0x7A,0x7A,0x7A,0x78,0x7B,0x7E,0x7E,0x7E,0x7F, - 0x7E,0x7F,0x83,0x84,0x84,0x85,0x87,0x86,0x8B,0x8F,0x88,0x88,0x88,0x83,0x8A,0x8C, - 0x85,0x86,0x84,0x80,0x82,0x83,0x7E,0x82,0x81,0x84,0x85,0x63,0x6A,0x86,0x8B,0x78, - 0x7D,0x97,0x78,0x77,0x88,0x84,0x86,0x90,0x9D,0x88,0x83,0x8A,0x8A,0x8A,0x82,0x8B, - 0x85,0x76,0x74,0x7A,0x7E,0x7E,0x80,0x81,0x7B,0x6E,0x74,0x77,0x75,0x77,0x7C,0x7F, - 0x7A,0x83,0x80,0x7C,0x82,0x89,0x8F,0x87,0x88,0x8D,0x83,0x88,0x8E,0x84,0x88,0x86, - 0x78,0x80,0x86,0x79,0x79,0x7B,0x70,0x78,0x7D,0x78,0x7E,0x7B,0x77,0x77,0x7C,0x7F, - 0x83,0x90,0x7B,0x6A,0x86,0x9A,0x95,0x90,0x8B,0x80,0x86,0x87,0x83,0x84,0x72,0x70, - 0x7F,0x81,0x7F,0x7A,0x74,0x7A,0x82,0x7D,0x7A,0x7B,0x74,0x72,0x80,0x7F,0x74,0x78, - 0x79,0x70,0x6E,0x83,0x8C,0x85,0x87,0x7A,0x6F,0x7C,0x7E,0x77,0x7A,0x74,0x75,0x87, - 0x86,0x84,0x8A,0x7A,0x80,0x88,0x84,0x7D,0x7E,0x86,0x84,0x85,0x7F,0x7C,0x7D,0x7A, - 0x7B,0x7C,0x8A,0x90,0x8E,0x8F,0x7D,0x78,0x81,0x7B,0x77,0x76,0x7B,0x88,0x8A,0x84, - 0x83,0x83,0x80,0x83,0x7E,0x78,0x7B,0x80,0x87,0x8F,0x87,0x82,0x82,0x7D,0x78,0x72, - 0x86,0x98,0x97,0x92,0x84,0x75,0x7E,0x85,0x72,0x73,0x7F,0x7A,0x87,0x87,0x7E,0x7C, - 0x7B,0x7E,0x7A,0x79,0x77,0x7C,0x84,0x86,0x86,0x7D,0x7E,0x81,0x79,0x77,0x77,0x8C, - 0x99,0x90,0x8A,0x80,0x7A,0x86,0x84,0x7C,0x7F,0x7F,0x7F,0x87,0x84,0x7E,0x85,0x82, - 0x82,0x81,0x7C,0x81,0x85,0x87,0x88,0x86,0x82,0x81,0x84,0x7F,0x76,0x7E,0x93,0x92, - 0x84,0x8A,0x7E,0x7C,0x8C,0x78,0x6C,0x7A,0x74,0x7C,0x86,0x79,0x7D,0x81,0x79,0x82, - 0x80,0x79,0x7F,0x80,0x82,0x7E,0x7C,0x7D,0x80,0x7A,0x77,0x74,0x7D,0x9A,0x8F,0x83, - 0x88,0x7B,0x83,0x8B,0x71,0x6F,0x75,0x75,0x88,0x80,0x76,0x85,0x87,0x8A,0x8F,0x79, - 0x78,0x88,0x82,0x7A,0x7E,0x84,0x83,0x84,0x81,0x77,0x76,0x94,0x9E,0x84,0x8B,0x87, - 0x7A,0x93,0x83,0x70,0x84,0x81,0x84,0x8C,0x79,0x7A,0x8C,0x87,0x88,0x85,0x79,0x89, - 0x88,0x7A,0x80,0x7E,0x7E,0x80,0x79,0x78,0x74,0x82,0x99,0x8A,0x81,0x8C,0x81,0x87, - 0x8A,0x6B,0x6E,0x7E,0x79,0x88,0x7E,0x6F,0x8A,0x89,0x81,0x86,0x79,0x82,0x90,0x7E, - 0x7C,0x7D,0x7A,0x83,0x7B,0x76,0x78,0x77,0x93,0x96,0x7E,0x8B,0x86,0x7E,0x8F,0x71, - 0x69,0x82,0x77,0x80,0x84,0x6F,0x85,0x91,0x84,0x89,0x81,0x82,0x8F,0x7D,0x76,0x81, - 0x83,0x86,0x80,0x77,0x7B,0x7B,0x8F,0x9B,0x81,0x8A,0x8E,0x7E,0x8D,0x7D,0x6D,0x83, - 0x75,0x74,0x81,0x6A,0x77,0x8A,0x7C,0x82,0x7F,0x78,0x87,0x80,0x76,0x7C,0x80,0x80, - 0x7B,0x74,0x74,0x73,0x80,0x97,0x85,0x82,0x8E,0x80,0x8A,0x83,0x65,0x76,0x78,0x6C, - 0x7B,0x6D,0x73,0x8F,0x84,0x7F,0x83,0x78,0x8B,0x8C,0x77,0x80,0x80,0x81,0x81,0x74, - 0x7A,0x7B,0x7D,0x98,0x93,0x82,0x8C,0x85,0x8A,0x8C,0x70,0x7A,0x82,0x75,0x83,0x7A, - 0x73,0x8D,0x86,0x7E,0x84,0x7C,0x83,0x8E,0x7E,0x79,0x82,0x79,0x79,0x74,0x77,0x7A, - 0x77,0x90,0x8F,0x7F,0x87,0x83,0x83,0x8C,0x75,0x76,0x82,0x72,0x79,0x75,0x6D,0x80, - 0x84,0x7F,0x82,0x81,0x84,0x89,0x80,0x78,0x7E,0x7F,0x7C,0x7C,0x7A,0x7A,0x77,0x89, - 0x8E,0x82,0x85,0x82,0x84,0x89,0x7C,0x75,0x80,0x77,0x78,0x7E,0x70,0x7A,0x86,0x80, - 0x85,0x85,0x7F,0x89,0x84,0x7B,0x82,0x85,0x80,0x7E,0x7D,0x79,0x76,0x7D,0x89,0x80, - 0x82,0x89,0x82,0x8B,0x85,0x76,0x7E,0x7D,0x77,0x7C,0x73,0x73,0x7E,0x7B,0x7E,0x81, - 0x7D,0x84,0x83,0x7A,0x83,0x7F,0x7B,0x7C,0x79,0x7A,0x73,0x7B,0x88,0x81,0x82,0x88, - 0x83,0x8A,0x85,0x75,0x7F,0x82,0x7B,0x7D,0x76,0x73,0x80,0x7C,0x78,0x80,0x83,0x85, - 0x89,0x82,0x7D,0x87,0x80,0x7C,0x7C,0x7A,0x7B,0x7D,0x8D,0x83,0x7F,0x89,0x87,0x8A, - 0x86,0x7F,0x83,0x83,0x7C,0x7C,0x75,0x79,0x7F,0x7B,0x7D,0x82,0x80,0x84,0x8C,0x84, - 0x83,0x85,0x80,0x80,0x80,0x7C,0x7C,0x81,0x88,0x84,0x7D,0x83,0x84,0x86,0x87,0x80, - 0x7E,0x7F,0x7B,0x7C,0x7C,0x77,0x80,0x80,0x7C,0x7E,0x7B,0x7F,0x87,0x84,0x80,0x86, - 0x84,0x82,0x7D,0x7D,0x7B,0x7E,0x87,0x81,0x80,0x84,0x83,0x88,0x86,0x7E,0x82,0x7F, - 0x7E,0x82,0x7A,0x7B,0x7E,0x80,0x7E,0x7E,0x7E,0x80,0x87,0x84,0x80,0x86,0x83,0x7D, - 0x80,0x7B,0x7A,0x84,0x85,0x7F,0x83,0x84,0x7F,0x86,0x81,0x7C,0x83,0x83,0x81,0x80, - 0x79,0x7B,0x7F,0x7B,0x7C,0x7F,0x81,0x82,0x82,0x81,0x84,0x85,0x81,0x80,0x7E,0x79, - 0x7A,0x86,0x83,0x7D,0x84,0x83,0x83,0x84,0x7F,0x81,0x87,0x82,0x7E,0x7D,0x79,0x7C, - 0x7F,0x7D,0x7F,0x7E,0x7F,0x86,0x82,0x80,0x86,0x84,0x82,0x82,0x7E,0x80,0x87,0x86, - 0x84,0x83,0x87,0x83,0x87,0x86,0x7B,0x82,0x83,0x7E,0x7C,0x77,0x7E,0x80,0x79,0x7A, - 0x7D,0x7C,0x84,0x84,0x80,0x83,0x83,0x7E,0x7F,0x7E,0x7C,0x81,0x87,0x86,0x81,0x84, - 0x84,0x88,0x86,0x7E,0x83,0x83,0x7E,0x7E,0x7F,0x7E,0x81,0x81,0x81,0x7E,0x7C,0x80, - 0x82,0x81,0x80,0x83,0x81,0x7F,0x7E,0x7E,0x7F,0x87,0x88,0x81,0x87,0x82,0x83,0x89, - 0x7F,0x7F,0x84,0x84,0x82,0x7B,0x77,0x80,0x85,0x7B,0x7B,0x7F,0x7F,0x84,0x7F,0x7D, - 0x83,0x80,0x80,0x7C,0x78,0x7C,0x8C,0x88,0x7C,0x86,0x84,0x87,0x8B,0x7A,0x79,0x84, - 0x80,0x7C,0x79,0x75,0x81,0x82,0x79,0x7A,0x7E,0x85,0x8C,0x7D,0x77,0x85,0x80,0x77, - 0x7A,0x74,0x7A,0x9B,0x8B,0x78,0x8A,0x87,0x8C,0x87,0x6E,0x7B,0x86,0x78,0x7B,0x76, - 0x78,0x8D,0x82,0x76,0x81,0x85,0x86,0x82,0x76,0x81,0x8D,0x7A,0x75,0x79,0x72,0x8D, - 0xA0,0x82,0x89,0x8F,0x84,0x88,0x71,0x6B,0x86,0x81,0x77,0x81,0x7E,0x8B,0x8E,0x72, - 0x77,0x86,0x81,0x7A,0x75,0x7F,0x8E,0x7F,0x72,0x79,0x73,0x8B,0x9C,0x7F,0x8B,0x9E, - 0x8F,0x89,0x7B,0x6D,0x88,0x7D,0x6A,0x80,0x79,0x88,0x7F,0x64,0x75,0x6B,0x72,0x82, - 0x69,0x7A,0x8A,0x6C,0x65,0x66,0x6B,0x88,0x95,0x87,0x86,0x8A,0x7D,0x79,0x70,0x6F, - 0x88,0x86,0x82,0x8E,0x87,0x86,0x86,0x76,0x7F,0x8C,0x7C,0x7D,0x8F,0x94,0x8B,0x7B, - 0x88,0x97,0x89,0xA0,0xB8,0x94,0x9B,0xAC,0x91,0x8D,0x8F,0x8C,0x98,0x99,0x92,0x90, - 0x7E,0x7C,0x7E,0x6E,0x81,0x91,0x7C,0x78,0x7C,0x78,0x70,0x54,0x53,0x68,0x61,0x73, - 0x88,0x71,0x6A,0x67,0x53,0x52,0x4D,0x50,0x6A,0x6E,0x64,0x69,0x68,0x66,0x65,0x5C, - 0x6A,0x76,0x71,0x76,0x82,0x7B,0x71,0x6D,0x75,0x78,0x69,0x82,0x95,0x7E,0x7D,0x78, - 0x6A,0x6A,0x65,0x71,0x8B,0x8A,0x88,0x94,0x98,0xA1,0xA6,0x9B,0xA2,0xA8,0x9A,0x99, - 0xA0,0x96,0x8D,0x86,0x86,0x86,0x83,0xA1,0xA8,0x8A,0x89,0x85,0x7C,0x7A,0x75,0x84, - 0x98,0x8E,0x86,0x90,0x8B,0x83,0x7F,0x7F,0x8D,0x91,0x8A,0x92,0x97,0x8B,0x83,0x83, - 0x86,0x80,0x85,0xA2,0x9A,0x8B,0x94,0x8D,0x82,0x7A,0x7D,0x93,0x9C,0x91,0x97,0xA0, - 0x9A,0x92,0x89,0x90,0x9C,0x97,0x94,0x9B,0x93,0x83,0x7E,0x81,0x7D,0x71,0x85,0x9A, - 0x86,0x7E,0x80,0x75,0x6A,0x5D,0x62,0x75,0x6F,0x61,0x66,0x68,0x5B,0x51,0x4E,0x56, - 0x58,0x4F,0x53,0x5F,0x59,0x4F,0x51,0x56,0x50,0x4E,0x6E,0x77,0x63,0x6A,0x70,0x63, - 0x5C,0x5D,0x70,0x7F,0x72,0x71,0x7B,0x73,0x63,0x5F,0x66,0x6B,0x6B,0x67,0x70,0x77, - 0x71,0x6F,0x7B,0x83,0x7B,0x90,0xB5,0xAE,0xA5,0xAF,0xA7,0x99,0x8F,0x92,0xA7,0xA3, - 0x93,0x9B,0x9E,0x8F,0x86,0x85,0x88,0x86,0x81,0x88,0x92,0x8D,0x83,0x83,0x88,0x82, - 0x79,0x99,0xA8,0x8E,0x94,0x9A,0x8C,0x82,0x80,0x8F,0x9D,0x8F,0x90,0xA1,0x95,0x86, - 0x88,0x8C,0x93,0x92,0x8F,0x9C,0x9C,0x90,0x8C,0x8F,0x95,0x8B,0x8E,0xB2,0xAC,0x94, - 0xA3,0xA2,0x92,0x8B,0x8B,0x98,0x99,0x87,0x8A,0x94,0x83,0x7B,0x7F,0x81,0x82,0x79, - 0x7A,0x81,0x77,0x6B,0x68,0x68,0x62,0x53,0x66,0x7C,0x60,0x57,0x66,0x54,0x46,0x49, - 0x54,0x64,0x5D,0x55,0x67,0x65,0x54,0x57,0x60,0x65,0x65,0x64,0x71,0x76,0x68,0x69, - 0x70,0x70,0x69,0x64,0x7F,0x83,0x64,0x6B,0x78,0x64,0x5D,0x66,0x75,0x80,0x75,0x7C, - 0x94,0x8D,0x83,0x93,0x9D,0xA0,0xA4,0xA6,0xB2,0xAD,0x9D,0x9F,0x9E,0x97,0x8D,0x92, - 0xB0,0xA4,0x8B,0x9A,0x97,0x7D,0x7A,0x82,0x8D,0x8E,0x80,0x8D,0x9A,0x83,0x7C,0x8B, - 0x8C,0x88,0x89,0x8F,0x97,0x8E,0x87,0x8B,0x8A,0x85,0x7E,0x8A,0xAB,0x99,0x87,0xA3, - 0x9D,0x83,0x84,0x8D,0x93,0x92,0x89,0x99,0xA3,0x8C,0x89,0x98,0x92,0x8E,0x93,0x98, - 0x9C,0x92,0x89,0x8D,0x85,0x80,0x7A,0x80,0x9F,0x8C,0x73,0x8C,0x82,0x63,0x69,0x72, - 0x71,0x6D,0x63,0x6B,0x73,0x5C,0x54,0x60,0x58,0x52,0x57,0x5D,0x62,0x5A,0x57,0x5E, - 0x55,0x55,0x55,0x56,0x7A,0x72,0x58,0x73,0x74,0x54,0x56,0x64,0x68,0x6B,0x65,0x6D, - 0x79,0x64,0x5B,0x6A,0x67,0x62,0x6A,0x6F,0x76,0x74,0x70,0x79,0x7A,0x7B,0x7C,0x81, - 0xA8,0xA9,0x92,0xAD,0xB4,0x97,0x97,0xA1,0xA1,0xA4,0x9A,0x9E,0xAD,0x99,0x89,0x98, - 0x93,0x86,0x8A,0x8E,0x8F,0x8A,0x82,0x86,0x82,0x7A,0x7F,0x7C,0x92,0xA0,0x86,0x8E, - 0x9E,0x83,0x76,0x86,0x8B,0x8D,0x89,0x88,0x97,0x90,0x7E,0x8A,0x91,0x88,0x89,0x90, - 0x90,0x90,0x90,0x92,0x8F,0x8B,0x8D,0x84,0x97,0xB0,0x94,0x91,0xA7,0x93,0x7E,0x88, - 0x8A,0x89,0x86,0x82,0x8D,0x8A,0x76,0x78,0x7E,0x74,0x72,0x75,0x78,0x77,0x71,0x6F, - 0x6C,0x65,0x64,0x5C,0x61,0x7D,0x6D,0x59,0x71,0x6A,0x4E,0x56,0x63,0x62,0x62,0x5F, - 0x66,0x71,0x63,0x5C,0x67,0x65,0x61,0x65,0x6D,0x72,0x6E,0x6D,0x70,0x6B,0x67,0x65, - 0x63,0x7C,0x83,0x69,0x76,0x84,0x6B,0x64,0x76,0x7B,0x7E,0x80,0x88,0x99,0x94,0x8A, - 0x97,0xA2,0x9D,0x9C,0xA3,0xA7,0xA1,0x9D,0x9D,0x9A,0x94,0x94,0x8B,0x95,0xAB,0x94, - 0x8D,0xA1,0x8E,0x78,0x80,0x86,0x85,0x83,0x82,0x8D,0x8D,0x7F,0x7F,0x88,0x85,0x83, - 0x89,0x8E,0x8D,0x88,0x85,0x87,0x83,0x82,0x81,0x86,0xA2,0x9D,0x89,0x98,0x9A,0x84, - 0x80,0x8A,0x90,0x90,0x8A,0x8E,0x98,0x8E,0x84,0x8D,0x8F,0x87,0x85,0x8A,0x8D,0x8A, - 0x84,0x85,0x82,0x7B,0x77,0x71,0x85,0x92,0x78,0x78,0x87,0x73,0x63,0x67,0x6F,0x71, - 0x6A,0x68,0x72,0x6D,0x5D,0x60,0x68,0x66,0x65,0x68,0x6C,0x6C,0x66,0x66,0x68,0x65, - 0x63,0x5F,0x6E,0x84,0x70,0x67,0x7B,0x72,0x60,0x64,0x6C,0x70,0x6C,0x69,0x74,0x77, - 0x6C,0x6B,0x72,0x72,0x71,0x74,0x7C,0x83,0x82,0x81,0x87,0x8B,0x8C,0x88,0x95,0xB4, - 0xAB,0x98,0xA9,0xA7,0x93,0x91,0x97,0x9E,0x9E,0x92,0x93,0x9B,0x8E,0x85,0x8B,0x8C, - 0x89,0x83,0x83,0x89,0x86,0x7E,0x7E,0x83,0x82,0x7A,0x7C,0x97,0x92,0x7D,0x8D,0x91, - 0x7E,0x79,0x80,0x88,0x8B,0x82,0x85,0x92,0x8D,0x83,0x83,0x8B,0x8C,0x88,0x89,0x90, - 0x92,0x8A,0x88,0x89,0x8A,0x85,0x84,0x9E,0xA2,0x87,0x8C,0x94,0x81,0x7A,0x7D,0x83, - 0x89,0x80,0x7A,0x82,0x80,0x73,0x72,0x77,0x77,0x74,0x72,0x72,0x74,0x71,0x69,0x65, - 0x69,0x66,0x60,0x76,0x81,0x68,0x6E,0x76,0x64,0x5F,0x61,0x76,0x74,0x72,0x6C,0x56, - 0x6C,0x68,0x51,0x52,0x63,0x6D,0x70,0x76,0x7B,0x7B,0x73,0x7B,0x88,0x86,0x7D,0x9A, - 0xA9,0x85,0x81,0x7C,0x6E,0x7B,0x6C,0x62,0x7B,0x7D,0x69,0x6A,0x6E,0x69,0x7B,0x85, - 0x89,0x7F,0x7F,0x90,0x90,0x91,0x94,0x98,0xA9,0xAC,0x97,0xB3,0xC7,0xB6,0xC7,0xA4, - 0xA9,0xB5,0x95,0xAF,0xA8,0xA4,0xAD,0x9D,0x94,0x87,0x82,0x8E,0x83,0x75,0x7B,0x68, - 0x70,0x7D,0x6D,0x80,0x7D,0x68,0x71,0x7D,0x84,0x77,0x5C,0x5B,0x61,0x59,0x5A,0x66, - 0x6B,0x65,0x5F,0x6B,0x78,0x75,0x82,0x80,0x8F,0xA0,0x95,0x8D,0x91,0x91,0x8C,0x94, - 0xA1,0xA5,0xAC,0xB2,0xAD,0xA7,0xA1,0xA2,0x91,0x8A,0x87,0x87,0x8D,0x79,0x77,0x75, - 0x6B,0x65,0x63,0x6F,0x6B,0x5E,0x4D,0x40,0x47,0x4F,0x47,0x36,0x3D,0x43,0x42,0x56, - 0x54,0x5A,0x62,0x5B,0x62,0x62,0x66,0x7D,0x87,0x78,0x76,0x74,0x7E,0x89,0x82,0x8A, - 0x8E,0x91,0xA0,0x9A,0xAD,0xBA,0xAC,0xBA,0xBD,0xA8,0xB9,0xB8,0x91,0xA3,0xA1,0x90, - 0xA1,0x92,0x8C,0x94,0x86,0x7F,0x8C,0x88,0x7C,0x75,0x66,0x74,0x73,0x66,0x65,0x66, - 0x74,0x69,0x61,0x59,0x50,0x67,0x6E,0x6B,0x62,0x5A,0x6F,0x74,0x66,0x73,0x72,0x76, - 0x87,0x78,0x85,0x90,0x8E,0x96,0x92,0x9F,0xA9,0xB1,0xB2,0xAB,0xC4,0xC7,0xBD,0xC9, - 0xC0,0xBC,0xC5,0xC2,0xBD,0xB5,0xAE,0x9C,0x8B,0x85,0x80,0x8E,0x7E,0x6F,0x82,0x81, - 0x78,0x63,0x47,0x46,0x54,0x5D,0x5D,0x54,0x4A,0x47,0x48,0x40,0x3C,0x51,0x58,0x4A, - 0x41,0x44,0x4A,0x4E,0x55,0x4E,0x63,0x7B,0x74,0x68,0x58,0x5C,0x6D,0x70,0x79,0x83, - 0x8C,0x9B,0x92,0x7D,0x80,0x8B,0x8B,0x94,0xA5,0xA5,0xA7,0xA9,0xAB,0xB5,0xB8,0xB9, - 0xBE,0xBC,0xC0,0xC3,0xB2,0xA2,0x92,0x95,0xAA,0xB3,0xA6,0x95,0x8B,0x8A,0x84,0x81, - 0x7E,0x78,0x71,0x6C,0x77,0x71,0x69,0x4E,0x4B,0x59,0x56,0x5D,0x53,0x4D,0x59,0x5D, - 0x51,0x42,0x45,0x4D,0x4C,0x58,0x5A,0x4B,0x5A,0x5D,0x57,0x66,0x6A,0x74,0x7D,0x81, - 0x8E,0x9C,0x9E,0x9F,0xA3,0xAC,0xBC,0xB6,0xB8,0xC1,0xCB,0xCD,0xC7,0xC4,0xBB,0xC0, - 0xC5,0xBD,0xAF,0xAC,0xAB,0xA7,0xA3,0x9A,0x9F,0xA1,0x91,0x91,0x95,0x93,0x8A,0x83, - 0x79,0x6B,0x6D,0x69,0x67,0x65,0x5F,0x5D,0x57,0x4F,0x4B,0x58,0x56,0x49,0x48,0x4F, - 0x5B,0x63,0x66,0x58,0x4F,0x56,0x56,0x5E,0x65,0x60,0x63,0x63,0x5E,0x5A,0x61,0x67, - 0x56,0x5B,0x63,0x64,0x6E,0x67,0x68,0x6A,0x6C,0x76,0x78,0x82,0x8B,0x88,0x88,0x86, - 0x8C,0x96,0x96,0xAB,0xBC,0xB9,0xBA,0xBC,0xB3,0xAA,0xAA,0xA1,0xAC,0xBC,0xB8,0xB9, - 0xA8,0x9D,0xA0,0xA7,0xA5,0x8F,0x87,0x91,0x97,0x90,0x86,0x88,0x8A,0x87,0x82,0x7B, - 0x8A,0x83,0x6F,0x6A,0x5E,0x69,0x74,0x71,0x75,0x84,0x83,0x7B,0x7B,0x6C,0x71,0x7C, - 0x74,0x71,0x6F,0x72,0x6F,0x69,0x60,0x5A,0x5E,0x61,0x64,0x72,0x81,0x86,0x75,0x66, - 0x6E,0x71,0x77,0x78,0x7C,0x8D,0x8A,0x84,0x7B,0x76,0x84,0x8D,0x92,0x98,0x92,0x97, - 0x99,0x8E,0x8D,0x85,0x90,0x8D,0x7E,0x97,0x9B,0x9A,0xA0,0x86,0x7E,0x88,0x85,0x8B, - 0x93,0x84,0x7D,0x82,0x76,0x7C,0x83,0x71,0x6E,0x6E,0x6F,0x7F,0x7A,0x71,0x68,0x59, - 0x65,0x63,0x5F,0x75,0x80,0x7C,0x74,0x6F,0x70,0x7A,0x79,0x72,0x7C,0x7F,0x81,0x89, - 0x8B,0x84,0x7C,0x77,0x79,0x7D,0x92,0x9B,0x8D,0x83,0x75,0x82,0x85,0x78,0x76,0x6F, - 0x74,0x78,0x7E,0x77,0x72,0x7D,0x79,0x77,0x85,0x83,0x7D,0x85,0x86,0x90,0x8E,0x89, - 0x93,0x97,0x92,0x8F,0x97,0x96,0x93,0x94,0x92,0x8A,0x84,0x8B,0x88,0x88,0x91,0x8B, - 0x80,0x91,0x90,0x87,0x94,0x90,0x94,0x9C,0x97,0x97,0x93,0x87,0x85,0x8A,0x8F,0x8F, - 0x86,0x7C,0x7E,0x88,0x94,0x8E,0x85,0x8C,0x85,0x7F,0x87,0x7C,0x6E,0x7A,0x7B,0x79, - 0x7B,0x72,0x6D,0x75,0x78,0x75,0x6E,0x6D,0x79,0x7C,0x7B,0x71,0x63,0x67,0x64,0x5E, - 0x5D,0x52,0x57,0x63,0x67,0x66,0x64,0x5C,0x5B,0x6A,0x64,0x65,0x67,0x54,0x55,0x61, - 0x66,0x6D,0x6B,0x6A,0x6D,0x72,0x7F,0x81,0x75,0x73,0x78,0x79,0x7A,0x7C,0x7D,0x80, - 0x87,0x89,0x8F,0x8D,0x8D,0x99,0x95,0x8A,0x86,0x84,0x89,0x9A,0x9F,0x95,0x94,0x92, - 0x8F,0x9C,0xA3,0x9D,0x97,0x92,0x97,0x98,0x8D,0x82,0x80,0x85,0x91,0x94,0x93,0x90, - 0x88,0x97,0x9F,0x97,0x99,0x91,0x8F,0x93,0x94,0x8E,0x86,0x8D,0x91,0x8F,0x93,0x94, - 0x96,0x95,0x8E,0x8A,0x84,0x7B,0x79,0x7D,0x7F,0x7D,0x7E,0x81,0x81,0x85,0x8A,0x87, - 0x84,0x82,0x76,0x77,0x7B,0x79,0x73,0x6C,0x72,0x6F,0x6C,0x6C,0x6B,0x71,0x72,0x6D, - 0x62,0x5E,0x5C,0x62,0x6A,0x5B,0x5C,0x60,0x59,0x61,0x69,0x64,0x66,0x68,0x6C,0x74, - 0x6F,0x6A,0x65,0x64,0x64,0x68,0x69,0x61,0x62,0x6C,0x74,0x74,0x77,0x77,0x75,0x82, - 0x8B,0x82,0x7A,0x82,0x82,0x86,0x92,0x91,0x93,0x94,0x99,0x97,0x8D,0x8C,0x87,0x8C, - 0x8D,0x89,0x91,0x87,0x83,0x91,0x98,0x9C,0x9B,0x95,0x95,0x9B,0x9F,0x9A,0x96,0x96, - 0x98,0xA1,0x9F,0x9B,0x99,0x9C,0xA1,0x9D,0x98,0x92,0x95,0x96,0x97,0x93,0x8A,0x90, - 0x92,0x92,0x92,0x94,0x91,0x8E,0x8D,0x8A,0x96,0x95,0x92,0x90,0x88,0x8A,0x8E,0x8A, - 0x89,0x8B,0x89,0x83,0x82,0x83,0x80,0x81,0x82,0x7C,0x7D,0x81,0x82,0x7C,0x73,0x75, - 0x72,0x72,0x75,0x72,0x6D,0x6B,0x78,0x71,0x6B,0x76,0x6C,0x6B,0x6B,0x66,0x66,0x5C, - 0x5D,0x5A,0x56,0x5C,0x59,0x57,0x54,0x5A,0x5C,0x5C,0x60,0x5C,0x64,0x69,0x68,0x69, - 0x64,0x62,0x70,0x75,0x6F,0x6F,0x65,0x67,0x73,0x76,0x77,0x73,0x6C,0x6F,0x74,0x73, - 0x71,0x6D,0x69,0x6E,0x78,0x7D,0x80,0x83,0x85,0x8C,0x91,0x8D,0x8F,0x8F,0x8E,0x98, - 0x9A,0x95,0x94,0x8F,0x93,0x9A,0x96,0x97,0x98,0x8F,0x93,0x9D,0x97,0x92,0x95,0x96, - 0x98,0xA2,0xA0,0x98,0x9C,0x9E,0xA4,0xA8,0xA1,0x9B,0x98,0x9C,0xA8,0xA6,0x9E,0x98, - 0x90,0x93,0x9A,0x98,0x95,0x91,0x8A,0x91,0x90,0x8F,0x93,0x8D,0x93,0x98,0x99,0x9B, - 0x97,0x90,0x8E,0x8E,0x8A,0x88,0x81,0x7D,0x8B,0x94,0x96,0x93,0x86,0x7D,0x7C,0x7E, - 0x78,0x6F,0x68,0x5D,0x68,0x6F,0x6C,0x72,0x6F,0x71,0x79,0x7B,0x73,0x6C,0x6D,0x6E, - 0x6F,0x6A,0x68,0x64,0x66,0x74,0x7B,0x7E,0x7D,0x6B,0x65,0x68,0x64,0x62,0x5A,0x50, - 0x54,0x60,0x6A,0x6C,0x69,0x68,0x65,0x68,0x64,0x64,0x65,0x64,0x63,0x5F,0x65,0x61, - 0x64,0x75,0x7D,0x80,0x81,0x7B,0x72,0x73,0x6F,0x6B,0x6E,0x6B,0x6E,0x7C,0x81,0x86, - 0x88,0x83,0x89,0x8A,0x89,0x92,0x8E,0x8C,0x90,0x87,0x8B,0x8C,0x83,0x91,0x9B,0x99, - 0x9B,0x94,0x86,0x89,0x89,0x87,0x8D,0x87,0x87,0x93,0x92,0x94,0x9A,0x97,0x9F,0x9E, - 0x9A,0x9C,0x97,0x95,0x93,0x8B,0x8F,0x92,0x8D,0x94,0xA1,0xA6,0xA5,0xA1,0x92,0x8F, - 0x91,0x88,0x87,0x83,0x7C,0x85,0x86,0x84,0x8B,0x84,0x8D,0x93,0x8C,0x88,0x82,0x81, - 0x83,0x82,0x84,0x8A,0x81,0x7B,0x89,0x8F,0x93,0x93,0x81,0x7D,0x87,0x7D,0x79,0x72, - 0x68,0x73,0x7C,0x78,0x7C,0x79,0x7B,0x8A,0x85,0x7F,0x7D,0x75,0x74,0x77,0x72,0x73, - 0x73,0x66,0x6B,0x7C,0x7E,0x82,0x7A,0x6A,0x74,0x73,0x6B,0x68,0x5C,0x61,0x70,0x75, - 0x73,0x70,0x6E,0x79,0x80,0x7C,0x78,0x74,0x74,0x7A,0x7D,0x7D,0x7F,0x7A,0x72,0x7A, - 0x86,0x88,0x8B,0x82,0x76,0x7A,0x7B,0x74,0x6C,0x66,0x6E,0x78,0x79,0x73,0x72,0x76, - 0x81,0x86,0x81,0x7B,0x75,0x7B,0x80,0x79,0x7A,0x7A,0x7D,0x7A,0x74,0x80,0x84,0x87, - 0x83,0x79,0x7B,0x80,0x7C,0x7B,0x79,0x78,0x7F,0x7F,0x7A,0x7B,0x80,0x81,0x86,0x86, - 0x81,0x81,0x84,0x84,0x85,0x7F,0x81,0x85,0x82,0x7F,0x79,0x81,0x85,0x88,0x87,0x81, - 0x83,0x84,0x80,0x7D,0x79,0x7C,0x7F,0x81,0x85,0x84,0x84,0x8A,0x8B,0x89,0x8B,0x8A, - 0x89,0x8A,0x89,0x8B,0x88,0x85,0x85,0x82,0x84,0x86,0x85,0x83,0x85,0x83,0x84,0x82, - 0x7D,0x7D,0x7D,0x7D,0x7A,0x7D,0x80,0x80,0x85,0x84,0x83,0x84,0x82,0x88,0x8A,0x88, - 0x8A,0x86,0x84,0x89,0x85,0x81,0x83,0x82,0x83,0x86,0x83,0x81,0x7F,0x80,0x7F,0x7D, - 0x81,0x7E,0x7D,0x7E,0x7C,0x80,0x84,0x81,0x80,0x83,0x84,0x86,0x82,0x82,0x83,0x81, - 0x84,0x82,0x7F,0x7F,0x82,0x83,0x80,0x80,0x81,0x81,0x81,0x80,0x7F,0x81,0x81,0x7F, - 0x7F,0x80,0x7A,0x7B,0x7C,0x7B,0x80,0x7E,0x7E,0x7F,0x7E,0x80,0x82,0x83,0x80,0x7E, - 0x83,0x84,0x82,0x81,0x80,0x80,0x81,0x82,0x81,0x80,0x82,0x80,0x81,0x81,0x7C,0x80, - 0x82,0x81,0x80,0x7F,0x82,0x81,0x80,0x7E,0x80,0x7F,0x7D,0x7D,0x7F,0x80,0x7E,0x7D, - 0x7D,0x7D,0x7D,0x7F,0x7C,0x7B,0x7E,0x7E,0x7F,0x7C,0x7B,0x7D,0x7D,0x7E,0x7D,0x7F, - 0x7F,0x7F,0x80,0x7F,0x81,0x80,0x81,0x81,0x7F,0x80,0x81,0x81,0x7F,0x7E,0x80,0x7E, - 0x7D,0x7E,0x7F,0x81,0x80,0x80,0x7F,0x7F,0x81,0x82,0x83,0x80,0x81,0x81,0x81,0x82, - 0x80,0x7F,0x81,0x82,0x80,0x81,0x81,0x80,0x7F,0x81,0x83,0x81,0x81,0x82,0x82,0x7F, - 0x7D,0x80,0x80,0x80,0x82,0x82,0x7E,0x80,0x81,0x7E,0x7F,0x80,0x7E,0x7D,0x7F,0x7C, - 0x7C,0x7C,0x7B,0x7C,0x7C,0x7F,0x7E,0x7C,0x7C,0x7E,0x7F,0x7E,0x7F,0x7F,0x7F,0x81, - 0x82,0x85,0x85,0x83,0x85,0x85,0x85,0x84,0x83,0x85,0x85,0x82,0x82,0x81,0x80,0x81, - 0x81,0x81,0x80,0x81,0x82,0x7F,0x7F,0x80,0x81,0x7F,0x80,0x84,0x7F,0x7F,0x81,0x80, - 0x81,0x82,0x83,0x82,0x81,0x81,0x82,0x82,0x82,0x82,0x80,0x81,0x83,0x82,0x82,0x84, - 0x83,0x83,0x83,0x83,0x84,0x80,0x80,0x81,0x83,0x82,0x82,0x84,0x82,0x7F,0x7F,0x82, - 0x81,0x81,0x80,0x7D,0x80,0x7C,0x80,0x81,0x7E,0x7F,0x7E,0x81,0x81,0x82,0x7F,0x7E, - 0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x80,0x7F,0x80,0x80, - 0x7D,0x7F,0x80,0x7F,0x7E,0x7D,0x7F,0x7F,0x81,0x80,0x7D,0x7F,0x7E,0x7F,0x80,0x80, - 0x80,0x80,0x80,0x82,0x81,0x80,0x82,0x82,0x82,0x84,0x82,0x81,0x81,0x7F,0x82,0x83, - 0x83,0x82,0x80,0x81,0x80,0x80,0x81,0x80,0x81,0x81,0x80,0x81,0x80,0x7F,0x7F,0x7F, - 0x80,0x81,0x80,0x80,0x80,0x80,0x7F,0x7F,0x81,0x7D,0x7E,0x81,0x7F,0x7F,0x81,0x80, - 0x80,0x7F,0x81,0x7F,0x7F,0x82,0x7E,0x80,0x7F,0x7E,0x80,0x7D,0x7F,0x7E,0x7F,0x82, - 0x80,0x7F,0x7E,0x7C,0x80,0x80,0x7E,0x81,0x7E,0x80,0x80,0x7D,0x7F,0x7E,0x80,0x80, - 0x81,0x81,0x7D,0x80,0x7F,0x80,0x82,0x80,0x81,0x80,0x81,0x82,0x81,0x80,0x81,0x82, - 0x83,0x80,0x81,0x81,0x80,0x81,0x81,0x82,0x7F,0x80,0x7F,0x7F,0x81,0x7F,0x7E,0x80, - 0x80,0x7E,0x7D,0x7E,0x7C,0x7E,0x7F,0x80,0x80,0x7B,0x7E,0x7F, -}; diff --git a/boop/trunk/betty.cfg b/boop/trunk/betty.cfg deleted file mode 100644 index 77e37d7..0000000 --- a/boop/trunk/betty.cfg +++ /dev/null @@ -1,110 +0,0 @@ -# OpenOCD config file for Betty remote control -# http://bettyhacks.com/forum/index.php?topic=160.0 - -if { [info exists CHIPNAME] } { - set _CHIPNAME $CHIPNAME -} else { - set _CHIPNAME lpc2220 -} - -if { [info exists ENDIAN] } { - set _ENDIAN $ENDIAN -} else { - set _ENDIAN little -} - -if { [info exists CPUTAPID ] } { - set _CPUTAPID $CPUTAPID -} else { - set _CPUTAPID 0x4f1f0f0f -} - -#coonfigure reset options -jtag_nsrst_delay 50 -jtag_ntrst_delay 50 - -#use combined on interfaces or targets that can't set TRST/SRST separately -reset_config trst_and_srst srst_pulls_trst trst_push_pull srst_push_pull - -jtag_khz 1000 - -#jtag scan chain -jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID - -set _TARGETNAME $_CHIPNAME.cpu -target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi - -# Event handlers -$_TARGETNAME configure -event reset-start {jtag_khz 1000} -$_TARGETNAME configure -event reset-init {betty_init} - -arm7_9 dcc_downloads enable - -$_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x10000 -work-area-backup 0 - -#flash bank [ ] -set _FLASHNAME $_CHIPNAME.flash -flash bank $_FLASHNAME cfi 0x80000000 0x00100000 2 2 $_TARGETNAME -flash bank $_FLASHNAME cfi 0x82000000 0x00100000 2 2 $_TARGETNAME - -arm7_9 fast_memory_access enable - -proc betty_init { } { - # setup PLL - # PLLCON: Enable PLL, connect PLL - mww 0xe01fc080 0x03 - # VBPDIV: no division - mww 0xe01fc100 0x02 - # PLLCFG: 0x42 = psel = 10 (4) = msel= 00010 (3) = 240 mhz Fcco*/ - mww 0xe01fc084 0x42 - # Activate PLL settings - #mww 0xe01fc08c 0xaa - #mww 0xe01fc08c 0x55 - #sleep 100 - - # Memory Bank Configuration - # BCFG0: 16bit, rble, 2wst - 30 mhz : Betty: FLASH 0 @ 0x80000000 - mww 0xffe00000 0x10000420 - # BCFG2: 16bit, rble, 2wst - 30 mhz : Betty: FLASH 1 @ 0x82000000 - mww 0xffe00008 0x10000420 - - # BCFG1: 8 bit, 3 sram wst, rble, 5 wst 3 idcy : Betty: LCD @ 0x81000000 - #mww 0xffe00004 0x00000400 - - # GPIO Pin COnfiguration for Flash access - # PINSEL0: - mww 0xe002c000 0x00008005 - # PINSEL1: - mww 0xe002c004 0x00000000 - # PINSEL2: - mww 0xe002c014 0x0de049d4 - - # IO2SET: Set Outputs - mww 0xe0028024 0x1FC0000 - # IO2DIR: Set Direction - mww 0xe0028028 0x1FC0000 - - # IO0DIR: - mww 0xe0028008 0x002018D0 - - # disable watchdog - #mww 0xfffffd44 0x00008000 - # enable user reset - #mww 0xfffffd08 0xa5000001 -} - -proc flash_boop {IMAGE} { - reset init - flash erase_sector 0 0 last - flash write_bank 0 $IMAGE 0 - reset run -} - -proc start_debug {} { - reset halt - mwb 0xE000C01C 0x01 - resume -} - -# For more information about the configuration files, take a look at: -# openocd.texi diff --git a/boop/trunk/boop_rom.bin b/boop/trunk/boop_rom.bin deleted file mode 100644 index 07d71ad42b3fb39c52a7820db9c2a9ab487fb462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268208 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 - - 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 3 of the License, 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, see . -*/ - -#include "buffer.h" -#include "global.h" -#include "irq.h" - -void cBufferInit(struct cBuffer_ *buffer, unsigned char *start, unsigned short size) { - - unsigned cpsr; - cpsr = disableIRQ(); - - buffer->data = start; - buffer->size = size; - buffer->len = 0; - buffer->index = 0; - - restoreIRQ(cpsr); -} - -void cBufferFlush(struct cBuffer_ *buffer) { - - unsigned cpsr; - cpsr = disableIRQ(); - - buffer->len = 0; - buffer->index = 0; - - restoreIRQ(cpsr); -} - -unsigned char cBufferAdd(struct cBuffer_ *buffer, unsigned char data) { - - unsigned cpsr; - cpsr = disableIRQ(); - - if(buffer->size > buffer->len) { - buffer->data[(buffer->index + buffer->len++) % buffer->size] = data; - restoreIRQ(cpsr); - return 1; - } - restoreIRQ(cpsr); - return 0; - -} - -unsigned short cBufferAddBuffer(struct cBuffer_ *buffer, unsigned char* data, unsigned short len) { - - unsigned short lenw; - unsigned short start; - unsigned short end; - - unsigned cpsr; - cpsr = disableIRQ(); - - lenw = 0; - - if(buffer->size > buffer->len) { - start = (buffer->index + buffer->len) % buffer->size; - if(buffer->index) - end = buffer->index; - else - end = buffer->size; - - if(end <= start) { - if(buffer->size - start < len) { - lenw = buffer->size - start; - memcpy(&buffer->data[start],data,lenw); - } - else { - memcpy(&buffer->data[start],data,len); - buffer->len += len; - restoreIRQ(cpsr); - return len; - } - start = 0; - } - - if(end - start < len - lenw) { - memcpy(&buffer->data[start],&data[lenw],end - start); - buffer->len = buffer->size; - restoreIRQ(cpsr); - return lenw + end - start; - } - else { - memcpy(&buffer->data[start],&data[lenw],len-lenw); - buffer->len += len; - restoreIRQ(cpsr); - return len; - } - } - restoreIRQ(cpsr); - return 0; - -} - -unsigned char cBufferGet(struct cBuffer_ *buffer) { - - unsigned char data = 0; - - unsigned cpsr; - cpsr = disableIRQ(); - - if(buffer->len) { - data = buffer->data[buffer->index++]; - buffer->index %= buffer->size; - buffer->len--; - } - restoreIRQ(cpsr); - return data; -} - -unsigned short cBufferGetBuffer(struct cBuffer_ *buffer, unsigned char* data, unsigned short len) { - - unsigned cpsr; - cpsr = disableIRQ(); - - if(buffer->len) { - if(len > buffer->len) - len = buffer->len; - - if(buffer->index + len <= buffer->size) { - memcpy(data,&buffer->data[buffer->index],len); - } - else { - memcpy(data,&buffer->data[buffer->index],buffer->size - buffer->index); - memcpy(&data[buffer->size - buffer->index],buffer->data,len - (buffer->size - buffer->index)); - } - buffer->index = (buffer->index + len) % buffer->size; - buffer->len -= len; - restoreIRQ(cpsr); - return len; - - } - restoreIRQ(cpsr); - return 0; - -} diff --git a/boop/trunk/buffer.h b/boop/trunk/buffer.h deleted file mode 100644 index da19c07..0000000 --- a/boop/trunk/buffer.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - buffer.h - functions for buffers - Copyright (C) 2008 Telekatz - - 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 3 of the License, 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, see . -*/ - -#ifndef BUFFER_H -#define BUFFER_H - -struct cBuffer_ { - unsigned char* data; - unsigned short size; - unsigned short len; - unsigned short index; -}; - -void cBufferInit(struct cBuffer_ *buffer, unsigned char *start, unsigned short size); -void cBufferFlush(struct cBuffer_ *buffer); -unsigned char cBufferAdd(struct cBuffer_ *buffer, unsigned char data); -unsigned short cBufferAddBuffer(struct cBuffer_ *buffer, unsigned char* data, unsigned short len); -unsigned char cBufferGet(struct cBuffer_ *buffer); -unsigned short cBufferGetBuffer(struct cBuffer_ *buffer, unsigned char* data, unsigned short len); -#endif diff --git a/boop/trunk/cc1100/Make.conf b/boop/trunk/cc1100/Make.conf deleted file mode 100644 index 290d282..0000000 --- a/boop/trunk/cc1100/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := cc1100.c rf.c fs20.c diff --git a/boop/trunk/cc1100/cc1100.c b/boop/trunk/cc1100/cc1100.c deleted file mode 100644 index 4495d30..0000000 --- a/boop/trunk/cc1100/cc1100.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - cc1100.c - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -// CC1100 - http://focus.ti.com/docs/prod/folders/print/cc1100.html -// 27 MHz crystal -// http://en.wikipedia.org/wiki/ISM_band http://de.wikipedia.org/wiki/ISM-Band -// http://de.wikipedia.org/wiki/Short_Range_Devices http://en.wikipedia.org/wiki/Low-power_communication_device -// 433,05 MHz ... 434,79 MHz - -#include "lpc2220.h" -#include "cc1100.h" -#include "irq.h" - -//setting 6_WOR -const unsigned char conf[0x2F] = { - 0x29, // IOCFG2 - 0x2E, // IOCFG1 - 0x06, // IOCFG0 - 0x47, // FIFOTHR - 0xD3, // SYNC1 - 0x91, // SYNC0 - 0x3E, // PKTLEN - 0x1A, // PKTCTRL1 - 0x45, // PKTCTRL0 - 0x01, // ADDR - 0x01, // CHANNR - 0x06, // FSCTRL1 - 0x00, // FSCTRL0 - 0x10, // FREQ2 # - 0x0B, // FREQ1 # - 0xDA, // FREQ0 # -> 433,249969 MHz - 0x8A, // MDMCFG4 - 0x75, // MDMCFG3 - 0x13, // MDMCFG2 - 0x22, // MDMCFG1 - 0xC1, // MDMCFG0 CHANSPC_M - 0x35, // DEVIATN - 0x04, // MCSM2 - 0x0C, // MCSM1 0c - 0x38, // MCSM0 - 0x16, // FOCCFG - 0x6C, // BSCFG - 0x43, // AGCCTRL2 - 0x40, // AGCCTRL1 - 0x91, // AGCCTRL0 - 0x46, // WOREVT1 - 0x50, // WOREVT0 - 0x78, // WORCTRL - 0x56, // FREND1 - 0x10, // FREND0 - 0xA9, // FSCAL3 - 0x0A, // FSCAL2 - 0x00, // FSCAL1 - 0x11, // FSCAL0 - 0x41, // RCCTRL1 - 0x00, // RCCTRL0 - 0x57, // FSTEST - 0x7F, // PTEST - 0x3F, // AGCTEST - 0x98, // TEST2 - 0x31, // TEST1 - 0x0B // TEST0 -}; - -const unsigned char confasync[0x2F] = { - 0x0D, // IOCFG2 - 0x0D, // IOCFG1 - 0x2E, // IOCFG0 - 0x47, // FIFOTHR - 0xD3, // SYNC1 - 0x91, // SYNC0 - 0x3E, // PKTLEN - 0x1A, // PKTCTRL1 - 0x32, // PKTCTRL0 | asynchronous serial mode - 0x00, // ADDR - 0x00, // CHANNR channel number - 0x06, // FSCTRL1 - 0x00, // FSCTRL0 - 0x10, // FREQ2 # - 0x12, // FREQ1 # - 0x34, // FREQ0 # *27e6/2^16 = 433,919861 MHz base frequency - 0x4A, // MDMCFG4 | channel bandwidth - 0x84, // MDMCFG3 - 0x30, // MDMCFG2 - // 0x00, // MDMCFG2 // 2-FSK - 0x20, // MDMCFG1 - 0xe5, // MDMCFG0 CHANSPC_M Chann 49,95kHz | DRATE_E[3:0] - 0x37, // DEVIATN - 0x07, // MCSM2 - 0x30, // MCSM1 0c - 0x18, // MCSM0 - 0x14, // FOCCFG - 0x6C, // BSCFG - 0x07, // AGCCTRL2 - 0x00, // AGCCTRL1 - 0x90, // AGCCTRL0 - 0x46, // WOREVT1 - 0x50, // WOREVT0 - 0x78, // WORCTRL - 0x56, // FREND1 - 0x11, // FREND0 - 0xE9, // FSCAL3 - 0x2A, // FSCAL2 - 0x00, // FSCAL1 - 0x1F, // FSCAL0 - 0x41, // RCCTRL1 - 0x00, // RCCTRL0 - 0x59, // FSTEST - 0x7F, // PTEST - 0x3F, // AGCTEST - 0x81, // TEST2 - 0x35, // TEST1 - 0x09 // TEST0 -}; - -void cc1100_init(void) { - - unsigned long xx = 0x200; - - PINSEL1 &= 0xffffff00; //GDO0 SCK1 MISO1 MOSI1 as GPIO - FIODIR0 |= (CS1 | MOSI1 | SCK1); //output - - PCONP &= 0xfffffbff; - PCONP |= (1<<21); - FIOSET0 = SCK1; - FIOCLR0 = MOSI1; - FIOCLR0 = CS1; - while(xx) { - asm volatile("nop" : :); - xx--; - } - FIOSET0 = CS1; - xx=0x200; - while(xx) { - asm volatile("nop" : :); - xx--; - } - FIOCLR0 = CS1; - FIOCLR0 = SCK1; - while (FIOPIN0 & MISO1); - - PINSEL1 |= 0x000002A8; //SCK1 MISO1 MOSI1 as SPI1 - SSPCR0 = 0x0007; - SSPCPSR = 0x02; - SSPCR1 = 0x02; - - SSPDR = SRES; - while (FIOPIN0 & MISO1); - while (SSPSR & (1<<4)); - xx = SSPDR; - - cc1100_write((0x00 | BURST ),(unsigned char*)conf,0x2f); - cc1100_write1(PATABLE,0xC0); - cc1100_strobe(SIDLE); - cc1100_strobe(SPWD); -} - -// write length bytes of data to addr in CC1100 -unsigned char cc1100_write(unsigned char addr,unsigned char* data, unsigned char length) { - - unsigned short i; - unsigned char status; - unsigned char x; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = (addr | WRITE); - while ((SSPSR & (1<<4))); - status = SSPDR; - for (i=0; i < length; i++) { - SSPDR = data[i]; - while ((SSPSR & (1<<4))); - x=SSPDR; - } - FIOSET0 = CS1; - - return(status); -} - -// write on byte of data to addr in CC1100 -// a few instructions faster than cc1100_write(addr, data, 1) -unsigned char cc1100_write1(unsigned char addr,unsigned char data) { - - unsigned char status; - unsigned char x; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = (addr | WRITE); - while ((SSPSR & (1<<4))); - status = SSPDR; - - SSPDR = data; - while ((SSPSR & (1<<4))); - x=SSPDR; - - FIOSET0 = CS1; - - return(status); -} - - -unsigned char cc1100_read(unsigned char addr, unsigned char* data, unsigned char length) { - - unsigned short i; - unsigned char status; - - FIOCLR0 = CS1; - - while (FIOPIN0 & MISO1); - SSPDR = (addr | READ); - while ((SSPSR & (1<<4))); - status = SSPDR; - for (i=0; i < length; i++) { - SSPDR = 0x00; - while ((SSPSR & (1<<4))); - data[i]=SSPDR; - } - FIOSET0 = CS1; - - return(status); -} - -unsigned char cc1100_read1(unsigned char addr) { - - unsigned char r; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = (addr | READ); - while ((SSPSR & (1<<4))); - r = SSPDR; - SSPDR = 0x00; - while ((SSPSR & (1<<4))); - r=SSPDR; - FIOSET0 = CS1; - - return(r); -} - -unsigned char cc1100_strobe(unsigned char cmd) { - - unsigned short status; - - FIOCLR0 = CS1; - while (FIOPIN0 & MISO1); - SSPDR = cmd; - while ((SSPSR & (1<<4))); - status = SSPDR; - FIOSET0 = CS1; - - return(status); -} -/* -// check that PLL has locked -unsigned char cc1100_pll_lock(void) -{ - //~ To check that the PLL is in lock the user can - //~ program register IOCFGx.GDOx_CFG to 0x0A - //~ and use the lock detector output available on - //~ the GDOx pin as an interrupt for the MCU (x = - //~ 0,1, or 2). A positive transition on the GDOx - //~ pin means that the PLL is in lock. As an - //~ alternative the user can read register FSCAL1. - //~ The PLL is in lock if the register content is - //~ different from 0x3F. Refer also to the CC1100 - //~ Errata Notes [1]. For more robust operation the - //~ source code could include a check so that the - //~ PLL is re-calibrated until PLL lock is achieved - //~ if the PLL does not lock the first time. -} -*/ -/* -// get carrier frequency -unsigned char cc1100_carrier(void) -{ - //~ f_carrier = fxosc/(2**16) * (FREQ + CHAN * (256+CHANSPC_M) * 2**(CHANSPC_E - 2)) -} - -// set intermediate frequency -unsigned char cc1100_if(void) -{ - //~ FSCTRL1.FREQ_IF - //~ f_ = fxosc/(2**10) * FREQ_IF -} - - -// set channel spacing -unsigned char cc1100_chspc(void) -{ - //~ MDMCFG0.CHANSPC_M - //~ MDMCFG1.CHANSPC_E r -} - -// set channel -unsigned char cc1100_channel(void) -{ - //~ CHANNR.CHAN -} - -// set frequency -unsigned char cc1100_frequency(void) -{ - //~ FREQ2, FREQ1, FREQ0 - //~ This word will typically be set to the centre of the lowest channel frequency that is to be used. -} - -// set modulation -unsigned char cc1100_modulation(void) -{ - //~ MDMCFG2.MOD_FORMAT - //~ MDMCFG2.MANCHESTER_EN. -} -*/ diff --git a/boop/trunk/cc1100/cc1100.h b/boop/trunk/cc1100/cc1100.h deleted file mode 100644 index 3e0b3c7..0000000 --- a/boop/trunk/cc1100/cc1100.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - cc1100.h - - Copyright (C) 2007 - - 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 3 of the License, 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, see . -*/ - -#ifndef cc1100_H -#define cc1100_H - -#define MISO1 (1<<18) -#define MOSI1 (1<<19) -#define SCK1 (1<<17) -#define CS1 (1<<23) -#define GDO0 (1<<16) -#define GDO1 (1<<18) -#define GDO2 (1<<24) - - -#define WRITE 0x00 -#define BURST 0x40 -#define READ 0x80 -#define TX_fifo 0x7F -#define RX_fifo 0xff -#define PATABLE 0x3E - -//Command Strobes -#define SRES 0x30 -#define SFSTXON 0x31 -#define SXOFF 0x32 -#define SCAL 0x33 -#define SRX 0x34 -#define STX 0x35 -#define SIDLE 0x36 -#define SWOR 0x38 -#define SPWD 0x39 -#define SFRX 0x3A -#define SFTX 0x3B -#define SWORRST 0x3C -#define SNOP 0x3D - -//Status Registers -#define PARTNUM (0x30 | READ | BURST) -#define VERSION (0x31 | READ | BURST) -#define FREQEST (0x32 | READ | BURST) -#define LQI (0x33 | READ | BURST) -#define RSSI (0x34 | READ | BURST) -#define MARCSTATE (0x35 | READ | BURST) -#define WORTIME1 (0x36 | READ | BURST) -#define WORTIME0 (0x37 | READ | BURST) -#define PKTSTATUS (0x38 | READ | BURST) -#define VCO_VC_DAC (0x39 | READ | BURST) -#define TXBYTES (0x3A | READ | BURST) -#define RXBYTES (0x3B | READ | BURST) -#define RCCTRL1_STATUS (0x3C | READ | BURST) -#define RCCTRL0_STATUS (0x3D | READ | BURST) - -//Configuration Registers -#define IOCFG2 0x00 // GDO2 output pin configuration -#define IOCFG1 0x01 // GDO1 output pin configuration -#define IOCFG0 0x02 // GDO0 output pin configuration -#define FIFOTHR 0x03 // RX FIFO and TX FIFO thresholds -#define SYNC1 0x04 // Sync word, high byte -#define SYNC0 0x05 // Sync word, low byte -#define PKTLEN 0x06 // Packet length -#define PKTCTRL1 0x07 // Packet automation control -#define PKTCTRL0 0x08 // Packet automation control -#define ADDR_ 0x09 // Device address -#define CHANNR 0x0A // Channel number -#define FSCTRL1 0x0B // Frequency synthesizer control -#define FSCTRL0 0x0C // Frequency synthesizer control -#define FREQ2 0x0D // Frequency control word, high byte -#define FREQ1 0x0E // Frequency control word, middle byte -#define FREQ0 0x0F // Frequency control word, low byte -#define MDMCFG4 0x10 // Modem configuration -#define MDMCFG3 0x11 // Modem configuration -#define MDMCFG2 0x12 // Modem configuration -#define MDMCFG1 0x13 // Modem configuration -#define MDMCFG0 0x14 // Modem configuration -#define DEVIATN 0x15 // Modem deviation setting -#define MCSM2 0x16 // Main Radio Cntrl State Machine config -#define MCSM1 0x17 // Main Radio Cntrl State Machine config -#define MCSM0 0x18 // Main Radio Cntrl State Machine config -#define FOCCFG 0x19 // Frequency Offset Compensation config -#define BSCFG 0x1A // Bit Synchronization configuration -#define AGCCTRL2 0x1B // AGC control -#define AGCCTRL1 0x1C // AGC control -#define AGCCTRL0 0x1D // AGC control -#define WOREVT1 0x1E // High byte Event 0 timeout -#define WOREVT0 0x1F // Low byte Event 0 timeout -#define WORCTRL 0x20 // Wake On Radio control -#define FREND1 0x21 // Front end RX configuration -#define FREND0 0x22 // Front end TX configuration -#define FSCAL3 0x23 // Frequency synthesizer calibration -#define FSCAL2 0x24 // Frequency synthesizer calibration -#define FSCAL1 0x25 // Frequency synthesizer calibration -#define FSCAL0 0x26 // Frequency synthesizer calibration -#define RCCTRL1 0x27 // RC oscillator configuration -#define RCCTRL0 0x28 // RC oscillator configuration -#define FSTEST 0x29 // Frequency synthesizer cal control -#define PTEST 0x2A // Production test -#define AGCTEST 0x2B // AGC test -#define TEST2 0x2C // Various test settings -#define TEST1 0x2D // Various test settings -#define TEST0 0x2E // Various test settings - -#define MARCSTATE_IDLE 0x01 -#define MARCSTATE_RX 0x0d - -const unsigned char conf[0x2F] __attribute__((aligned(0x4))); -const unsigned char confasync[0x2F] __attribute__((aligned(0x4))); - -void cc1100_init(void); -unsigned char cc1100_write(unsigned char addr, unsigned char* data, unsigned char length); -unsigned char cc1100_write1(unsigned char addr,unsigned char data); -unsigned char cc1100_read(unsigned char addr, unsigned char* data, unsigned char length); -unsigned char cc1100_read1(unsigned char addr); -unsigned char cc1100_strobe(unsigned char cmd); - -#endif diff --git a/boop/trunk/cc1100/fs20.c b/boop/trunk/cc1100/fs20.c deleted file mode 100644 index f029998..0000000 --- a/boop/trunk/cc1100/fs20.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - fs20.c - FS20 functions - Copyright (C) 2009 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "fs20.h" -#include "rf.h" -#include "cc1100.h" -#include "fonty.h" -#include "rtc.h" -#include "global.h" -#include "lcd.h" -#include "keyboard.h" -#include "serial.h" -#include "timerfuncs.h" - -#define FS20_BETWEEN(x, a, b) ((x >= a) && (x <= b)) - -extern const char hval[16]; - -#define PROTOCOL_UNKNOWN 0 -#define PROTOCOL_FS20 1 -#define PROTOCOL_WEATHER 2 -#define PROTOCOL_WEATHER2 3 - -void fs20_decoder(void) { - - unsigned char x; - unsigned char FS20laststate = 0; - unsigned char FS20preamble = 0; - unsigned char FS20parity = 0; - unsigned char FS20state = 0; - unsigned long FS20lasttime = 0; - unsigned char FS20bitcounter = 0; - unsigned char FS20bytecounter = 0; - unsigned char FS20inbyte[20]; - unsigned char FS20inbit = 0; - unsigned char FS20protocol = PROTOCOL_UNKNOWN; - unsigned short tempbyte = 0; - unsigned char finish = 0; - - unsigned long pulse = 0; - unsigned long space = 0; - unsigned long now; - - lcd_fill(0); - set_font(BOLDFONT); - draw_string (0, 0, "FS20 Decoder", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,128,2, LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - RFasyncmode(true); - - cc1100_write1(FREQ2,0x20); - cc1100_write1(FREQ1,0x29); - cc1100_write1(FREQ0,0x3E); - - cc1100_write1(AGCCTRL2,0x07); - cc1100_write1(AGCCTRL1,0x00); - cc1100_write1(AGCCTRL0,0x91); - - cc1100_strobe(SFRX); - cc1100_strobe(SRX); - - serial_puts("\n\r"); - - while(KEY_Exit) {}; - while(!KEY_Exit) - { - - //internal receiver - if(FIOPIN0 & GDO2) - FS20state = 1; - else - FS20state = 0; - - /* - //external rexeiver on pin 0.14 - if(FIOPIN0 & (1<<14)) - FS20state = 1; - else - FS20state = 0; -*/ - - if(FS20state != FS20laststate) { - FS20laststate = FS20state; - - //Calculate pulse len - if(!FS20state) { - now = T0TC; - if(now > FS20lasttime) - pulse = now-FS20lasttime; - else - pulse = (now+5000)-FS20lasttime; - FS20lasttime = now; - } - //Calculate space len - else { - now = T0TC; - if(now > FS20lasttime) - space = now-FS20lasttime; - else - space = (now+5000)-FS20lasttime; - FS20lasttime = now; - } - - //Decode - if(FS20state || (FS20protocol == PROTOCOL_WEATHER2)) { - if(FS20protocol == PROTOCOL_UNKNOWN) { - if((FS20_BETWEEN(pulse, 350, 450) && FS20_BETWEEN(space, 350, 450)) || (FS20_BETWEEN(pulse, 550, 650) && FS20_BETWEEN(space, 550, 650))) { - FS20protocol = PROTOCOL_FS20; //FS20, FHT - FS20inbyte[0] = 'F'; - FS20bytecounter = 1; - FS20bitcounter = 0; - FS20preamble = PREAMBLELEN_FS20; - FS20parity = 0; - tempbyte = 0; - } - else if((FS20_BETWEEN(pulse, 200, 533) && FS20_BETWEEN(space, 685, 1020)) || (FS20_BETWEEN(pulse, 685, 1020) && FS20_BETWEEN(space, 200, 533))) { - FS20protocol = PROTOCOL_WEATHER; //KS200, KS300, S2XXX - FS20inbyte[0] = 'W'; - FS20bytecounter = 1; - FS20bitcounter = 0; - FS20preamble = PREAMBLELEN_WEATHER; - tempbyte = 0; - } - else if(FS20_BETWEEN(pulse, 200, 300) && FS20_BETWEEN(space, 200, 300)) { - FS20protocol = PROTOCOL_WEATHER2; //ASH500 - FS20inbyte[0] = 'S'; - FS20bytecounter = 1; - FS20bitcounter = 0; - FS20preamble = PREAMBLELEN_WEATHER2; - tempbyte = 0; - } - } - - if(FS20protocol == PROTOCOL_FS20) { - if(FS20_BETWEEN(pulse, 350, 450) && FS20_BETWEEN(space, 350, 450)) - FS20inbit = 0; - else if(FS20_BETWEEN(pulse, 550, 650) && FS20_BETWEEN(space, 550, 650)) - FS20inbit = 1; - else - FS20protocol = PROTOCOL_UNKNOWN; - - if(FS20protocol != PROTOCOL_UNKNOWN) { - if(FS20preamble) { - if((FS20preamble > 1) && FS20inbit) - FS20preamble = PREAMBLELEN_FS20; - else if((FS20preamble > 1) && !FS20inbit) { - FS20preamble--; - } - else if((FS20preamble == 1) && FS20inbit) { - FS20preamble = 0; - } - } - else { - if(FS20bitcounter == 8) { - if(FS20inbit == FS20parity) { - FS20bitcounter = 0; - FS20bytecounter++; - FS20parity = 0; - } - else { - FS20protocol = PROTOCOL_UNKNOWN; - } - } - else { - FS20inbyte[FS20bytecounter] = (FS20inbyte[FS20bytecounter]<<1) | FS20inbit; - FS20parity ^= FS20inbit; - FS20bitcounter++; - } - } - } - } - - if(FS20protocol == PROTOCOL_WEATHER) { - if(FS20_BETWEEN(pulse, 685, 1020) && FS20_BETWEEN(space, 200, 533)) - FS20inbit = 0; - else if(FS20_BETWEEN(pulse, 200, 533) && FS20_BETWEEN(space, 685, 1020)) - FS20inbit = (1<<3); - else - FS20protocol = PROTOCOL_UNKNOWN; - - if(FS20protocol != PROTOCOL_UNKNOWN) { - if(FS20preamble) { - if((FS20preamble > 1) && FS20inbit) - FS20preamble = PREAMBLELEN_WEATHER; - else if((FS20preamble > 1) && !FS20inbit) { - FS20preamble--; - } - else if((FS20preamble == 1) && FS20inbit) { - FS20preamble = 0; - } - } - else { - if(FS20bitcounter == 4) { - tempbyte<<=8; - FS20bitcounter++; - } - else if(FS20bitcounter == 9) { - FS20bitcounter = 0; - } - else { - tempbyte = (tempbyte>>=1) | FS20inbit; - if(FS20bitcounter++ == 8) { - FS20inbyte[FS20bytecounter] = tempbyte; - tempbyte = 0; - FS20bytecounter++; - } - } - } - } - } - - if(FS20protocol == PROTOCOL_WEATHER2) { - if(FS20preamble) { - if((FS20_BETWEEN(pulse, 200, 300) && FS20_BETWEEN(space, 200, 300))) { - if (FS20preamble > 1) - FS20preamble--; - } - else if((FS20_BETWEEN(pulse, 400, 600) && FS20_BETWEEN(space, 200, 300))) { - if (FS20preamble == 1) { - FS20preamble = 0; - pulse = 0; - space = 0; - } - else - FS20protocol = PROTOCOL_UNKNOWN; - } - else - FS20protocol = PROTOCOL_UNKNOWN; - } - else { - if((FS20_BETWEEN(pulse + space, 400, 600)) ) { - if(FS20state) - FS20inbit = 1; - else - FS20inbit = 0; - - pulse = 0; - space = 0; - - if(FS20inbit) - FS20parity++; - - if(FS20bitcounter == 8) { - if(!(FS20parity & 0x01)) { - FS20bitcounter = 0; - FS20bytecounter++; - FS20parity = 0; - if(FS20bytecounter == 0x0a) { //packet full received - unsigned char dec[8]; - - dec[0] = FS20inbyte[1] ^ 0x89; - for(x=9;x>1;x--) { - FS20inbyte[x] = (FS20inbyte[x-1] + 0x24) ^ FS20inbyte[x]; - } - FS20inbyte[1] = FS20inbyte[1] ^ 0x89; - - FS20protocol = PROTOCOL_UNKNOWN; - } - } - else { - FS20bytecounter = 0; - FS20protocol = PROTOCOL_UNKNOWN; - } - } - else { - FS20inbyte[FS20bytecounter] = (FS20inbyte[FS20bytecounter]<<1) | FS20inbit; - FS20bitcounter++; - } - } - else if(pulse && space) { - FS20bytecounter = 0; - FS20protocol = PROTOCOL_UNKNOWN; - } - } - } - - if((FS20protocol == PROTOCOL_UNKNOWN && FS20bytecounter > 1)) { - char msbuffer[20]; - - draw_block(0,32,128,24,3,DRAW_ERASE); - - //print time and protocol type - siprintf (msbuffer, "%02x:%02x:%02x.%02u %c ",rtc.time.hour,rtc.time.minute,rtc.time.second,(unsigned char)(T0overflow>>1) & 0xff, FS20inbyte[0]); - draw_string (0, 32, msbuffer, LCD_COLOR_B, DRAW_NORCU); - serial_puts(msbuffer); - - //print received data - for(x=1;x<(FS20bytecounter);x++) { - draw_hexC (((x-1)*14), 40, FS20inbyte[x], LCD_COLOR_B, DRAW_NORCU); - serial_putbyte (' '); - putHexC(FS20inbyte[x]); - } - - //print decoded data - if(FS20inbyte[0] == 'S') { - signed short temp; - - temp = ((FS20inbyte[6] & 0x7F)<<8) | FS20inbyte[7]; - if(temp & 0x4000) //negative - temp |=0x8000; - - serial_putbyte (' '); - serial_putbyte (' '); - - siprintf (msbuffer, "%4d °C %u%%", temp,FS20inbyte[8]); - msbuffer[4] = msbuffer[3]; - msbuffer[3] = '.'; - serial_puts(msbuffer); - msbuffer[5] = 0x15; //change °C on display - msbuffer[6] = ' '; - draw_string (0, 48, msbuffer, LCD_COLOR_B, DRAW_NORCU); - } - - serial_puts("\n\r"); - finish = 0; - FS20bytecounter = 0; - FS20protocol = PROTOCOL_UNKNOWN; - } - } - } - } - - RFasyncmode(false); -} - - diff --git a/boop/trunk/cc1100/fs20.h b/boop/trunk/cc1100/fs20.h deleted file mode 100644 index ea60c22..0000000 --- a/boop/trunk/cc1100/fs20.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - fs20.h - FS20 functions - Copyright (C) 2009 - - 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 3 of the License, 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, see . -*/ - -#ifndef FS20_H -#define FS20_H - -#define extensionbit 0x20 -#define PREAMBLELEN_FS20 10 -#define PREAMBLELEN_WEATHER 7 -#define PREAMBLELEN_WEATHER2 20 - -void fs20_decoder(void); - -#endif diff --git a/boop/trunk/cc1100/rf.c b/boop/trunk/cc1100/rf.c deleted file mode 100644 index 00ea4a1..0000000 --- a/boop/trunk/cc1100/rf.c +++ /dev/null @@ -1,502 +0,0 @@ -/* - rf.c - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "rf.h" -#include "cc1100.h" -#include "timerfuncs.h" -#include "irq.h" -#include "cc1100.h" -#include "lcd.h" -#include "fonty.h" -#include "rtc.h" -#include "global.h" -#include "buffer.h" -#include "bfs.h" - -unsigned char RFbuf[64]; -struct RFendpoint_ rfendpoint[MAX_ENDPOINTS]; -struct RF_ RF; - -const struct RFsettings_ default_RFsettings = -{ - 0x01, //address - 0x01 //channel -}; - -//********************* -//* Private functions * -//********************* - -void switch_to_idle() { - cc1100_strobe(SIDLE); - while (cc1100_read1(MARCSTATE) != 01); -} - -void WORsend_timeout(unsigned int cb) { - RF.state = RFsendworend; -} - -void RF_timed_rx_timeout(unsigned int cb) { - stopCB(RF.timeout_cb); - removeTimerCB(RF.timeout_cb); - RF.timeout_cb = 0xff; - if(RF.flags & WORenabled) - RF_changestate(RFwor); - else - RF_changestate(RFidle); - -} - -void sendendpoint(struct RFendpoint_ *currentEP) { - - unsigned char* epdata = 0; - unsigned short eplen; - struct cc1100frame_ *TXframe; - - TXframe = (struct cc1100frame_ *)RFbuf; - - //write header - eplen = currentEP->bufferlen; - switch ( currentEP->flags & EPtypemask) { - case EPtypedata: - if(eplen > 6) - eplen = 6; - epdata = currentEP->data; - break; - case EPtypebuffer: - if(eplen > 59) - eplen = 59; - epdata = currentEP->buffer; - break; - case EPtypecbuffer: - if(eplen > 59) - eplen = 59; - if(eplen > currentEP->cbuffer->len) - eplen = currentEP->cbuffer->len; - break; - } - TXframe->len = eplen + 3; - TXframe->destAddr = currentEP->dest; - TXframe->srcAddr = RF.addr; - TXframe->packetType = currentEP->type; - cc1100_write(TX_fifo | BURST,(unsigned char*)TXframe,4); - - //write data - switch ( currentEP->flags & EPtypemask) { - case EPtypedata: - case EPtypebuffer: - cc1100_write(TX_fifo | BURST,epdata,eplen); - break; - case EPtypecbuffer: - - if(currentEP->cbuffer->index + eplen <= currentEP->cbuffer->size) { - cc1100_write(TX_fifo | BURST,&(currentEP->cbuffer->data[currentEP->cbuffer->index]),eplen); - } - else { - cc1100_write(TX_fifo | BURST,&(currentEP->cbuffer->data[currentEP->cbuffer->index]), currentEP->cbuffer->size - currentEP->cbuffer->index); - cc1100_write(TX_fifo | BURST,currentEP->cbuffer->data,eplen - (currentEP->cbuffer->size - currentEP->cbuffer->index)); - } - currentEP->cbuffer->index = (currentEP->cbuffer->index + eplen) % currentEP->cbuffer->size; - currentEP->cbuffer->len -= eplen; - break; - } - - cc1100_strobe(STX); - - currentEP->flags &= ~EPnewdata; - - if(currentEP->flags & EPonce) - closeEP(currentEP); -} - -void receiveendpoint(struct RFendpoint_ *currentEP) { - - unsigned short eplen; - struct cc1100frame_ *RXframe; - - RXframe = (struct cc1100frame_ *)RFbuf; - - currentEP->dest = RXframe->srcAddr; - eplen = RXframe->len-3; - - switch ( currentEP->flags & EPtypemask) { - case EPtypedata: - if(eplen > 6) { - eplen = 6; - currentEP->flags |= EPoverflow; - } - memcpy(&(currentEP->data[0]),RXframe->data,eplen); - break; - case EPtypebuffer: - if(eplen > currentEP->buffersize) { - eplen = currentEP->buffersize; - currentEP->flags |= EPoverflow; - } - memcpy(currentEP->buffer,RXframe->data,eplen); - break; - case EPtypecbuffer: - if(eplen > currentEP->cbuffer->size - currentEP->cbuffer->len) { - eplen = currentEP->cbuffer->size - currentEP->cbuffer->len; - currentEP->flags |= EPoverflow; - } - cBufferAddBuffer(currentEP->cbuffer, RXframe->data, eplen); - break; - } - - currentEP->bufferlen = eplen; - if(currentEP->flags & EPnewdata) - currentEP->flags |= EPoverwritten; - else - currentEP->flags |= EPnewdata; - if(currentEP->flags & EPonce) - closeEP(currentEP); -} - -void cc1100IRQ (void) { - - unsigned char x; - - switch_to_idle(); - - if (cc1100_read1(RXBYTES) > 0) { - cc1100_read(RX_fifo, RFbuf,1); - cc1100_read(RX_fifo, &RFbuf[1],RFbuf[0]); - - struct cc1100frame_ *RXframe; - RXframe = (struct cc1100frame_ *)RFbuf; - - if ((RXframe->len == 1) && (RF.flags & WORenabled) && ((RXframe->destAddr == RF.addr) || (RXframe->destAddr == 0x00))) { - if(RF.timeout_cb != 0xff || RF.state != RFrx) - RF_timed_rx(WORrx_time); - } - - if (RXframe->len > 3) { - if (RF.timeout_cb != 0xff) - setCBIntervall(RF.timeout_cb,WORrx_time); - switch ( RXframe->packetType) { - case packet_test: - draw_block(0,50,128,10,3,DRAW_ERASE); - draw_string(0, 50, (char*)&RXframe->data[0], 3, DRAW_PUT); - break; - case packet_ping: - if (RXframe->data[0] == 0x01) { - struct RFendpoint_* cur_ep; - cur_ep = openEP(0,0, packet_ping); - if(cur_ep) { - cur_ep->dest = RXframe->srcAddr; - cur_ep->data[0] = 2; - cur_ep->bufferlen = 1; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce; - RF_changestate(RFtx); - } - } - else if (RXframe->data[0] == 0x02) { - RF.flags |= PingACK; - } - break; - case packet_time: - if ((RXframe->data[0] == 0xFF) && (timeInfo & TIME_ACCURATE)) { - send_time(RXframe->srcAddr,0); - } - else if (RXframe->len == 10) { - memcpy((unsigned char *)&rtc,&RXframe->data[0],7); - timeInfo |= SETNEWTIME; - VICSoftInt = INT_EINT2; - } - break; - default: - for(x=0; xpacketType) && ((rfendpoint[x].flags & (EPoutput | EPenabled)) == EPenabled)) { - receiveendpoint(&rfendpoint[x]); - break; - } - } - } - } - } - - if(RF.state == RFtx) { - for(x=0; xdest = dest; - cur_ep->data[0] = 1; - cur_ep->bufferlen = 1; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce | EPsendwor; - - RF.flags &= ~PingACK; - RF_changestate(RFtx); - - RF_timed_rx(WORrx_time); - - while ((RF.timeout_cb != 0xff) && !(RF.flags & PingACK)); - - if(RF.flags & PingACK) - return(1); - } - return(0); -} - -void RF_init (void) { - cc1100_init(); - RF.flags = 0; - RF.addr = conf[0x09]; - RF.state = RFpwrdown; - RF.nextstate = RFpwrdown; - RF.timeout_cb = 0xff; -} - -void RF_changestate (unsigned char state) { - unsigned char oldstate; - - VICIntEnClr = INT_EINT0; - - if(RF.state != state) { - oldstate = RF.state; - - if((RF.state >= RFtx) && (state < RFtx)) { - RF.nextstate = state; - } - else { - switch (state) { - case RFpwrdown: - RF.state = RFpwrdown; - break; - case RFwor: - RF.state = RFwor; - RF.flags |= WORenabled; - break; - case RFidle: - RF.state = RFidle; - break; - case RFrx: - RF.state = RFrx; - break; - case RFtx: - if(RF.state < RFtx) - RF.state = RFtx; - if(oldstate == RFrx) - RF.nextstate = RFrx; - else if(RF.flags & WORenabled) - RF.nextstate = RFwor; - else - RF.nextstate = RFidle; - break; - case RFsendwor: - break; - } - } - if(oldstate != RF.state) { - VICSoftInt = INT_EINT0; - } - } - VICIntEnable = INT_EINT0; -} - -void RF_timed_rx(unsigned short timeout) { - if (RF.timeout_cb != 0xff) - setCBIntervall(RF.timeout_cb,timeout); - else { - RF.timeout_cb = addTimerCB(RF_timed_rx_timeout, timeout); - startCB(RF.timeout_cb); - RF_changestate(RFrx); - } -} - -void startRFIRQ(void) { - - PINSEL1 |= 1; //GDO0 as EINT0 - EXTMODE |= 1; //edge sensitive - EXTPOLAR |= 0; //falling edge - EXTWAKE |= 1; - EXTINT |= 1; - - VICVectAddr2 = (unsigned long)&(cc1100IRQ); - VICVectCntl2 = VIC_SLOT_EN | INT_SRC_EINT0; - VICIntEnable = INT_EINT0; -} - -inline void stopRFIRQ(void) { - VICIntEnClr = INT_EINT0; -} - - -struct RFendpoint_* openEP(void* buffer, unsigned short buffersize, unsigned char type) { - - int i; - struct RFendpoint_* cur_ep; - - if(!type) - return 0; - - for(i=0; itype)) { - cur_ep->buffer = buffer; - cur_ep->buffersize = buffersize; - cur_ep->type = type; - cur_ep->bufferlen = 0; - cur_ep->dest = 0; - cur_ep->flags = 0; - if(!(buffer)) - cur_ep->flags |= EPtypedata; - return cur_ep; - } - } - return 0; - -} - -void closeEP(struct RFendpoint_ *cur_ep) { - if(cur_ep) { - cur_ep->flags = 0; - cur_ep->buffer = 0; - cur_ep->type = 0; - } -} - -void RF_setRegister(unsigned char reg, unsigned char data) { - - unsigned long VICInt; - - VICInt = VICIntEnable & INT_EINT0; - VICIntEnClr = INT_EINT0; - - cc1100_write1(reg,data); - - VICIntEnable |= VICInt; -} - -void load_RF_setting(void) { - struct RFsettings_ RFsettings; - - if(BFS_LoadFile(BFS_ID_RFsettings, sizeof(struct RFsettings_), (unsigned char*) &RFsettings) != sizeof(struct RFsettings_)) { - RFsettings = default_RFsettings; - BFS_SaveFile(BFS_ID_RFsettings, sizeof(struct RFsettings_), (unsigned char*) &RFsettings); - draw_string(0, 50, "default RF load", 3, DRAW_PUT); - } - - RF_setRegister(0x09, RFsettings.address); - RF_setRegister(0x0a, RFsettings.channel); - RF.addr = RFsettings.address; -} - - -void RFasyncmode(unsigned char on) { - - if(on) { - RF_changestate(RFidle); - while(RF.state != RFidle); - stopRFIRQ(); - cc1100_write((0x00 | BURST ),(unsigned char*)confasync,0x2f); - cc1100_write1(PATABLE,0xf0); - PINSEL1 &= 0xfffffffc; // GDO0 as GPIO - FIODIR0 |= GDO0; // output - } - else { - PINSEL1 |= 1; // GDO0 as EINT0 - cc1100_write((0x00 | BURST ),(unsigned char*)conf,0x2f); - cc1100_write1(PATABLE,0xC0); - cc1100_strobe(SIDLE); - load_RF_setting(); - startRFIRQ(); - RF_changestate(RFwor); - } -} diff --git a/boop/trunk/cc1100/rf.h b/boop/trunk/cc1100/rf.h deleted file mode 100644 index 31ff0c6..0000000 --- a/boop/trunk/cc1100/rf.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - rf.h - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef RF_H -#define RF_H - -#define WORrx_time 200 - -#define packet_test 0x01 -#define packet_ping 0x02 -#define packet_time 0x03 -#define packet_RFenc 0x04 -#define packet_redirDAT 0x05 -#define packet_redirCMD 0x06 - -#define MAX_ENDPOINTS 0x0F - -struct cc1100frame_ { - unsigned char len; - unsigned char destAddr; - unsigned char srcAddr; - unsigned char packetType; - unsigned char data[]; -}; - -struct RFendpoint_ { - union { - unsigned char* buffer; - struct cBuffer_* cbuffer; - unsigned char data[4]; - }; - unsigned short buffersize; - unsigned short bufferlen; - volatile unsigned short flags; - unsigned char dest; - unsigned char type; -}; -//RFendpoints_.flags -#define EPenabled (1<<0) -#define EPoutput (1<<1) -#define EPinput 0 -#define EPtypedata (1<<2) -#define EPtypebuffer 0 -#define EPtypecbuffer (1<<3) -#define EPtypemask (1<<2 | 1<<3) -#define EPnewdata (1<<4) -#define EPoverwritten (1<<5) -#define EPoverflow (1<<6) -#define EPonce (1<<7) -#define EPsendwor (1<<8) - - -struct RFsettings_ { - unsigned char address; - unsigned char channel; -}__attribute__((aligned(0x4))); - -const struct RFsettings_ default_RFsettings; - -struct RF_ { - unsigned char addr; - volatile unsigned char flags; - volatile unsigned char state; - volatile unsigned char timeout_cb; - volatile unsigned char wortimeout_cb; - volatile unsigned char nextstate; - volatile unsigned char tag; -}__attribute__((aligned(0x4))); -struct RF_ RF; - -//RF_.state -#define RFpwrdown 0x00 -#define RFwor 0x01 -#define RFidle 0x02 -#define RFrx 0x03 -#define RFtx 0x04 -#define RFsendwor 0x05 -#define RFsendworend 0x06 - -//RF.flags -#define PingACK (1<<0) -#define WORenabled (1<<1) -#define RXueop (1<<2) //MCSM2 RX_TIME: Until end of packet - -void startRFIRQ(void); -void RF_init (void); -void RF_timed_rx(unsigned short timeout); -void RF_changestate (unsigned char state); -unsigned char RF_sendping(unsigned char dest); -struct RFendpoint_* openEP(void* buffer, unsigned short buffersize, unsigned char type); -void closeEP(struct RFendpoint_ *cur_ep); -void RF_setRegister(unsigned char reg, unsigned char data); -void load_RF_setting(void); -void RFasyncmode(unsigned char on); -#endif diff --git a/boop/trunk/cc1100/scan.c b/boop/trunk/cc1100/scan.c deleted file mode 100644 index 3ad2d71..0000000 --- a/boop/trunk/cc1100/scan.c +++ /dev/null @@ -1,151 +0,0 @@ -//~ DN508 - Frequency Scanning using CC430Fx, CC110x, and CC111xFx - -void scanFreqBands_autocal(void) { - UINT8 subBand; - UINT8 i; - UINT16 channel; - // 1) Loop through all sub bands - for (subBand = 0; subBand < NUMBER_OF_SUB_BANDS; subBand++) - { - // 1.1) Set the base freq. for the current sub band. The values for FREQ2, FREQ1, and FREQ0 can be found in - // freqSettings[subBand][n], where n = 0, 1, or 2 - // 1.2) Set TEST0 register = 0x0B - // 1.3) Loop through all channels - for (channel = 0; channel <= lastChannel[subBand]; channel++ ) - { - UINT8 pktStatus; - // 1.3.1) Set CHANNR register = channel - // 1.3.2) Change TEST0 register settings to 0x09 if freq is above 861 MHz - if (channel == limitTest0Reg[subBand]) - { - // 1.3.2.1) Set TEST0 register = 0x09 - } - // 1.3.3) Enter RX mode by issuing an SRX strobe command - // 1.3.4) Wait for radio to enter RX state (can be done by polling the MARCSTATE register) - // 1.3.5) Wait for RSSI to be valid (See DN505 [7] on how long to wait) - // 1.3.6) Read the PKTSTATUS register while the radio is in RX state (store it in pktStatus) - // 1.3.7) Enter IDLE state by issuing an SIDLE strobe command - // 1.3.8) Check if CS is asserted (use the value obtained in 1.3.6) - if (pktStatus & 0x40) - { - // CS is asserted - // 1.3.8.1) Read RSSI value and store it in rssi_dec - // 1.3.8.2) Calculate RSSI in dBm (rssi_dBm)(offset value found in rssi_offset[subBand]) - // 1.3.8.3) Store the RSSI value and the corresponding channel number - rssiTable[carrierSenseCounter] = rssi_dBm; - channelNumber[carrierSenseCounter] = channel; - carrierSenseCounter++; - } - } // End Channel Loop - // 1.4) Before moving on to the next sub band, scan through the rssiTable to find the highest RSSI value. Store - // the RSSI value in highRSSI[subBand] and the corresponding channel number in selectedChannel[subBand] - for (i = 0; i < carrierSenseCounter; i++) - { - if (rssiTable[i] > highRSSI[subBand]) - { - highRSSI[subBand] = rssiTable[i]; - selectedChannel[subBand] = channelNumber[i]; - } - } - // 1.5) Reset carrierSenseCounter - carrierSenseCounter = 0; - } // End Band Loop - // 2) When all sub bands have been scanned, find which sub band has the highest RSSI (Scan the highRSSI[subBand] - // table). Store the subBand (0, 1, or 2) and the corresponding channel in the global variables activeBand and - // activeChannel respectively - //~ { - INT16 tempRssi = -150; - for (subBand = 0; subBand < NUMBER_OF_SUB_BANDS; subBand++) - { - if (highRSSI[subBand] >= tempRssi) - { - tempRssi = highRSSI[subBand]; - activeChannel = selectedChannel[subBand]; - activeBand = subBand; - } - } -} - - -void scanFreqBands_noautocal(void) { - UINT8 subBand; - UINT8 i; - UINT16 channel; - // 1) Loop through all sub bands - for (subBand = 0; subBand < NUMBER_OF_SUB_BANDS; subBand++) - { - // 1.1) Set the base freq. for the current sub band. The values for FREQ2, FREQ1, and FREQ0 can be found in - // freqSettings[subBand][n], where n = 0, 1, or 2 - // 1.2) Set TEST0 register = 0x0B - // 1.3) Reset Calibration Counter (calibration performed when counter is 0) - calCounter = 0; - // 1.4) Loop through all channels - for (channel = 0; channel <= lastChannel[subBand]; channel++ ) - { - UINT8 pktStatus; - // 1.4.1) Set CHANNR register = channel - // 1.4.2) Change TEST0 register settings to 0x09 if freq is above 861 MHz. When TEST0 is changed to 0x09, it - // is important that FSCAL2 is set to 0x2A and that a new calibration is performed - if (channel == limitTest0Reg[subBand]) - { - // 1.4.2.1) Set TEST0 register = 0x09 - // 1.4.2.2) Set FSCAL2 register = 0x2A - // 1.4.2.3) Calibration is needed when TEST0 is changed - calCounter = 0; - } - // 1.4.3) Calibrate for every 5th ch. + at start of every sub band and every time the TEST0 reg. is changed - if (calCounter++ == 0) - { - // 1.4.3.1) Perform a manual calibration by issuing an SCAL strobe command - } - // 1.4.4)) Reset Calibration Counter (if calCounter = 5, we are 1 MHz away from the frequency where a - // calibration was performed) - if (calCounter == 5) - { - // 1.4.4.1) Calibration is performed if calCounter = 0 - calCounter = 0; - } - // 1.4.5) Enter RX mode by issuing an SRX strobe command - // 1.4.6) Wait for radio to enter RX state (can be done by polling the MARCSTATE register) - // 1.4.7) Wait for RSSI to be valid (See DN505 [7] on how long to wait) - // 1.4.8) Read the PKTSTATUS register while the radio is in RX state (store it in pktStatus) - // 1.4.9) Enter IDLE state by issuing an SIDLE strobe command - // 1.4.10) Check if CS is asserted (use the value obtained in 1.4.8) - if (pktStatus & 0x40) - { // CS is asserted - // 1.4.10.1) Read RSSI value and store it in rssi_dec - // 1.4.10.2) Calculate RSSI in dBm (rssi_dBm)(offset value found in rssi_offset[subBand]) - // 1.4.10.3) Store the RSSI value and the corresponding channel number - rssiTable[carrierSenseCounter] = rssi_dBm; - channelNumber[carrierSenseCounter] = channel; - carrierSenseCounter++; - } - } // End Channel Loop - // 1.5) Before moving on to the next sub band, scan through the rssiTable to find the highest RSSI value. Store - // the RSSI value in highRSSI[subBand] and the corresponding channel number in selectedChannel[subBand] - for (i = 0; i < carrierSenseCounter; i++) - { - if (rssiTable[i] > highRSSI[subBand]) - { - highRSSI[subBand] = rssiTable[i]; - selectedChannel[subBand] = channelNumber[i]; - } - } - // 1.6) Reset carrierSenseCounter - carrierSenseCounter = 0; - } // End Band Loop - // 2) When all sub bands have been scanned, find which sub band has the highest RSSI (Scan the highRSSI[subBand] - // table). Store the subBand (0, 1, or 2) and the corresponding channel in the global variables activeBand and - // activeChannel respectively - //~ { - INT16 tempRssi = -150; - for (subBand = 0; subBand < NUMBER_OF_SUB_BANDS; subBand++) - { - if (highRSSI[subBand] >= tempRssi) - { - tempRssi = highRSSI[subBand]; - activeChannel = selectedChannel[subBand]; - activeBand = subBand; - } - } -} diff --git a/boop/trunk/cc1100/scan.h b/boop/trunk/cc1100/scan.h deleted file mode 100644 index f3f30f8..0000000 --- a/boop/trunk/cc1100/scan.h +++ /dev/null @@ -1,39 +0,0 @@ -//~ DN508 - Frequency Scanning using CC430Fx, CC110x, and CC111xFx - - -#define NUMBER_OF_SUB_BANDS 3 - -// Variables used to calculate RSSI -UINT8 rssi_dec; -INT16 rssi_dBm; -UINT8 rssi_offset[NUMBER_OF_SUB_BANDS] = {77, 77, 77}; -// Freq. Band Range Channel -// 0 779.009766 - 829.997314 0 - 255 All 0x0B -// 1 830.196869 - 881.184418 0 - 255 <- 154 = 0x0B, 155 -> = 0x09 -// 2 881.384369 - 927.972992 0 - 233 All 0x09 -INT16 rssiTable[256]; -UINT16 channelNumber[256]; -UINT8 carrierSenseCounter = 0; // Counter used to keep track on how many time CS has been asserted in one sub band - //(i.e. how many RSSI values are stored for each band) - -// Stop Channel in each of the sub bands -UINT8 lastChannel[NUMBER_OF_SUB_BANDS] = { 255, 255, 233}; - -// Channel number for each of the sub bands where one should change from TEST0 = 0x0B to TEST0 = 0x09 -UINT16 limitTest0Reg[NUMBER_OF_SUB_BANDS] = { 256, 155, 0 }; - -// Initialized to a value lower than the RSSI threshold -INT16 highRSSI[NUMBER_OF_SUB_BANDS] = { -150, -150, -150}; - -// Initialized to a value greater than the highest channel number -UINT16 selectedChannel[NUMBER_OF_SUB_BANDS] = { 300, 300, 300}; - // {FREQ2, FREQ1, FREQ0} -UINT8 freqSettings[NUMBER_OF_SUB_BANDS][3] = { {0x1D, 0xF6, 0x40}, - {0x1F, 0xEE, 0x3F}, - {0x21, 0xE6, 0x3F}}; - -UINT8 activeBand; // After the scanFreqBands() function has run, this variable will contain the sub band where - // the strongest signal was found -UINT16 activeChannel; // After the scanFreqBands() function has run, this variable will contain the channel number - // where the strongest signal was found -UINT8 calCounter = 0; // This variable is only used when running the code shown in Figure 3 diff --git a/boop/trunk/crt.s b/boop/trunk/crt.s deleted file mode 100644 index 27636b6..0000000 --- a/boop/trunk/crt.s +++ /dev/null @@ -1,268 +0,0 @@ -/* - crt.s - startup code - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ -.global main - -.global _etext -.global _data -.global _edata -.global __bss_start -.global __bss_end__ -.global _stack - -/* Stack Sizes */ -.set UND_STACK_SIZE, 0x00000004 /* stack for "undefined instruction" interrupts is 4 bytes */ -.set ABT_STACK_SIZE, 0x00000004 /* stack for "abort" interrupts is 4 bytes */ -.set FIQ_STACK_SIZE, 0x00000104 /* stack for "FIQ" interrupts is 4 bytes */ -.set IRQ_STACK_SIZE, 0X000003F0 /* stack for "IRQ" normal interrupts is 4 bytes */ -.set SVC_STACK_SIZE, 0x00000004 /* stack for "SVC" supervisor mode is 4 bytes */ - -/* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */ -.set MODE_USR, 0x10 /* Normal User Mode */ -.set MODE_FIQ, 0x11 /* FIQ Processing Fast Interrupts Mode */ -.set MODE_IRQ, 0x12 /* IRQ Processing Standard Interrupts Mode */ -.set MODE_SVC, 0x13 /* Supervisor Processing Software Interrupts Mode */ -.set MODE_ABT, 0x17 /* Abort Processing memory Faults Mode */ -.set MODE_UND, 0x1B /* Undefined Processing Undefined Instructions Mode */ -.set MODE_SYS, 0x1F /* System Running Priviledged Operating System Tasks Mode */ -.set I_BIT, 0x80 /* when I bit is set, IRQ is disabled (program status registers) */ -.set F_BIT, 0x40 /* when F bit is set, FIQ is disabled (program status registers) */ - - -.text -.arm - -.global Reset_Handler -.global _startup - -.section .text.fastcode - -.global ramvectors -.func ramvectors -ramvectors: - ldr PC, Ram_Reset_Addr - ldr PC, Ram_Undef_Addr - ldr PC, Ram_SWI_Addr - ldr PC, Ram_PAbt_Addr - ldr PC, Ram_DAbt_Addr - nop /* Reserved Vector (holds Philips ISP checksum) */ - ldr PC, do_vic_addr /* Route IRQ to VIC */ - ldr PC, Ram_FIQ_Addr - -Ram_Reset_Addr: .word Reset_Handler /* defined in this module below */ -Ram_Undef_Addr: .word UNDEF_Routine /* defined in main.c */ -Ram_SWI_Addr: .word SWI_Routine /* defined in main.c */ -Ram_PAbt_Addr: .word UNDEF_Routine /* defined in main.c */ -Ram_DAbt_Addr: .word UNDEF_Routine /* defined in main.c */ -do_vic_addr: .word do_vic -Ram_FIQ_Addr: .word do_fiq /* defined in main.c */ - .word 0 /* rounds vectors to 64 bytes total */ -.endfunc - -.global do_vic -.func do_vic -do_vic: - - stmfd sp!, { r0-r5, r12, lr } /* save work regs & spsr on stack */ - ldr r4, =VICVectAddr /* get the ISR address from VIC */ - ldr r5, [r4] - mov lr, pc /* set return to common exit of ISR */ - bx r5 /* go handle the interrupt */ -/* mov pc, r5 /* go handle the interrupt */ - str lr, [r4] /* update VICVectAddr */ - ldmfd sp!, { r0-r5, r12, lr } /* restore work regs and spsr_irq */ - subs pc, lr, #0x4 /* return, restoring CPSR from SPSR */ -/* -stmfd sp!, { lr } -mrs lr, spsr -stmfd sp!, { r4-r5, lr } - -ldr r4, =VICVectAddr -ldr r5, [r4] - -msr cpsr_c, #0x13 - -stmfd sp!, { r0-r3, r12, lr } -mov lr, pc -bx r5 -ldmfd sp!, { r0-r3, r12, lr } - -msr cpsr_c, #0x92 - -str lr, [r4] - -ldmfd sp!, { r4-r5, lr } -msr spsr_cxsf, lr -ldmfd sp!, { lr } - -subs pc, lr, #0x4 -*/ - -.endfunc - -.global do_fiq -.func do_fiq -do_fiq: - - stmfd sp!, { r0-r7, lr } - ldr r8, =FIQ_Routine - mov lr, pc - bx r8 - ldmfd sp!, { r0-r7, lr } - subs pc, lr, #0x4 -.endfunc - - -.section .text - -.func _startup -_startup: - -# Exception Vectors - -_vectors: - ldr PC, Reset_Addr - -Reset_Addr: .word Reset_Handler - -# Reset Handler - -Reset_Handler: - -/* Setup a stack for each mode - note that this only sets up a usable stack - for User mode. Also each mode is setup with interrupts initially disabled. */ - - ldr r0, =_stack_end - msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ - mov sp, r0 - - sub r0, r0, #UND_STACK_SIZE - msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ - mov sp, r0 - - sub r0, r0, #ABT_STACK_SIZE - msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ - mov sp, r0 - - sub r0, r0, #FIQ_STACK_SIZE - msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ - mov sp, r0 - - sub r0, r0, #IRQ_STACK_SIZE - msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ - mov sp, r0 - - sub r0, r0, #SVC_STACK_SIZE - msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ - mov sp, r0 - -/* Setup Pins and Memory */ - ldr r0,=BCFG0 - /* W B R */ - /* P S B */ - /* B W E E L */ - /* AT|MW|M|P|R|R|reserved|WST2 |E|WST1 |r|IDCY */ - /* --+--+-+-+-+-+--------+-----+-------+-+---- */ - /* 3 | 2| | | |2| 2 1| 1 | | 0 |0| 0 */ - /* 1 | 8| | | |4| 0 6| 2 | | 8 |4| 0 */ - /* --+--+-+-+-+-+--------+-----+-------+-+---- */ -/* ldr r1, =0x10000400 /* 00|01|0|0|0|0|00000000|00000|1|00000|0|0000 16bit, rble, 3wst - 10 mhz*/ -/* ldr r1, =0x10000420 /* 00|01|0|0|0|0|00000000|00000|1|00001|0|0000 16bit, rble, 4wst - 30 mhz*/ - ldr r1, =0x100004A0 /* 00|01|0|0|0|0|00000000|00000|1|00101|0|0000 16bit, rble, 6wst - 60 mhz*/ - - str r1,[r0] /* set bcfg0 (flash) */ - str r1,[r0,#0x08] /* set bcfg2 (flash) */ - - ldr r0, =BCFG1 -/* ldr r1, =0x00000422 /* 00|00|0|0|0|0|00000000|00000|1|00001|0|0010 8 bit, 3 sram wst, rble, 5 wst 3 idcy*/ - ldr r1, =0x00000C42 /* 00|00|0|0|0|0|00000000|00001|1|00010|0|0010 8 bit, 3 sram wst, rble, 5 wst 3 idcy*/ - str r1, [r0] /* set bcfg1 (lcd) */ - - ldr r0, =PINSEL0 - ldr r1, =0x00008005 - str r1, [r0] - - ldr r0, =PINSEL1 - ldr r1, =0x00000000 /* gpio 0.30 */ - str r1, [r0] - - ldr r0, =PINSEL2 - ldr r1, =0x0de049d4 - str r1, [r0] - - ldr r0, = IO2SET - ldr r1, =0x1FC0000 - str r1, [r0] - str r1, [r0,#0x04] - - ldr r0, = IO0DIR - ldr r1, =0x002018D0 - str r1, [r0] - -/* Setup PLL */ - ldr r0, =0xe01fc000 - ldr r2, =0xaa - ldr r3, =0x55 - ldr r1, =0x03 - str r1, [r0,#0x80] /* set pllcon to 0x03 = pll enable (0x01) + pll connect (0x02) */ - ldr r1, =0x0 - str r1, [r0,#0x100] /* set vbpdiv to 0x00 = 1/4th; 0x01 = 1/1, 0x02 = 1/2*/ -/* ldr r1, =0x42 */ - ldr r1, =0x45 - str r1,[r0,#0x84] /* set pllcfg to 0x42 = psel = 10 (4) = msel= 00010 (3) = 240 mhz Fcco*/ - str r2, [r0,#0x8c] - str r3, [r0,#0x8c] - -/* Copy .fastcode & .data section (Copy from ROM to RAM) */ - ldr R0, =__fastcode_load /*_etext*/ - ldr r3, entry_mask /* this and the next instruction are an workaround */ - and r0, r0, r3 /* for some ugly bug in winarm to force msb to 0x80 */ - ldr R1, =__fastcode_start /*_data*/ - ldr R2, =_edata -1: - cmp r1,r2 - ldmltia r0!,{r3} - stmltia r1!,{r3} - blt 1b - -/* Clear .bss section (Zero init) */ - mov R0, #0 - ldr R1, =_bss_start - ldr R2, =_bss_end -2: - cmp R1, R2 - strlo R0, [R1], #4 - blo 2b - - ldr r0, =MEMMAP - ldr r1, =0x02 /* irq vectors in ram */ - str r1, [r0] - - mov r0,#0 - mov r1,r0 - mov r2,r0 - mov fp,r0 - mov r7,r0 - ldr r10,=main - mov lr,pc - bx r10 - -.endfunc - -entry_mask: .word 0x8FFFFFFF /* defined in this module below */ - -.end diff --git a/boop/trunk/display/GrayScaler.exe b/boop/trunk/display/GrayScaler.exe deleted file mode 100644 index ac8260d482dcd28f56ddc51429e16a43cb7cbc94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380928 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%0Aq*=5<=e2og9-Q1(BOEGp3yh=1^O)4@8sbVMyU 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

BEEMV0KZ#UZMbs_kHE0+JY9NQJnd43l`|4s@%V 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 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "timerfuncs.h" -#include "backlight.h" - -// backlight PWM is done in soundirq -// backlight timing is done by timer functions - -extern volatile unsigned char bl_val; - -unsigned char bl_max; -unsigned int bl_cb; -unsigned char direction; - -unsigned char bl_speed; // n*5 ms between two steps of brightness -unsigned int bl_timeout; - -void autoBL(unsigned int cb) -{ - switch(direction) - { - case 0: - if(bl_val < bl_max) - { - bl_val++; - } - else - { - direction = 1; - setCBIntervall(bl_cb, bl_timeout); - } - break; - - case 1: - direction = 2; - setCBIntervall(bl_cb, bl_speed); - break; - - case 2: - if(bl_val > 0x00) - { - bl_val--; - } - else - { - direction = 0; - stopCB(bl_cb); - } - break; - } -} - - -// adds function autoBL to timer -// initialises parameters // TODO: vgl. load_setting (settingsmenu.c) -void initBacklight(void) -{ - direction = 1; - bl_speed = 2; - bl_timeout = 5000; - bl_max = 63; - bl_cb = addTimerCB(autoBL, bl_timeout); - startCB(bl_cb); -} - -// set new brightness and set up fading and timout -void setBacklight(unsigned char level) -{ - if(level == BL_AUTO) - { - stopCB(bl_cb); - direction = 0; - setCBIntervall(bl_cb, bl_speed); - startCB(bl_cb); - } - else if(level < BL_AUTO) - { - stopCB(bl_cb); - bl_val = level; - direction = 1; - setCBIntervall(bl_cb, bl_timeout); - startCB(bl_cb); - } -} - -void setBLSpeed(unsigned char s) -{ - if(s > 0) - bl_speed = s; -} - -void setBLTimeout(unsigned int t) -{ - if(t > 0) - bl_timeout = t; -} diff --git a/boop/trunk/display/backlight.h b/boop/trunk/display/backlight.h deleted file mode 100644 index 4b3574a..0000000 --- a/boop/trunk/display/backlight.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - backlight.h - lcd backlight control - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef BACKLIGHT_H -#define BACKLIGHT_H - -#define BL_OFF 0x00 -#define BL_AUTO 0x40 -#define BL_ON 0x80 - -void initBacklight(void); -void setBacklight(unsigned char level); - -#endif diff --git a/boop/trunk/display/boop_logo b/boop/trunk/display/boop_logo deleted file mode 100644 index aaa5389..0000000 --- a/boop/trunk/display/boop_logo +++ /dev/null @@ -1,2592 +0,0 @@ -#ifndef DEBUGMODE -const unsigned char b_w = 128; -const unsigned char b_h = 160; -const char b_data[] = { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x80, - 0x80, 0x80, - 0xc0, 0x80, - 0xc0, 0xc0, - 0xc0, 0xc0, - 0xc0, 0xe0, - 0xc0, 0xe0, - 0xe8, 0xd0, - 0xf8, 0xf8, - 0xf8, 0xf8, - 0xf0, 0xf8, - 0xe0, 0xc0, - 0xe0, 0xc0, - 0xc0, 0xe0, - 0xc0, 0xc0, - 0xc0, 0xc0, - 0xc0, 0x80, - 0x80, 0xc0, - 0x80, 0xc0, - 0xe0, 0xf0, - 0xe0, 0xc0, - 0xc0, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 1 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xc0, - 0xe0, 0xc0, - 0xe0, 0xf0, - 0xf0, 0xa0, - 0xc0, 0xc0, - 0xe0, 0xc0, - 0xe0, 0xe0, - 0xe0, 0xf0, - 0xf0, 0xe0, - 0xf0, 0xf0, - 0xf0, 0xf0, - 0xf0, 0xf0, - 0xf0, 0xe0, - 0x20, 0xc0, - 0xf0, 0x08, - 0xfc, 0xf8, - 0xfe, 0xfc, - 0xff, 0xfe, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0x7f, - 0x7f, 0xff, - 0x7f, 0xbf, - 0x7f, 0xbf, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x7f, 0xff, - 0x7f, 0xff, - 0xff, 0x7f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xf8, 0xfd, - 0xe0, 0x90, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 2 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xc0, 0x20, - 0xf8, 0xf4, - 0xfe, 0xfc, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xbf, - 0xdf, 0xbf, - 0xdf, 0x2f, - 0x1f, 0xef, - 0x1f, 0xef, - 0x1f, 0xef, - 0x1f, 0xec, - 0x1f, 0xe0, - 0x0f, 0xf7, - 0x07, 0xfb, - 0x03, 0xfd, - 0x01, 0xff, - 0x01, 0xfe, - 0x00, 0xff, - 0x00, 0xff, - 0x83, 0x7c, - 0xe3, 0xde, - 0x77, 0xab, - 0x1b, 0xe7, - 0x0b, 0xf4, - 0x0c, 0xf3, - 0x08, 0xf7, - 0x0c, 0xf3, - 0x1d, 0xee, - 0x1f, 0xef, - 0xef, 0x17, - 0xe7, 0xdf, - 0xcf, 0xbf, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x3e, 0x5c, - 0x1e, 0x1d, - 0x0f, 0x0e, - 0x00, 0x06, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 3 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x07, 0x0a, - 0x0e, 0x0f, - 0x1e, 0x0f, - 0x7f, 0xbf, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x7f, 0xbf, - 0x7f, 0xb3, - 0x3d, 0xda, - 0x01, 0xfe, - 0x01, 0xff, - 0xc1, 0x3f, - 0x71, 0x8e, - 0x30, 0xcf, - 0x18, 0xe7, - 0x18, 0xf7, - 0x18, 0xf7, - 0x18, 0xef, - 0x08, 0xf7, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x06, 0xfb, - 0x07, 0xfb, - 0xc1, 0x3e, - 0xf0, 0x0f, - 0x78, 0x87, - 0xf8, 0x67, - 0x78, 0xe7, - 0xf8, 0xe7, - 0xf8, 0xe7, - 0xf0, 0xef, - 0xf8, 0x47, - 0x63, 0x9c, - 0xf7, 0xeb, - 0xff, 0xe3, - 0xf3, 0xef, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xef, 0xf7, - 0xe1, 0xf2, - 0x70, 0xb0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 4 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x88, - 0x99, 0x73, - 0xff, 0x3b, - 0xff, 0x3f, - 0xfe, 0x7d, - 0xff, 0x7e, - 0x6e, 0x97, - 0x40, 0xff, - 0xe1, 0x7e, - 0xe1, 0x9e, - 0xf8, 0xe7, - 0xfe, 0xb9, - 0x9e, 0x8d, - 0x8e, 0xd9, - 0xff, 0x0c, - 0x7c, 0xfb, - 0x7c, 0xfb, - 0xfc, 0x7b, - 0x60, 0xdf, - 0xc0, 0xff, - 0xe0, 0x7f, - 0xf0, 0x2f, - 0xb0, 0x7f, - 0x30, 0xff, - 0x78, 0xff, - 0xff, 0x4c, - 0xce, 0xf5, - 0xce, 0xf4, - 0xcf, 0xf2, - 0xcb, 0x77, - 0xeb, 0x57, - 0x67, 0xeb, - 0xf7, 0xab, - 0xff, 0x1e, - 0xdf, 0x6e, - 0xcf, 0x73, - 0xe3, 0xdd, - 0x9f, 0x21, - 0x1f, 0x81, - 0x15, 0x0b, - 0x17, 0x09, - 0x09, 0x16, - 0x07, 0x08, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x18, 0x08, - 0xf8, 0x78, - 0x98, 0xf8, - 0x38, 0x10, - 0x30, 0x18, - 0x30, 0x30, - 0x30, 0x30, - 0x30, 0x30, - 0x30, 0x70, - 0x70, 0x20, - 0x60, 0x30, - 0x60, 0x60, - 0x60, 0x60, - 0x60, 0x60, - 0xf8, 0xe4, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 5 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xe0, 0x10, - 0xf8, 0x14, - 0x0e, 0xf0, - 0x03, 0xfc, - 0xff, 0x00, - 0xff, 0x02, - 0x87, 0x7b, - 0x83, 0xff, - 0xcf, 0x3f, - 0x6f, 0x1f, - 0x6f, 0xbf, - 0xbf, 0x46, - 0xff, 0x1f, - 0x7f, 0x3f, - 0x3f, 0xdf, - 0xf9, 0xde, - 0x7b, 0xd8, - 0x7b, 0xc0, - 0xf9, 0xce, - 0xed, 0xf8, - 0xec, 0xf7, - 0xf6, 0x8b, - 0x93, 0xef, - 0x98, 0xe7, - 0x8e, 0xf1, - 0x8e, 0xff, - 0xcf, 0xbe, - 0xce, 0xb7, - 0xe6, 0xd9, - 0xf6, 0xe9, - 0xfe, 0xb1, - 0x3e, 0xdf, - 0x1e, 0xef, - 0x07, 0xfa, - 0x03, 0xfd, - 0x01, 0xfe, - 0x00, 0xff, - 0x80, 0x7f, - 0x80, 0x7c, - 0x80, 0x7d, - 0x01, 0xfe, - 0x03, 0xf5, - 0x02, 0xef, - 0x06, 0xe8, - 0x0c, 0xd0, - 0x18, 0xe0, - 0x30, 0xc0, - 0x60, 0xa0, - 0xc0, 0x60, - 0x80, 0xc0, - 0x00, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x01, - 0x01, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x40, 0x00, - 0xe0, 0xc0, - 0xc3, 0xc1, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 6 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf0, 0xcc, - 0x7f, 0x88, - 0x01, 0xfe, - 0x00, 0xff, - 0x00, 0xff, - 0xff, 0x02, - 0x01, 0x83, - 0x01, 0x00, - 0x00, 0x01, - 0x00, 0x00, - 0x80, 0x40, - 0xc0, 0x20, - 0x30, 0x48, - 0x1c, 0xa0, - 0x66, 0x91, - 0xfb, 0xf4, - 0x8d, 0x58, - 0x0e, 0x0d, - 0x0f, 0x06, - 0x0f, 0x07, - 0x0f, 0x07, - 0x8f, 0x07, - 0x0f, 0x87, - 0x0f, 0x07, - 0x0f, 0x07, - 0x0f, 0x07, - 0x1f, 0x2f, - 0xff, 0x7f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xfe, - 0xfe, 0xff, - 0xfc, 0xff, - 0xfc, 0xfb, - 0xf8, 0xf7, - 0xf0, 0xff, - 0x7d, 0x32, - 0x1f, 0x04, - 0x03, 0x05, - 0x03, 0x04, - 0x06, 0x01, - 0x0c, 0x03, - 0x1c, 0x0b, - 0x30, 0x1f, - 0xf0, 0x2f, - 0xe0, 0xdf, - 0x60, 0x9f, - 0x60, 0x1f, - 0x01, 0xfe, - 0x03, 0xfd, - 0x06, 0xfb, - 0x0c, 0xf6, - 0xb8, 0x5c, - 0xe0, 0x50, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf8, 0xf0, - 0x98, 0x1c, - 0x0c, 0x1c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x1c, 0x0c, - 0x1c, 0x3c, - 0xec, 0xd8, - 0x18, 0x1c, - 0x18, 0x18, - 0x30, 0x18, - 0x30, 0x20, - 0x60, 0xc0, - 0x80, 0xc0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 7 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xfc, 0x03, - 0xff, 0x01, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xfe, - 0x03, 0xfc, - 0xff, 0x0c, - 0xfc, 0x08, - 0x06, 0xfc, - 0x03, 0xfc, - 0x01, 0xfe, - 0x80, 0x7e, - 0xc0, 0x7f, - 0x60, 0x3f, - 0x18, 0x37, - 0x0d, 0x12, - 0xc7, 0x23, - 0xff, 0x7e, - 0x00, 0xf6, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0x80, - 0x01, 0x82, - 0x02, 0x81, - 0x02, 0x80, - 0x80, 0x02, - 0x80, 0x01, - 0x03, 0xc1, - 0x47, 0x87, - 0x07, 0x4f, - 0xef, 0x37, - 0x9f, 0x6f, - 0xff, 0x07, - 0x1f, 0x6f, - 0x07, 0x0f, - 0x03, 0x01, - 0x01, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x80, 0x00, - 0xc0, 0x20, - 0x60, 0xb0, - 0x18, 0xb0, - 0x0c, 0xf2, - 0x06, 0xf3, - 0x03, 0xf9, - 0x80, 0x79, - 0xc0, 0xbe, - 0x60, 0xdf, - 0x30, 0x6f, - 0x18, 0x37, - 0x0c, 0x1b, - 0x07, 0x06, - 0x03, 0x01, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0x03, - 0x03, 0x03, - 0x06, 0x03, - 0x06, 0x06, - 0x06, 0x06, - 0x06, 0x07, - 0x07, 0x03, - 0x03, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x88, 0x00, - 0xcc, 0x86, - 0x87, 0x87, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 8 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x01, - 0x07, 0x03, - 0x0e, 0x19, - 0x18, 0x07, - 0x30, 0x0f, - 0x20, 0x5f, - 0x60, 0x1f, - 0x30, 0x0f, - 0x18, 0x17, - 0x0c, 0x13, - 0x06, 0x01, - 0x03, 0x00, - 0x01, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x04, - 0x0f, 0x06, - 0xfc, 0xff, - 0x0c, 0xf6, - 0x0c, 0xf6, - 0x0c, 0xf6, - 0x0c, 0xfc, - 0x0c, 0xfc, - 0x0c, 0x7c, - 0x6c, 0xbc, - 0xfc, 0x28, - 0xfc, 0x18, - 0xf8, 0x0c, - 0x68, 0x98, - 0xe8, 0x13, - 0x0b, 0xf0, - 0x0f, 0xf8, - 0x0f, 0xfe, - 0x09, 0xf0, - 0x08, 0xf0, - 0x08, 0xf8, - 0x08, 0xf8, - 0x0c, 0xf8, - 0x84, 0xfe, - 0xc6, 0x3b, - 0x63, 0x3c, - 0x30, 0x0f, - 0x18, 0x07, - 0x0c, 0x03, - 0x06, 0x0d, - 0x06, 0x03, - 0x03, 0x01, - 0x01, 0x03, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf0, 0xf0, - 0x18, 0x98, - 0x0c, 0x18, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x1c, - 0x0c, 0x1c, - 0x1c, 0x08, - 0x18, 0x1c, - 0x18, 0x18, - 0x18, 0x30, - 0x30, 0x30, - 0x61, 0x31, - 0xc1, 0xe1, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 9 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf8, 0xe4, - 0xfe, 0xcd, - 0xff, 0xe8, - 0xf8, 0xd7, - 0xfb, 0xc4, - 0xfb, 0xc4, - 0xf8, 0x9f, - 0xf8, 0xcf, - 0xf8, 0xef, - 0xff, 0xe9, - 0xff, 0x58, - 0xfd, 0xfe, - 0xff, 0xf0, - 0xff, 0xb8, - 0xfd, 0x73, - 0xbe, 0x79, - 0xfc, 0x1f, - 0xfe, 0x1d, - 0xfe, 0x3f, - 0xfe, 0x7f, - 0xff, 0xfe, - 0xf9, 0x1e, - 0xf9, 0x12, - 0xf1, 0x60, - 0xc0, 0xe0, - 0x00, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x01, - 0x03, 0x01, - 0x03, 0x06, - 0x06, 0x06, - 0x06, 0x06, - 0x0e, 0x06, - 0x0e, 0x0c, - 0x0c, 0x0e, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x0c, 0x0c, - 0x06, 0x0c, - 0x03, 0x07, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 10 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0x07, - 0xff, 0x0f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xf7, - 0xff, 0x8f, - 0xff, 0x1f, - 0xff, 0x3f, - 0xff, 0x7e, - 0xff, 0x3c, - 0xff, 0x39, - 0xff, 0x21, - 0xff, 0xc9, - 0xff, 0xf2, - 0xff, 0x80, - 0xff, 0xa0, - 0xff, 0xc0, - 0xff, 0x80, - 0xf9, 0xc6, - 0xff, 0x78, - 0xff, 0x60, - 0xff, 0xee, - 0xff, 0xfc, - 0xff, 0xff, - 0xff, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf0, 0x60, - 0xf0, 0x30, - 0x30, 0x30, - 0x30, 0x30, - 0x30, 0x70, - 0x60, 0x70, - 0x60, 0x60, - 0xc0, 0x40, - 0x80, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 11 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0x00, - 0xe7, 0xdb, - 0xff, 0xff, - 0xff, 0xf7, - 0xff, 0xff, - 0xff, 0x2f, - 0xff, 0x3e, - 0xff, 0xfc, - 0xff, 0xf8, - 0xff, 0xf3, - 0xff, 0xf7, - 0xff, 0x3f, - 0xff, 0x1f, - 0xff, 0x1b, - 0xff, 0x3b, - 0xff, 0x3b, - 0xff, 0x3f, - 0xff, 0x7f, - 0xff, 0x04, - 0xf6, 0x0d, - 0xff, 0x03, - 0xff, 0x7f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xe0, - 0xc0, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x0c, 0x1c, - 0xbd, 0x8d, - 0x8e, 0x8e, - 0x8c, 0x9c, - 0x9c, 0x88, - 0x98, 0x98, - 0x18, 0x98, - 0x18, 0x18, - 0x19, 0x18, - 0x1f, 0x3e, - 0x30, 0x10, - 0x30, 0x30, - 0x30, 0x30, - 0x30, 0x30, - 0x30, 0x60, - 0x60, 0x30, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 12 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0xf2, - 0xff, 0xff, - 0xff, 0xfc, - 0xff, 0xf8, - 0xff, 0xc0, - 0xff, 0x00, - 0xff, 0x1f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xfe, - 0xff, 0xf8, - 0xff, 0x80, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x80, - 0xff, 0xe0, - 0xff, 0x80, - 0xff, 0x00, - 0xff, 0x3f, - 0xff, 0x78, - 0xff, 0xe1, - 0xff, 0x36, - 0xfc, 0xe2, - 0x80, 0x40, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x1f, 0x0f, - 0x33, 0x31, - 0x61, 0x61, - 0x61, 0xe1, - 0xc1, 0xe1, - 0xc1, 0xc1, - 0xc3, 0xc1, - 0xc3, 0xc3, - 0xe6, 0x62, - 0x7c, 0x78, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 13 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x0f, - 0x0f, 0x1f, - 0xff, 0xf0, - 0xff, 0xff, - 0xff, 0x1f, - 0xff, 0xe0, - 0xff, 0xe0, - 0xff, 0xe3, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xfc, - 0xff, 0xf8, - 0xff, 0xe0, - 0xff, 0x81, - 0xff, 0x03, - 0xff, 0xdb, - 0xff, 0xe0, - 0xfe, 0x01, - 0xff, 0x00, - 0xff, 0x3f, - 0xff, 0xfc, - 0xff, 0xe0, - 0xff, 0x07, - 0xfe, 0x38, - 0xf0, 0xe8, - 0xc0, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x7c, 0x3c, - 0xce, 0xc6, - 0x86, 0x86, - 0x86, 0x86, - 0x06, 0x86, - 0x06, 0x06, - 0x0c, 0x06, - 0x0c, 0x0c, - 0x98, 0x88, - 0xf0, 0xe0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 14 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xc7, 0x39, - 0xff, 0x7f, - 0xff, 0x78, - 0xff, 0x78, - 0xff, 0xc0, - 0xff, 0x81, - 0xff, 0x83, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0x7f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xe7, - 0xff, 0x9f, - 0xff, 0x7f, - 0xff, 0xfc, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x0b, - 0xff, 0x3d, - 0xff, 0xf8, - 0xff, 0xd8, - 0xff, 0x00, - 0xff, 0xff, - 0xff, 0xfe, - 0xf8, 0xfc, - 0xf0, 0xe0, - 0xc0, 0x80, - 0x00, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf0, 0xf0, - 0x38, 0x18, - 0x18, 0x18, - 0x18, 0x18, - 0x18, 0x18, - 0x30, 0x30, - 0x60, 0xf0, - 0xe1, 0xc1, - 0x71, 0x3b, - 0x1b, 0x3b, - 0x1b, 0x1b, - 0x1b, 0x1b, - 0x33, 0x3b, - 0x63, 0x71, - 0xc1, 0xc1, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 15 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xe0, 0x90, - 0xff, 0xff, - 0xdf, 0xe0, - 0xf1, 0x8e, - 0xf5, 0x8a, - 0xe1, 0x9e, - 0xeb, 0x94, - 0xfb, 0x04, - 0xff, 0x01, - 0xff, 0x03, - 0xff, 0x23, - 0xff, 0xb3, - 0xff, 0xa0, - 0xff, 0x80, - 0xff, 0x80, - 0xff, 0x81, - 0xff, 0xd0, - 0xff, 0xf3, - 0xff, 0xff, - 0xff, 0xfe, - 0xff, 0xf1, - 0xff, 0xc0, - 0xff, 0xc0, - 0xff, 0xc0, - 0xe7, 0x18, - 0xff, 0x03, - 0xff, 0x0f, - 0x7f, 0xbe, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xfb, - 0xff, 0xff, - 0xfe, 0xf6, - 0xfc, 0xfc, - 0xfc, 0xe8, - 0xf8, 0x90, - 0xf0, 0xb8, - 0xe0, 0x70, - 0xe0, 0x40, - 0xc0, 0x80, - 0x80, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x1f, 0x0f, - 0x06, 0x06, - 0x06, 0x06, - 0x06, 0x0e, - 0x0e, 0x04, - 0x0c, 0x06, - 0x0c, 0x0c, - 0x0f, 0x0f, - 0x0c, 0x0c, - 0x0c, 0x1c, - 0x1c, 0x08, - 0x18, 0x1c, - 0x18, 0x18, - 0x18, 0x18, - 0x3f, 0x3f, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 16 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xc0, 0x00, - 0xc0, 0xe0, - 0xe0, 0xc0, - 0xf0, 0x30, - 0xf8, 0x50, - 0xb8, 0x7c, - 0xfc, 0xf8, - 0xfc, 0xe8, - 0xfc, 0xcc, - 0xfc, 0x8c, - 0xfe, 0xf1, - 0xf3, 0xff, - 0xf3, 0xed, - 0xc3, 0xbd, - 0xcf, 0xf3, - 0xcf, 0xf3, - 0xc7, 0xff, - 0xcf, 0xf7, - 0xef, 0xdf, - 0xff, 0xf9, - 0xff, 0xff, - 0xff, 0x7f, - 0x3f, 0x1f, - 0x3f, 0x1f, - 0x1f, 0x3f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x0f, - 0x1f, 0x0f, - 0x1f, 0x0f, - 0x1f, 0x0f, - 0x7f, 0xbf, - 0xff, 0xff, - 0xf7, 0x89, - 0xfd, 0xe2, - 0xff, 0xf0, - 0xff, 0xf8, - 0xfe, 0x7d, - 0xff, 0x3e, - 0xff, 0x65, - 0xff, 0x7f, - 0x3f, 0xdf, - 0x7f, 0xbf, - 0xff, 0x3f, - 0xff, 0x7e, - 0xff, 0xfd, - 0xff, 0xfd, - 0xff, 0xff, - 0xff, 0xff, - 0x7f, 0x7e, - 0x3f, 0x3e, - 0x1f, 0x1d, - 0x0f, 0x07, - 0x02, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 17 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x07, 0x08, - 0x1f, 0x0d, - 0x1f, 0x3f, - 0x3f, 0x1f, - 0x3f, 0x1f, - 0x3f, 0x3f, - 0x3f, 0x3f, - 0x3f, 0x1f, - 0x3f, 0x1f, - 0x3f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x0f, - 0x0f, 0x1f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0d, - 0x0f, 0x07, - 0x03, 0x04, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x0f, 0x17, - 0xbf, 0x5f, - 0xff, 0x7f, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xfe, - 0x7f, 0xb0, - 0xff, 0x71, - 0xff, 0x6e, - 0xfc, 0x73, - 0xc0, 0x80, - 0x01, 0x80, - 0x01, 0x03, - 0x07, 0x02, - 0x07, 0x03, - 0x01, 0x03, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 18 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x80, - 0xe0, 0x80, - 0xf0, 0xf8, - 0xf8, 0x3c, - 0xfc, 0x7c, - 0xfc, 0x7c, - 0xfc, 0x7e, - 0xff, 0x7e, - 0xfd, 0xfa, - 0xfc, 0xfb, - 0xfc, 0xfb, - 0xf8, 0xff, - 0xf8, 0xf7, - 0xf8, 0xf7, - 0xf8, 0xff, - 0xfc, 0xfb, - 0xfc, 0xff, - 0xff, 0xff, - 0xff, 0x7f, - 0x7e, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 19 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x07, 0x08, - 0x1f, 0x1f, - 0x3f, 0x1f, - 0x3f, 0x3f, - 0x3f, 0x3f, - 0x3f, 0x3f, - 0x3f, 0x3e, - 0x3f, 0x3e, - 0x3f, 0x1e, - 0x1f, 0x1f, - 0x1f, 0x0f, - 0x0f, 0x0f, - 0x07, 0x0f, - 0x07, 0x03, - 0x03, 0x03, - 0x01, 0x03, - 0x01, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00 -}; -#else -const unsigned char b_w = 1; -const unsigned char b_h = 8; -const char b_data[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; -#endif diff --git a/boop/trunk/display/drawDigit.c b/boop/trunk/display/drawDigit.c deleted file mode 100644 index ff9f521..0000000 --- a/boop/trunk/display/drawDigit.c +++ /dev/null @@ -1,127 +0,0 @@ -/********************************************************************** -@file drawDigit.c - -@brief Draw a scalable 7-segment digit - ------------------------------------------------------------------------ -@author 2010 Roman Steiger - LeoTheLoewe [at] gmx [dot] de ------------------------------------------------------------------------ -Following compile flags are usable: - - ------------------------------------------------------------------------ - 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 3 of the License, 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, see . ------------------------------------------------------------------------ -@History - -1.00 10012010 RSt Creation - -@end -***********************************************************************/ -#include "global.h" -#include "lcd.h" -#include "drawDigit.h" - - -// |<- w ->| -// | | -// |d|1| w1|1|d| -// ___ ______ -// _ |_a_| _ _2_ ^ -// | | | | | -// d | | f h1 -// |_| ___ |_| ___ h -// _ |_b_| _ 1 -// | | | | -// e | | g | -// |_| ___ |_| v -// |_c_| _2____ -// - -#define DIGIT_SEG_A _BV (0) -#define DIGIT_SEG_B _BV (1) -#define DIGIT_SEG_C _BV (2) -#define DIGIT_SEG_D _BV (3) -#define DIGIT_SEG_E _BV (4) -#define DIGIT_SEG_F _BV (5) -#define DIGIT_SEG_G _BV (6) -#define DIGIT_SEG_H _BV (7) - -const unsigned char digitSegPattern [] = -{ -/* 0 */ DIGIT_SEG_A | DIGIT_SEG_C | DIGIT_SEG_D | DIGIT_SEG_E | DIGIT_SEG_F | DIGIT_SEG_G, -/* 1 */ DIGIT_SEG_F | DIGIT_SEG_G, -/* 2 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_E | DIGIT_SEG_F , -/* 3 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_F | DIGIT_SEG_G, -/* 4 */ DIGIT_SEG_B | DIGIT_SEG_D | DIGIT_SEG_F | DIGIT_SEG_G, -/* 5 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_D | DIGIT_SEG_G, -/* 6 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_D | DIGIT_SEG_E | DIGIT_SEG_G, -/* 7 */ DIGIT_SEG_A | DIGIT_SEG_F | DIGIT_SEG_G, -/* 8 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_D | DIGIT_SEG_E | DIGIT_SEG_F | DIGIT_SEG_G, -/* 9 */ DIGIT_SEG_A | DIGIT_SEG_B | DIGIT_SEG_C | DIGIT_SEG_D | DIGIT_SEG_F | DIGIT_SEG_G -}; -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void drawDigit (unsigned char x, unsigned char y, - unsigned char w, unsigned char h, - unsigned char digit, unsigned char d, unsigned char c, unsigned char m) -{ - char w1 = w - 2*d - 2; - char h1 = (h - 5) / 2; - unsigned char i, mode, pattern; - - pattern = 0; - if (digit <= 9) - pattern = digitSegPattern [digit]; - - w1 = max (w1, 3); - h1 = max (h1, 3); - if (!d) - d = DIGIT_BAR_WIDTH; - - for (i = 0; i < 3; i++) - { - mode = DRAW_ERASE; - if (pattern & _BV (i+0)) - mode = m; - draw_block (x + d+1, y + i*(h1+1), - w1, d, - c, mode); - } - for (i = 0; i < 2; i++) - { - mode = DRAW_ERASE; - if (pattern & _BV (i+3)) - mode = m; - draw_block (x, y + d-1 + i*(h1+1), - d, h1, - c, mode); - } - for (i = 0; i < 2; i++) - { - mode = DRAW_ERASE; - if (pattern & _BV (i+5)) - mode = m; - draw_block (x + d + 1 + w1 + 1, y + d-1 + i*(h1+1), - d, h1, - c, mode); - } -} // drawDigit -//----------------------------------------------------------------------------- - - diff --git a/boop/trunk/display/drawDigit.h b/boop/trunk/display/drawDigit.h deleted file mode 100644 index 5bd96e0..0000000 --- a/boop/trunk/display/drawDigit.h +++ /dev/null @@ -1,68 +0,0 @@ -/********************************************************************** -@file drawDigit.h - -@brief Draw a scalable 7-segment digit - ------------------------------------------------------------------------ -@author 2010 Roman Steiger - LeoTheLoewe [at] gmx [dot] de ------------------------------------------------------------------------ -Following compile flags are usable: - - ------------------------------------------------------------------------ - 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 3 of the License, 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, see . ------------------------------------------------------------------------ -@History - -1.00 10012010 RSt Creation - -@end -***********************************************************************/ -#ifndef __DRAW_DIGIT_H__ -#define __DRAW_DIGIT_H__ - -#include "global.h" -#include "lcd.h" - -#ifndef DIGIT_BAR_WIDTH -#define DIGIT_BAR_WIDTH 3 -#endif - -// |<- w ->| -// | | -// |d|1| w1|1|d| -// ___ ______ -// _ |_a_| _ _2_ ^ -// | | | | | -// d | | f h1 -// |_| ___ |_| ___ h -// _ |_b_| _ 1 -// | | | | -// e | | g | -// |_| ___ |_| v -// |_c_| _2____ -// - -//----------------------------------------------------------------------------- -void drawDigit (unsigned char x, unsigned char y, - unsigned char w, unsigned char h, - unsigned char digit, unsigned char d, unsigned char c, unsigned char m); -//----------------------------------------------------------------------------- - - -#endif // #ifndef __DRAW_DIGIT_H__ - - - diff --git a/boop/trunk/display/drawIcon.c b/boop/trunk/display/drawIcon.c deleted file mode 100644 index 4467bdb..0000000 --- a/boop/trunk/display/drawIcon.c +++ /dev/null @@ -1,363 +0,0 @@ -/********************************************************************** -@file drawIcon.c - -@brief Draw Black/White and Gray scale icons with or without - Alpha channel (Transparency) - ------------------------------------------------------------------------ -@author 2010 Roman Steiger - LeoTheLoewe [at] gmx [dot] de ------------------------------------------------------------------------ -Following compile flags are usable: - - ------------------------------------------------------------------------ - 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 3 of the License, 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, see . ------------------------------------------------------------------------ -@History - -1.00 20012010 RSt Creation - -@end -***********************************************************************/ -#include "global.h" -#include "lcd.h" -#include "icon.h" - - -//----------------------------------------------------------------------------- -// Internally used functions - -static void _drawGray (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char m); - -static void _drawBlackWhite (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char c, unsigned char m); -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void drawIcon (unsigned char x, unsigned char y, - const icon_t const *pIcon, unsigned char c, unsigned char m) -{ - if (!pIcon) - return; - - drawIconExt (x, y, pIcon->data, - pIcon->width, pIcon->height, pIcon->info, - c, m); -} // drawIcon -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void drawIconExt (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char c, unsigned char m) -{ - switch (iconInfo) - { - case ICON_BLACK_WHITE_TRANSPARENT: /// 2 bpp - case ICON_BLACK_WHITE: /// 1 bpp - _drawBlackWhite (x, y, pData, - width, height, iconInfo, - c, m); - break; - - case ICON_GRAY_TRANSPARENT: /// 3 bpp - case ICON_GRAY: /// 2 bpp - _drawGray (x, y, pData, - width, height, iconInfo, - m); - break; - - default: - if (x + width > LCD_SIZE_X) - width = LCD_SIZE_X - x; - - if (y + height > LCD_SIZE_Y) - height = LCD_SIZE_Y - y; - - draw_rect (x, y, - width, height, - 1, LCD_COLOR_B, DRAW_XOR); - - break; - } // switch (iconInfo) -} // drawIconExt -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -static void _drawGray (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char m) -{ - unsigned char alphaBuf [LCD_SIZE_X]; - unsigned short ix; - unsigned short iy; - unsigned char iconWidth = width; - unsigned char bpp; - unsigned char* alphaBuf_p; - - if(iconInfo==ICON_GRAY_TRANSPARENT) - { - alphaBuf_p = alphaBuf; - bpp=3; - } - else - { - alphaBuf_p = NULL; - bpp=2; - } - - - if (x + width > LCD_SIZE_X) - width = LCD_SIZE_X - x; - - if (y + height > LCD_SIZE_Y) - height = LCD_SIZE_Y - y; - - unsigned short idx = (width * bpp); // 3 byte per pixel - unsigned char s = y & 0x07; - is_drawing++; - if (s) - { - for (ix = 0; ix < width; ix++) - { - alphaBuf [ix] = 0; - drawbuf [1][ix] = 0; - drawbuf [0][ix] = 0; - } // for (ix = 0; ix < width; ix++) - - for (iy = 0; iy < height; iy += 8) - { - // Need to process two icon lines for one drawbuf line - if (iy) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+2] >> (8-s); - drawbuf [1][ix] = pData [idx+1] >> (8-s); - drawbuf [0][ix] = pData [idx] >> (8-s); - } // for (ix = 0; ix < width; ix++) - - // go back to end of this page - idx += (width * bpp); // 3bpp - // goto next page - idx += (iconWidth * bpp); // 3bpp - } - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] |= pData [idx+2] << s; - drawbuf [1][ix] |= pData [idx+1] << s; - drawbuf [0][ix] |= pData [idx] << s; - } - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - - // go back to end of this page - idx += (width * bpp); // 3bpp - } // for (iy = 0; iy < height; iy += 8) - - /* Pixel in the last page: height & 0x07 - (i.e. 13 hight => 5 pixel in last page) */ - if (((height & 0x07) == 0) || - ((height & 0x07) > (8 - s))) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+2] >> (8-s); - drawbuf [1][ix] = pData [idx+1] >> (8-s); - drawbuf [0][ix] = pData [idx] >> (8-s); - } // for (ix = 0; ix < width; ix++) - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - - } - } - else - { - for (iy = 0; iy < height; iy += 8) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+2]; - drawbuf [1][ix] = pData [idx+1]; - drawbuf [0][ix] = pData [idx]; - } - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - - // go back to end of this page - idx += (width * bpp); // 3bpp - // goto next page - idx += (iconWidth * bpp); // 3bpp - } // for (iy = 0; iy < height; iy += 8) - } // else if (s) - is_drawing--; -} // _drawGrayAlpha -//----------------------------------------------------------------------------- - - -//----------------------------------------------------------------------------- -static void _drawBlackWhite (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char c, unsigned char m) -{ - unsigned char alphaBuf [LCD_SIZE_X]; - unsigned short ix; - unsigned short iy; - unsigned char iconWidth = width; - unsigned char bpp; - unsigned char* alphaBuf_p; - - if(iconInfo==ICON_BLACK_WHITE_TRANSPARENT) - { - alphaBuf_p = alphaBuf; - bpp=2; - } - else - { - alphaBuf_p = NULL; - bpp=1; - } - - if (x + width > LCD_SIZE_X) - width = LCD_SIZE_X - x; - - if (y + height > LCD_SIZE_Y) - height = LCD_SIZE_Y - y; - - unsigned short idx = width * bpp; // 1 byte per pixel - unsigned char s = y & 0x07; - is_drawing++; - if (s) - { - for (ix = 0; ix < width; ix++) - { - alphaBuf [ix] = 0; - drawbuf [1][ix] = 0; - drawbuf [0][ix] = 0; - } // for (ix = 0; ix < width; ix++) - - for (iy = 0; iy < height; iy += 8) - { - // Need to process two icon lines for one drawbuf line - if (iy) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+1] >> (8-s); - if (c & 0x02) - drawbuf [0][ix] = pData [idx] >> (8-s); - else - drawbuf [0][ix] = 0; - - if (c & 0x01) - drawbuf [1][ix] = pData [idx] >> (8-s); - else - drawbuf [1][ix] = 0; - } // for (ix = 0; ix < width; ix++) - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - - // go back to end of this page - idx += width * bpp; // 1bpp - // goto next page - idx += iconWidth * bpp; // 1bpp - } - for (ix = 0; ix < width; ix++) - { - idx -=bpp; - alphaBuf [ix] = pData [idx+1] << s; - if (c & 0x02) - drawbuf [0][ix] |= pData [idx] << s; - - if (c & 0x01) - drawbuf [1][ix] |= pData [idx] << s; - } - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - - // go back to end of this page - idx += width * bpp; // 1bpp - } // for (iy = 0; iy < height; iy += 8) - - /* Pixel in the last page: height & 0x07 - (i.e. 13 hight => 5 pixel in last page) */ - if (((height & 0x07) == 0) || - ((height & 0x07) > (8 - s))) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+1] >> (8-s); - if (c & 0x02) - drawbuf [0][ix] = pData [idx] >> (8-s); - else - drawbuf [0][ix] = 0; - - if (c & 0x01) - drawbuf [1][ix] = pData [idx] >> (8-s); - else - drawbuf [1][ix] = 0; - } // for (ix = 0; ix < width; ix++) - - do_rcuAlpha (x, y+iy, width, m, alphaBuf_p); - } - } - else - { - for (iy = 0; iy < height; iy += 8) - { - for (ix = 0; ix < width; ix++) - { - idx -= bpp; - alphaBuf [ix] = pData [idx+1]; - if (c & 0x02) - drawbuf [0][ix] = pData [idx]; - else - drawbuf [0][ix] = 0; - - if (c & 0x01) - drawbuf [1][ix] = pData [idx]; - else - drawbuf [1][ix] = 0; - } - do_rcuAlpha (x, y+iy, width, m, alphaBuf); - - // go back to end of this page - idx += width * bpp; // 1bpp - // goto next page - idx += iconWidth * bpp; // 1bpp - } // for (iy = 0; iy < height; iy += 8) - } // else if (s) - is_drawing--; -} // _drawBlackWhiteAlpha -//----------------------------------------------------------------------------- - - - - diff --git a/boop/trunk/display/fonts/smooth.bits b/boop/trunk/display/fonts/smooth.bits deleted file mode 100644 index 5bda21c..0000000 --- a/boop/trunk/display/fonts/smooth.bits +++ /dev/null @@ -1,279 +0,0 @@ -const unsigned char smooth_mt_bits[] = { - 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x3c, 0x3c, 0x3c, 0x3c, 0x00, 0x20, 0x20, - 0xe0, 0x3c, 0x20, 0xe0, 0x3c, 0x20, 0x20, 0xe0, 0xf0, 0x10, 0xfc, 0x10, - 0x30, 0x60, 0x78, 0xfc, 0x84, 0xfc, 0x78, 0x00, 0x80, 0x20, 0x18, 0x84, - 0x80, 0x80, 0x00, 0x80, 0xc0, 0x7c, 0x64, 0xc4, 0x84, 0x0c, 0x00, 0x40, - 0xc0, 0x40, 0x00, 0x3c, 0x3c, 0xe0, 0xf8, 0x0c, 0x04, 0x04, 0x08, 0xf0, - 0x80, 0x00, 0x50, 0x60, 0xfc, 0x60, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x0c, 0xf0, 0xf8, 0x04, 0x04, 0x04, - 0x0c, 0xf8, 0xc0, 0x08, 0x08, 0xfc, 0xfc, 0x00, 0x00, 0x18, 0x04, 0x04, - 0x04, 0x8c, 0xf8, 0x30, 0x08, 0x04, 0x44, 0x44, 0x44, 0xbc, 0x98, 0x00, - 0x00, 0x80, 0x40, 0x30, 0x08, 0xfc, 0xfc, 0x00, 0x7c, 0x44, 0x44, 0x44, - 0x44, 0x84, 0x00, 0xe0, 0xf8, 0x4c, 0x44, 0x44, 0xc4, 0x8c, 0x00, 0x0c, - 0x04, 0x04, 0x04, 0xc4, 0x74, 0x0c, 0x00, 0x10, 0xb8, 0x44, 0x44, 0x44, - 0xfc, 0xb8, 0x00, 0x70, 0xf8, 0x04, 0x04, 0x04, 0x8c, 0xf8, 0xc0, 0xc0, - 0x00, 0x00, 0xc0, 0x00, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x40, 0x20, 0x20, - 0x30, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x30, 0x20, - 0x20, 0x40, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x08, 0x04, 0x84, 0x84, 0xc4, - 0x78, 0x10, 0x80, 0xc0, 0x20, 0x10, 0x80, 0xc8, 0x48, 0x08, 0x88, 0x90, - 0x10, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x1c, 0xf8, 0xc0, - 0x00, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0xc4, 0x78, 0x30, - 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x18, 0x00, 0x04, 0xfc, - 0xfc, 0x04, 0x04, 0x04, 0x04, 0x08, 0xf0, 0xe0, 0x04, 0x04, 0xfc, 0xfc, - 0x84, 0x84, 0x84, 0xe4, 0x0c, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0x84, - 0xe4, 0x0c, 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x00, - 0x04, 0xfc, 0xfc, 0x84, 0x80, 0x80, 0x80, 0x84, 0xfc, 0xfc, 0x04, 0x04, - 0xfc, 0xfc, 0x04, 0x00, 0x00, 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0xfc, - 0xfc, 0xc4, 0x20, 0x20, 0x14, 0x0c, 0x04, 0x04, 0x00, 0x04, 0xfc, 0xfc, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0x1c, 0x38, 0xf0, 0xc0, - 0x00, 0x00, 0x80, 0x60, 0x18, 0xfc, 0xfc, 0x04, 0x04, 0xfc, 0x1c, 0x38, - 0x60, 0xc0, 0x80, 0x00, 0x04, 0xfc, 0x04, 0x04, 0xe0, 0xf0, 0x08, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x18, 0xf0, 0x80, 0x04, 0xfc, 0xfc, 0x84, 0x84, - 0x84, 0xc4, 0x78, 0x30, 0xe0, 0xf0, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x18, 0xf0, 0x80, 0x04, 0xfc, 0xfc, 0x84, 0x84, 0x84, 0x84, 0x7c, 0x38, - 0x00, 0x00, 0x38, 0x7c, 0xc4, 0x84, 0x84, 0x84, 0x1c, 0x18, 0x0c, 0x04, - 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x0c, 0x04, 0xfc, 0xfc, 0x04, - 0x00, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x04, 0x04, 0x0c, 0x3c, 0xe4, 0x80, - 0x00, 0x00, 0x80, 0x64, 0x0c, 0x04, 0x04, 0x0c, 0xfc, 0xc4, 0x00, 0x00, - 0xe0, 0x1c, 0x7c, 0xc0, 0x00, 0x00, 0xe4, 0x1c, 0x04, 0x04, 0x04, 0x1c, - 0x7c, 0xe0, 0xc0, 0x34, 0x0c, 0x04, 0x04, 0x04, 0x0c, 0x1c, 0x74, 0xe0, - 0x80, 0x40, 0x14, 0x0c, 0x04, 0x0c, 0x04, 0x04, 0x84, 0xc4, 0x74, 0x3c, - 0x0c, 0x04, 0xfc, 0xfc, 0x04, 0x00, 0x0c, 0x78, 0xc0, 0x00, 0x00, 0x04, - 0x04, 0xfc, 0xfc, 0x20, 0x10, 0x18, 0x0c, 0x04, 0x0c, 0x10, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x40, - 0x60, 0x20, 0x20, 0x20, 0xc0, 0x80, 0x00, 0x00, 0x04, 0xfc, 0xfc, 0x20, - 0x20, 0x20, 0xc0, 0x80, 0x80, 0xc0, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80, - 0xc0, 0x20, 0x20, 0x24, 0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x20, - 0x20, 0x20, 0xc0, 0x00, 0x20, 0xf8, 0xfc, 0x24, 0x24, 0x04, 0x00, 0x80, - 0xc0, 0x20, 0x20, 0x20, 0xe0, 0xe0, 0x20, 0x04, 0xfc, 0xfc, 0x20, 0x20, - 0x20, 0xe0, 0x80, 0x00, 0x20, 0xec, 0xe0, 0x00, 0x00, 0x00, 0x20, 0xec, - 0xec, 0x04, 0xfc, 0xfc, 0x00, 0xa0, 0x60, 0x20, 0x20, 0x04, 0xfc, 0xfc, - 0x00, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0xc0, 0x20, 0x20, 0x20, - 0xe0, 0x80, 0x00, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x20, 0xe0, 0x80, 0x00, - 0x80, 0xc0, 0x20, 0x20, 0x20, 0x60, 0xc0, 0x00, 0x20, 0xe0, 0xe0, 0x20, - 0x20, 0x20, 0x60, 0xc0, 0x00, 0x80, 0xc0, 0x20, 0x20, 0x20, 0xe0, 0xe0, - 0x20, 0x20, 0xe0, 0xe0, 0x20, 0x20, 0x60, 0x60, 0xc0, 0xe0, 0x20, 0x20, - 0x60, 0x60, 0x20, 0xf8, 0xf8, 0x20, 0x20, 0x00, 0x20, 0xe0, 0xe0, 0x00, - 0x00, 0x20, 0xe0, 0xe0, 0x00, 0x20, 0x60, 0xe0, 0x20, 0x00, 0x00, 0xa0, - 0x60, 0x20, 0x20, 0x60, 0xe0, 0x20, 0x00, 0x80, 0xe0, 0x80, 0x00, 0x20, - 0xe0, 0x20, 0x20, 0x60, 0xe0, 0x00, 0x80, 0xe0, 0x20, 0x20, 0x20, 0x20, - 0xe0, 0xa0, 0x00, 0x00, 0xa0, 0x60, 0x20, 0x60, 0x60, 0x20, 0x20, 0xe0, - 0xe0, 0x20, 0x00, 0x00, 0xf8, 0x7c, 0x04, 0x04, 0xfc, 0xfc, 0x04, 0x04, - 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x40, 0x6c, 0x20, 0x20, 0x2c, 0xc0, 0x80, 0x00, 0x80, 0xc0, 0x2c, - 0x20, 0x20, 0x6c, 0xc0, 0x00, 0x20, 0xe0, 0xec, 0x00, 0x00, 0x2c, 0xe0, - 0xe0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x39, 0x1c, 0xf9, 0xc0, 0x00, 0x00, - 0x00, 0xe0, 0xf0, 0x08, 0x05, 0x04, 0x04, 0x05, 0x04, 0x18, 0xf0, 0x80, - 0x04, 0xfc, 0xfc, 0x04, 0x01, 0x00, 0x00, 0x05, 0xfc, 0xfc, 0x04, 0x00, - 0x00, 0xf8, 0xfc, 0x04, 0x64, 0xf4, 0x8c, 0x00, 0x00 }; - -const unsigned char smooth_lt_bits[] = { - 0x00, 0x00, 0x00, 0xfc, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0xf8, 0x6c, 0x00, 0xf0, 0x7c, 0x04, 0x00, 0xc0, 0xa0, 0x10, 0xfc, 0x10, - 0x60, 0x10, 0x30, 0x4c, 0x84, 0x4c, 0x30, 0x00, 0x40, 0x70, 0x80, 0x8c, - 0x80, 0x00, 0x00, 0x00, 0xd8, 0x38, 0x4c, 0x84, 0x04, 0x00, 0x0c, 0x00, - 0x40, 0x00, 0x00, 0x3c, 0x00, 0xc0, 0x30, 0x00, 0x00, 0x00, 0x3c, 0xf8, - 0x40, 0xd8, 0x50, 0x10, 0xfc, 0x10, 0x50, 0xd8, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa0, 0xb4, 0x14, 0xe0, 0x18, 0x08, 0x04, 0x04, - 0x18, 0xf0, 0x20, 0x10, 0x04, 0xfc, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, - 0x04, 0xc4, 0x7c, 0x78, 0x04, 0x08, 0x00, 0x44, 0xe4, 0xe8, 0x38, 0x00, - 0x00, 0x80, 0xe0, 0x00, 0x1c, 0xfc, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x40, - 0x80, 0xc0, 0x80, 0xd0, 0x90, 0x80, 0x04, 0x44, 0x04, 0x88, 0x00, 0x0c, - 0x00, 0x00, 0x00, 0x80, 0xac, 0x1c, 0x04, 0xa8, 0xfc, 0xec, 0x44, 0x44, - 0x28, 0x98, 0x00, 0xf8, 0x8c, 0x8c, 0x04, 0x04, 0x00, 0xf0, 0x20, 0xc0, - 0xc0, 0x00, 0xc0, 0xc0, 0x00, 0x80, 0xc0, 0x00, 0xc0, 0x60, 0x60, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - 0x60, 0x60, 0xc0, 0x00, 0xc0, 0x80, 0x00, 0x04, 0x08, 0x04, 0x84, 0x0c, - 0x7c, 0x28, 0x00, 0xe0, 0x70, 0x10, 0xd8, 0x00, 0x00, 0x48, 0x80, 0x88, - 0x30, 0x30, 0xe0, 0x80, 0x00, 0x00, 0x80, 0x40, 0x2c, 0x2c, 0x70, 0xa0, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x84, 0x00, 0x00, 0x84, 0x8c, 0xfc, 0x08, - 0xd0, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0c, 0x18, 0x00, 0xfc, - 0x04, 0x00, 0x04, 0x04, 0x08, 0x1c, 0x38, 0xd0, 0x00, 0x00, 0xfc, 0x84, - 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x1c, 0xd0, 0x38, 0x0c, 0x00, 0x04, 0x00, 0x04, 0x08, 0x1c, 0x18, - 0x00, 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xfc, 0x00, 0x00, - 0x04, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x04, - 0xfc, 0x80, 0xc0, 0x10, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0xfc, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x7c, 0x60, 0x80, - 0x80, 0x00, 0x00, 0x10, 0x04, 0xfc, 0x04, 0x00, 0x00, 0xfc, 0x0c, 0x30, - 0xf0, 0xc0, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0xd0, 0x38, 0x1c, 0x00, - 0x04, 0x00, 0x04, 0x08, 0x28, 0xf0, 0x60, 0x00, 0x04, 0xfc, 0x00, 0x00, - 0x84, 0x0c, 0xfc, 0x08, 0xd0, 0x38, 0x1c, 0x00, 0x04, 0x00, 0x04, 0x08, - 0x28, 0xf0, 0x60, 0x00, 0x04, 0xfc, 0x00, 0x80, 0x84, 0x84, 0xc8, 0x70, - 0x00, 0x00, 0x70, 0xe8, 0xc4, 0xc0, 0x84, 0x84, 0x88, 0x04, 0x1c, 0x00, - 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0xfc, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0xfc, 0x00, 0x00, 0x14, 0x7c, 0xf0, 0x40, - 0x00, 0x00, 0x40, 0xb0, 0x14, 0x00, 0x00, 0x14, 0x7c, 0xa0, 0x00, 0x00, - 0x50, 0x2c, 0xb8, 0xa0, 0x00, 0x00, 0x10, 0x24, 0x00, 0x00, 0x0c, 0x0c, - 0x3c, 0xf0, 0xe0, 0x00, 0x1c, 0x04, 0x00, 0x00, 0x04, 0x3c, 0x38, 0xc0, - 0xc0, 0xe0, 0x3c, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xe0, 0x60, 0x1c, - 0x1c, 0x00, 0xfc, 0x04, 0x00, 0x04, 0x14, 0xb4, 0xa0, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0x00, 0x20, 0x30, 0x08, 0x0c, 0x0c, 0x18, 0x18, 0x10, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x08, 0x20, - 0x20, 0x20, 0x20, 0x60, 0xe0, 0x40, 0x00, 0x04, 0x00, 0xfc, 0x40, 0x00, - 0x00, 0x20, 0x60, 0xc0, 0xc0, 0x60, 0x60, 0x20, 0x20, 0x40, 0x20, 0xc0, - 0x60, 0x20, 0x00, 0x00, 0x44, 0xfc, 0x00, 0x00, 0xc0, 0x60, 0x60, 0x20, - 0x20, 0x40, 0xc0, 0x80, 0x00, 0xfc, 0x24, 0x04, 0x04, 0x04, 0x04, 0xc0, - 0x60, 0x20, 0x00, 0x00, 0x40, 0xe0, 0x00, 0x00, 0xfc, 0x40, 0x00, 0x00, - 0x60, 0xc0, 0x40, 0x00, 0x00, 0xe4, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x24, - 0xe4, 0x00, 0xfc, 0x00, 0x80, 0x40, 0x20, 0x20, 0x00, 0x00, 0xfc, 0x00, - 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x60, 0xc0, 0x40, 0x00, 0x00, 0x60, - 0xc0, 0x40, 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x60, 0xc0, 0x40, 0x00, - 0xc0, 0x60, 0x60, 0x20, 0x20, 0x00, 0xc0, 0x80, 0x00, 0xe0, 0x40, 0x40, - 0x00, 0x20, 0x00, 0xc0, 0x80, 0xc0, 0x60, 0x20, 0x00, 0x00, 0x40, 0xe0, - 0x00, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x20, 0x20, - 0x20, 0x40, 0x00, 0xfc, 0x24, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xa0, 0xe0, 0x80, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0xa0, 0xe0, 0x00, 0x00, 0x40, 0x60, 0x40, 0x00, 0x80, - 0x60, 0x20, 0x20, 0x20, 0xe0, 0x80, 0x00, 0x20, 0x60, 0x00, 0x00, 0x60, - 0xe0, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x60, 0x20, 0x00, 0x80, 0xa0, - 0x60, 0x60, 0x00, 0x80, 0xfc, 0x84, 0x04, 0x00, 0xfc, 0x00, 0x00, 0x04, - 0x78, 0x88, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x24, 0x2c, 0x20, 0x64, 0xec, 0x40, 0x00, 0xc0, 0x6c, 0x64, - 0x20, 0x2c, 0x04, 0xc0, 0x80, 0x00, 0xec, 0x04, 0x00, 0x0c, 0x04, 0xe0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x55, 0x2c, 0x75, 0xa1, 0x00, 0x00, - 0x00, 0xd0, 0x38, 0x1c, 0x00, 0x05, 0x00, 0x04, 0x09, 0x28, 0xf0, 0x60, - 0x00, 0x04, 0xfc, 0x01, 0x00, 0x00, 0x01, 0x00, 0x04, 0xfc, 0x00, 0x00, - 0x00, 0xf8, 0x00, 0x04, 0xf4, 0x9c, 0x08, 0x08, 0x00 }; - -const unsigned char smooth_mb_bits[] = { - 0x00, 0x00, 0x00, 0x1b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1e, - 0x03, 0x02, 0x1e, 0x03, 0x02, 0x02, 0x00, 0x08, 0x19, 0x11, 0xff, 0x12, - 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x04, 0x01, 0x00, 0x06, 0x0f, 0x10, - 0x10, 0x1f, 0x0f, 0x07, 0x0c, 0x10, 0x10, 0x10, 0x11, 0x13, 0x0e, 0x1e, - 0x11, 0x10, 0x10, 0x00, 0x00, 0x0f, 0x1f, 0x20, 0x40, 0x40, 0x30, 0x1f, - 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x1f, 0x1f, 0x01, 0x01, 0x01, 0x20, 0x38, 0x08, 0x01, 0x01, 0x01, 0x01, - 0x18, 0x00, 0x30, 0x1e, 0x03, 0x00, 0x00, 0x07, 0x0f, 0x10, 0x10, 0x10, - 0x18, 0x0f, 0x01, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x18, 0x1c, 0x16, - 0x13, 0x11, 0x10, 0x18, 0x0c, 0x10, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x02, - 0x03, 0x02, 0x02, 0x12, 0x12, 0x1f, 0x1f, 0x12, 0x0c, 0x10, 0x10, 0x10, - 0x10, 0x0f, 0x07, 0x07, 0x0f, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x02, 0x00, - 0x00, 0x18, 0x0e, 0x01, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x10, 0x10, 0x10, - 0x18, 0x0f, 0x02, 0x00, 0x18, 0x11, 0x11, 0x11, 0x08, 0x07, 0x00, 0x18, - 0x00, 0x00, 0x38, 0x08, 0x01, 0x01, 0x02, 0x02, 0x06, 0x04, 0x04, 0x0c, - 0x08, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x08, 0x0c, - 0x04, 0x04, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, - 0x00, 0x00, 0x0f, 0x3f, 0x20, 0x42, 0x8f, 0x98, 0x90, 0x90, 0x9f, 0x1f, - 0x10, 0x08, 0x07, 0x01, 0x10, 0x18, 0x13, 0x02, 0x02, 0x02, 0x02, 0x13, - 0x1e, 0x18, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x0e, - 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x18, 0x0c, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x10, 0x10, 0x10, 0x08, 0x07, 0x03, 0x10, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x10, 0x11, 0x18, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x00, 0x00, - 0x01, 0x00, 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x11, 0x1f, 0x0f, - 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, - 0x1f, 0x1f, 0x10, 0xc0, 0x80, 0x80, 0x80, 0x7f, 0x3f, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x01, 0x02, 0x0c, 0x1c, 0x18, 0x10, 0x00, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x1c, 0x10, 0x1f, 0x10, 0x10, 0x00, 0x01, - 0x07, 0x06, 0x01, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x1f, 0x10, 0x10, - 0x00, 0x00, 0x03, 0x06, 0x0c, 0x1f, 0x00, 0x00, 0x03, 0x07, 0x08, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x0c, 0x07, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x08, 0x10, 0x10, 0x10, 0x30, 0x50, - 0x4c, 0x07, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x01, 0x07, 0x1c, - 0x10, 0x00, 0x0c, 0x1c, 0x10, 0x10, 0x10, 0x11, 0x0f, 0x0f, 0x00, 0x00, - 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x18, - 0x10, 0x10, 0x10, 0x10, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, - 0x1c, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1e, 0x0e, - 0x00, 0x00, 0x00, 0x07, 0x1e, 0x0e, 0x00, 0x00, 0x00, 0x10, 0x10, 0x1c, - 0x12, 0x01, 0x03, 0x17, 0x1c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x10, 0x1f, - 0x1f, 0x10, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x16, 0x13, 0x10, 0x10, 0x10, - 0x10, 0x18, 0x7f, 0x7f, 0x40, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x30, 0x40, - 0x40, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0e, - 0x1f, 0x11, 0x11, 0x11, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, - 0x10, 0x10, 0x0f, 0x07, 0x07, 0x0f, 0x10, 0x10, 0x10, 0x08, 0x04, 0x07, - 0x0f, 0x10, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x07, 0x0f, 0x11, 0x11, - 0x11, 0x11, 0x0d, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x47, - 0xcf, 0x90, 0x90, 0x90, 0xff, 0x7f, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, - 0x10, 0x1f, 0x1f, 0x10, 0x10, 0x1f, 0x1f, 0x10, 0xc0, 0x80, 0x80, 0xff, - 0x7f, 0x10, 0x1f, 0x1f, 0x11, 0x12, 0x1c, 0x18, 0x10, 0x10, 0x1f, 0x1f, - 0x10, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, - 0x1f, 0x1f, 0x00, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x10, 0x1f, 0x1f, 0x10, - 0x07, 0x0f, 0x10, 0x10, 0x10, 0x18, 0x0f, 0x03, 0x80, 0xff, 0xff, 0x90, - 0x10, 0x10, 0x18, 0x0f, 0x03, 0x07, 0x0f, 0x10, 0x10, 0x90, 0xff, 0xff, - 0x80, 0x10, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x18, 0x19, 0x13, 0x13, - 0x1e, 0x0e, 0x00, 0x0f, 0x1f, 0x10, 0x18, 0x08, 0x00, 0x0f, 0x1f, 0x10, - 0x10, 0x00, 0x1f, 0x1f, 0x10, 0x00, 0x00, 0x01, 0x07, 0x1c, 0x0c, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x1c, 0x03, 0x00, 0x0f, 0x1c, 0x07, - 0x00, 0x00, 0x10, 0x18, 0x14, 0x03, 0x17, 0x1c, 0x18, 0x10, 0x00, 0xc0, - 0x80, 0xc7, 0x3c, 0x0c, 0x01, 0x00, 0x00, 0x10, 0x1c, 0x1e, 0x13, 0x11, - 0x10, 0x18, 0x01, 0x01, 0x7e, 0xfc, 0x80, 0x80, 0xff, 0xff, 0x80, 0x80, - 0xfe, 0x3f, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, - 0x00, 0x0e, 0x1f, 0x11, 0x11, 0x11, 0x1f, 0x1f, 0x10, 0x07, 0x0f, 0x10, - 0x10, 0x10, 0x18, 0x0f, 0x03, 0x00, 0x0f, 0x1f, 0x10, 0x10, 0x00, 0x1f, - 0x1f, 0x10, 0x10, 0x18, 0x17, 0x03, 0x02, 0x02, 0x02, 0x17, 0x1e, 0x18, - 0x10, 0x03, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x07, 0x00, - 0x00, 0x03, 0x0f, 0x18, 0x10, 0x10, 0x10, 0x10, 0x0f, 0x07, 0x00, 0x00, - 0x10, 0x1f, 0x1f, 0x18, 0x10, 0x10, 0x11, 0x1b, 0x0e }; - -const unsigned char smooth_lb_bits[] = { - 0x00, 0x00, 0x00, 0x1b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1f, - 0x07, 0x00, 0x1b, 0x0f, 0x00, 0x00, 0x00, 0x19, 0x11, 0x13, 0xff, 0x13, - 0x06, 0x0e, 0x00, 0x00, 0x10, 0x10, 0x02, 0x02, 0x00, 0x09, 0x1f, 0x19, - 0x10, 0x09, 0x06, 0x0f, 0x1b, 0x08, 0x10, 0x01, 0x13, 0x0e, 0x0c, 0x0c, - 0x1a, 0x00, 0x00, 0x00, 0x00, 0x07, 0x38, 0x40, 0x00, 0x00, 0x68, 0x3f, - 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1f, 0x01, 0x00, 0x00, 0x00, 0x50, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x28, 0x2d, 0x05, 0x00, 0x00, 0x03, 0x0c, 0x08, 0x10, 0x10, - 0x0c, 0x07, 0x02, 0x10, 0x10, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, - 0x18, 0x18, 0x18, 0x1c, 0x1c, 0x08, 0x10, 0x00, 0x10, 0x01, 0x0f, 0x05, - 0x02, 0x03, 0x00, 0x10, 0x10, 0x1f, 0x12, 0x10, 0x1c, 0x18, 0x10, 0x10, - 0x18, 0x18, 0x0f, 0x03, 0x18, 0x08, 0x00, 0x10, 0x00, 0x0f, 0x05, 0x00, - 0x00, 0x10, 0x15, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x18, 0x10, 0x10, - 0x00, 0x1f, 0x05, 0x00, 0x01, 0x11, 0x11, 0x10, 0x1d, 0x0f, 0x03, 0x18, - 0x18, 0x60, 0x38, 0x10, 0x01, 0x03, 0x03, 0x06, 0x00, 0x06, 0x0c, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x0c, 0x06, 0x00, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, 0x1f, 0x18, 0x00, - 0x00, 0x00, 0x17, 0x18, 0x60, 0x45, 0x5f, 0x00, 0x90, 0x00, 0x08, 0xdf, - 0x40, 0x0c, 0x0f, 0x02, 0x00, 0x1c, 0x06, 0x03, 0x02, 0x02, 0x03, 0x07, - 0x1f, 0x14, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x10, 0x11, 0x09, 0x07, - 0x05, 0x0e, 0x18, 0x00, 0x00, 0x10, 0x10, 0x00, 0x0c, 0x04, 0x00, 0x1f, - 0x10, 0x00, 0x10, 0x10, 0x08, 0x1c, 0x0e, 0x05, 0x00, 0x10, 0x1f, 0x10, - 0x10, 0x10, 0x10, 0x11, 0x1c, 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x05, 0x0e, 0x1c, 0x08, 0x10, 0x00, 0x11, 0x10, 0x01, 0x0f, - 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1f, 0x00, 0x00, - 0x10, 0x1f, 0x00, 0x40, 0x80, 0x80, 0xc0, 0xff, 0x40, 0x00, 0x00, 0x10, - 0x1f, 0x01, 0x03, 0x07, 0x06, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x18, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x03, - 0x07, 0x06, 0x02, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x1f, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x07, 0x1c, 0x1f, 0x00, 0x00, 0x05, 0x0e, 0x1c, 0x00, - 0x10, 0x00, 0x10, 0x08, 0x0a, 0x07, 0x03, 0x00, 0x10, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x1c, 0x00, 0x10, 0x30, 0x30, 0x08, - 0x0a, 0x07, 0x03, 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1a, - 0x10, 0x10, 0x1c, 0x08, 0x10, 0x10, 0x01, 0x11, 0x1b, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0f, 0x04, - 0x10, 0x00, 0x10, 0x18, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x17, - 0x1a, 0x1a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x1d, 0x15, - 0x01, 0x00, 0x00, 0x0b, 0x1d, 0x15, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, - 0x07, 0x00, 0x01, 0x0e, 0x1e, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x1f, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1c, 0x1f, 0x11, 0x11, 0x10, 0x10, - 0x10, 0x1c, 0x7f, 0x40, 0x00, 0x40, 0x00, 0x00, 0x05, 0x2d, 0x28, 0x00, - 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0c, - 0x1a, 0x11, 0x01, 0x08, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x08, 0x00, - 0x00, 0x10, 0x18, 0x0f, 0x0f, 0x18, 0x18, 0x10, 0x10, 0x14, 0x0c, 0x0f, - 0x18, 0x10, 0x00, 0x00, 0x08, 0x1f, 0x00, 0x10, 0x0b, 0x1d, 0x18, 0x10, - 0x10, 0x08, 0x09, 0x05, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x8f, - 0x98, 0x90, 0x80, 0x80, 0x48, 0x3f, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, - 0x00, 0x1f, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x40, 0x80, 0x80, 0x40, - 0x7f, 0x00, 0x1f, 0x12, 0x03, 0x07, 0x1c, 0x10, 0x10, 0x00, 0x1f, 0x10, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x00, 0x10, 0x00, - 0x1f, 0x10, 0x10, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x1f, 0x10, 0x00, - 0x0f, 0x1c, 0x18, 0x10, 0x10, 0x00, 0x0f, 0x04, 0x00, 0xff, 0x88, 0x08, - 0x00, 0x10, 0x00, 0x0f, 0x04, 0x0f, 0x18, 0x10, 0x00, 0x00, 0x88, 0xff, - 0x00, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x09, 0x11, 0x11, 0x12, - 0x07, 0x0c, 0x00, 0x1f, 0x10, 0x10, 0x18, 0x00, 0x00, 0x1f, 0x18, 0x10, - 0x00, 0x18, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x1a, 0x1a, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0x18, 0x04, 0x01, 0x17, 0x18, 0x0a, - 0x01, 0x00, 0x00, 0x10, 0x0b, 0x03, 0x07, 0x1c, 0x10, 0x10, 0x00, 0xc0, - 0x81, 0x0b, 0x5e, 0x06, 0x03, 0x00, 0x00, 0x18, 0x18, 0x16, 0x17, 0x13, - 0x10, 0x18, 0x01, 0x03, 0x7f, 0x42, 0x80, 0x00, 0xff, 0x00, 0x00, 0xc0, - 0x7c, 0x42, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x01, 0x0c, 0x1a, 0x11, 0x01, 0x08, 0x1f, 0x10, 0x00, 0x0f, 0x1c, 0x18, - 0x10, 0x10, 0x00, 0x0f, 0x04, 0x00, 0x1f, 0x18, 0x10, 0x00, 0x18, 0x1f, - 0x10, 0x00, 0x00, 0x14, 0x1e, 0x12, 0x02, 0x02, 0x03, 0x03, 0x1f, 0x14, - 0x00, 0x05, 0x0e, 0x1c, 0x00, 0x10, 0x00, 0x10, 0x08, 0x0a, 0x07, 0x03, - 0x00, 0x04, 0x0f, 0x04, 0x10, 0x00, 0x10, 0x18, 0x1c, 0x0f, 0x00, 0x10, - 0x00, 0x1f, 0x00, 0x08, 0x10, 0x11, 0x11, 0x07, 0x0f }; diff --git a/boop/trunk/display/fonts/smooth.info b/boop/trunk/display/fonts/smooth.info deleted file mode 100644 index 75389f2..0000000 --- a/boop/trunk/display/fonts/smooth.info +++ /dev/null @@ -1,17 +0,0 @@ -const unsigned char smooth_info[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 3, 2, 4,10, 7,13,12, 2, 4, 4, 7, 9, 3, 4, 2, 5, - 8, 5, 8, 8, 8, 7, 8, 8, 8, 8, 2, 3, 9, 9, 9, 7, - -14,11, 9,10,10, 9, 9,10,11, 4, 7,10,10,14,12,11, - 9,11,11, 8,10,11,11,15,10,10, 9, 4, 5, 4, 9, 7, - - 4, 8, 9, 7, 9, 8, 7, 8, 9, 4, 5, 8, 4,14, 9, 8, - 9, 8, 7, 6, 6, 9, 9,12, 8, 9, 7, 6, 2, 6, 9, 0, - - 8, 8, 9,11, 11, 11, 10 -}; - -const unsigned char smooth_dlines = 2; diff --git a/boop/trunk/display/fonty.c b/boop/trunk/display/fonty.c deleted file mode 100644 index 1700988..0000000 --- a/boop/trunk/display/fonty.c +++ /dev/null @@ -1,636 +0,0 @@ -/* - fonty.c - drawing text & font handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lcd.h" -#include "fonty.h" -#include "global.h" - -#include "fonts/charset.info" -#include "fonts/charset.bits" - -#include "fonts/smooth.info" -#include "fonts/smooth.bits" - -extern unsigned char drawbuf[2][128]; -extern unsigned int is_drawing; - -static unsigned char tx, ty, coff, dbl; -unsigned char *font_bits, *font_info, font_dlines; -unsigned char *font_bitsUM, *font_bitsUL, *font_bitsMM, *font_bitsML, *font_bitsLM, *font_bitsLL; -unsigned char activefont; - -void set_font(unsigned char f) -{ - activefont = f; - switch(f) - { - case SMOOTHFONT: - coff = 0; - dbl = 16; - font_info = (unsigned char*) smooth_info; - font_bitsUM = (unsigned char*) smooth_mt_bits; - font_bitsUL = (unsigned char*) smooth_lt_bits; - font_bitsLM = (unsigned char*) smooth_mb_bits; - font_bitsLL = (unsigned char*) smooth_lb_bits; - font_dlines = smooth_dlines; - break; - case BOLDDOUBLEFONT: - coff = 96; - dbl = 1; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - case BOLDFONT: - coff = 96; - dbl = 0; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - case DOUBLEFONT: - coff = 0; - dbl = 1; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - default: - coff = 0; - dbl = 0; - font_bits = (unsigned char*) charset_bits; - font_info = (unsigned char*) charset_info; - font_dlines = charset_dlines; - break; - } -} - -void _draw_char(unsigned int ch, unsigned char c, unsigned char m) -{ - unsigned char p,q,r,s,t; - unsigned int cpos, cnt; - is_drawing++; - - cpos = 0; - - for(cnt=0; cnt>1] & 0x0F); - } - else - { - cpos += (font_info[cnt>>1] >> 4); - } - } - - p = font_info[ch>>1]; - if(ch & 0x01) - { - p &= 0x0F; - } - else - { - p >>= 4; - } - - if(dbl == 1) - { - if(ty & 0x07) - { - t = ty & 0x07; - p <<= 1; - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q << t; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q << t; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q >> (8-t); - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q >> (8-t); - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q << t; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q << t; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q >> (8-t); - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q >> (8-t); - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+16,p,m); - - } // if (ty & 0x07) - else - { - p <<= 1; - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x01) - q += 0x03;; - if(s & 0x02) - q += 0x0C;; - if(s & 0x04) - q += 0x30;; - if(s & 0x08) - q += 0xC0;; - - if(c & 0x02) - s = q; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty,p,m); - for(cnt=0;cnt>1)]; - q = 0x00; - - if(s & 0x10) - q += 0x03;; - if(s & 0x20) - q += 0x0C;; - if(s & 0x40) - q += 0x30;; - if(s & 0x80) - q += 0xC0;; - - if(c & 0x02) - s = q; - else - s = 0x00; - drawbuf[0][r] = s; - drawbuf[0][r-1] = s; - - if(c & 0x01) - s = q; - else - s = 0x00; - drawbuf[1][r] = s; - drawbuf[1][r-1] = s; - } - do_rcu(tx,ty+8,p,m); - } // else if (ty & 0x07) - tx += p+2; - } // if (dbl == 1) - else - { - if(ty & 0x07) - { - s = ty & 0x07; - - for(cnt=0;cnt> (8-s); - else - drawbuf[0][p-cnt-1] = 0x00; - - if(c & 0x01) - drawbuf[1][p-cnt-1] = font_bits[cpos+cnt] >> (8-s); - else - drawbuf[1][p-cnt-1] = 0x00; - } - do_rcu(tx,ty+8,p,m); - } // if (ty & 0x07) - else - { - for(cnt=0;cnt> (8-s); - drawbuf[1][p-cnt-1] = font_bitsUL[cpos+cnt] >> (8-s); - } - do_rcu (tx,ty+8,p,m); - for (cnt=0;cnt> (8-s); - drawbuf[1][p-cnt-1] = font_bitsLL[cpos+cnt] >> (8-s); - } - do_rcu (tx,ty+16,p,m); - } // if (ty & 0x07) - else - { - for(cnt=0;cnt>1]; - if((st[cp]+coff) & 0x01) - { - p &= 0x0F; - } - else - { - p >>= 4; - } - p +=1; - if(dbl == 1) - p <<= 1; - } - else - { - p = font_info[(unsigned char)(st[cp]+coff)]; - p+=1; - } - } - width += p; - cp++; - } - width=max(width,prevwidth); - if (width) - width--; - return width; -} - -unsigned short get_stringheight (const char *st) -{ - unsigned char cp; - unsigned short height; - - if(!dbl) - height = 8; - else - height = 16; - - cp = 0; - - while(st[cp] != 0) - { - if(st[cp] == '\n') - { - if(!dbl) - height += 9; - else - height += 18; - } - cp++; - } - - return height; -} - -extern char hval[16]; - -void draw_hexC(unsigned char x, unsigned char y, const unsigned char v, unsigned char c, unsigned char m) -{ - is_drawing++; - tx = x; - ty = y; - _draw_char(hval[v>>4]+coff, c, m); - _draw_char(hval[v & 0x0F]+coff, c, m); - is_drawing--; -} - -void draw_hexS(unsigned char x, unsigned char y, const unsigned short v, unsigned char c, unsigned char m) -{ - is_drawing++; - tx = x; - ty = y; - draw_hexC(x, y, v >> 8, c, m); - draw_hexC(tx, ty, v & 0xFF, c, m); - is_drawing--; -} - -void draw_hexW(unsigned char x, unsigned char y, const unsigned long v, unsigned char c, unsigned char m) -{ - is_drawing++; - draw_hexS(x, y, v >> 16, c, m); - draw_hexS(tx, ty, v & 0xFFFF, c, m); - is_drawing--; -} - -static unsigned long u_longval; -static unsigned char pos, inc; -static unsigned char num[12]; - -void get_digit(unsigned long tval) -{ - unsigned char count; - count = 0; - while(u_longval >= tval) - { - count++; - u_longval -= tval; - } - - num[pos] = '0' + count; - if(count) - inc = 1; - pos += inc; -} - -void draw_numU(unsigned char x, unsigned char y, const unsigned long v, unsigned char z, unsigned char c, unsigned char m) -{ - is_drawing++; - pos = 0; - u_longval = v; - - if(z) - inc = 1; - else - inc = 0; - - get_digit(1000000000); - get_digit(100000000); - get_digit(10000000); - get_digit(1000000); - get_digit(100000); - get_digit(10000); - get_digit(1000); - get_digit(100); - get_digit(10); - inc = 1; - get_digit(1); - num[pos] = 0x00; - draw_string(x, y, (char*)num, c, m); - is_drawing--; -} diff --git a/boop/trunk/display/fonty.h b/boop/trunk/display/fonty.h deleted file mode 100644 index 7e35b30..0000000 --- a/boop/trunk/display/fonty.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - fonty.h - drawing text & font handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef FONTY_H -#define FONTY_H - -#define SMALLFONT 0 -#define DOUBLEFONT 1 -#define BOLDFONT 2 -#define BOLDDOUBLEFONT 3 -#define SMOOTHFONT 4 - -#define SMALLFONT_HEIGHT 8 -#define DOUBLEFONT_HEIGHT 16 -#define BOLDFONT_HEIGHT 8 -#define BOLDDOUBLEFONT_HEIGHT 16 -#define SMOOTHFONT_HEIGHT 16 - -#define tabstep 24 - -unsigned char activefont; - -void set_font(unsigned char f); -void draw_char(unsigned char x, unsigned char y, unsigned char ch, unsigned char c, unsigned char m); -void draw_string(unsigned char x, unsigned char y, char *st, unsigned char c, unsigned char m); -void draw_hexC(unsigned char x, unsigned char y, const unsigned char v, unsigned char c, unsigned char m); -void draw_hexS(unsigned char x, unsigned char y, const unsigned short v, unsigned char c, unsigned char m); -void draw_hexW(unsigned char x, unsigned char y, const unsigned long v, unsigned char c, unsigned char m); - -void draw_numU(unsigned char x, unsigned char y, const unsigned long v, unsigned char z, unsigned char c, unsigned char m); -unsigned short get_stringwidth (const char *st); -unsigned short get_stringheight (const char *st); - -#endif diff --git a/boop/trunk/display/icon.h b/boop/trunk/display/icon.h deleted file mode 100644 index 02e3da6..0000000 --- a/boop/trunk/display/icon.h +++ /dev/null @@ -1,113 +0,0 @@ -/********************************************************************** -@file icon.c - -@brief Definition of icon structure and appropriate functions - ------------------------------------------------------------------------ -@author 2010 Roman Steiger - LeoTheLoewe [at] gmx [dot] de ------------------------------------------------------------------------ -Following compile flags are usable: - - ------------------------------------------------------------------------ - 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 3 of the License, 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, see . ------------------------------------------------------------------------ -@History - -1.00 20012010 RSt Creation - -@end -***********************************************************************/ -#ifndef __ICON_H__ -#define __ICON_H__ - - -/////////////////////////////////////////////////////////////////// -// ICON can be defined in the appropriate C file before -// including that header or the related icon files to define the -// actual type of the icon structure: -// -// >> #define ICON iconElement_t -// -/////////////////////////////////////////////////////////////////// -#ifndef ICON -#define ICON icon_t -#endif - -/////////////////////////////////////////////////////////////////// -// ICON_INFO can be defined in the appropriate C file before -// including that header to save one byte in the icon structure: -// -// >> #define ICON_INFO(i) -// -/////////////////////////////////////////////////////////////////// -#ifndef ICON_INFO -#define ICON_INFO(i) /* info = */ i, -#define ICON_INFO_ELEMENT unsigned char info; // additional one byte (iconType_t might be larger) -#endif - -#ifndef ICON_INFO_ELEMENT -#define ICON_INFO_ELEMENT -//#define ICON_IS_GRAY(i) 0 -#define ICON_IS_GRAY(i) (sizeof(i.data) > (i.height/8 + (i.height%8 ? 1 : 0)) * i.width + 2); -#else -#define ICON_IS_GRAY(i) ((i)->info >= ICON_GRAY) -#endif - -typedef enum iconInfo_e -{ - ICON_BLACK_WHITE, /// 1 bpp - ICON_BLACK_WHITE_TRANSPARENT, /// 2 bpp - ICON_GRAY, /// 2 bpp - ICON_GRAY_TRANSPARENT, /// 3 bpp - - ICON_MAX -} iconInfo_t; - -typedef struct icon_s -{ - unsigned char width; - unsigned char height; - ICON_INFO_ELEMENT - unsigned char data []; -} icon_t, *icon_p; - -typedef struct iconElement_s -{ - unsigned char width; - unsigned char height; - unsigned char data []; -} iconElement_t, *iconElement_p; - -#ifdef __cplusplus -extern "C" { -#endif -//----------------------------------------------------------------------------- - -extern void drawIcon (unsigned char x, unsigned char y, - const icon_t const *pIcon, - unsigned char c, unsigned char m); - -extern void drawIconExt (unsigned char x, unsigned char y, - const unsigned char const *pData, - unsigned char width, unsigned char height, iconInfo_t iconInfo, - unsigned char c, unsigned char m); - -//----------------------------------------------------------------------------- -#ifdef __cplusplus -} -#endif - -#endif // #ifndef __ICON_H__ diff --git a/boop/trunk/display/iconHourglas.h b/boop/trunk/display/iconHourglas.h deleted file mode 100644 index 6e99e15..0000000 --- a/boop/trunk/display/iconHourglas.h +++ /dev/null @@ -1,173 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Hourglas.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconHourglas.data) == 280 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x0e, 0x11, - 0x3f, 0x1e, - 0x7f, 0x3a, - 0xff, 0x6a, - 0xff, 0xca, - 0xff, 0xca, - 0x3f, 0x0a, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0xff, 0xca, - 0xff, 0xca, - 0xff, 0x6a, - 0x7f, 0x3a, - 0x3f, 0x1e, - 0x0e, 0x11, - //--- Page 1 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x0f, - 0xfe, 0xfd, - 0x70, 0xb8, - 0xe0, 0x70, - 0xc0, 0xa0, - 0x80, 0x50, - 0x30, 0x80, - 0xf0, 0x00, - 0xf0, 0x00, - 0xf0, 0x00, - 0xf0, 0x08, - 0x70, 0x88, - 0xb0, 0xc8, - 0xd8, 0x64, - 0x78, 0xe4, - 0x36, 0xf8, - 0xfe, 0xfd, - 0xff, 0x0f, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 2 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x00, - 0xff, 0xff, - 0x00, 0xff, - 0x80, 0x80, - 0xc1, 0xc0, - 0x61, 0xb3, - 0x3f, 0x12, - 0x1c, 0x0f, - 0x07, 0x00, - 0x1d, 0x0e, - 0x3f, 0x12, - 0x63, 0xb5, - 0xc1, 0xe2, - 0x80, 0xc1, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x00, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 3 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0xfc, - 0xff, 0x0f, - 0x07, 0x0b, - 0x81, 0x03, - 0xc0, 0x01, - 0xc0, 0x20, - 0xe0, 0x10, - 0xf0, 0x00, - 0xf8, 0x00, - 0xf0, 0x00, - 0xe0, 0x10, - 0xc0, 0x20, - 0xc0, 0x01, - 0x81, 0x03, - 0x03, 0x87, - 0x0e, 0x17, - 0xff, 0x1f, - 0xff, 0xf8, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 4 --- - 0x70, 0x88, - 0xfc, 0x78, - 0xfe, 0x7c, - 0xff, 0x76, - 0xff, 0x77, - 0xff, 0x77, - 0xff, 0x74, - 0xfe, 0x75, - 0xff, 0x74, - 0xff, 0x74, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xfe, 0x75, - 0xff, 0x74, - 0xff, 0x77, - 0xff, 0x77, - 0xff, 0x76, - 0xfe, 0x7c, - 0xfc, 0x78, - 0x70, 0x88 - } -}; - - diff --git a/boop/trunk/display/iconHourglas2.h b/boop/trunk/display/iconHourglas2.h deleted file mode 100644 index 2ed6f1a..0000000 --- a/boop/trunk/display/iconHourglas2.h +++ /dev/null @@ -1,173 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: L:\Betty\Sourcecode\SVN\Betty_sourceforge\boop\trunk\display\Hourglas_2bpp.bmp -// -// ICON_BLACK_WHITE - 1 bpp (Bit per Pixel) -// sizeof (iconHourglas2.data) == 140 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas2 = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_BLACK_WHITE) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x0e, - 0x3f, - 0x7f, - 0xff, - 0xff, - 0xff, - 0x3f, - 0x3b, - 0x3b, - 0x3b, - 0x3b, - 0x3b, - 0x3b, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0x3f, - 0xff, - 0xff, - 0xff, - 0x7f, - 0x3f, - 0x0e, - //--- Page 1 --- - 0x00, - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xfe, - 0x70, - 0xe0, - 0xc0, - 0x80, - 0x30, - 0xf0, - 0xf0, - 0xf0, - 0xf0, - 0x70, - 0xb0, - 0xd8, - 0x78, - 0x36, - 0xfe, - 0xff, - 0xff, - 0x00, - 0x00, - 0x00, - 0x00, - //--- Page 2 --- - 0x00, - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0x00, - 0x80, - 0xc1, - 0x61, - 0x3f, - 0x1c, - 0x07, - 0x1d, - 0x3f, - 0x63, - 0xc1, - 0x80, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0x00, - 0x00, - 0x00, - 0x00, - //--- Page 3 --- - 0x00, - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0x07, - 0x81, - 0xc0, - 0xc0, - 0xe0, - 0xf0, - 0xf8, - 0xf0, - 0xe0, - 0xc0, - 0xc0, - 0x81, - 0x03, - 0x0e, - 0xff, - 0xff, - 0xff, - 0x00, - 0x00, - 0x00, - 0x00, - //--- Page 4 --- - 0x70, - 0xfc, - 0xfe, - 0xff, - 0xff, - 0xff, - 0xff, - 0xfe, - 0xff, - 0xff, - 0xf7, - 0xf7, - 0xf7, - 0xf7, - 0xf7, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xfe, - 0xff, - 0xff, - 0xff, - 0xff, - 0xfe, - 0xfc, - 0x70 - } -}; - - diff --git a/boop/trunk/display/iconHourglas2_t.h b/boop/trunk/display/iconHourglas2_t.h deleted file mode 100644 index 75a97ea..0000000 --- a/boop/trunk/display/iconHourglas2_t.h +++ /dev/null @@ -1,178 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: L:\Betty\Sourcecode\SVN\Betty_sourceforge\boop\trunk\display\Hourglas_t_3bpp_t.bmp -// -// ICON_BLACK_WHITE_TRANSPARENT - 2 bpp (Bit per Pixel) -// sizeof (iconHourglas2_t.data) == 280 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas2_t = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_BLACK_WHITE_TRANSPARENT) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - // v--- Alpha Channel - 0x1f, 0x1f, - 0x3f, 0x3f, - 0x7f, 0x7f, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0x3f, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x7f, 0x7f, - 0x3f, 0x3f, - 0x1f, 0x1f, - //--- Page 1 --- - // v--- Alpha Channel - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xf8, 0xff, - 0xf0, 0xff, - 0xe0, 0xff, - 0xd0, 0xff, - 0xb0, 0xff, - 0xf0, 0xff, - 0xf0, 0xff, - 0xf0, 0xff, - 0xf8, 0xff, - 0xf8, 0xff, - 0xf8, 0xff, - 0xfc, 0xff, - 0xfc, 0xff, - 0xfe, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 2 --- - // v--- Alpha Channel - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x80, 0x80, - 0xc1, 0xc1, - 0xf3, 0xf3, - 0x3f, 0xff, - 0x1f, 0xff, - 0x07, 0xff, - 0x1f, 0xff, - 0x3f, 0xff, - 0xf7, 0xf7, - 0xe3, 0xe3, - 0xc1, 0xc1, - 0x00, 0x00, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 3 --- - // v--- Alpha Channel - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x0f, 0xff, - 0x83, 0xff, - 0xc1, 0xff, - 0xe0, 0xff, - 0xf0, 0xff, - 0xf0, 0xff, - 0xf8, 0xff, - 0xf0, 0xff, - 0xf0, 0xff, - 0xe0, 0xff, - 0xc1, 0xff, - 0x83, 0xff, - 0x87, 0xff, - 0x1f, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 4 --- - // v--- Alpha Channel - 0xf8, 0xf8, - 0xfc, 0xfc, - 0xfe, 0xfe, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xfe, 0xfe, - 0xfc, 0xfc, - 0xf8, 0xf8 - } -}; - - diff --git a/boop/trunk/display/iconHourglas_t.h b/boop/trunk/display/iconHourglas_t.h deleted file mode 100644 index d46a555..0000000 --- a/boop/trunk/display/iconHourglas_t.h +++ /dev/null @@ -1,178 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Hourglas_t.bmp -// -// ICON_GRAY_TRANSPARENT - 3 bpp (Bit per Pixel) -// sizeof (iconHourglas_t.data) == 420 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas_t = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_GRAY_TRANSPARENT) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - // v--- Alpha Channel - 0x0e, 0x11, 0x1f, - 0x3f, 0x1e, 0x3f, - 0x7f, 0x3a, 0x7f, - 0xff, 0x6a, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0xca, 0xff, - 0x3f, 0x0a, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0x6a, 0xff, - 0x7f, 0x3a, 0x7f, - 0x3f, 0x1e, 0x3f, - 0x0e, 0x11, 0x1f, - //--- Page 1 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x0f, 0xff, - 0xfe, 0xfd, 0xff, - 0x70, 0xb8, 0xff, - 0xe0, 0x70, 0xff, - 0xc0, 0xa0, 0xff, - 0x80, 0x50, 0xff, - 0x30, 0x80, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x08, 0xff, - 0x70, 0x88, 0xff, - 0xb0, 0xc8, 0xff, - 0xd8, 0x64, 0xff, - 0x78, 0xe4, 0xff, - 0x36, 0xf8, 0xff, - 0xfe, 0xfd, 0xff, - 0xff, 0x0f, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 2 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x00, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x80, 0x80, 0x80, - 0xc1, 0xc0, 0xc1, - 0x61, 0xb3, 0xf3, - 0x3f, 0x12, 0xff, - 0x1c, 0x0f, 0xff, - 0x07, 0x00, 0xff, - 0x1d, 0x0e, 0xff, - 0x3f, 0x12, 0xff, - 0x63, 0xb5, 0xf7, - 0xc1, 0xe2, 0xe3, - 0x80, 0xc1, 0xc1, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x00, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 3 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0xfc, 0xff, - 0xff, 0x0f, 0xff, - 0x07, 0x0b, 0xff, - 0x81, 0x03, 0xff, - 0xc0, 0x01, 0xff, - 0xc0, 0x20, 0xff, - 0xe0, 0x10, 0xff, - 0xf0, 0x00, 0xff, - 0xf8, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xe0, 0x10, 0xff, - 0xc0, 0x20, 0xff, - 0xc0, 0x01, 0xff, - 0x81, 0x03, 0xff, - 0x03, 0x87, 0xff, - 0x0e, 0x17, 0xff, - 0xff, 0x1f, 0xff, - 0xff, 0xf8, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 4 --- - // v--- Alpha Channel - 0x70, 0x88, 0xf8, - 0xfc, 0x78, 0xfc, - 0xfe, 0x7c, 0xfe, - 0xff, 0x76, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x74, 0xff, - 0xfe, 0x75, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xfe, 0x75, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x76, 0xff, - 0xfe, 0x7c, 0xfe, - 0xfc, 0x78, 0xfc, - 0x70, 0x88, 0xf8 - } -}; - - diff --git a/boop/trunk/display/lcd.c b/boop/trunk/display/lcd.c deleted file mode 100644 index 0b1a02c..0000000 --- a/boop/trunk/display/lcd.c +++ /dev/null @@ -1,1242 +0,0 @@ -/* - lcd.c - lcd control & graphics primitives - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "global.h" -#include "lpc2220.h" -#include "lcd.h" -#include "fonty.h" -#include "boop_logo" -#include "adc.h" -#include "timerfuncs.h" - -unsigned int is_drawing; -volatile unsigned char symbols; -volatile unsigned char oldsymbols; - -void _do_rcu(unsigned char x, unsigned char y, unsigned char l, unsigned char m); -void _do_rcuAlpha (unsigned char x, unsigned char y, unsigned char l, unsigned char m, - unsigned char* alphaBuf); -void _do_rcuS(unsigned char x, unsigned char y, unsigned char m); -void _draw_block(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m); -void _draw_hline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); -void _draw_vline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); - -// Function pointer to section (".text.fastcode") -rcu_fn do_rcu; - -rcuAlpha_fn do_rcuAlpha; - -rcus_fn do_rcuS; -bl_fn draw_block; -ln_fn draw_hline; -ln_fn draw_vline; - - -void pause(unsigned int ptime) -{ - unsigned long xx; - xx = ptime * 1500; - while(xx) - { - xx--; - }; -} - - -void lcd_set(unsigned char s) -{ - is_drawing++; - if(s == 0) - { - LCD_CMD = 0xA0; // set segment remap (00H mapped to seg0) - LCD_CMD = 0xC8; // set com output scan direction (remapped mode) - } - else - { - LCD_CMD = 0xA1; // set segment remap (7FH mapped to seg0) - LCD_CMD = 0xC0; // set com output scan direction (normal mode) - } - is_drawing--; -} - - -// initialise LCD controller SSD1854 -// -// sequence and values disassembled from original firmware -// see http://bettyhacks.com/wiki/index.php/Betty_init -void lcd_init(unsigned char s) -{ - is_drawing = 1; - LCD_CMD = LCD_WAKEUP; // exit power save mode - LCD_CMD = LCD_RESET; // software reset - pause(0x32); - LCD_CMD = LCD_OSC_START; // start internal oscillator - LCD_CMD = LCD_IRRR_8; // set internal regulator resistor ratio (8.1) - LCD_CMD = 0x81; // volume cmd - LCD_CMD = LCD_CONTRAST; // volume cmd value original 0x3F - LCD_CMD = LCD_DCDCx4; // set DC-DC converter factor (4x) - - LCD_CMD = 0x60; // set upper window corner ax cmd - LCD_CMD = 0x1C; // set upper window corner ax value - LCD_CMD = 0x61; // set upper window corner ay cmd - LCD_CMD = 0x0A; // set upper window corner ay value - LCD_CMD = 0x62; // set lower window corner bx cmd - LCD_CMD = 0x75; // set lower window corner bx value - LCD_CMD = 0x63; // set lower window corner by cmd - LCD_CMD = 0x81; // set lower window corner by value - LCD_CMD = 0x90; // set PWM and FRC (4-frames) - - LCD_CMD = 0x88; // set white mode frame 2nd and 1st cmd - LCD_CMD = LCD_GRAYMODE_88; // set white mode frame 2nd and 1st value - LCD_CMD = 0x89; // set white mode frame 4th and 3rd cmd - LCD_CMD = LCD_GRAYMODE_89; // set white mode frame 4th and 3rd value - LCD_CMD = 0x8A; // set light gray mode frame 2nd and 1st cmd - LCD_CMD = LCD_GRAYMODE_8A; // set light gray mode frame 2nd and 1st value // originally 33 - LCD_CMD = 0x8B; // set light gray mode frame 4th and 3rd cmd - LCD_CMD = LCD_GRAYMODE_8B; // set light gray mode frame 4th and 3rd value // originally 33 - LCD_CMD = 0x8C; // set dark gray mode frame 2nd and 1st cmd - LCD_CMD = LCD_GRAYMODE_8C; // set dark gray mode frame 2nd and 1st value // originally 66 - LCD_CMD = 0x8D; // set dark gray mode frame 4th and 3rd cmd - LCD_CMD = LCD_GRAYMODE_8D; // set dark gray mode frame 4th and 3rd vakue // originally 66 - LCD_CMD = 0x8E; // set black mode frame 2nd and 1st cmd - LCD_CMD = LCD_GRAYMODE_8E; // set black mode frame 2nd and 1st value // originally 99 - LCD_CMD = 0x8F; // set black mode frame 4th and 3rd cmd - LCD_CMD = LCD_GRAYMODE_8F; // set black mode frame 4th and 3rd value // originally 99 - - LCD_CMD = LCD_DCDCx5; // set DC-DC converter factor (5x) - - lcd_set(s); - - //~ LCD_CMD = 0x2E; // set power control register (boost on, reg on, buffer off) // original - - //~ pause(0x32); // original - - LCD_CMD = 0x2F; // set power control register (boost on, reg on, buffer on) - LCD_CMD = LCD_ALLON; // all black - LCD_CMD = LCD_NORMAL; // set normal display mode, inverse = 0xA7 - - // Function pointer to section (".text.fastcode") - do_rcu = _do_rcu; - do_rcuAlpha = _do_rcuAlpha; - do_rcuS = _do_rcuS; - draw_block = _draw_block; - draw_hline = _draw_hline; - draw_vline = _draw_vline; - - lcd_fill (LCD_COLOR_W); // blank display - - LCD_CMD = LCD_ON; // turn display on - - set_font(SMALLFONT); - - is_drawing--; -} // lcd_init - - -void lcd_enable(unsigned char e) -{ - is_drawing++; - if(e) - LCD_CMD = LCD_ON; // set display on - else - LCD_CMD = LCD_OFF; // set display off - is_drawing--; -} - - -/// \brief set lcd contrast -/// -/// SSD1854 datasheet p.33 -/// Set Contrast Control Register [81] -/// This command adjusts the contrast of the LCD panel by changing VL7 of the LCD drive voltage -/// provided by the On-Chip power circuits. VL7 is set with 64 steps (6-bit) contrast control register. -/// Default value after software reset [E2]: 20H = 32 -void lcd_set_contrast(unsigned char c) -{ - if (c < 64) - { - is_drawing++; - LCD_CMD = 0x81; // volume cmd - LCD_CMD = c; // volume cmd value - is_drawing--; - } -} - - -// set all pixels -// show symbols TODO: those should not be here! -void lcd_fill(unsigned char f) -{ - unsigned char x,y; - - is_drawing++; - //~ - //~ if (f == 0xFF) - //~ { - //~ LCD_CMD = LCD_ALLOFF; - //~ } - //~ else if (f == 0) - //~ { - //~ LCD_CMD = LCD_ALLON; - //~ } - //~ else - //~ { - for(y=0;y<20;y++) - { - LCD_CMD = 0xB0; // Set Page Address - LCD_CMD = y; - LCD_CMD = 0x10; // Set Higher Column Address - LCD_CMD = 0x00; - for(x=0;x<128;x++) - { - LCD_DATA = f; // 4 pixels - LCD_DATA = f; // 4 pixels - } - } - //~ } - is_drawing--; - - showBat(0xff); - refresh_symbols(0xff); -} - -//----------------------------------------------------------------------------- -/** Draw pixel data from boop_logo. - (use bmp2b to generate from 24 bit BMP) - New tool display/GrayScaler.exe for WinXP/Win7 - generate icon files. The data array has the same - format and can be copied in the file boop_logo. - You can also use the new icons instead of the logo. -*/ -void draw_logo(void) -{ - unsigned short f; - unsigned char x,y; - is_drawing++; - f=0; - for(y=0; y>3; y++) - { - LCD_CMD = 0xB0; - LCD_CMD = y; - LCD_CMD = 0x10; - LCD_CMD = 0x00; - for(x=0;x BORDER_RIGHT))// || (x+l < BORDER_LEFT)) - return; - - if (x+l > BORDER_RIGHT + 1) { - unsigned char i; - unsigned char cut; - - cut = x + l - (BORDER_RIGHT + 1); - for(i=0;i> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - q = LCD_DATA; - q = l; - - while(q--) - { - rcubuf[0][q] = LCD_DATA; - rcubuf[1][q] = LCD_DATA; - } - - q = LCD_DATA; - } - - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - if(alphaBuf) - { - q = l; - while(q--) - { - drawbuf[0][q] &= alphaBuf[q]; - drawbuf[1][q] &= alphaBuf[q]; - } - if(m==DRAW_ALPHA) - { - q = l; - while(q--) - { - rcubuf[0][q] &= ~alphaBuf[q]; - rcubuf[1][q] &= ~alphaBuf[q]; - } - } - } - - q = l; - - switch(m) - { - case DRAW_ALPHA: // draw with alpha buffer - case DRAW_PUT: // draw put - while(q--) - { - LCD_DATA = rcubuf[0][q] | drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] | drawbuf[1][q]; - } - break; - case DRAW_XOR: // draw xor - while(q--) - { - LCD_DATA = rcubuf[0][q] ^ drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] ^ drawbuf[1][q]; - } - break; - case DRAW_ERASE: // draw erase - while(q--) - { - LCD_DATA = rcubuf[0][q] & ~drawbuf[0][q]; - LCD_DATA = rcubuf[1][q] & ~drawbuf[1][q]; - } - break; - case DRAW_NORCU: // draw without rcu - while(q--) - { - LCD_DATA = drawbuf[0][q]; - LCD_DATA = drawbuf[1][q]; - } - break; - } - is_drawing--; -} // _do_rcu -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void __attribute__ ((section (".text.fastcode"))) _do_rcuS ( - unsigned char x, unsigned char y, unsigned char m) -{ - unsigned char q; - - - if((x > BORDER_RIGHT))// | (x < BORDER_LEFT)) - return; - - is_drawing++; - - if(m != DRAW_NORCU) - { - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - q = LCD_DATA; - rcubuf[0][0] = LCD_DATA; - rcubuf[1][0] = LCD_DATA; - - q = LCD_DATA; - } - - LCD_CMD = 0xB0; - LCD_CMD = (y >> 3); - LCD_CMD = (0x10 + (x >> 4)); - LCD_CMD = (x & 0x0F); - - switch(m) - { - case DRAW_ALPHA: - case DRAW_PUT: // draw put - LCD_DATA = rcubuf[0][0] | drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] | drawbuf[1][0]; - break; - case DRAW_XOR: // draw xor - LCD_DATA = rcubuf[0][0] ^ drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] ^ drawbuf[1][0]; - break; - case DRAW_ERASE: // draw erase - LCD_DATA = rcubuf[0][0] & ~drawbuf[0][0]; - LCD_DATA = rcubuf[1][0] & ~drawbuf[1][0]; - break; - case DRAW_NORCU: // draw erase - LCD_DATA = drawbuf[0][0]; - LCD_DATA = drawbuf[1][0]; - break; - } - is_drawing--; -} // _do_rcuS -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void __attribute__ ((section(".text.fastcode"))) _draw_block(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m) -{ - unsigned char q,s; - unsigned char yy,ss,vv,ww,xx; - unsigned char segm; - is_drawing++; - - if (x + w > LCD_SIZE_X) - w = LCD_SIZE_X - x; - - s = y; - - if(h) - { - yy = h; - ss = y >> 3; - vv = y & 0x07; - - ww = yy & 0x07; - - segm = 0xFF; - - xx = 8; - if(yy < 8) - { - segm >>= (8-ww); - xx -= (8-ww); - if(vv > (8-xx)) - { - xx = yy -(vv-(8-xx)); - } - else - { - xx = yy; - } - } - else - { - xx -= vv; - } - - segm <<= vv; - - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = segm; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = segm; - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - - yy -= xx; - - while(yy > 8) - { - s += 8; - yy -= 8; - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = 0xFF; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = 0xFF; - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - } - - if(yy) - { - s += 8; - q = w; - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = 0xFF >> (8-yy); - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = 0xFF >> (8-yy); - else - drawbuf[1][q] = 0; - } - do_rcu(x,s,w,m); - } - } - is_drawing--; -} - -void __attribute__ ((section(".text.fastcode"))) _draw_hline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m) -{ - unsigned char p,q; - is_drawing++; - - q = l; - p = 0x01 << (y & 0x07); - - while(q--) - { - if(c & 0x02) - drawbuf[0][q] = p; - else - drawbuf[0][q] = 0; - - if(c & 0x01) - drawbuf[1][q] = p; - else - drawbuf[1][q] = 0; - } - do_rcu(x,y,l,m); - is_drawing--; -} - -void __attribute__ ((section(".text.fastcode"))) _draw_vline(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m) -{ - unsigned char s; - unsigned char yy,ss,vv,ww,xx; - unsigned char segm; - is_drawing++; - - s = y; - - if(l) - { - - - - yy = l; - ss = y >> 3; - vv = y & 0x07; - - ww = yy & 0x07; - - segm = 0xFF; - - xx = 8; - if(yy < 8) - { - segm >>= (8-ww); - xx -= (8-ww); - if(vv > (8-xx)) - { - xx = yy -(vv-(8-xx)); - } - else - { - xx = yy; - } - } - else - { - xx -= vv; - } - - segm <<= vv; - - if(c & 0x02) - drawbuf[0][0] = segm; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = segm; - else - drawbuf[1][0] = 0; - - do_rcuS(x,s,m); - - yy -= xx; - - while(yy > 8) - { - s += 8; - yy -= 8; - if(c & 0x02) - drawbuf[0][0] = 0xFF; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = 0xFF; - else - drawbuf[1][0] = 0; - do_rcuS(x,s,m); - } - - if(yy) - { - s += 8; - if(c & 0x02) - drawbuf[0][0] = 0xFF >> (8-yy); - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = 0xFF >> (8-yy); - else - drawbuf[1][0] = 0; - do_rcuS(x,s,m); - } - } - is_drawing--; -} - -void draw_rect(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char lw, unsigned char c, unsigned char m) -{ - is_drawing++; - if(lw) - { - if(lw == 1) - { - draw_hline(x, y, w, c, m); - draw_hline(x, y+h-1, w, c, m); - - draw_vline(x, y+1, h-2, c, m); - draw_vline(x+w-1, y+1, h-2, c, m); - } - else - { - draw_block(x, y, w, lw, c, m); - draw_block(x, y+h-lw, w, lw, c, m); - draw_block(x, y+lw, lw, h-(2*lw), c, m); - draw_block(x+w-lw, y+lw, lw, h-(2*lw), c, m); - } - } - is_drawing--; -} - -void draw_pixel(unsigned char x, unsigned char y, unsigned char c, unsigned char m) -{ - unsigned char p; - is_drawing++; - - p = 0x01 << (y & 0x07); - - if(c & 0x02) - drawbuf[0][0] = p; - else - drawbuf[0][0] = 0; - - if(c & 0x01) - drawbuf[1][0] = p; - else - drawbuf[1][0] = 0; - - do_rcuS(x,y,m); - is_drawing--; -} - -void draw_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned char c, unsigned char m) -{ - unsigned char i,dx,dy,px,py; - unsigned int x,y; - is_drawing++; - - if (y2 > y1) // incl. POSITIVE - { - dx=x2-x1; - dy=y2-y1; - px=x1; - py=y1; - draw_pixel(x1, y1, c, m); // first pixel - if (dx>=dy) // incl. is more horizontal than vertical - { - y = y1; - for(i=0;i=dx) - { - y-=dx; - py+=1; - } - px+=1; - draw_pixel(px, py, c, m); - } - } - else // incl. is more vertical than horizontal - { - x = x1; - for(i=0;i=dy) - { - x-=dy; - px+=1; - } - py+=1; - draw_pixel(px, py, c, m); //?????? - } - }; - } - else if (y2 < y1) // incl. NEGATIVE - { - dx=x2-x1; - dy=y1-y2; // inverted to produce a positive value - dx=dx; - dy=dy; - px=x1; - py=y2; // Note: due to inverted "dy", - draw_pixel(x2, y2, c, m); // the first pixel became the last one - if (dx>=dy) // incl. is more horizontal than vertical - { - y = y1; - py=y1; - for(i=0;i=dx) - { - y-=dx; - py-=1; - } - px+=1; - draw_pixel(px, py, c, m); - } - } - else // incl. is more vertical than horizontal - { - x = x1; - px=x2; - for(i=0;i=dy) - { - x-=dy; - px-=1; - } - py+=1; - draw_pixel(px, py, c, m); - } - }; - } - is_drawing--; -} - -void draw_circle(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m) -{ - signed int tswitch; - unsigned char y, x = 0; - unsigned char d; - is_drawing++; - - d = cy - cx; - y = radius; - tswitch = 3 - 2 * radius; - while (x <= y) - { - if(x != 0) - { - draw_pixel(cx + x, cy + y, c, m); - draw_pixel(cx + x, cy - y, c, m); - } - draw_pixel(cx - x, cy + y, c, m); - draw_pixel(cx - x, cy - y, c, m); - - if(x != y) - { - if(x != 0) - { - draw_pixel(cy + y - d, cy + x, c, m); - draw_pixel(cy - y - d, cy + x, c, m); - } - draw_pixel(cy + y - d, cy - x, c, m); - draw_pixel(cy - y - d, cy - x, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - is_drawing--; -} - -void draw_qcircle(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char quarter, unsigned char c, unsigned char m) -{ - signed int tswitch; - unsigned char y, x = 0; - unsigned char d; - is_drawing++; - - d = cy - cx; - y = radius; - tswitch = 3 - 2 * radius; - - switch(quarter) - { - case TOP_LEFT: - while (x <= y) - { - draw_pixel(cx - x, cy - y, c, m); - - if(x != y) - { - draw_pixel(cy - y - d, cy - x, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case TOP_RIGHT: - while (x <= y) - { - draw_pixel(cx + x, cy - y, c, m); - - if(x != y) - { - draw_pixel(cy + y - d, cy - x, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case BOTTOM_LEFT: - while (x <= y) - { - draw_pixel(cx - x, cy + y, c, m); - - if(x != y) - { - draw_pixel(cy - y - d, cy + x, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case BOTTOM_RIGHT: - while (x <= y) - { - draw_pixel(cx + x, cy + y, c, m); - - if(x != y) - { - draw_pixel(cy + y - d, cy + x, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - } - is_drawing--; -} - -void draw_disc(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m) -{ - signed int tswitch; - unsigned char y, x = 0; - unsigned char d; - is_drawing++; - - d = cy - cx; - y = radius; - tswitch = 3 - 2 * radius; - while (x <= y) - { - if(x != y) - { - if(x != 0) - { - draw_hline(cy - y - d, cy + x, (y<<1)+1, c, m); - } - draw_hline(cy - y - d, cy - x, (y<<1)+1, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - draw_hline(cx-x, cy + y, (x<<1)+1, c, m); - draw_hline(cx-x, cy - y, (x<<1)+1, c, m); - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - is_drawing--; -} - -void draw_qdisc(unsigned char cx, unsigned char cy, unsigned char radius, unsigned char quarter, unsigned char c, unsigned char m) -{ - signed int tswitch; - unsigned char y, x = 0; - unsigned char d; - is_drawing++; - - d = cy - cx; - y = radius; - tswitch = 3 - 2 * radius; - switch(quarter) - { - case TOP_LEFT: - while (x <= y) - { - if(x != y) - { - draw_hline(cy - y - d, cy - x, y+1, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - draw_hline(cx-x, cy - y, x+1, c, m); - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case TOP_RIGHT: - while (x <= y) - { - if(x != y) - { - draw_hline(cx, cy - x, y+1, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - draw_hline(cx, cy - y, x+1, c, m); - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case BOTTOM_LEFT: - while (x <= y) - { - if(x != y) - { - draw_hline(cy - y - d, cy + x, y+1, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - draw_hline(cx-x, cy + y, x+1, c, m); - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - - case BOTTOM_RIGHT: - while (x <= y) - { - if(x != y) - { - draw_hline(cx, cy + x, y+1, c, m); - } - - if (tswitch < 0) - { - tswitch += (4 * x + 6); - } - else - { - draw_hline(cx, cy + y, x+1, c, m); - tswitch += (4 * (x - y) + 10); - y--; - } - x++; - } - break; - } - is_drawing--; -} - - -unsigned char draw_arrow(int x, int y, unsigned char ArrowDir, int ArrowLen, unsigned char Color, unsigned char Mode) -{ - int i; - int Len; - is_drawing++; - - switch(ArrowDir) - { - case ARROW_UP: - for(i=0; i r) - { - draw_block(x, y+r+1, r+1, h-(r<<1)-2,c,m); - draw_block(x+r+1, y+t, t-r-1, h-(t<<1),c,m); - draw_block(x+w-r-1, y+r+1, r+1, h-(r<<1)-2,c,m); - draw_block(x+w-t, y+t, t-r-1, h-(t<<1),c,m); - } - else - { - if(r > t) - { - draw_qdisc(x+r, y+r, r-t, TOP_LEFT, c, DRAW_XOR); - draw_qdisc(x+w-r-1, y+r, r-t, TOP_RIGHT, c, DRAW_XOR); - draw_qdisc(x+r, y+h-r-1, r-t, BOTTOM_LEFT, c, DRAW_XOR); - draw_qdisc(x+w-r-1, y+h-r-1, r-t, BOTTOM_RIGHT, c, DRAW_XOR); - } - draw_block(x, y+r+1, t, h-(r<<1)-2,c,m); - draw_block(x+w-t, y+r+1, t, h-(r<<1)-2,c,m); - } - draw_block(x+r+1, y, w-(r<<1)-2, t, c, m); - draw_block(x+r+1, y+h-t, w-(r<<1)-2, t, c, m); - } - } - is_drawing--; -} - -void draw_symbol (unsigned char x, unsigned char y, unsigned char l, unsigned char* data, unsigned char c, unsigned char m) -{ - unsigned char p; - unsigned int cnt; - is_drawing++; - - - for(cnt=0;cnt - - 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 3 of the License, 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, see . -*/ - -#ifndef LCD_H -#define LCD_H - -// the lcd data & command ports -#define LCD_CMD (*((volatile unsigned char *) 0x81000000)) -#define LCD_DATA (*((volatile unsigned char *) 0x81000001)) - -// LCD commands -#define LCD_CONTRAST 0x3A // original 0x3F (0..63) - -#define LCD_GRAYMODE_88 0x00 // original 0x3F -#define LCD_GRAYMODE_89 0x00 // original 0x3F -#define LCD_GRAYMODE_8A 0x36 // original 0x33 -#define LCD_GRAYMODE_8B 0x63 // original 0x33 -#define LCD_GRAYMODE_8C 0x67 // original 0x66 -#define LCD_GRAYMODE_8D 0x76 // original 0x66 -#define LCD_GRAYMODE_8E 0xAC // original 0x99 -#define LCD_GRAYMODE_8F 0xCA // original 0x99 - -#define LCD_DCDCx3 0x64 // -#define LCD_DCDCx4 0x65 // -#define LCD_DCDCx5 0x66 // -//~ #define LCD_DCDCx? 0x67 // ? datasheet p. 33 - -#define LCD_IRRR_1 0x20 // -#define LCD_IRRR_2 0x21 // -#define LCD_IRRR_3 0x22 // -#define LCD_IRRR_4 0x23 // -#define LCD_IRRR_5 0x24 // -#define LCD_IRRR_6 0x25 // -#define LCD_IRRR_7 0x26 // -#define LCD_IRRR_8 0x27 // - -#define LCD_ALLON 0xA4 // black -#define LCD_ALLOFF 0xA5 // white -#define LCD_NORMAL 0xA6 // -#define LCD_REVERSE 0xA7 // - -#define LCD_SLEEP 0xA9 // enter Sleep Mode. internal oscillator and LCD powersupply off - -#define LCD_OSC_START 0xAB // - -#define LCD_OFF 0xAE // -#define LCD_ON 0xAF // - -#define LCD_WAKEUP 0xE1 // -#define LCD_RESET 0xE2 // - - -// drawmodes -#define DRAW_PUT 0 -#define DRAW_XOR 1 -#define DRAW_ERASE 2 -#define DRAW_ALPHA 3 -#define DRAW_NORCU 4 - -#define LCD_COLOR_W 0 -#define LCD_COLOR_LG 1 -#define LCD_COLOR_DG 2 -#define LCD_COLOR_B 3 - -#define LCD_SIZE_X 128 -#define LCD_SIZE_Y 160 - -#define ARROW_UP 1 -#define ARROW_DOWN 2 -#define ARROW_LEFT 3 -#define ARROW_RIGHT 4 -#define ARROW_LEN 4 - -#define TOP_LEFT 0 -#define TOP_RIGHT 1 -#define BOTTOM_LEFT 2 -#define BOTTOM_RIGHT 3 - -#define BORDER_LEFT 0 -#define BORDER_RIGHT 127 - -extern unsigned char drawbuf[2][LCD_SIZE_X]; -extern unsigned int is_drawing; - -extern volatile unsigned char symbols; -extern volatile unsigned char oldsymbols; -#define symbolRF (1<<0) -extern const unsigned char symIR[]; - -typedef void(*rcu_fn)(unsigned char x, unsigned char y, unsigned char l, unsigned char m); -typedef void (*rcuAlpha_fn) (unsigned char x, unsigned char y, unsigned char l, unsigned char m, - unsigned char* alphaBuf); -typedef void(*rcus_fn)(unsigned char x, unsigned char y, unsigned char m); -typedef void(*bl_fn)(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m); -typedef void(*ln_fn)(unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); - -// Function pointer to section (".text.fastcode") -extern rcu_fn do_rcu; -extern rcuAlpha_fn do_rcuAlpha; -extern rcus_fn do_rcuS; -extern bl_fn draw_block; -extern ln_fn draw_hline; -extern ln_fn draw_vline; - - -extern void lcd_set (unsigned char s); - -extern void lcd_init (unsigned char s); -extern void lcd_enable (unsigned char e); -//extern void do_rcu(unsigned char x, unsigned char y, unsigned char l, unsigned char m); -//extern void do_rcuAlpha (unsigned char x, unsigned char y, unsigned char l, unsigned char m, -// unsigned char* alphaBuf); -//extern void do_rcuS(unsigned char x, unsigned char y, unsigned char m); -extern void lcd_set_contrast(unsigned char c); - -extern void lcd_fill (unsigned char f); -extern void draw_logo (void); -//extern void draw_block (unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char c, unsigned char m); -//extern void draw_hline (unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); -//extern void draw_vline (unsigned char x, unsigned char y, unsigned char l, unsigned char c, unsigned char m); -extern void draw_rect (unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char lw, unsigned char c, unsigned char m); -extern void draw_pixel (unsigned char x, unsigned char y, unsigned char c, unsigned char m); -extern void draw_line (unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned char c, unsigned char m); -extern void draw_circle (unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m); -extern void draw_qcircle (unsigned char cx, unsigned char cy, unsigned char radius, unsigned char quarter, unsigned char c, unsigned char m); -extern void draw_disc (unsigned char cx, unsigned char cy, unsigned char radius, unsigned char c, unsigned char m); -extern void draw_qdisc (unsigned char cx, unsigned char cy, unsigned char radius, unsigned char quarter, unsigned char c, unsigned char m); - -extern unsigned char draw_arrow (int x, int y, unsigned char ArrowDir, int ArrowLen, unsigned char Color, unsigned char Mode); - -extern void draw_frame(unsigned char x, unsigned char y, unsigned char w, unsigned char h, unsigned char t, unsigned char r, unsigned char c, unsigned char m); -extern void draw_symbol(unsigned char x, unsigned char y, unsigned char l,unsigned char* data, unsigned char c, unsigned char m); -extern void refresh_symbols(unsigned int cb); -extern void redraw_symbols(void); - -extern void update_active_ind (void); - -#endif diff --git a/boop/trunk/flash/Make.conf b/boop/trunk/flash/Make.conf deleted file mode 100644 index 9560103..0000000 --- a/boop/trunk/flash/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := flash.c bfs.c diff --git a/boop/trunk/flash/bfs.c b/boop/trunk/flash/bfs.c deleted file mode 100644 index 92e75fd..0000000 --- a/boop/trunk/flash/bfs.c +++ /dev/null @@ -1,730 +0,0 @@ -/* - bfs.c - Betty File System - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#include "bfs.h" -#include "flash.h" -#include "lcd.h" -#include "fonty.h" -#include "global.h" - -extern const unsigned long secaddr[19]; - -//Public functions -unsigned char BFS_Mount() -{ - //Return true=ok - unsigned char BfsSector; - unsigned long Offset; - unsigned long FileHeaderAddress; - unsigned char RecordInfo; - unsigned long Id; - unsigned short Len; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - const unsigned long BfsVersion = BFS_VERSION; - - //Format - for(BfsSector=0; BfsSector BFS_SECTOR_HEADER_LEN) - { - //No free sector - //ASSERT(false); - return false;//Error - } - - return true;//OK -} - -unsigned short BFS_LoadFile(unsigned long Id, unsigned short MaxLen, unsigned char *Buffer) -{ - //Return: ReadLen - unsigned long FileHeaderAddress; - unsigned char RecordInfo; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - - if(!BFS_GetFileHeaderAddress(Id, &FileHeaderAddress)) - { - return 0;//File not found - } - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &TempId, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - memcpy(Buffer, (unsigned char*)FileBodyAddress, min(FileBodyLen, MaxLen)); - - return min(FileBodyLen, MaxLen);//Error -} - -unsigned char BFS_CmpFile(unsigned long Id, unsigned short MaxLen, unsigned char *Buffer) -{ - //Return: ReadLen - unsigned long FileHeaderAddress; - unsigned char RecordInfo; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - int x; - - if(!BFS_GetFileHeaderAddress(Id, &FileHeaderAddress)) - { - return 0;//File not found - } - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &TempId, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - x=memcmp(Buffer, (unsigned char*)FileBodyAddress, min(FileBodyLen, MaxLen)); - - if (x) - return 0;//not equal - return 1; -} - -void* BFS_LoadFileAddr(unsigned long Id) -{ - //Return: ReadLen - unsigned long FileHeaderAddress; - unsigned char RecordInfo; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - - if(!BFS_GetFileHeaderAddress(Id, &FileHeaderAddress)) - { - return 0;//File not found - } - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &TempId, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - - return (void*)FileBodyAddress; - -} - -unsigned char BFS_SaveFile(unsigned long Id, unsigned short Len, unsigned char *Buffer) -{ - //Return true=OK - unsigned char BfsSector; - unsigned char RecordInfo; - int i; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - unsigned char OverridePossible; - unsigned char CreateNewFile; - unsigned char Byte; - unsigned long FileHeaderAddress; - unsigned char HeaderSize; - - CreateNewFile = false; - if(BFS_GetFileHeaderAddress(Id, &FileHeaderAddress)) - { - //File is already present - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &TempId, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - //Same len? - OverridePossible = false; - if(Len == FileBodyLen) - { - //Is override possible (no change from 0 to 1)? - OverridePossible = true; - for(i=0; i1 error - OverridePossible = false; - } - } - } - if(OverridePossible) - { - if(writeBuffer(FileBodyAddress, Buffer, Len) != 0) - { - return false;//Error - } - } - else - { - //Delete existing file - Byte = (RecordInfo & 0x3F) | (BFS_TYPE_DELETED << 6); - writeBuffer(FileHeaderAddress, &Byte, 1); - glBfsDeletedBytes[BFS_ByteAddressToBfsSector(FileHeaderAddress)] += (FileBodyAddress - FileHeaderAddress) + FileBodyLen; - - CreateNewFile = true; - } - } - else - { - //File not present - CreateNewFile = true; - } - - while(CreateNewFile) - { - //Check free space - //Start with the fullest, ignore the last empty one - for(i=0; (i<(BFS_SECTORS-1)) && CreateNewFile; i++) - { - BfsSector = glBfsFillOrder[i]; - FileHeaderAddress = glBfsOffsetToFreeRecord[BfsSector]; - if((FileHeaderAddress + BFS_MAX_RECORD_HEADER_LEN + Len) < BFS_SECTOR_SIZE) - { - //Enough space free - BFS_WriteAtAddress(BFS_GetPhyByteAddrFromBfsSector(BfsSector) + FileHeaderAddress, Id, Len, Buffer, &HeaderSize); - - glBfsOffsetToFreeRecord[BfsSector] += HeaderSize + Len; - BFS_SortArray(); - - CreateNewFile = false; - } - } - - if(CreateNewFile) - { - //No space free - //copy only active files (not the files markes as deleted) to the empty sector and erase the source sector - if(!BFS_MakeSpace(Len)) - { - //Still not enough space free - return false;//Error - } - } - } - - return true;//OK -} - -unsigned char BFS_DeleteFile(unsigned long Id) -{ - //Return true=OK - //Return false=File not found/File was already deleted - - unsigned char RecordInfo; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - unsigned char Byte; - unsigned long FileHeaderAddress; - - if(BFS_GetFileHeaderAddress(Id, &FileHeaderAddress)) - { - //File is present - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &TempId, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - - //Delete existing file - Byte = (RecordInfo & 0x3F) | (BFS_TYPE_DELETED << 6); - writeBuffer(FileHeaderAddress, &Byte, 1); - - glBfsDeletedBytes[BFS_ByteAddressToBfsSector(FileHeaderAddress)] += (FileBodyAddress - FileHeaderAddress) + FileBodyLen; - return true;//OK - } - - return false;//File not found/File was already deleted -} - -unsigned char BFS_DeleteAllFiles() -{ - //Return true=ok - unsigned char BfsSector; - unsigned long Offset; - const unsigned long BfsVersion = BFS_VERSION; - - //Format - for(BfsSector=0; BfsSector glBfsDeletedBytes[BfsSectorWithMostDelFiles]) - { - BfsSectorWithMostDelFiles = BfsSector; - } - } - if(glBfsDeletedBytes[BfsSectorWithMostDelFiles] == 0) - { - //No sector has files marked as deleted -> nothing to free - return false;//Not enough space free - } - - //Copy active files to the empty bfs sector - BfsSector = glBfsFillOrder[BFS_SECTORS - 1];//The empty destination sector - DstAddress = BFS_GetPhyByteAddrFromBfsSector(BfsSector) + BFS_SECTOR_HEADER_LEN; - - FileHeaderAddress = BFS_GetPhyByteAddrFromBfsSector(BfsSectorWithMostDelFiles) + BFS_SECTOR_HEADER_LEN;//Source - do - { - BFS_GetFileHeaderInfo(FileHeaderAddress, &RecordInfo, &Id, &FileBodyLen, &FileBodyAddress, &IsFree, &IsActive); - if(IsActive) - { - //Copy the active file to the destination sector - BFS_FlashToFlashCopy(DstAddress, FileHeaderAddress, (FileBodyAddress - FileHeaderAddress) + FileBodyLen); - DstAddress += (FileBodyAddress - FileHeaderAddress) + FileBodyLen; - - glBfsOffsetToFreeRecord[BfsSector] += (FileBodyAddress - FileHeaderAddress) + FileBodyLen; - } - FileHeaderAddress = FileBodyAddress + FileBodyLen; - }while(!IsFree); - - //Erase the source sector - if(eraseSector(BFS_CHIP, BFS_FIRST_SECTOR + BfsSectorWithMostDelFiles) != 0) - { - return false;//Error - } - //Write sector header - Offset = BFS_GetPhyByteAddrFromBfsSector(BfsSectorWithMostDelFiles); - writeBuffer(Offset, (unsigned char*)BFS_MAGIC, 4); - writeBuffer(Offset + 4, (unsigned char*)&BfsVersion, 4); - - glBfsDeletedBytes[BfsSectorWithMostDelFiles] = 0; - glBfsOffsetToFreeRecord[BfsSectorWithMostDelFiles] = BFS_SECTOR_HEADER_LEN; - - BFS_SortArray(); - }while(1); - - return false;//Not enough space free -} - -void BFS_SortArray() -{ - //Sort the glBfsFillOrder array - unsigned char RepeatSort; - unsigned char BfsSector; - unsigned char Byte; - - do - { - RepeatSort = false; - for(BfsSector=0; BfsSector<(BFS_SECTORS-1); BfsSector++) - { - if(glBfsOffsetToFreeRecord[glBfsFillOrder[BfsSector]] < glBfsOffsetToFreeRecord[glBfsFillOrder[BfsSector+1]]) - { - //Swap - Byte = glBfsFillOrder[BfsSector]; - glBfsFillOrder[BfsSector] = glBfsFillOrder[BfsSector+1]; - glBfsFillOrder[BfsSector+1] = Byte; - RepeatSort = true; - } - } - }while(RepeatSort); -} - -unsigned long BFS_GetPhyByteAddrFromBfsSector(unsigned char BfsSector) -{ - //BFS_FIRST_SECTOR + BfsSector = PhyFlashSector - - //ASSERT((BFS_FIRST_SECTOR + BfsSector) < FLASH_SECTORS); - - return BFS_FLASH_BASE + (secaddr[BfsSector + BFS_FIRST_SECTOR] * 2); -} - -unsigned char BFS_IsSectorFormated(unsigned char BfsSector) -{ - //Is the sector formated and is the version valid - - unsigned long Offset; - unsigned long Version; - - Offset = BFS_GetPhyByteAddrFromBfsSector(BfsSector); - - if(memcmp((unsigned char*)Offset, BFS_MAGIC, 4) != 0) - { - return false;//Magic not found -> not formated - } - - Version = *((unsigned long*) (Offset + 4)); - if(Version != BFS_VERSION) - { - return false;//Magic found but wrong version - } - - return true;//Formated -} - -void BFS_GetFileHeaderInfo(unsigned long FileHeaderAddress, unsigned char *pRecordInfo, unsigned long *pId, unsigned short *pLen, unsigned long *pFileBodyAddress, unsigned char *pIsFree, unsigned char *pIsActive) -{ - unsigned char State; - unsigned char IdByteCount; - unsigned char LenByteCount; - unsigned long Offset; - - Offset = FileHeaderAddress; - *pRecordInfo = readByte(Offset++); - State = ((*pRecordInfo) >> 6) & 0x03; - IdByteCount = 1 + (((*pRecordInfo) >> 1) & 0x03); - LenByteCount = 1 + ((*pRecordInfo) & 0x01); - - if(State == BFS_TYPE_FREE) - { - //Free - *pIsFree = true; - *pIsActive = false; - *pId = 0; - *pLen = 0; - *pFileBodyAddress = 0; - } - else - { - //Active or deleted - *pIsFree = false; - *pIsActive = (State == BFS_TYPE_ACTIVE) ? true : false; - - *pId = readByte(Offset++); - if(IdByteCount > 1) - { - *pId |= readByte(Offset++) << 8; - } - if(IdByteCount > 2) - { - *pId |= readByte(Offset++) << 16; - } - if(IdByteCount > 3) - { - *pId |= readByte(Offset++) << 24; - } - - *pLen = readByte(Offset++); - if(LenByteCount > 1) - { - *pLen |= readByte(Offset++) << 8; - } - - *pFileBodyAddress = Offset; - } -} - -unsigned char BFS_GetFileHeaderAddress(unsigned long Id, unsigned long *pFileHeaderAddress) -{ - //Return true = File is present, pFileHeaderAddress is valid - //Return false = File not found (e.g. deleted), pFileHeaderAddress is invalid - unsigned char BfsSector; - unsigned long PhyAddr; - unsigned char RecordInfo; - unsigned long TempId; - unsigned short FileBodyLen; - unsigned long FileBodyAddress; - unsigned char IsFree; - unsigned char IsActive; - - *pFileHeaderAddress = 0; - - for(BfsSector=0; BfsSector= ByteAddress) && (FileHeaderAddress < (ByteAddress + BFS_SECTOR_SIZE))) - { - return BfsSector; - } - } - - //ASSERT(false); - BfsSector = 0xFF;//Error - return BfsSector; -} - -unsigned char BFS_WriteAtAddress(unsigned long FileHeaderAddress, unsigned long Id, unsigned short Len, unsigned char *Buffer, unsigned char *pHeaderSize) -{ - //Return true=OK - unsigned char RecordHeaderPos; - unsigned char RecordInfo; - unsigned char RecordHeader[BFS_MAX_RECORD_HEADER_LEN]; - unsigned char IdByteCount; - unsigned char LenByteCount; - - //IdByteCount - if(Id & 0xFF000000) - { - IdByteCount = BFS_ID_4BYTES; - } - else - { - if(Id & 0xFF0000) - { - IdByteCount = BFS_ID_3BYTES; - } - else - { - if(Id & 0xFF00) - { - IdByteCount = BFS_ID_2BYTES; - } - else - { - IdByteCount = BFS_ID_1BYTE; - } - } - } - - //LenByteCount - LenByteCount = (Len < 0x100) ? BFS_ONE_LEN_BYTE : BFS_TWO_LEN_BYTES; - - //RecordInfo - RecordInfo = (BFS_TYPE_ACTIVE << 6) | (IdByteCount << 1) | LenByteCount; - RecordHeaderPos = 0; - RecordHeader[RecordHeaderPos++] = RecordInfo; - - //Id - RecordHeader[RecordHeaderPos++] = Id & 0xFF; - if(Id >= 0x100) - { - RecordHeader[RecordHeaderPos++] = (Id >> 8) & 0xFF; - if(Id >= 0x10000) - { - RecordHeader[RecordHeaderPos++] = (Id >> 16) & 0xFF; - if(Id >= 0x1000000) - { - RecordHeader[RecordHeaderPos++] = (Id >> 24) & 0xFF; - } - } - } - - //Len - RecordHeader[RecordHeaderPos++] = Len & 0xFF; - if(Len >= 0x100) - { - RecordHeader[RecordHeaderPos++] = (Len >> 8) & 0xFF; - } - - //Write record header - writeBuffer(FileHeaderAddress, RecordHeader, RecordHeaderPos); - //Write record data - writeBuffer(FileHeaderAddress + RecordHeaderPos, Buffer, Len); - - *pHeaderSize = RecordHeaderPos; - - return true;//OK -} - -unsigned char readByte(unsigned long ByteAddr) -{ - unsigned char Byte; - Byte = ((unsigned char*) ByteAddr)[0]; - - return Byte; -} - -unsigned short readWord(unsigned long WordAddr) -{ - //addr = unsigned short address - int Offset; - unsigned short Word; - - //ASSERT((WordAddr * 2) >= FLASH1_BASE); - //ASSERT((WordAddr * 2) < (FLASH1_BASE + FLASH_SIZE)); - - Offset = (WordAddr * 2) - FLASH1_BASE; - - Word = *((unsigned short *)(WordAddr<<1)); - - return Word; -} - - -int writeBuffer(unsigned long ByteAddr, unsigned char *buffer, unsigned short len) -{ - //Return 0=OK - int Offset; - unsigned short Word; - - Offset = 0; - - if(ByteAddr & 1) - { - //Not word boundary - Word = readWord(ByteAddr / 2); - Word &= (buffer[Offset] << 8) | 0xFF; - writeWord(ByteAddr & 0xFFFFFFFE, Word); - Offset++; - ByteAddr++; - len--; - } - - while(len >= 2) - { - Word = readWord(ByteAddr / 2); - Word &= buffer[Offset] | (buffer[Offset + 1] << 8); - writeWord(ByteAddr, Word); - Offset += 2; - ByteAddr += 2; - len -= 2; - } - - if(len == 1) - { - Word = readWord(ByteAddr / 2); - Word &= 0xFF00 | buffer[Offset]; - writeWord(ByteAddr, Word); - Offset++; - ByteAddr++; - len--; - } - - return 0;//OK -} - diff --git a/boop/trunk/flash/bfs.h b/boop/trunk/flash/bfs.h deleted file mode 100644 index ded16ba..0000000 --- a/boop/trunk/flash/bfs.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - bfs.h - Betty File System - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef BFS_H -#define BFS_H - -//Define here your file ids (range 1 - 0xFFFFFFFF) -#define BFS_ID_remotes 1 -#define BFS_ID_settings 2 -#define BFS_ID_RFsettings 3 -#define BFS_ID_RAWslot0 4 -#define BFS_ID_RAWslot1 5 -#define BFS_ID_RAWslot2 6 -#define BFS_ID_RAWslot3 7 - - -//Use last 3 64 KByte sectors (16..18) of the second chip for BFS -#define BFS_FIRST_SECTOR 16 -#define BFS_SECTORS 3 -#define BFS_SECTOR_SIZE 0x10000 - -#define BFS_SECTOR_HEADER_LEN 0x10 -#define BFS_MAGIC "BFS" -#define BFS_VERSION 1 -#define BFS_CHIP 1 - -#define BFS_TYPE_DELETED 0 -#define BFS_TYPE_ACTIVE 1 -#define BFS_TYPE_FREE 3 -#define BFS_ID_1BYTE 0 -#define BFS_ID_2BYTES 1 -#define BFS_ID_3BYTES 2 -#define BFS_ID_4BYTES 3 -#define BFS_ONE_LEN_BYTE 0 -#define BFS_TWO_LEN_BYTES 1 - -//Max. 1 info byte, 4 ID bytes, 2 length bytes -#define BFS_MAX_RECORD_HEADER_LEN (1+4+2) - -#define BFS_FLASH_BASE FLASH1_BASE - -unsigned long glBfsOffsetToFreeRecord[BFS_SECTORS];//Based on sector start -unsigned short glBfsDeletedBytes[BFS_SECTORS];//FileHeader + FileBody -unsigned char glBfsFillOrder[BFS_SECTORS];//[0]=Fullest - -//Public -unsigned char BFS_Mount();//Call this before calling other BFS functions -unsigned short BFS_LoadFile(unsigned long Id, unsigned short MaxLen, unsigned char *Buffer); -unsigned char BFS_CmpFile(unsigned long Id, unsigned short MaxLen, unsigned char *Buffer); -void* BFS_LoadFileAddr(unsigned long Id); -unsigned char BFS_SaveFile(unsigned long Id, unsigned short Len, unsigned char *Buffer); -unsigned char BFS_DeleteFile(unsigned long Id); -unsigned char BFS_DeleteAllFiles(); - -//Internal -unsigned char BFS_FlashToFlashCopy(unsigned long DstByteAddr, unsigned long SrcByteAddr, unsigned short ByteLen); -unsigned char BFS_MakeSpace(unsigned short RequiredFileBodySize); -void BFS_SortArray(); -unsigned long BFS_GetPhyByteAddrFromBfsSector(unsigned char BfsSector); -unsigned char BFS_IsSectorFormated(unsigned char BfsSector); -void BFS_GetFileHeaderInfo(unsigned long FileHeaderAddress, unsigned char *pRecordInfo, unsigned long *pId, unsigned short *pLen, unsigned long *pFileBodyAddress, unsigned char *pIsFree, unsigned char *pIsActive); -unsigned char BFS_GetFileHeaderAddress(unsigned long Id, unsigned long *pFileHeaderAddress); -unsigned char BFS_ByteAddressToBfsSector(unsigned long FileHeaderAddress); -unsigned char BFS_WriteAtAddress(unsigned long FileHeaderAddress, unsigned long Id, unsigned short Len, unsigned char *Buffer, unsigned char *pHeaderSize); - -unsigned char readByte(unsigned long ByteAddr); -unsigned short readWord(unsigned long WordAddr); - -int writeBuffer(unsigned long ByteAddr, unsigned char *buffer, unsigned short len); - -#endif diff --git a/boop/trunk/flash/flash.c b/boop/trunk/flash/flash.c deleted file mode 100644 index 4b31794..0000000 --- a/boop/trunk/flash/flash.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - flash.c - writing/erasing flash - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "flash.h" -#include "serial.h" -#include "lcd.h" - -const unsigned long secaddr[19] = -{ 0x00000, - 0x02000, - 0x03000, - 0x04000, - 0x08000, - 0x10000, - 0x18000, - 0x20000, - 0x28000, - 0x30000, - 0x38000, - 0x40000, - 0x48000, - 0x50000, - 0x58000, - 0x60000, - 0x68000, - 0x70000, - 0x78000 }; - -unsigned long flash_base; - -int eraseSector(unsigned char chip, unsigned char secnum) -{ - - if(chip == 0) - flash_base = FLASH0_BASE; - else - flash_base = FLASH1_BASE; - - serial_puts("Erasing Sector: 0x"); - putHexW(flash_base + (secaddr[secnum]<<1)); - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x80; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base + (secaddr[secnum]<<1))) = 0x30; - - if((*((volatile unsigned short *)(flash_base)) & 0x44) == (*((volatile unsigned short *)(flash_base)) & 0x44)) - { - serial_puts(" -- ERROR\n"); - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - - while ((*((volatile unsigned short *)(flash_base)) & 0x44) != (*((volatile unsigned short *)(flash_base)) & 0x44)) - {} - serial_puts(" +> OK\n"); - return 0; -} - -int eraseFlash(unsigned char chip) -{ - if(chip == 0) - flash_base = FLASH0_BASE; - else - flash_base = FLASH1_BASE; - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x80; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x10; - - if((*((volatile unsigned short *)(flash_base)) & 0x44) == (*((volatile unsigned short *)(flash_base)) & 0x44)) - { - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - - while ((*((volatile unsigned short *)(flash_base)) & 0x44) != (*((volatile unsigned short *)(flash_base)) & 0x44)) - {} - return 0; -} - -int writeWord(unsigned long addr, unsigned short data) -{ - flash_base = addr & 0xFF000000; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xA0; - *((volatile unsigned short *)(addr)) = data; - - if(*((volatile unsigned short *)(addr)) == *((volatile unsigned short *)(addr))) - { - serial_puts("NACK"); - *((volatile unsigned short *)(flash_base)) = 0xF0; - return -1; - } - - while(*((volatile unsigned short *)(addr)) != *((volatile unsigned short *)(addr))) - {} - return 0; -} - -void prepareBulk(unsigned long dst) -{ - flash_base = dst & 0xFF000000; - - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0xAA; - *((volatile unsigned short *)(flash_base | 0x554)) = 0x55; - *((volatile unsigned short *)(flash_base | 0xAAA)) = 0x20; -} - -void endBulk(unsigned long dst) -{ - flash_base = dst & 0xFF000000; - - *((volatile unsigned short *)(flash_base)) = 0x90; - *((volatile unsigned short *)(flash_base)) = 0x00; -} - -int writeBulk(unsigned long src, unsigned long dst, unsigned long cnt) -{ - unsigned short check1, check2; - while(cnt--) - { - *((volatile unsigned short *)dst) = 0xA0; - *((volatile unsigned short *)dst) = *((volatile unsigned short *)src); - -retry: - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if((check1 & 0x40) == (check2 & 0x40)) - goto done; - if(!(check2 & 0x20)) - goto retry; - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if((check1 & 0x40) == (check2 & 0x40)) - goto done; - *((volatile unsigned short *)dst) = 0xF0; - return -1; - -done: - check1 = *((volatile unsigned short *)dst); - check2 = *((volatile unsigned short *)dst); - if(check1 != check2) - goto retry; - - src+=2; - dst+=2; - } - - return 0; -} - -unsigned short getFlashID(void) { - - unsigned short manufactor = 0; - unsigned short device = 0; - - *((volatile unsigned short *) FLASH1_BASE + 0x555) = 0xAA; - *((volatile unsigned short *) FLASH1_BASE + 0x2AA) = 0x55; - *((volatile unsigned short *) FLASH1_BASE + 0x555) = 0x90; - manufactor = *((volatile unsigned short *) FLASH1_BASE + 0x100); - (*((volatile unsigned short *) FLASH1_BASE)) = 0xF0; - - *((volatile unsigned short *) FLASH1_BASE + 0x555) = 0xAA; - *((volatile unsigned short *) FLASH1_BASE + 0x2AA) = 0x55; - *((volatile unsigned short *) FLASH1_BASE + 0x555) = 0x90; - device = *((volatile unsigned short *) FLASH1_BASE + 0x01); - (*((volatile unsigned short *) FLASH1_BASE)) = 0xF0; - - return(((manufactor << 8) & 0xFF00) | (device & 0x00FF)); - -} diff --git a/boop/trunk/flash/flash.h b/boop/trunk/flash/flash.h deleted file mode 100644 index ffffc81..0000000 --- a/boop/trunk/flash/flash.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - flash.h - writing/erasing flash - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef FLASH_H -#define FLASH_H - -#define FLASH0_BASE 0x80000000 -#define FLASH1_BASE 0x82000000 - -const unsigned long secaddr[19]; - -void prepareBulk(unsigned long dst); -void endBulk(unsigned long dst); -int eraseSector(unsigned char chip, unsigned char secnum); -int eraseFlash(unsigned char chip); -int writeWord(unsigned long addr, unsigned short data); -int writeBulk(unsigned long src, unsigned long dst, unsigned long cnt); -void lcd_set(unsigned char s); -unsigned short getFlashID(void); - -#endif diff --git a/boop/trunk/games/Make.conf b/boop/trunk/games/Make.conf deleted file mode 100644 index 5777587..0000000 --- a/boop/trunk/games/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := gamesmenu.c tic_tac_toe.c sokoban.c connect4.c diff --git a/boop/trunk/games/c4_map.h b/boop/trunk/games/c4_map.h deleted file mode 100644 index 1996802..0000000 --- a/boop/trunk/games/c4_map.h +++ /dev/null @@ -1,64 +0,0 @@ -const signed char map[7][6][14] = -{ - { - { 0, 24, 45, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 4, 24, 25, 49, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 8, 24, 25, 26, 53, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 12, 24, 25, 26, 60, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 16, 25, 26, 64, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 20, 26, 68, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - }, - { - { 0, 1, 27, 46, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 4, 5, 27, 28, 45, 50, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 8, 9, 27, 28, 29, 49, 54, 60, -1, 0, 0, 0, 0, 0 }, - { 12, 13, 27, 28, 29, 53, 59, 64, -1, 0, 0, 0, 0, 0 }, - { 16, 17, 28, 29, 63, 68, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 20, 21, 29, 67, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - }, - { - { 0, 1, 2, 30, 47, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 4, 5, 6, 30, 31, 46, 51, 60, -1, 0, 0, 0, 0, 0 }, - { 8, 9, 10, 30, 31, 32, 45, 50, 55, 59, 64, -1, 0, 0 }, - { 12, 13, 14, 30, 31, 32, 49, 54, 58, 63, 68, -1, 0, 0 }, - { 16, 17, 18, 31, 32, 53, 62, 67, -1, 0, 0, 0, 0, 0 }, - { 20, 21, 22, 32, 66, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - }, - { - { 0, 1, 2, 3, 33, 48, 60, -1, 0, 0, 0, 0, 0, 0 }, - { 4, 5, 6, 7, 33, 34, 47, 52, 59, 64, -1, 0, 0, 0 }, - { 8, 9, 10, 11, 33, 34, 35, 46, 51, 56, 58, 63, 68, -1 }, - { 12, 13, 14, 15, 33, 34, 35, 45, 50, 55, 57, 62, 67, -1 }, - { 16, 17, 18, 19, 34, 35, 49, 54, 61, 66, -1, 0, 0, 0 }, - { 20, 21, 22, 23, 35, 53, 65, -1, 0, 0, 0, 0, 0, 0 }, - }, - { - { 1, 2, 3, 36, 59, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 5, 6, 7, 36, 37, 48, 58, 63, -1, 0, 0, 0, 0, 0 }, - { 9, 10, 11, 36, 37, 38, 47, 52, 57, 62, 67, -1, 0, 0 }, - { 13, 14, 15, 36, 37, 38, 46, 51, 56, 61, 66, -1, 0, 0 }, - { 17, 18, 19, 37, 38, 50, 55, 65, -1, 0, 0, 0, 0, 0 }, - { 21, 22, 23, 38, 54, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - }, - { - { 2, 3, 39, 58, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 6, 7, 39, 40, 57, 62, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 10, 11, 39, 40, 41, 48, 61, 66, -1, 0, 0, 0, 0, 0 }, - { 14, 15, 39, 40, 41, 47, 52, 65, -1, 0, 0, 0, 0, 0 }, - { 18, 19, 40, 41, 51, 56, -1, 0, 0, 0, 0, 0, 0, 0 }, - { 22, 23, 41, 55, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - }, - { - { 3, 42, 57, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 7, 42, 43, 61, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 11, 42, 43, 44, 65, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 15, 42, 43, 44, 48, -1, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 19, 43, 44, 52, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 23, 44, 56, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - } -}; - -const signed char drop_order[7] = -{ - 3, 4, 2, 5, 1, 6, 0 -}; diff --git a/boop/trunk/games/connect4.c b/boop/trunk/games/connect4.c deleted file mode 100644 index 8f98a55..0000000 --- a/boop/trunk/games/connect4.c +++ /dev/null @@ -1,965 +0,0 @@ -/* - connect4.c - game - - the bulk of this file is code reused from: - * Connect-4 Algorithm - * Version 3.10 - * By Keith Pomakis - * (pomakis@pobox.com) - *April, 2005 - - modifications & adoption to boop: - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "timerfuncs.h" -#include "backlight.h" -#include "connect4.h" - -extern unsigned char autorepeat; - -unsigned int seed; - -unsigned char c4_abort; - -#define other(x) ((x) ^ 1) -#define real_player(x) ((x) & 1) - -#define pop_state() \ - (current_state = &state_stack[--depth]) - -/* The "goodness" of the current state with respect to a player is the */ -/* score of that player minus the score of the player's opponent. A */ -/* positive value will result if the specified player is in a better */ -/* situation than his/her opponent. */ - -#define goodness_of(player) \ - (current_state->score[player] - current_state->score[other(player)]) - -/* A local struct which defines the state of a game. */ - -#define C4_SIZEX 7 -#define C4_SIZEY 6 -#define C4_TOTALSIZE (C4_SIZEX*C4_SIZEY) - -#define C4_MAGICWIN (1 << 4) - -#define C4_WINPLACES 69 - -typedef int(*ev_fn)(int player, int level, int alpha, int beta); -typedef void(*ps_fn)(void); -typedef int(*dp_fn)(int player, int column); -typedef void(*mc_fn)(char *d, char *s, unsigned int cnt); - -static ev_fn evaluate; -static ps_fn push_state; -static dp_fn drop_piece; -static mc_fn mcpy; - -typedef struct { - - char board[C4_SIZEX][C4_SIZEY]; /* The board configuration of the game state. */ - /* board[x][y] specifies the position of the */ - /* xth column and the yth row of the board, */ - /* where column and row numbering starts at 0. */ - /* (The 0th row is the bottom row.) */ - /* A value of 0 specifies that the position is */ - /* occupied by a piece owned by player 0, a */ - /* value of 1 specifies that the position is */ - /* occupied by a piece owned by player 1, and */ - /* a value of C4_NONE specifies that the */ - /* position is unoccupied. */ - - int score_array[2][C4_WINPLACES]; /* An array specifying statistics on both */ - /* players. score_array[0] specifies the */ - /* statistics for player 0, while */ - /* score_array[1] specifies the statistics for */ - /* player 1. */ - - int score[2]; /* The actual scores of each player, deducible */ - /* from score_array, but kept separately for */ - /* efficiency. The score of player x is the */ - /* sum of score_array[x]. A score is */ - /* basically a function of how many winning */ - /* positions are still available to the */ - /* and how close he/she is to achieving each */ - /* of these positions. */ - - short int winner; /* The winner of the game - either 0, 1 or */ - /* C4_NONE. Deducible from score_array, but */ - /* kept separately for efficiency. */ - - int num_of_pieces; /* The number of pieces currently occupying */ - /* board spaces. Deducible from board, but */ - /* kept separately for efficiency. */ - -} Game_state; - -/* Static global variables. */ - -#include "c4_map.h" - -static Game_state *state_stack; //[C4_MAX_LEVEL+1]; -static Game_state *current_state; -static int depth; -static int states_allocated = 0; -//static int drop_order[7]; - - -unsigned long int rand31(void) -{ - unsigned long int hi, lo; - lo = 16807 * (seed & 0xFFFF); - hi = 16807 * (seed >> 16); - lo += (hi & 0x7FFF) << 16; - lo += hi >> 15; - if(lo > 0x7FFFFFFF) lo -= 0x7FFFFFFF; - return(seed = (long)lo); -} - -/****************************************************************************/ -/** **/ -/** This function sets up a new game. This must be called exactly once **/ -/** before each game is started. Before it can be called a second time, **/ -/** end_game() must be called to destroy the previous game. **/ -/** **/ -/** width and height are the desired dimensions of the game board, while **/ -/** num is the number of pieces required to connect in a row in order to **/ -/** win the game. **/ -/** **/ -/****************************************************************************/ - -void -c4_new_game(int width, int height, int num) -{ - register int i, j; - - depth = 0; - current_state = &state_stack[0]; - - for (i=0; iboard[i][j] = C4_NONE; - } - - for (i=0; iscore_array[0][i] = 1; - current_state->score_array[1][i] = 1; - } - - current_state->score[0] = current_state->score[1] = C4_WINPLACES; - current_state->winner = C4_NONE; - current_state->num_of_pieces = 0; - - states_allocated = 1; -} - -/****************************************************************************/ -/** **/ -/** This function updates the score of the specified player in the **/ -/** context of the current state, given that the player has just placed **/ -/** a game piece in column x, row y. **/ -/** **/ -/****************************************************************************/ - -static void -update_score(int player, int x, int y) -{ - register int i; - int win_index; - int this_difference = 0, other_difference = 0; - int other_player = other(player); - - for (i=0; map[x][y][i] != -1; i++) { - win_index = map[x][y][i]; - this_difference += current_state->score_array[player][win_index]; - other_difference += current_state->score_array[other_player][win_index]; - - current_state->score_array[player][win_index] <<= 1; - current_state->score_array[other_player][win_index] = 0; - - if (current_state->score_array[player][win_index] == C4_MAGICWIN) - if (current_state->winner == C4_NONE) - current_state->winner = player; - } - - current_state->score[player] += this_difference; - current_state->score[other_player] -= other_difference; -} - -/****************************************************************************/ -/** **/ -/** This function drops a piece of the specified player into the **/ -/** specified column. The row where the piece ended up is returned, or **/ -/** -1 if the drop was unsuccessful (i.e., the specified column is full). **/ -/** **/ -/****************************************************************************/ - -static int -_drop_piece(int player, int column) -{ - int y = 0; - - while (current_state->board[column][y] != C4_NONE && ++y < C4_SIZEY) - ; - - if (y == C4_SIZEY) - return -1; - - current_state->board[column][y] = player; - current_state->num_of_pieces++; - update_score(player, column, y); - - return y; -} - -/****************************************************************************/ -/** **/ -/** This function drops a piece of the specified player into the **/ -/** specified column. A value of TRUE is returned if the drop is **/ -/** successful, or FALSE otherwise. A drop is unsuccessful if the **/ -/** specified column number is invalid or full. If the drop is **/ -/** successful and row is a non-NULL pointer, the row where the piece **/ -/** ended up is returned through the row pointer. Note that column and **/ -/** row numbering start at 0. **/ -/** **/ -/****************************************************************************/ - -Boolean -c4_make_move(int player, int column, int *row) -{ - int result; - - if (column >= C4_SIZEX || column < 0) - return FALSE; - - result = drop_piece(real_player(player), column); - if (row && result >= 0) - *row = result; - return (result >= 0); -} - -void __attribute__ ((section(".text.fastcode"))) -_mcpy(char *d, char *s, unsigned int cnt) -{ - unsigned int c = cnt; - do - { - d[c] = s[c]; - } while(c--); -} - -/****************************************************************************/ -/** **/ -/** This function pushes the current state onto a stack. pop_state() **/ -/** is used to pop from this stack. **/ -/** **/ -/** Technically what it does, since the current state is considered to **/ -/** be the top of the stack, is push a copy of the current state onto **/ -/** the stack right above it. The stack pointer (depth) is then **/ -/** incremented so that the new copy is considered to be the current **/ -/** state. That way, all pop_state() has to do is decrement the stack **/ -/** pointer. **/ -/** **/ -/** For efficiency, memory for each stack state used is only allocated **/ -/** once per game, and reused for the remainder of the game. **/ -/** **/ -/****************************************************************************/ - -static void __attribute__ ((section(".text.fastcode"))) -_push_state(void) -{ - register int i; - Game_state *old_state, *new_state; - old_state = &state_stack[depth++]; - new_state = &state_stack[depth]; - - /* Copy the board */ - - for (i=0; iboard[i], (char*)old_state->board[i], C4_SIZEY); - - /* Copy the score array */ - - - mcpy((char*)new_state->score_array[0], (char*)old_state->score_array[0], - C4_WINPLACES*4); - mcpy((char*)new_state->score_array[1], (char*)old_state->score_array[1], - C4_WINPLACES*4); - - new_state->score[0] = old_state->score[0]; - new_state->score[1] = old_state->score[1]; - new_state->winner = old_state->winner; - new_state->num_of_pieces = old_state->num_of_pieces; - - current_state = new_state; -} - -/****************************************************************************/ -/** **/ -/** This recursive function determines how good the current state may **/ -/** turn out to be for the specified player. It does this by looking **/ -/** ahead level moves. It is assumed that both the specified player and **/ -/** the opponent may make the best move possible. alpha and beta are **/ -/** used for alpha-beta cutoff so that the game tree can be pruned to **/ -/** avoid searching unneccessary paths. **/ -/** **/ -/** The specified poll function (if any) is called at the appropriate **/ -/** intervals. **/ -/** **/ -/** The worst goodness that the current state can produce in the number **/ -/** of moves (levels) searched is returned. This is the best the **/ -/** specified player can hope to achieve with this state (since it is **/ -/** assumed that the opponent will make the best moves possible). **/ -/** **/ -/****************************************************************************/ - -static int __attribute__ ((section(".text.fastcode"))) -_evaluate(int player, int level, int alpha, int beta) -{ - int i, goodness, best, maxab; - - if (current_state->winner == player) - return 0x7FFFFFFF - depth; - else if (current_state->winner == other(player)) - return -(0x7FFFFFFF - depth); - else if (current_state->num_of_pieces == C4_TOTALSIZE) - return 0; /* a tie */ - else if (level == depth) - return goodness_of(player); - else { - /* Assume it is the other player's turn. */ - best = -(0x7FFFFFFF); - maxab = alpha; - for(i=0; iboard[drop_order[i]][C4_SIZEY-1] != C4_NONE) - continue; /* The column is full. */ - push_state(); - drop_piece(other(player), drop_order[i]); - goodness = evaluate(other(player), level, -beta, -maxab); - if (goodness > best) { - best = goodness; - if (best > maxab) - maxab = best; - } - pop_state(); - if (best > beta) - break; - } - - /* What's good for the other player is bad for this one. */ - return -best; - } -} - -/****************************************************************************/ -/** **/ -/** This function instructs the computer to make a move for the specified **/ -/** player. level specifies the number of levels deep the computer **/ -/** should search the game tree in order to make its decision. This **/ -/** corresponds to the number of "moves" in the game, where each player's **/ -/** turn is considered a move. A value of TRUE is returned if a move was **/ -/** made, or FALSE otherwise (i.e. if the board is full). If a move was **/ -/** made, the column and row where the piece ended up is returned through **/ -/** the column and row pointers (unless a pointer is NULL, in which case **/ -/** it won't be used to return any information). Note that column and **/ -/** row numbering start at 0. Also note that for a standard 7x6 game of **/ -/** Connect-4, the computer is brain-dead at levels of three or less, **/ -/** while at levels of four or more the computer provides a challenge. **/ -/** **/ -/****************************************************************************/ - -Boolean -c4_auto_move(int player, int level, int *column, int *row) -{ - int i, best_column = -1, goodness = 0, best_worst = -(0x7FFFFFFF); - int num_of_equal = 0, real_player, current_column, result; - - real_player = real_player(player); - - /* It has been proven that the best first move for a standard 7x6 game */ - /* of connect-4 is the center column. See Victor Allis' masters thesis */ - /* ("ftp://ftp.cs.vu.nl/pub/victor/connect4.ps") for this proof. */ - - if (current_state->num_of_pieces < 2 && (current_state->num_of_pieces == 0 || - current_state->board[3][0] != C4_NONE)) { - if (column) - *column = 3; - if (row) - *row = current_state->num_of_pieces; - drop_piece(real_player, 3); - return TRUE; - } - - /* Simulate a drop in each of the columns and see what the results are. */ - - for (i=0; iwinner == real_player) { - best_column = current_column; - pop_state(); - break; - } - - /* Otherwise, look ahead to see how good this move may turn out */ - /* to be (assuming the opponent makes the best moves possible). */ - else { -// next_poll = clock() + poll_interval; - goodness = evaluate(real_player, level, -(0x7FFFFFFF), -best_worst); - } - - /* If this move looks better than the ones previously considered, */ - /* remember it. */ - if (goodness > best_worst) { - best_worst = goodness; - best_column = current_column; - num_of_equal = 1; - } - - /* If two moves are equally as good, make a random decision. */ - else if (goodness == best_worst) { - num_of_equal++; - if ((rand31()>>4) % num_of_equal == 0) - best_column = current_column; - } - - pop_state(); - if(c4_abort) - return 0; - } - - /* Drop the piece in the column decided upon. */ - - if (best_column >= 0) { - result = drop_piece(real_player, best_column); - if (column) - *column = best_column; - if (row) - *row = result; - return TRUE; - } - else - return FALSE; -} - -/****************************************************************************/ -/** **/ -/** This function returns the "score" of the specified player. This **/ -/** score is a function of how many winning positions are still available **/ -/** to the player and how close he/she is to achieving each of these **/ -/** positions. The scores of both players can be compared to observe how **/ -/** well they are doing relative to each other. **/ -/** **/ -/****************************************************************************/ - -int -c4_score_of_player(int player) -{ - return current_state->score[real_player(player)]; -} - - -/****************************************************************************/ -/** **/ -/** This function returns TRUE if the specified player has won the game, **/ -/** and FALSE otherwise. **/ -/** **/ -/****************************************************************************/ - -Boolean -c4_is_winner(int player) -{ - return (current_state->winner == real_player(player)); -} - - -/****************************************************************************/ -/** **/ -/** This function returns TRUE if the board is completely full without a **/ -/** winner, and FALSE otherwise. **/ -/** **/ -/****************************************************************************/ - -Boolean -c4_is_tie(void) -{ - return (current_state->num_of_pieces == C4_TOTALSIZE && - current_state->winner == C4_NONE); -} - - -/****************************************************************************/ -/** **/ -/** This function returns the coordinates of the winning connections of **/ -/** the winning player. It is assumed that a player has indeed won the **/ -/** game. The coordinates are returned in x1, y1, x2, y2, where (x1, y1) **/ -/** specifies the lower-left piece of the winning connection, and **/ -/** (x2, y2) specifies the upper-right piece of the winning connection. **/ -/** If more than one winning connection exists, only one will be **/ -/** returned. **/ -/** **/ -/****************************************************************************/ - - -void -c4_win_coords(int *x1, int *y1, int *x2, int *y2) -{ - register int i, j, k; - int winner, win_pos = 0; - Boolean found; - - winner = current_state->winner; - - while (current_state->score_array[winner][win_pos] != C4_MAGICWIN) - win_pos++; - - found = FALSE; - for (j=0; j=0 && !found; j--) - for (i=C4_SIZEX-1; i>=0 && !found; i--) - for (k=0; map[i][j][k] != -1; k++) - if (map[i][j][k] == win_pos) { - *x2 = i; - *y2 = j; - found = TRUE; - break; - } -} - - -/****************************************************************************/ -/** **/ -/** This function ends the current game. It is assumed that a game is **/ -/** in progress. It is illegal to call any other game function **/ -/** immediately after this one except for c4_new_game(), c4_poll() and **/ -/** c4_reset(). **/ -/** **/ -/****************************************************************************/ - -void -c4_end_game(void) -{ - states_allocated = 0; -} - - -/****************************************************************************/ -/** **/ -/** This function resets the state of the algorithm to the starting state **/ -/** (i.e., no game in progress and a NULL poll function). There should **/ -/** no reason to call this function unless for some reason the calling **/ -/** algorithm loses track of the game state. It is illegal to call any **/ -/** other game function immediately after this one except for **/ -/** c4_new_game(), c4_poll() and c4_reset(). **/ -/** **/ -/****************************************************************************/ - -void -c4_reset(void) -{ - c4_end_game(); -} - -int row, col, ccol; -unsigned int c4_cb, c4_wcb; -unsigned char c4_player, c4_moves, c4_level; - -void draw_stone(unsigned char x, unsigned char y, unsigned char p) -{ - - unsigned char xx, yy; - xx = 10+(x*18); - yy = 46+(y*18); - - switch(p) - { - case 0: - draw_disc(xx, yy, 7, 2, DRAW_PUT); - draw_disc(xx, yy, 5, 3, DRAW_XOR); - draw_disc(xx, yy, 2, 3, DRAW_XOR); - break; - - case 1: - draw_disc(xx, yy, 7, 3, DRAW_PUT); - draw_disc(xx, yy, 5, 1, DRAW_ERASE); - draw_disc(xx, yy, 2, 1, DRAW_PUT); - break; - - case 2: - draw_disc(xx, yy, 8, 3, DRAW_ERASE); - break; - - case 3: - draw_disc(x, y, 7, 2, DRAW_PUT); - draw_disc(x, y, 5, 3, DRAW_XOR); - draw_disc(x, y, 2, 3, DRAW_XOR); - break; - - case 4: - draw_disc(x, y, 7, 3, DRAW_PUT); - draw_disc(x, y, 5, 1, DRAW_ERASE); - draw_disc(x, y, 2, 1, DRAW_PUT); - break; - - case 5: - draw_disc(xx, yy, 7, 3, DRAW_XOR); - break; - } -} - -void progress_callback(unsigned int cb) -{ - static unsigned char step = 0; - unsigned char x; - if(keys[0] || keys[1]) - { - setBacklight(BL_AUTO); - if(KEY_Exit) - c4_abort = 1; - } - - for(x=0;x<6;x++) - { - draw_char(40+(x<<3),24,224+step,3,DRAW_NORCU); - } - draw_hline(40,24,48,3,DRAW_PUT); - step--; - step &= 0x07; -} - -void win_callback(unsigned int cb) -{ - int x1, y1, x2, y2; - - c4_win_coords(&x1, &y1, &x2, &y2); - - if(x1 > x2) - x1 = 1; - else if(x1 < x2) - x1 = -1; - else - x1 = 0; - - if(y1 > y2) - y1 = 1; - else if(y1 < y2) - y1 = -1; - else - y1 = 0; - - draw_stone(x2,5-y2,5); - x2+=x1; - y2+=y1; - draw_stone(x2,5-y2,5); - x2+=x1; - y2+=y1; - draw_stone(x2,5-y2,5); - x2+=x1; - y2+=y1; - draw_stone(x2,5-y2,5); - x2+=x1; - y2+=y1; -} - -void draw_marker(void) -{ - draw_stone(10+(col*18), 22,c4_player+3); - draw_arrow(7+(col*18), 31, ARROW_DOWN, ARROW_LEN, 3, DRAW_PUT); - draw_arrow( 0, 152, ARROW_LEFT, ARROW_LEN, 3, DRAW_PUT); - draw_arrow( 6, 152, ARROW_RIGHT, ARROW_LEN, 3, DRAW_PUT); - draw_string(12,152,"Select",3,DRAW_PUT); - draw_arrow( 75, 153, ARROW_DOWN, ARROW_LEN, 3, DRAW_PUT); - draw_string(84,152,"Play move",3,DRAW_PUT); -} - -void delete_marker(void) -{ - draw_disc(10+(col*18), 22, 7, 3, DRAW_ERASE); - draw_arrow(7+(col*18), 31, ARROW_DOWN, ARROW_LEN, 3, DRAW_ERASE); - draw_block(0, 152, 128, 8, 3, DRAW_ERASE); -} - -int checkwin(void) -{ - if(c4_is_winner(0) || c4_is_winner(1) || c4_is_tie()) - { - if(!c4_is_tie()) - { - startCB(c4_wcb); - } - draw_block(0, 152, 128, 8, 3, DRAW_ERASE); - delete_marker(); - set_font(BOLDFONT); - if(c4_is_winner(c4_player)) - draw_string(19,14,"Spieler gewinnt!",3,DRAW_PUT); - else if(c4_is_tie()) - draw_string(24,14,"Unentschieden!",3,DRAW_PUT); - else - draw_string(13,14,"Computer gewinnt!",3,DRAW_PUT); - - draw_string(2,25,"OK: Nochmal Exit: Ende",3,DRAW_PUT); - return 1; - } - return 0; -} - -void move(unsigned char p) -{ - unsigned char pp; - if(p) - { - p = 1; - pp = 0; - } - else - pp = 1; - - if(c4_make_move(p, col, &row)) - { - draw_stone(col, 5-row, p); - draw_disc(10+(col*18), 23, 7, 3, DRAW_ERASE); - delete_marker(); - if(!checkwin()) - { - set_font(BOLDFONT); - draw_frame(35,13,57,22,5,5,3,DRAW_PUT); - draw_block(40,18,47,12,3,DRAW_PUT); - draw_string(40, 15, "Berechne", 3, DRAW_ERASE); - draw_string(0, 152, "Exit: Spiel abbrechen", 3, DRAW_PUT); - set_font(SMALLFONT); - progress_callback(0xff); - startCB(c4_cb); - c4_abort = 0; - c4_auto_move(~p, c4_level, &ccol, &row); - setBacklight(BL_AUTO); - stopCB(c4_cb); - draw_block(0,13,128,22,3,DRAW_ERASE); - draw_block(0, 152, 128, 8, 3, DRAW_ERASE); - draw_stone(ccol, 5-row, pp); - } - draw_marker(); - c4_moves++; - checkwin(); - } -} - -void c4_selplayer(unsigned char p) -{ - draw_string(30, 15, "Chooose Your", 3, DRAW_PUT); - draw_string(25, 26, "Colour & Level", 3, DRAW_PUT); - draw_arrow( 0, 154, ARROW_UP, ARROW_LEN, 3, DRAW_PUT); - draw_arrow(1 * 6, 154, ARROW_DOWN, ARROW_LEN, 3, DRAW_PUT); - draw_string(15,152,"Level",3,DRAW_PUT); - - draw_arrow( 82, 153, ARROW_LEFT, ARROW_LEN, 3, DRAW_PUT); - draw_arrow( 88, 153, ARROW_RIGHT, ARROW_LEN, 3, DRAW_PUT); - draw_string(94,152,"Colour",3,DRAW_PUT); - - draw_frame(1, 15, 19, 19, 1, 3, 3, DRAW_PUT); - draw_frame(108,15, 19, 19, 1, 3, 3, DRAW_PUT); - - draw_disc(10, 24, 7, 3, DRAW_ERASE); - draw_stone(10, 24, p+3); - draw_disc(117, 24, 7, 3, DRAW_ERASE); - draw_stone(117,24, p+3); -} - -void start_connect4(void) -{ - unsigned char x,y; - - Game_state s_stk[C4_MAX_LEVEL+1]; - state_stack = s_stk; - - evaluate = _evaluate; - push_state = _push_state; - drop_piece = _drop_piece; - mcpy = _mcpy; - - seed = 0x86f2a981; - - c4_cb = addTimerCB(progress_callback, 35); - c4_wcb = addTimerCB(win_callback, 100); - - row = 0; ccol = 0; - c4_player = 0; - c4_level = 3; - lcd_fill(0);//Clr screen - - set_font(BOLDFONT); - draw_string(0, 0, "Connect4", 3, DRAW_PUT); - - draw_block(0,10,128,2,3,DRAW_PUT); - draw_block(0,149,128,2,3,DRAW_PUT); - - draw_frame(1,37,127,109,9,9,3,DRAW_PUT); - draw_block(10,46,109,91,3,DRAW_PUT); - -restart: - stopCB(c4_wcb); - col = 3; - draw_block(0,14,128,20,3,DRAW_ERASE); - draw_block(0, 152, 128, 8, 3, DRAW_ERASE); - c4_selplayer(c4_player); - draw_numU(48,152,c4_level,0,3,DRAW_PUT); - - c4_moves = 0; - - for(x=0;x<7;x++) - { - for(y=0;y<6;y++) - { - draw_disc(10+(x*18), 46+(y*18),8,3,DRAW_ERASE); - } - } - - c4_reset(); - c4_new_game(C4_SIZEX, C4_SIZEY, 4); - - while(1) - { -wait4c: - waitKeyUpDown(); - - if((KEY_OK || KEY_0) && (c4_is_winner(0) || c4_is_winner(1) || c4_is_tie()) && (c4_moves != 0)) goto restart; - else if(KEY_0) - goto restart; - if(KEY_Exit) - { - stopCB(c4_cb); - stopCB(c4_wcb); - removeTimerCB(c4_cb); - removeTimerCB(c4_wcb); - return; - } - else if(c4_moves == 0) - { - if(KEY_Left || KEY_Right) - { - if(c4_player) c4_player=0; else c4_player = 1; - c4_selplayer(c4_player); - } - else if(KEY_OK && c4_player == 1) - { - delete_marker(); - c4_auto_move(0, c4_level, &ccol, &row); - draw_stone(ccol, 5-row, 0); - draw_marker(); - } - else if(KEY_Up) - { - draw_numU(48,152,c4_level,0,3,DRAW_ERASE); - c4_level++; - if(c4_level > C4_MAX_LEVEL) - c4_level = 1; - draw_numU(48,152,c4_level,0,3,DRAW_PUT); - } - else if(KEY_Down) - { - draw_numU(48,152,c4_level,0,3,DRAW_ERASE); - c4_level--; - if(c4_level < 1) - c4_level = C4_MAX_LEVEL; - draw_numU(48,152,c4_level,0,3,DRAW_PUT); - } - if(KEY_OK) - { - c4_moves++; - draw_block(0, 152, 128, 8, 3, DRAW_ERASE); - delete_marker(); - draw_block(0,13,128,22,3,DRAW_ERASE); - set_font(SMALLFONT); - draw_marker(); - } - goto wait4c; - } - else if(!c4_is_winner(0) && !c4_is_winner(1) && !c4_is_tie()) - { - if(KEY_1 || KEY_2 || KEY_3 || KEY_4 || KEY_5 || KEY_6 || KEY_7) - { - delete_marker(); - if(KEY_1) - col = 0; - else if(KEY_2) - col = 1; - else if(KEY_3) - col = 2; - else if(KEY_4) - col = 3; - else if(KEY_5) - col = 4; - else if(KEY_6) - col = 5; - else if(KEY_7) - col = 6; - draw_marker(); - - move(c4_player); - } - else if(KEY_Left || KEY_Right) - { - delete_marker(); - if(KEY_Left) - col--; - else if(KEY_Right) - col++; - - if(col > 6) - col = 0; - else if(col < 0) - col = 6; - draw_marker(); - } - else if(KEY_Down || KEY_OK) - { - move(c4_player); - if(c4_abort) - { - c4_abort = 0; - goto restart; - } - } - } - } -} - diff --git a/boop/trunk/games/connect4.h b/boop/trunk/games/connect4.h deleted file mode 100644 index 5962d9d..0000000 --- a/boop/trunk/games/connect4.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - connect4.c - game - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef CONNECT4_H -#define CONNECT4_H - -#ifndef Boolean -#define Boolean char -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#define C4_NONE 2 -#define C4_MAX_LEVEL 20 - -void start_connect4(void); - -#endif diff --git a/boop/trunk/games/gamesmenu.c b/boop/trunk/games/gamesmenu.c deleted file mode 100644 index 230db87..0000000 --- a/boop/trunk/games/gamesmenu.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - testmenu.c - testmenu for menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "menu.h" -#include "tic_tac_toe.h" -#include "sokoban.h" -#include "connect4.h" - -const struct MENU_ENTRY gamesMenuEntries[] = -{ - { &GameTicTacToe, 0, FUNCENTRY, "TicTacToe", "Play TicTacToe" }, - { &GameSokoban, 0, FUNCENTRY, "Sokoban", "Play Sokoban" }, - { &start_connect4, 0, FUNCENTRY, "Connect4", "Play Connect4" } -}; - - -const struct MENU gamesMenu = -{ - 3, (MENU_ENTRY*)&gamesMenuEntries, "Games" -}; diff --git a/boop/trunk/games/gamesmenu.h b/boop/trunk/games/gamesmenu.h deleted file mode 100644 index d84df17..0000000 --- a/boop/trunk/games/gamesmenu.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - mainmenu.h - the main menu for boop - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef MAINMENU_H -#define MAINMENU_H - -extern const struct MENU gamesMenu; - -#endif diff --git a/boop/trunk/games/sokoban.c b/boop/trunk/games/sokoban.c deleted file mode 100644 index db0305b..0000000 --- a/boop/trunk/games/sokoban.c +++ /dev/null @@ -1,614 +0,0 @@ -/* - sokoban.c - game - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" - -#include "sokoban.h" -#include "sokoban_levels.h" - -//#include "stdio.h" - -void GameSokoban_InitGameField(struct _SokobanGameInfo *pGI) -{ - int SizeX; - int SizeY; - int x; - int y; - int Pos; - int i; - - if((pGI->Level < 1) || (pGI->Level > SOKOBAN_LEVELS)) - { - //Invalid level - pGI->Level = 1; - } - - //Empty the game field - for(x=0; xG[x][y] = SPACE; - } - } - - //Find the position to searched level - Pos = 0; - i = 1; - while(iLevel) - { - SizeX = Sokoban_Levels[Pos++]; - SizeY = Sokoban_Levels[Pos++]; - Pos += SizeY * ((SizeX+1)/2); - i++; - } - - //Copy the (may be smaller) level to the center of the game field - SizeX = Sokoban_Levels[Pos++]; - SizeY = Sokoban_Levels[Pos++]; - for(y=0; y lo nibble - pGI->G[x+((SOKOBAN_CELLS_X-SizeX)/2)][y+((SOKOBAN_CELLS_Y-SizeY)/2)] = Sokoban_Levels[Pos + (y * ((SizeX+1)/2)) + (x/2)] & 0x0F; - } - else - { - //Even x -> hi nibble - pGI->G[x+((SOKOBAN_CELLS_X-SizeX)/2)][y+((SOKOBAN_CELLS_Y-SizeY)/2)] = (Sokoban_Levels[Pos + (y * ((SizeX+1)/2)) + (x/2)] >> 4) & 0x0F; - } - } - } -} - - -BOOL GameSokoban_IsSolved(BYTE G[SOKOBAN_CELLS_X][SOKOBAN_CELLS_Y]) -{ - //Return true=Solved - int x; - int y; - - for(x=0; xMoves = 0; - pGI->UndoCount = 0; - - GameSokoban_InitGameField(pGI); - - //Game field to display - for(x=0; xG[x][y]); - if(pGI->G[x][y] & PUSHER) - { - pGI->PusherX = x; - pGI->PusherY = y; - } - } - } -} - -void GameSokoban_Move(struct _SokobanGameInfo *pGI) -{ - if(KEY_Up) - { - if(!(pGI->G[pGI->PusherX][pGI->PusherY - 1] & WALL)) - { - //No wall - if(!(pGI->G[pGI->PusherX][pGI->PusherY - 1] & PACKET)) - { - //No wall and no packet - GameSokoban_SaveUndo(pGI, 2, SOKOBAN_UNDO_DIR_UP); - - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX][pGI->PusherY-1] ^= PUSHER; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY-1, pGI->G[pGI->PusherX][pGI->PusherY-1]); - - pGI->PusherY--; - pGI->Moves++; - } - else - { - //Packet -> check if it is space behind the packet - if(!(pGI->G[pGI->PusherX][pGI->PusherY - 2] & (PACKET | WALL))) - { - //No packet or wall behind the packet - GameSokoban_SaveUndo(pGI, 3, SOKOBAN_UNDO_DIR_UP); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX][pGI->PusherY - 1] ^= PUSHER; - - //Move packet - pGI->G[pGI->PusherX][pGI->PusherY-1] ^= PACKET; - pGI->G[pGI->PusherX][pGI->PusherY-2] ^= PACKET; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY-1, pGI->G[pGI->PusherX][pGI->PusherY-1]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY-2, pGI->G[pGI->PusherX][pGI->PusherY-2]); - - pGI->PusherY--; - pGI->Moves++; - } - } - } - } - if(KEY_Down) - { - if(!(pGI->G[pGI->PusherX][pGI->PusherY + 1] & WALL)) - { - //No wall - if(!(pGI->G[pGI->PusherX][pGI->PusherY + 1] & PACKET)) - { - //No wall and no packet - GameSokoban_SaveUndo(pGI, 2, SOKOBAN_UNDO_DIR_DOWN); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX][pGI->PusherY+1] ^= PUSHER; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY+1, pGI->G[pGI->PusherX][pGI->PusherY+1]); - - pGI->PusherY++; - pGI->Moves++; - } - else - { - //Packet -> check if it is space behind the packet - if(!(pGI->G[pGI->PusherX][pGI->PusherY + 2] & (PACKET | WALL))) - { - //No packet or wall behind the packet - GameSokoban_SaveUndo(pGI, 3, SOKOBAN_UNDO_DIR_DOWN); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX][pGI->PusherY + 1] ^= PUSHER; - - //Move packet - pGI->G[pGI->PusherX][pGI->PusherY+1] ^= PACKET; - pGI->G[pGI->PusherX][pGI->PusherY+2] ^= PACKET; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY+1, pGI->G[pGI->PusherX][pGI->PusherY+1]); - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY+2, pGI->G[pGI->PusherX][pGI->PusherY+2]); - - pGI->PusherY++; - pGI->Moves++; - } - } - } - } - if(KEY_Left) - { - if(!(pGI->G[pGI->PusherX - 1][pGI->PusherY] & WALL)) - { - //No wall - if(!(pGI->G[pGI->PusherX - 1][pGI->PusherY] & PACKET)) - { - //No wall and no packet - GameSokoban_SaveUndo(pGI, 2, SOKOBAN_UNDO_DIR_LEFT); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX - 1][pGI->PusherY] ^= PUSHER; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX - 1, pGI->PusherY, pGI->G[pGI->PusherX - 1][pGI->PusherY]); - - pGI->PusherX--; - pGI->Moves++; - } - else - { - //Packet -> check if it is space behind the packet - if(!(pGI->G[pGI->PusherX - 2][pGI->PusherY] & (PACKET | WALL))) - { - //No packet or wall behind the packet - GameSokoban_SaveUndo(pGI, 3, SOKOBAN_UNDO_DIR_LEFT); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX - 1][pGI->PusherY] ^= PUSHER; - - //Move packet - pGI->G[pGI->PusherX - 1][pGI->PusherY] ^= PACKET; - pGI->G[pGI->PusherX - 2][pGI->PusherY] ^= PACKET; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX - 1, pGI->PusherY, pGI->G[pGI->PusherX - 1][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX - 2, pGI->PusherY, pGI->G[pGI->PusherX - 2][pGI->PusherY]); - - pGI->PusherX--; - pGI->Moves++; - } - } - } - } - if(KEY_Right) - { - if(!(pGI->G[pGI->PusherX + 1][pGI->PusherY] & WALL)) - { - //No wall - if(!(pGI->G[pGI->PusherX + 1][pGI->PusherY] & PACKET)) - { - //No wall and no packet - GameSokoban_SaveUndo(pGI, 2, SOKOBAN_UNDO_DIR_RIGHT); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX + 1][pGI->PusherY] ^= PUSHER; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX + 1, pGI->PusherY, pGI->G[pGI->PusherX + 1][pGI->PusherY]); - - pGI->PusherX++; - pGI->Moves++; - } - else - { - //Packet -> check if it is space behind the packet - if(!(pGI->G[pGI->PusherX + 2][pGI->PusherY] & (PACKET | WALL))) - { - //No packet or wall behind the packet - GameSokoban_SaveUndo(pGI, 3, SOKOBAN_UNDO_DIR_RIGHT); - //Move pusher - pGI->G[pGI->PusherX][pGI->PusherY] ^= PUSHER; - pGI->G[pGI->PusherX + 1][pGI->PusherY] ^= PUSHER; - - //Move packet - pGI->G[pGI->PusherX + 1][pGI->PusherY] ^= PACKET; - pGI->G[pGI->PusherX + 2][pGI->PusherY] ^= PACKET; - - //Draw changed cells - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY, pGI->G[pGI->PusherX][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX + 1, pGI->PusherY, pGI->G[pGI->PusherX + 1][pGI->PusherY]); - GameSokoban_DrawCell(pGI->PusherX + 2, pGI->PusherY, pGI->G[pGI->PusherX + 2][pGI->PusherY]); - - pGI->PusherX++; - pGI->Moves++; - } - } - } - } - -} - -void GameSokoban_UndoAMove(struct _SokobanGameInfo *pGI) -{ - //3 Byte UndoBuffer: - //[ 0 ][ 1 ][ 2 ] - //765432107654321076543210 - //\-x-/\-y-/\/\o0/\o1/\o2/ - - BYTE Object[3]; - BYTE Dir; - int i; - int Count; - - if(pGI->UndoCount <= 0) - { - return;//No more undos available - } - - pGI->UndoCount--; - - pGI->PusherX = (pGI->UndoBuffer[pGI->UndoCount][0] >> 3) & 0x1F; - pGI->PusherY = (pGI->UndoBuffer[pGI->UndoCount][0] << 2) & 0x1F; - pGI->PusherY |= (pGI->UndoBuffer[pGI->UndoCount][1] >> 6) & 0x03; - Dir = (pGI->UndoBuffer[pGI->UndoCount][1] >> 4) & 0x03; - Object[0] = pGI->UndoBuffer[pGI->UndoCount][1] & 0x0F; - Object[1] = (pGI->UndoBuffer[pGI->UndoCount][2] >> 4) & 0x0F; - Object[2] = pGI->UndoBuffer[pGI->UndoCount][2] & 0x0F; - - Count = (Object[2] == 0x0F) ? 2 : 3; - - for(i=0; iG[pGI->PusherX - i][pGI->PusherY] = Object[i]; - GameSokoban_DrawCell(pGI->PusherX - i, pGI->PusherY, pGI->G[pGI->PusherX - i][pGI->PusherY]); - break; - case SOKOBAN_UNDO_DIR_RIGHT: - pGI->G[pGI->PusherX + i][pGI->PusherY] = Object[i]; - GameSokoban_DrawCell(pGI->PusherX + i, pGI->PusherY, pGI->G[pGI->PusherX + i][pGI->PusherY]); - break; - case SOKOBAN_UNDO_DIR_UP: - pGI->G[pGI->PusherX][pGI->PusherY - i] = Object[i]; - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY - i, pGI->G[pGI->PusherX][pGI->PusherY - i]); - break; - case SOKOBAN_UNDO_DIR_DOWN: - pGI->G[pGI->PusherX][pGI->PusherY + i] = Object[i]; - GameSokoban_DrawCell(pGI->PusherX, pGI->PusherY + i, pGI->G[pGI->PusherX][pGI->PusherY + i]); - break; - } - } - - pGI->Moves--; -} - -void GameSokoban_SaveUndo(struct _SokobanGameInfo *pGI, BYTE Count, BYTE Dir) -{ - //3 Byte UndoBuffer: - //[ 0 ][ 1 ][ 2 ] - //765432107654321076543210 - //\-x-/\-y-/\/\o0/\o1/\o2/ - - BYTE Object[3]; - int i; - -// ASSERT((Count == 2) || (Count == 3)); - - Object[2] = 0x0F;//Default value for not used - - for(i=0; iG[pGI->PusherX - i][pGI->PusherY]; - break; - case SOKOBAN_UNDO_DIR_RIGHT: - Object[i] = pGI->G[pGI->PusherX + i][pGI->PusherY]; - break; - case SOKOBAN_UNDO_DIR_UP: - Object[i] = pGI->G[pGI->PusherX][pGI->PusherY - i]; - break; - case SOKOBAN_UNDO_DIR_DOWN: - Object[i] = pGI->G[pGI->PusherX][pGI->PusherY + i]; - break; - } - } - - if(pGI->UndoCount >= SOKOBAN_MAX_UNDOS) - { - //Undo buffer is full -> free oldest - for(i=0; i<(SOKOBAN_MAX_UNDOS-1); i++) - { - pGI->UndoBuffer[i][0] = pGI->UndoBuffer[i+1][0]; - pGI->UndoBuffer[i][1] = pGI->UndoBuffer[i+1][1]; - pGI->UndoBuffer[i][2] = pGI->UndoBuffer[i+1][2]; - } - pGI->UndoCount--; - } - - pGI->UndoBuffer[pGI->UndoCount][0] = (pGI->PusherX & 0x1F) << 3; - pGI->UndoBuffer[pGI->UndoCount][0] |= ((pGI->PusherY & 0x1F) >> 2) & 0x07; - - pGI->UndoBuffer[pGI->UndoCount][1] = (pGI->PusherY & 0x1F) << 6; - pGI->UndoBuffer[pGI->UndoCount][1] |= (Dir & 3) << 4; - pGI->UndoBuffer[pGI->UndoCount][1] |= Object[0] & 0x0F; - - pGI->UndoBuffer[pGI->UndoCount][2] = (Object[1] & 0x0F) << 4; - pGI->UndoBuffer[pGI->UndoCount][2] |= Object[2] & 0x0F; - - pGI->UndoCount++; -} - -void GameSokoban() -{ - struct _SokobanGameInfo GI; - int i; - - GI.Level = 1; -restart: - //Init the display - lcd_fill(0);//Clr screen - - //Title - draw_string(0, 0, "Sokoban", LCD_COLOR_B, DRAW_PUT); - - //Grid - for(i=0; i<=SOKOBAN_CELLS_X; i++) - { - draw_vline(i*(SOKOBAN_CELL_SIZE+1),16,SOKOBAN_CELLS_Y*(SOKOBAN_CELL_SIZE+1)+1, LCD_COLOR_LG, DRAW_PUT); - } - for(i=0; i<=SOKOBAN_CELLS_Y; i++) - { - draw_hline(0, 16 + i*(SOKOBAN_CELL_SIZE+1),SOKOBAN_CELLS_X*(SOKOBAN_CELL_SIZE+1)+1, LCD_COLOR_LG, DRAW_PUT); - } - - draw_string(0, 8, "Level: Moves:", LCD_COLOR_B, DRAW_PUT); - draw_char(98,8,'0',LCD_COLOR_B,DRAW_PUT); - draw_string(0, LCD_SIZE_Y - (8*3), "Program +/-:", LCD_COLOR_B, DRAW_PUT); - draw_string(65, LCD_SIZE_Y - (8*3), "Level +/- 1", LCD_COLOR_B, DRAW_PUT); - draw_string(0, LCD_SIZE_Y - (8*2), "Volume +/-:", LCD_COLOR_B, DRAW_PUT); - draw_string(65, LCD_SIZE_Y - (8*2), "Level +/- 20", LCD_COLOR_B, DRAW_PUT); - draw_arrow( 0, LCD_SIZE_Y - 8, ARROW_UP, ARROW_LEN, LCD_COLOR_B, DRAW_PUT); - draw_arrow(1 * 6, LCD_SIZE_Y - 8, ARROW_DOWN, ARROW_LEN, LCD_COLOR_B, DRAW_PUT); - draw_arrow(2 * 6, LCD_SIZE_Y - 8, ARROW_LEFT, ARROW_LEN, LCD_COLOR_B, DRAW_PUT); - draw_arrow(3 * 6, LCD_SIZE_Y - 8, ARROW_RIGHT, ARROW_LEN, LCD_COLOR_B, DRAW_PUT); - draw_string(32, LCD_SIZE_Y - 8, "Bewegen", LCD_COLOR_B, DRAW_PUT); - -again: - GameSokoban_InitDisplayForNewGame(&GI); - draw_block(32, 8, 30, 8, LCD_COLOR_B, DRAW_ERASE); - draw_numU(32,8,GI.Level,0,LCD_COLOR_B,DRAW_PUT); - - while(1) - { - if(KEY_Up || KEY_Down || KEY_Left || KEY_Right || KEY_8) - { - draw_block(98, 8, 30, 8, LCD_COLOR_B, DRAW_ERASE); - if(KEY_8) - GameSokoban_UndoAMove(&GI); - else - GameSokoban_Move(&GI); - - if(GameSokoban_IsSolved(GI.G) && !KEY_8) - { - //Solved - GI.Level++;//Next level - if(GI.Level > SOKOBAN_LEVELS) - { - GI.Level = 1; - } - waitKeyUp(); - goto restart; - } - draw_numU(98,8,GI.Moves,0,LCD_COLOR_B,DRAW_PUT); - } - - - //Footer - if(GI.Moves == 1) - { - draw_block(0, LCD_SIZE_Y - (8*3), LCD_SIZE_X, 16, LCD_COLOR_B, DRAW_ERASE); - draw_string(0, LCD_SIZE_Y - (8*3), "0", LCD_COLOR_B, DRAW_PUT); - draw_string(32, LCD_SIZE_Y - (8*3), "Neues Spiel", LCD_COLOR_B, DRAW_PUT); - draw_string(0, LCD_SIZE_Y - (8*2), "Exit", LCD_COLOR_B, DRAW_PUT); - draw_string(32, LCD_SIZE_Y - (8*2), "Spiel beenden", LCD_COLOR_B, DRAW_PUT); - } - - waitKeyUpDown(); - - if(GI.Moves == 0) - { - if(KEY_Pplus || KEY_Pminus || KEY_Vplus || KEY_Vminus) - { - //Change level - //Program keys +/- 1 - if(KEY_Pplus) - { - GI.Level++; - } - if(KEY_Pminus) - { - GI.Level--; - } - //Volume keys +/- 20 - if(KEY_Vplus) - { - GI.Level += 20; - } - if(KEY_Vminus) - { - GI.Level -= 20; - } - //Wrap around if necessary - if(GI.Level < 1) - { - GI.Level += SOKOBAN_LEVELS; - } - if(GI.Level > SOKOBAN_LEVELS) - { - GI.Level -= SOKOBAN_LEVELS; - } - //New game - goto again; - } - } - if(KEY_0) goto restart; - if(KEY_Exit) return; - } -} - diff --git a/boop/trunk/games/sokoban.h b/boop/trunk/games/sokoban.h deleted file mode 100644 index fe5621a..0000000 --- a/boop/trunk/games/sokoban.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - sokoban.h - game - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef SOKOBAN_H -#define SOKOBAN_H - -#include "../global.h" - -#define SOKOBAN_MAX_UNDOS 100 -#define SOKOBAN_UNDO_DIR_LEFT 0 -#define SOKOBAN_UNDO_DIR_RIGHT 1 -#define SOKOBAN_UNDO_DIR_UP 2 -#define SOKOBAN_UNDO_DIR_DOWN 3 - -#define SPACE 0 -#define GOAL 1 -#define PUSHER 2 -#define PACKET 4 -#define WALL 8 -#define PUSHER_ON_GOAL (PUSHER | GOAL) -#define PACKET_ON_GOAL (PACKET | GOAL) - -#define SOKOBAN_CELLS_X 21 -#define SOKOBAN_CELLS_Y 19 -//Size without grid -#define SOKOBAN_CELL_SIZE 5 - -struct _SokobanGameInfo -{ - BYTE G[SOKOBAN_CELLS_X][SOKOBAN_CELLS_Y]; - short Level; - int PusherX; - int PusherY; - WORD Moves; - WORD UndoCount; - BYTE UndoBuffer[SOKOBAN_MAX_UNDOS][3]; -}; - -void GameSokoban(void); -void GameSokoban_InitGameField(struct _SokobanGameInfo *pGI); -void GameSokoban_DrawCell(int x, int y, BYTE Object); -BOOL GameSokoban_IsSolved(BYTE G[SOKOBAN_CELLS_X][SOKOBAN_CELLS_Y]); -void GameSokoban_InitDisplayForNewGame(struct _SokobanGameInfo *pGI); -void GameSokoban_Move(struct _SokobanGameInfo *pGI); -void GameSokoban_SaveUndo(struct _SokobanGameInfo *pGI, BYTE Count, BYTE Dir); -void GameSokoban_UndoAMove(struct _SokobanGameInfo *pGI); - - -#endif diff --git a/boop/trunk/games/sokoban_levels.h b/boop/trunk/games/sokoban_levels.h deleted file mode 100644 index 437c9e1..0000000 --- a/boop/trunk/games/sokoban_levels.h +++ /dev/null @@ -1,4968 +0,0 @@ -/* - sokoban.h - game - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef SOKOBAN_LEVELS_H -#define SOKOBAN_LEVELS_H - -#ifndef DEBUGMODE -#define SOKOBAN_LEVELS 375 -const unsigned char Sokoban_Levels[] = { -//Level: 1 -0x13, 0x0B,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // ##### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x84, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #$ # -0x00, 0x88, 0x80, 0x04, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ### $## -0x00, 0x80, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // # $ $ # -0x88, 0x80, 0x80, 0x88, 0x08, 0x00, 0x08, 0x88, 0x88, 0x80, //### # ## # ###### -0x80, 0x00, 0x80, 0x88, 0x08, 0x88, 0x88, 0x00, 0x11, 0x80, //# # ## ##### ..# -0x80, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x80, //# $ $ ..# -0x88, 0x88, 0x80, 0x88, 0x80, 0x82, 0x88, 0x00, 0x11, 0x80, //##### ### #@## ..# -0x00, 0x00, 0x80, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // # ######### -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ####### -//Level: 2 -0x0E, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //############ -0x81, 0x10, 0x08, 0x00, 0x00, 0x08, 0x88, //#.. # ### -0x81, 0x10, 0x08, 0x04, 0x00, 0x40, 0x08, //#.. # $ $ # -0x81, 0x10, 0x08, 0x48, 0x88, 0x80, 0x08, //#.. #$#### # -0x81, 0x10, 0x00, 0x02, 0x08, 0x80, 0x08, //#.. @ ## # -0x81, 0x10, 0x08, 0x08, 0x00, 0x40, 0x88, //#.. # # $ ## -0x88, 0x88, 0x88, 0x08, 0x84, 0x04, 0x08, //###### ##$ $ # -0x00, 0x80, 0x40, 0x04, 0x04, 0x04, 0x08, // # $ $ $ $ # -0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x08, // # # # -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, // ############ -//Level: 3 -0x11, 0x0A,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, // ######## -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x28, 0x00, // # @# -0x00, 0x00, 0x00, 0x00, 0x80, 0x48, 0x40, 0x88, 0x00, // # $#$ ## -0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x04, 0x80, 0x00, // # $ $# -0x00, 0x00, 0x00, 0x00, 0x88, 0x40, 0x40, 0x80, 0x00, // ##$ $ # -0x88, 0x88, 0x88, 0x88, 0x80, 0x40, 0x80, 0x88, 0x80, //######### $ # ### -0x81, 0x11, 0x10, 0x08, 0x80, 0x40, 0x04, 0x00, 0x80, //#.... ## $ $ # -0x88, 0x11, 0x10, 0x00, 0x04, 0x00, 0x40, 0x00, 0x80, //##... $ $ # -0x81, 0x11, 0x10, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, //#.... ########## -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //######## -//Level: 4 -0x0B, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -0x80, 0x00, 0x08, 0x00, 0x00, 0x80, //# # # -0x80, 0x42, 0x44, 0x44, 0x40, 0x80, //# $@$$$$$ # -0x80, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x80, 0x88, 0x88, 0x80, //##### ##### -0x00, 0x08, 0x10, 0x08, 0x00, 0x00, // #. # -0x00, 0x08, 0x10, 0x08, 0x00, 0x00, // #. # -0x00, 0x08, 0x11, 0x18, 0x00, 0x00, // #...# -0x00, 0x08, 0x10, 0x08, 0x00, 0x00, // #. # -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 5 -0x0E, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, //###### ##### -0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x80, //# # # # -0x80, 0x40, 0x08, 0x88, 0x80, 0x40, 0x80, //# $ #### $ # -0x80, 0x40, 0x00, 0x00, 0x04, 0x00, 0x80, //# $ $ # -0x80, 0x08, 0x88, 0x28, 0x88, 0x40, 0x80, //# ###@###$ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x88, //########## ### -0x81, 0x10, 0x00, 0x88, 0x00, 0x00, 0x08, //#.. ## # -0x81, 0x10, 0x00, 0x88, 0x40, 0x00, 0x08, //#.. ##$ # -0x81, 0x10, 0x00, 0x88, 0x04, 0x00, 0x08, //#.. ## $ # -0x81, 0x10, 0x00, 0x88, 0x04, 0x00, 0x08, //#.. ## $ # -0x81, 0x10, 0x00, 0x00, 0x40, 0x40, 0x08, //#.. $ $ # -0x88, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, //### ######### -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 6 -0x0B, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -0x80, 0x00, 0x00, 0x80, 0x00, 0x80, //# # # -0x80, 0x00, 0x40, 0x04, 0x00, 0x80, //# $ $ # -0x88, 0x88, 0x80, 0x80, 0x00, 0x80, //##### # # -0x88, 0x88, 0x80, 0x88, 0x81, 0x80, //##### ###.# -0x80, 0x08, 0x00, 0x00, 0x81, 0x80, //# # #.# -0x80, 0x40, 0x00, 0x40, 0x81, 0x80, //# $ $ #.# -0x80, 0x08, 0x88, 0x08, 0x81, 0x80, //# ### ##.# -0x88, 0x08, 0x88, 0x00, 0x81, 0x80, //## ### #.# -0x80, 0x40, 0x00, 0x40, 0x81, 0x80, //# $ $ #.# -0x80, 0x00, 0x88, 0x00, 0x81, 0x80, //# ## #.# -0x88, 0x80, 0x88, 0x88, 0x81, 0x80, //### #####.# -0x88, 0x80, 0x80, 0x00, 0x20, 0x80, //### # @ # -0x80, 0x04, 0x00, 0x00, 0x40, 0x80, //# $ $ # -0x80, 0x00, 0x08, 0x80, 0x00, 0x80, //# ## # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 7 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x02, 0x88, //#### @## -0x88, 0x88, 0x00, 0x08, //#### # -0x81, 0x08, 0x44, 0x08, //#. #$$ # -0x80, 0x00, 0x00, 0x88, //# ## -0x81, 0x00, 0x48, 0x88, //#. $### -0x88, 0x10, 0x08, 0x88, //##. ### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 8 -0x0C, 0x06,//Size x and y -0x08, 0x88, 0x80, 0x08, 0x88, 0x88, // #### ##### -0x88, 0x00, 0x80, 0x08, 0x00, 0x08, //## # # # -0x80, 0x40, 0x88, 0x88, 0x40, 0x08, //# $ ####$ # -0x80, 0x04, 0x11, 0x11, 0x04, 0x08, //# $.... $ # -0x88, 0x00, 0x00, 0x80, 0x20, 0x88, //## # @ ## -0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // ########## -//Level: 9 -0x07, 0x06,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x04, 0x01, 0x80, //# $ .# -0x80, 0x02, 0x40, 0x80, //# @$ # -0x80, 0x08, 0x41, 0x80, //# #$.# -0x80, 0x01, 0x08, 0x80, //# . ## -0x88, 0x88, 0x88, 0x00, //###### -//Level: 10 -0x07, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x00, // #### -0x88, 0x80, 0x08, 0x80, //### ## -0x80, 0x00, 0x40, 0x80, //# $ # -0x80, 0x81, 0x82, 0x80, //# #.#@# -0x80, 0x84, 0x01, 0x80, //# #$ .# -0x80, 0x01, 0x40, 0x80, //# .$ # -0x88, 0x00, 0x08, 0x80, //## ## -0x08, 0x88, 0x88, 0x00, // ##### -//Level: 11 -0x09, 0x09,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, //#### -0x80, 0x08, 0x88, 0x80, 0x00, //# #### -0x80, 0x00, 0x00, 0x88, 0x80, //# ### -0x80, 0x08, 0x40, 0x10, 0x80, //# #$ . # -0x88, 0x08, 0x18, 0x40, 0x80, //## #.#$ # -0x80, 0x08, 0x02, 0x50, 0x80, //# # @* # -0x80, 0x00, 0x50, 0x08, 0x80, //# * ## -0x88, 0x88, 0x00, 0x88, 0x00, //#### ## -0x00, 0x08, 0x88, 0x80, 0x00, // #### -//Level: 12 -0x09, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x00, 0x00, // #### -0x00, 0x82, 0x08, 0x00, 0x00, // #@ # -0x88, 0x80, 0x08, 0x88, 0x80, //### #### -0x80, 0x01, 0x50, 0x00, 0x80, //# .* # -0x80, 0x41, 0x10, 0x40, 0x80, //# $.. $ # -0x88, 0x80, 0x48, 0x88, 0x80, //### $#### -0x00, 0x80, 0x08, 0x00, 0x00, // # # -0x00, 0x88, 0x88, 0x00, 0x00, // #### -//Level: 13 -0x0D, 0x11,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x00, 0x00, 0x00, // ### -0x00, 0x00, 0x88, 0x18, 0x80, 0x00, 0x00, // ##.## -0x00, 0x00, 0x81, 0x11, 0x80, 0x00, 0x00, // #...# -0x00, 0x88, 0x81, 0x12, 0x88, 0x80, 0x00, // ###..@### -0x00, 0x80, 0x01, 0x11, 0x00, 0x80, 0x00, // # ... # -0x88, 0x80, 0x88, 0x18, 0x80, 0x88, 0x80, //### ##.## ### -0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, //# $ # -0x80, 0x08, 0x00, 0x40, 0x08, 0x00, 0x80, //# # $ # # -0x88, 0x48, 0x48, 0x88, 0x48, 0x48, 0x80, //##$#$###$#$## -0x80, 0x08, 0x00, 0x40, 0x08, 0x00, 0x80, //# # $ # # -0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, //# $ # -0x88, 0x80, 0x08, 0x08, 0x00, 0x88, 0x80, //### # # ### -0x00, 0x80, 0x88, 0x08, 0x80, 0x80, 0x00, // # ## ## # -0x00, 0x80, 0x04, 0x04, 0x00, 0x80, 0x00, // # $ $ # -0x00, 0x80, 0x88, 0x08, 0x80, 0x80, 0x00, // # ## ## # -0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, // # # -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ######### -//Level: 14 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x21, 0x80, 0x08, //# @.# # -0x80, 0x14, 0x01, 0x08, //# .$ . # -0x80, 0x08, 0x40, 0x08, //# #$ # -0x80, 0x04, 0x00, 0x88, //# $ ## -0x88, 0x80, 0x08, 0x80, //### ## -0x00, 0x80, 0x08, 0x00, // # # -0x00, 0x88, 0x88, 0x00, // #### -//Level: 15 -0x09, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, //######## -0x80, 0x00, 0x00, 0x08, 0x00, //# # -0x80, 0x84, 0x40, 0x08, 0x00, //# #$$ # -0x80, 0x11, 0x18, 0x08, 0x00, //# ...# # -0x88, 0x11, 0x14, 0x08, 0x80, //##...$ ## -0x08, 0x08, 0x80, 0x40, 0x80, // # ## $ # -0x08, 0x40, 0x04, 0x00, 0x80, // #$ $ # -0x08, 0x00, 0x80, 0x02, 0x80, // # # @# -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -//Level: 16 -0x0B, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x88, 0x84, 0x14, 0x88, 0x88, 0x80, //###$.$##### -0x80, 0x00, 0x10, 0x40, 0x00, 0x80, //# . $ # -0x80, 0x88, 0x48, 0x80, 0x20, 0x80, //# ##$## @ # -0x80, 0x00, 0x10, 0x88, 0x88, 0x80, //# . ##### -0x88, 0x80, 0x10, 0x80, 0x00, 0x00, //### . # -0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -//Level: 17 -0x0C, 0x0B,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x88, 0x80, //###### ### -0x81, 0x10, 0x08, 0x08, 0x82, 0x88, //#.. # ##@## -0x81, 0x10, 0x08, 0x88, 0x00, 0x08, //#.. ### # -0x81, 0x10, 0x00, 0x00, 0x44, 0x08, //#.. $$ # -0x81, 0x10, 0x08, 0x08, 0x04, 0x08, //#.. # # $ # -0x81, 0x18, 0x88, 0x08, 0x04, 0x08, //#..### # $ # -0x88, 0x88, 0x04, 0x08, 0x40, 0x08, //#### $ #$ # -0x00, 0x08, 0x00, 0x48, 0x04, 0x08, // # $# $ # -0x00, 0x08, 0x04, 0x00, 0x40, 0x08, // # $ $ # -0x00, 0x08, 0x00, 0x88, 0x00, 0x08, // # ## # -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -//Level: 18 -0x10, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //####### -0x80, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, //# ########## -0x80, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x88, //# # # ## -0x80, 0x40, 0x00, 0x80, 0x00, 0x40, 0x40, 0x08, //# $ # $ $ # -0x80, 0x04, 0x00, 0x80, 0x04, 0x08, 0x80, 0x08, //# $ # $ ## # -0x80, 0x44, 0x00, 0x88, 0x40, 0x40, 0x00, 0x08, //# $$ ##$ $ # -0x88, 0x08, 0x00, 0x88, 0x08, 0x88, 0x88, 0x88, //## # ## ####### -0x88, 0x08, 0x00, 0x88, 0x00, 0x00, 0x11, 0x18, //## # ## ...# -0x80, 0x08, 0x40, 0x00, 0x00, 0x00, 0x11, 0x18, //# #$ ...# -0x80, 0x00, 0x44, 0x00, 0x00, 0x00, 0x11, 0x18, //# $$ ...# -0x80, 0x00, 0x00, 0x88, 0x28, 0x00, 0x11, 0x18, //# ##@# ...# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################ -//Level: 19 -0x0D, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############ -0x08, 0x00, 0x00, 0x10, 0x80, 0x00, 0x80, // # . # # -0x08, 0x00, 0x04, 0x50, 0x80, 0x40, 0x80, // # $* # $ # -0x08, 0x00, 0x08, 0x10, 0x80, 0x88, 0x80, // # #. # ### -0x08, 0x00, 0x88, 0x18, 0x00, 0x08, 0x00, // # ##.# # -0x88, 0x00, 0x88, 0x18, 0x04, 0x08, 0x80, //## ##.# $ ## -0x80, 0x00, 0x80, 0x18, 0x48, 0x00, 0x80, //# # .#$# # -0x80, 0x20, 0x80, 0x10, 0x00, 0x40, 0x80, //# @ # . $ # -0x80, 0x08, 0x80, 0x54, 0x48, 0x00, 0x80, //# ## *$$# # -0x80, 0x00, 0x80, 0x10, 0x00, 0x08, 0x80, //# # . ## -0x80, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, //# ######## -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //##### -//Level: 20 -0x0D, 0x0C,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, // ####### -0x00, 0x00, 0x08, 0x00, 0x80, 0x08, 0x00, // # # # -0x00, 0x00, 0x08, 0x00, 0x44, 0x08, 0x00, // # $$ # -0x88, 0x88, 0x88, 0x04, 0x80, 0x08, 0x00, //###### $# # -0x81, 0x11, 0x88, 0x80, 0x80, 0x08, 0x80, //#...### # ## -0x81, 0x00, 0x80, 0x04, 0x08, 0x00, 0x80, //#. # $ # # -0x81, 0x00, 0x00, 0x40, 0x40, 0x40, 0x80, //#. $ $ $ # -0x81, 0x00, 0x80, 0x04, 0x08, 0x00, 0x80, //#. # $ # # -0x81, 0x11, 0x88, 0x80, 0x80, 0x08, 0x80, //#...### # ## -0x88, 0x88, 0x88, 0x04, 0x00, 0x08, 0x00, //###### $ # -0x00, 0x00, 0x08, 0x20, 0x80, 0x08, 0x00, // #@ # # -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, // ####### -//Level: 21 -0x08, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x00, // #### -0x00, 0x81, 0x18, 0x00, // #..# -0x08, 0x80, 0x18, 0x80, // ## .## -0x08, 0x00, 0x41, 0x80, // # $.# -0x88, 0x04, 0x00, 0x88, //## $ ## -0x80, 0x08, 0x44, 0x08, //# #$$ # -0x80, 0x02, 0x00, 0x08, //# @ # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 22 -0x09, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x88, 0x00, 0x00, 0x08, 0x80, //## ## -0x80, 0x81, 0x40, 0x40, 0x80, //# #.$ $ # -0x80, 0x15, 0x14, 0x00, 0x80, //# .*.$ # -0x80, 0x41, 0x81, 0x40, 0x80, //# $.#.$ # -0x80, 0x04, 0x18, 0x10, 0x80, //# $.#. # -0x80, 0x40, 0x41, 0x80, 0x80, //# $ $.# # -0x88, 0x00, 0x20, 0x08, 0x80, //## @ ## -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 23 -0x10, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -0x88, 0x88, 0x88, 0x88, 0x28, 0x80, 0x01, 0x18, //########@## ..# -0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x18, //# $ ..# -0x80, 0x40, 0x84, 0x08, 0x48, 0x80, 0x01, 0x18, //# $ #$ #$## ..# -0x88, 0x08, 0x80, 0x00, 0x08, 0x88, 0x81, 0x18, //## ## ####..# -0x08, 0x04, 0x04, 0x88, 0x08, 0x00, 0x88, 0x88, // # $ $## # #### -0x08, 0x08, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, // # ## # # -0x88, 0x08, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, //## # ## -0x80, 0x04, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, //# $ ## -0x80, 0x08, 0x84, 0x08, 0x00, 0x00, 0x00, 0x00, //# ##$ # -0x80, 0x08, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, //# ## # -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //######## -//Level: 24 -0x0F, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ##### -0x00, 0x80, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // # ######### -0x00, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x80, // # $ $ # -0x88, 0x88, 0x80, 0x04, 0x08, 0x44, 0x00, 0x80, //##### $ #$$ # -0x80, 0x00, 0x80, 0x88, 0x00, 0x00, 0x88, 0x80, //# # ## ### -0x81, 0x11, 0x00, 0x08, 0x80, 0x04, 0x80, 0x00, //#... ## $# -0x81, 0x11, 0x84, 0x40, 0x04, 0x00, 0x80, 0x00, //#...#$$ $ # -0x81, 0x11, 0x80, 0x02, 0x80, 0x08, 0x80, 0x00, //#...# @# ## -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, //############ -//Level: 25 -0x09, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -0x08, 0x02, 0x11, 0x18, 0x00, // # @...# -0x08, 0x00, 0x08, 0x88, 0x80, // # #### -0x88, 0x84, 0x00, 0x00, 0x80, //###$ # -0x80, 0x00, 0x84, 0x80, 0x80, //# #$# # -0x80, 0x40, 0x80, 0x00, 0x80, //# $ # # -0x80, 0x00, 0x88, 0x88, 0x80, //# ##### -0x88, 0x88, 0x80, 0x00, 0x00, //##### -//Level: 26 -0x0F, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, //# # # # -0x80, 0x44, 0x00, 0x40, 0x00, 0x40, 0x40, 0x80, //# $$ $ $ $ # -0x80, 0x04, 0x08, 0x88, 0x88, 0x80, 0x80, 0x80, //# $ ###### # # -0x80, 0x44, 0x08, 0x20, 0x08, 0x00, 0x40, 0x80, //# $$ #@ # $ # -0x80, 0x00, 0x08, 0x00, 0x40, 0x00, 0x08, 0x80, //# # $ ## -0x88, 0x88, 0x88, 0x48, 0x80, 0x08, 0x81, 0x80, //######$## ##.# -0x08, 0x00, 0x08, 0x04, 0x00, 0x08, 0x11, 0x80, // # # $ #..# -0x08, 0x00, 0x00, 0x40, 0x00, 0x81, 0x11, 0x80, // # $ #...# -0x08, 0x80, 0x88, 0x88, 0x08, 0x01, 0x11, 0x80, // ## #### # ...# -0x08, 0x00, 0x40, 0x00, 0x45, 0x11, 0x11, 0x80, // # $ $*....# -0x08, 0x00, 0x08, 0x00, 0x08, 0x10, 0x01, 0x80, // # # #. .# -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############## -//Level: 27 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x00, //###### -0x80, 0x00, 0x08, 0x00, 0x00, //# # -0x80, 0x44, 0x48, 0x80, 0x00, //# $$$## -0x80, 0x08, 0x11, 0x88, 0x80, //# #..### -0x88, 0x00, 0x11, 0x40, 0x80, //## ..$ # -0x08, 0x02, 0x00, 0x00, 0x80, // # @ # -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -//Level: 28 -0x0E, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x08, 0x88, 0x88, //###### ##### -0x80, 0x00, 0x08, 0x88, 0x08, 0x00, 0x18, //# ### # .# -0x80, 0x04, 0x04, 0x08, 0x08, 0x11, 0x18, //# $ $ # #...# -0x80, 0x80, 0x04, 0x08, 0x88, 0x00, 0x18, //# # $ ### .# -0x80, 0x04, 0x44, 0x00, 0x04, 0x02, 0x18, //# $$$ $ @.# -0x88, 0x80, 0x04, 0x00, 0x48, 0x00, 0x18, //### $ $# .# -0x00, 0x80, 0x04, 0x84, 0x08, 0x11, 0x18, // # $#$ #...# -0x00, 0x88, 0x00, 0x00, 0x08, 0x00, 0x18, // ## # .# -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, // ########### -//Level: 29 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, //####### -0x80, 0x01, 0x40, 0x88, 0x80, //# .$ ### -0x80, 0x14, 0x14, 0x00, 0x80, //# .$.$ # -0x85, 0x41, 0x41, 0x20, 0x80, //#*$.$.@ # -0x80, 0x14, 0x14, 0x08, 0x80, //# .$.$ ## -0x80, 0x01, 0x40, 0x08, 0x00, //# .$ # -0x88, 0x88, 0x88, 0x88, 0x00, //######## -//Level: 30 -0x0A, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x81, 0x11, 0x88, 0x00, 0x80, //#...## # -0x81, 0x51, 0x00, 0x42, 0x80, //#.*. $@# -0x80, 0x04, 0x80, 0x08, 0x80, //# $# ## -0x88, 0x80, 0x88, 0x08, 0x88, //### ## ### -0x80, 0x00, 0x40, 0x00, 0x08, //# $ # -0x80, 0x04, 0x88, 0x48, 0x08, //# $##$# # -0x80, 0x00, 0x04, 0x00, 0x18, //# $ .# -0x88, 0x88, 0x88, 0x88, 0x88, //########## -//Level: 31 -0x08, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x80, // ##### -0x88, 0x80, 0x02, 0x80, //### @# -0x80, 0x04, 0x10, 0x88, //# $. ## -0x80, 0x01, 0x41, 0x08, //# .$. # -0x88, 0x80, 0x54, 0x08, //### *$ # -0x00, 0x80, 0x00, 0x88, // # ## -0x00, 0x88, 0x88, 0x80, // ##### -//Level: 32 -0x0E, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, // #### -0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, //######## #### -0x80, 0x00, 0x88, 0x11, 0x11, 0x10, 0x08, //# ##..... # -0x80, 0x04, 0x00, 0x88, 0x11, 0x18, 0x08, //# $ ##...# # -0x88, 0x00, 0x40, 0x08, 0x88, 0x08, 0x08, //## $ ### # # -0x08, 0x08, 0x04, 0x00, 0x80, 0x00, 0x08, // # # $ # # -0x08, 0x00, 0x80, 0x40, 0x08, 0x00, 0x08, // # # $ # # -0x08, 0x00, 0x08, 0x04, 0x00, 0x80, 0x08, // # # $ # # -0x08, 0x00, 0x00, 0x80, 0x40, 0x80, 0x88, // # # $ # ## -0x08, 0x88, 0x80, 0x08, 0x04, 0x00, 0x80, // #### # $ # -0x00, 0x00, 0x88, 0x00, 0x80, 0x40, 0x80, // ## # $ # -0x00, 0x00, 0x08, 0x82, 0x80, 0x00, 0x80, // ##@# # -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 33 -0x0A, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x88, 0x80, 0x00, 0x88, 0x88, //### #### -0x80, 0x00, 0x40, 0x40, 0x08, //# $ $ # -0x80, 0x40, 0x00, 0x40, 0x28, //# $ $ @# -0x88, 0x84, 0x48, 0x88, 0x88, //###$$##### -0x00, 0x80, 0x01, 0x18, 0x00, // # ..# -0x00, 0x81, 0x11, 0x18, 0x00, // #....# -0x00, 0x88, 0x88, 0x88, 0x00, // ###### -//Level: 34 -0x09, 0x0C,//Size x and y -0x88, 0x88, 0x08, 0x88, 0x80, //#### #### -0x80, 0x08, 0x88, 0x00, 0x80, //# ### # -0x80, 0x00, 0x04, 0x00, 0x80, //# $ # -0x80, 0x08, 0x08, 0x00, 0x80, //# # # # -0x88, 0x08, 0x08, 0x48, 0x80, //## # #$## -0x80, 0x08, 0x18, 0x00, 0x80, //# #.# # -0x80, 0x05, 0x15, 0x02, 0x80, //# *.* @# -0x80, 0x08, 0x18, 0x08, 0x80, //# #.# ## -0x88, 0x88, 0x00, 0x08, 0x00, //#### # -0x00, 0x08, 0x08, 0x48, 0x00, // # #$# -0x00, 0x08, 0x00, 0x08, 0x00, // # # -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 35 -0x0A, 0x06,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x80, 0x40, 0x11, 0x00, 0x80, //# $ .. # -0x82, 0x44, 0x11, 0x04, 0x88, //#@$$.. $## -0x80, 0x40, 0x11, 0x04, 0x08, //# $ .. $ # -0x88, 0x88, 0x88, 0x00, 0x08, //###### # -0x00, 0x00, 0x08, 0x88, 0x88, // ##### -//Level: 36 -0x0F, 0x07,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### -0x88, 0x88, 0x80, 0x00, 0x08, 0x88, 0x88, 0x80, //##### ###### -0x80, 0x00, 0x80, 0x00, 0x20, 0x08, 0x00, 0x80, //# # @ # # -0x80, 0x04, 0x15, 0x55, 0x55, 0x51, 0x40, 0x80, //# $.******.$ # -0x88, 0x88, 0x00, 0x00, 0x80, 0x08, 0x00, 0x80, //#### # # # -0x00, 0x08, 0x80, 0x00, 0x80, 0x00, 0x08, 0x80, // ## # ## -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ########## -//Level: 37 -0x09, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x88, 0x80, 0x20, 0x88, 0x80, //### @ ### -0x80, 0x04, 0x04, 0x00, 0x80, //# $ $ # -0x80, 0x51, 0x51, 0x50, 0x80, //# *.*.* # -0x80, 0x14, 0x04, 0x10, 0x80, //# .$ $. # -0x80, 0x51, 0x51, 0x50, 0x80, //# *.*.* # -0x80, 0x04, 0x04, 0x00, 0x80, //# $ $ # -0x88, 0x88, 0x88, 0x00, 0x80, //###### # -0x00, 0x00, 0x08, 0x88, 0x80, // #### -//Level: 38 -0x11, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x11, 0x80, // # ...# -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x01, 0x11, 0x80, // ##### ...# -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0x80, // # . .# -0x00, 0x00, 0x00, 0x80, 0x08, 0x80, 0x01, 0x11, 0x80, // # ## ...# -0x00, 0x00, 0x00, 0x88, 0x08, 0x80, 0x01, 0x11, 0x80, // ## ## ...# -0x00, 0x00, 0x08, 0x88, 0x08, 0x88, 0x88, 0x88, 0x80, // ### ######## -0x00, 0x00, 0x08, 0x04, 0x44, 0x08, 0x80, 0x00, 0x00, // # $$$ ## -0x08, 0x88, 0x88, 0x00, 0x40, 0x40, 0x88, 0x88, 0x80, // ##### $ $ ##### -0x88, 0x00, 0x08, 0x40, 0x40, 0x00, 0x80, 0x00, 0x80, //## #$ $ # # -0x82, 0x04, 0x00, 0x40, 0x00, 0x04, 0x00, 0x40, 0x80, //#@ $ $ $ $ # -0x88, 0x88, 0x88, 0x04, 0x40, 0x40, 0x88, 0x88, 0x80, //###### $$ $ ##### -0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######## -//Level: 39 -0x0A, 0x07,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x80, // ###### -0x08, 0x88, 0x00, 0x00, 0x80, // ### # -0x88, 0x10, 0x48, 0x80, 0x88, //##. $## ## -0x81, 0x14, 0x04, 0x00, 0x28, //#..$ $ @# -0x81, 0x10, 0x40, 0x40, 0x88, //#.. $ $ ## -0x88, 0x88, 0x80, 0x00, 0x80, //##### # -0x00, 0x00, 0x88, 0x88, 0x80, // ##### -//Level: 40 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, // ######## -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x04, 0x08, 0x00, // # $ $ # -0x08, 0x88, 0x88, 0x88, 0x80, 0x40, 0x40, 0x08, 0x00, // ######## $ $ # -0x88, 0x11, 0x10, 0x08, 0x88, 0x80, 0x88, 0x08, 0x00, //##... #### ## # -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x88, 0x08, 0x00, //#.... ## # -0x88, 0x11, 0x10, 0x08, 0x80, 0x44, 0x88, 0x08, 0x80, //##... ## $$## ## -0x08, 0x88, 0x88, 0x88, 0x80, 0x40, 0x00, 0x02, 0x80, // ######## $ @# -0x00, 0x00, 0x00, 0x88, 0x80, 0x88, 0x88, 0x08, 0x80, // ### #### ## -0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x00, 0x08, 0x00, // # $ $ # -0x00, 0x00, 0x00, 0x80, 0x04, 0x08, 0x88, 0x88, 0x00, // # $ ##### -0x00, 0x00, 0x00, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, // ## # -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 41 -0x07, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x00, 0x00, 0x80, //# # -0x80, 0x00, 0x00, 0x80, //# # -0x80, 0x08, 0x00, 0x80, //# # # -0x84, 0x44, 0x44, 0x80, //#$$$$$# -0x81, 0x13, 0x11, 0x80, //#..+..# -0x88, 0x88, 0x88, 0x80, //####### -//Level: 42 -0x0E, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x80, 0x88, 0x88, 0x80, // ###### ##### -0x88, 0x28, 0x00, 0x88, 0x80, 0x00, 0x88, //##@# ### ## -0x80, 0x00, 0x04, 0x00, 0x80, 0x40, 0x08, //# $ # $ # -0x80, 0x04, 0x00, 0x80, 0x00, 0x04, 0x08, //# $ # $ # -0x88, 0x80, 0x88, 0x88, 0x88, 0x00, 0x08, //### ###### # -0x88, 0x80, 0x88, 0x00, 0x88, 0x48, 0x88, //### ## ##$### -0x80, 0x40, 0x08, 0x88, 0x80, 0x11, 0x80, //# $ #### ..# -0x80, 0x40, 0x40, 0x40, 0x01, 0x11, 0x80, //# $ $ $ ...# -0x80, 0x00, 0x08, 0x88, 0x81, 0x11, 0x80, //# ####...# -0x80, 0x44, 0x08, 0x00, 0x81, 0x11, 0x80, //# $$ # #...# -0x80, 0x08, 0x88, 0x00, 0x88, 0x88, 0x80, //# ### ##### -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -//Level: 43 -0x07, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x05, 0x02, 0x80, //# * @# -0x80, 0x45, 0x40, 0x80, //# $*$ # -0x80, 0x01, 0x00, 0x80, //# . # -0x80, 0x45, 0x40, 0x80, //# $*$ # -0x84, 0x15, 0x10, 0x80, //#$.*. # -0x81, 0x01, 0x41, 0x80, //#. .$.# -0x80, 0x41, 0x00, 0x80, //# $. # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 44 -0x13, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ########### -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, // # # -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x40, 0x08, 0x00, // # $ $ # -0x88, 0x88, 0x88, 0x08, 0x04, 0x08, 0x88, 0x88, 0x08, 0x00, //###### # $ ##### # -0x80, 0x00, 0x08, 0x88, 0x88, 0x04, 0x00, 0x88, 0x48, 0x00, //# ##### $ ##$# -0x80, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x08, 0x00, //# $ $ # -0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x88, 0x08, 0x00, //# ## ## # -0x80, 0x00, 0x08, 0x82, 0x88, 0x88, 0x80, 0x88, 0x08, 0x00, //# ##@##### ## # -0x80, 0x00, 0x08, 0x88, 0x80, 0x00, 0x80, 0x88, 0x08, 0x80, //# #### # ## ## -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x80, //#....# # $ # -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, //#....# # # -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, //###### ####### -//Level: 45 -0x12, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x88, 0x88, // ##### #### -0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x88, 0x80, 0x08, // # #### # -0x08, 0x88, 0x88, 0x88, 0x08, 0x00, 0x04, 0x04, 0x08, // ####### # $ $ # -0x08, 0x00, 0x08, 0x80, 0x04, 0x08, 0x80, 0x80, 0x08, // # ## $ ## # # -0x08, 0x04, 0x00, 0x01, 0x18, 0x18, 0x80, 0x40, 0x88, // # $ ..#.## $ ## -0x08, 0x04, 0x08, 0x81, 0x11, 0x10, 0x40, 0x80, 0x80, // # $ ##.... $ # # -0x08, 0x08, 0x00, 0x41, 0x11, 0x18, 0x80, 0x40, 0x80, // # # $....## $ # -0x88, 0x44, 0x08, 0x81, 0x81, 0x10, 0x00, 0x40, 0x80, //##$$ ##.#.. $ # -0x80, 0x08, 0x08, 0x80, 0x40, 0x08, 0x80, 0x20, 0x80, //# # ## $ ## @ # -0x80, 0x00, 0x00, 0x40, 0x80, 0x88, 0x88, 0x88, 0x80, //# $ # ####### -0x80, 0x08, 0x88, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, //# #### # -0x88, 0x88, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //#### ##### -//Level: 46 -0x0A, 0x07,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -0x08, 0x00, 0x00, 0x08, 0x88, // # ### -0x88, 0x48, 0x88, 0x00, 0x08, //##$### # -0x80, 0x20, 0x40, 0x04, 0x08, //# @ $ $ # -0x80, 0x11, 0x80, 0x40, 0x88, //# ..# $ ## -0x88, 0x11, 0x80, 0x00, 0x80, //##..# # -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -//Level: 47 -0x11, 0x0C,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ######## -0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // # # -0x00, 0x80, 0x04, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // # $ ##### -0x00, 0x88, 0x88, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, // #### $ # -0x00, 0x80, 0x08, 0x84, 0x80, 0x40, 0x08, 0x00, 0x00, // # ##$# $ # -0x00, 0x80, 0x00, 0x02, 0x80, 0x80, 0x88, 0x88, 0x80, // # @# # ##### -0x08, 0x80, 0x88, 0x04, 0x04, 0x04, 0x40, 0x00, 0x80, // ## ## $ $ $$ # -0x08, 0x00, 0x08, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, // # # # # # -0x88, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //## ############ -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#....# -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#....# -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //###### -//Level: 48 -0x0F, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x84, 0x04, 0x44, 0x00, 0x80, // #$ $$$ # -0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x40, 0x80, // # # $ # -0x00, 0x00, 0x00, 0x80, 0x00, 0x42, 0x40, 0x80, // # $@$ # -0x00, 0x00, 0x88, 0x84, 0x04, 0x08, 0x08, 0x80, // ###$ $ # ## -0x00, 0x00, 0x80, 0x00, 0x48, 0x48, 0x08, 0x00, // # $#$# # -0x88, 0x88, 0x80, 0x80, 0x08, 0x00, 0x08, 0x00, //##### # # # -0x81, 0x11, 0x00, 0x80, 0x48, 0x08, 0x88, 0x00, //#... # $# ### -0x81, 0x11, 0x11, 0x00, 0x08, 0x08, 0x00, 0x00, //#..... # # -0x81, 0x11, 0x11, 0x80, 0x48, 0x08, 0x00, 0x00, //#.....# $# # -0x88, 0x88, 0x88, 0x88, 0x00, 0x08, 0x00, 0x00, //######## # -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 49 -0x0C, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -0x00, 0x80, 0x00, 0x88, 0x88, 0x88, // # ###### -0x88, 0x84, 0x81, 0x00, 0x00, 0x08, //###$#. # -0x80, 0x40, 0x11, 0x18, 0x04, 0x08, //# $ ...# $ # -0x82, 0x04, 0x18, 0x54, 0x00, 0x08, //#@ $.#*$ # -0x88, 0x88, 0x00, 0x00, 0x88, 0x88, //#### #### -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, // ###### -//Level: 50 -0x07, 0x07,//Size x and y -0x08, 0x88, 0x88, 0x80, // ###### -0x88, 0x01, 0x02, 0x80, //## . @# -0x80, 0x40, 0x40, 0x80, //# $ $ # -0x81, 0x05, 0x01, 0x80, //#. * .# -0x80, 0x40, 0x40, 0x80, //# $ $ # -0x80, 0x01, 0x08, 0x80, //# . ## -0x88, 0x88, 0x88, 0x00, //###### -//Level: 51 -0x08, 0x07,//Size x and y -0x00, 0x00, 0x88, 0x88, // #### -0x00, 0x00, 0x82, 0x08, // #@ # -0x88, 0x88, 0x80, 0x18, //##### .# -0x80, 0x40, 0x40, 0x48, //# $ $ $# -0x80, 0x00, 0x10, 0x08, //# . # -0x88, 0x80, 0x10, 0x08, //### . # -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 52 -0x13, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ################# -0x88, 0x82, 0x88, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x80, //###@## ...# -0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x80, //# # ...# -0x80, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x80, //# $ # ...# -0x80, 0x44, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x80, //# $$ # ...# -0x88, 0x04, 0x08, 0x88, 0x48, 0x88, 0x88, 0x88, 0x88, 0x80, //## $ ###$########## -0x08, 0x08, 0x88, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, // # ### $ # -0x88, 0x00, 0x04, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, //## $ $ # -0x80, 0x04, 0x08, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, //# $ # $ # -0x80, 0x40, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //# $ # # -0x80, 0x04, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //# $ # # -0x80, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //# # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //########### -//Level: 53 -0x10, 0x0C,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ###### -0x00, 0x08, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, // # ## -0x00, 0x08, 0x04, 0x04, 0x08, 0x80, 0x00, 0x00, // # $ $ ## -0x88, 0x88, 0x08, 0x48, 0x00, 0x88, 0x88, 0x00, //#### #$# #### -0x80, 0x40, 0x00, 0x04, 0x00, 0x80, 0x08, 0x88, //# $ $ # ### -0x80, 0x00, 0x04, 0x08, 0x04, 0x11, 0x11, 0x18, //# $ # $.....# -0x88, 0x80, 0x80, 0x88, 0x88, 0x11, 0x11, 0x18, //### # ####.....# -0x08, 0x80, 0x84, 0x04, 0x00, 0x11, 0x88, 0x88, // ## #$ $ ..#### -0x08, 0x00, 0x80, 0x00, 0x48, 0x00, 0x80, 0x00, // # # $# # -0x08, 0x24, 0x00, 0x40, 0x08, 0x88, 0x80, 0x00, // #@$ $ #### -0x08, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // # ###### -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 54 -0x0C, 0x06,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -0x00, 0x00, 0x00, 0x80, 0x08, 0x88, // # ### -0x88, 0x88, 0x88, 0x80, 0x00, 0x08, //####### # -0x80, 0x40, 0x51, 0x05, 0x14, 0x28, //# $ *. *.$@# -0x80, 0x00, 0x00, 0x80, 0x00, 0x08, //# # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -//Level: 55 -0x0D, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x08, 0x88, 0x88, 0x88, 0x00, 0x08, 0x80, // ####### ## -0x88, 0x08, 0x02, 0x88, 0x04, 0x40, 0x80, //## # @## $$ # -0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, //# $ # -0x80, 0x04, 0x00, 0x88, 0x80, 0x00, 0x80, //# $ ### # -0x88, 0x80, 0x88, 0x88, 0x84, 0x88, 0x80, //### #####$### -0x80, 0x40, 0x08, 0x88, 0x01, 0x18, 0x00, //# $ ### ..# -0x80, 0x40, 0x40, 0x40, 0x11, 0x18, 0x00, //# $ $ $ ...# -0x80, 0x00, 0x08, 0x88, 0x11, 0x18, 0x00, //# ###...# -0x80, 0x44, 0x08, 0x08, 0x11, 0x18, 0x00, //# $$ # #...# -0x80, 0x08, 0x88, 0x08, 0x88, 0x88, 0x00, //# ### ##### -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -//Level: 56 -0x0D, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, // #### -0x00, 0x88, 0x88, 0x80, 0x08, 0x00, 0x00, // ##### # -0x08, 0x80, 0x00, 0x00, 0x48, 0x00, 0x00, // ## $# -0x88, 0x04, 0x00, 0x88, 0x08, 0x88, 0x00, //## $ ## ### -0x82, 0x40, 0x40, 0x80, 0x40, 0x08, 0x00, //#@$ $ # $ # -0x88, 0x88, 0x08, 0x80, 0x00, 0x48, 0x00, //#### ## $# -0x08, 0x11, 0x11, 0x84, 0x04, 0x08, 0x00, // #....#$ $ # -0x08, 0x11, 0x11, 0x80, 0x00, 0x48, 0x00, // #....# $# -0x08, 0x11, 0x11, 0x00, 0x44, 0x08, 0x80, // #.... $$ ## -0x08, 0x11, 0x10, 0x80, 0x40, 0x00, 0x80, // #... # $ # -0x08, 0x88, 0x88, 0x84, 0x04, 0x00, 0x80, // ######$ $ # -0x00, 0x00, 0x00, 0x80, 0x00, 0x88, 0x80, // # ### -0x00, 0x00, 0x00, 0x84, 0x08, 0x88, 0x00, // #$ ### -0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, // #### -//Level: 57 -0x0A, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -0x08, 0x11, 0x11, 0x08, 0x00, // #.... # -0x88, 0x81, 0x11, 0x48, 0x88, //###...$### -0x80, 0x04, 0x84, 0x04, 0x08, //# $#$ $ # -0x80, 0x44, 0x00, 0x84, 0x08, //# $$ #$ # -0x80, 0x00, 0x08, 0x00, 0x08, //# # # -0x88, 0x88, 0x02, 0x08, 0x88, //#### @ ### -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 58 -0x0D, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, //###### ##### -0x80, 0x00, 0x08, 0x88, 0x80, 0x00, 0x80, //# #### # -0x80, 0x40, 0x00, 0x40, 0x00, 0x80, 0x80, //# $ $ # # -0x88, 0x00, 0x80, 0x88, 0x80, 0x40, 0x80, //## # ### $ # -0x08, 0x44, 0x00, 0x88, 0x84, 0x80, 0x80, // #$$ ###$# # -0x88, 0x00, 0x08, 0x00, 0x11, 0x10, 0x80, //## # ... # -0x80, 0x08, 0x04, 0x00, 0x41, 0x11, 0x80, //# # $ $...# -0x80, 0x08, 0x88, 0x88, 0x11, 0x88, 0x80, //# #####..### -0x80, 0x28, 0x00, 0x08, 0x88, 0x80, 0x00, //# @# #### -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -//Level: 59 -0x0E, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, // ####### -0x00, 0x00, 0x88, 0x88, 0x11, 0x11, 0x18, // ####.....# -0x88, 0x88, 0x80, 0x00, 0x11, 0x11, 0x18, //##### .....# -0x80, 0x00, 0x80, 0x08, 0x10, 0x11, 0x18, //# # #. ...# -0x80, 0x42, 0x88, 0x08, 0x88, 0x08, 0x88, //# $@## ### ### -0x80, 0x04, 0x00, 0x04, 0x00, 0x44, 0x08, //# $ $ $$ # -0x80, 0x00, 0x84, 0x00, 0x04, 0x00, 0x08, //# #$ $ # -0x80, 0x40, 0x80, 0x88, 0x40, 0x04, 0x08, //# $ # ##$ $ # -0x88, 0x80, 0x00, 0x04, 0x08, 0x80, 0x08, //### $ ## # -0x00, 0x80, 0x40, 0x40, 0x40, 0x00, 0x88, // # $ $ $ ## -0x00, 0x88, 0x80, 0x00, 0x08, 0x88, 0x80, // ### #### -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, // ###### -//Level: 60 -0x0B, 0x0A,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, // ###### -0x88, 0x88, 0x80, 0x00, 0x80, 0x00, //##### # -0x80, 0x40, 0x01, 0x00, 0x80, 0x00, //# $ . # -0x80, 0x40, 0x11, 0x88, 0x80, 0x00, //# $ ..### -0x82, 0x40, 0x44, 0x88, 0x80, 0x00, //#@$ $$### -0x88, 0x80, 0x14, 0x10, 0x88, 0x80, //### .$. ### -0x08, 0x84, 0x11, 0x14, 0x00, 0x80, // ##$...$ # -0x08, 0x04, 0x18, 0x80, 0x00, 0x80, // # $.## # -0x08, 0x00, 0x08, 0x88, 0x88, 0x80, // # ###### -0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 61 -0x07, 0x08,//Size x and y -0x88, 0x88, 0x80, 0x00, //##### -0x80, 0x00, 0x88, 0x80, //# ### -0x80, 0x04, 0x00, 0x80, //# $ # -0x88, 0x44, 0x01, 0x80, //##$$ .# -0x08, 0x20, 0x10, 0x80, // #@ . # -0x08, 0x80, 0x80, 0x80, // ## # # -0x00, 0x80, 0x01, 0x80, // # .# -0x00, 0x88, 0x88, 0x80, // ##### -//Level: 62 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x00, 0x80, 0x08, //# # # -0x80, 0x81, 0x40, 0x48, //# #.$ $# -0x80, 0x00, 0x40, 0x08, //# $ # -0x88, 0x88, 0x81, 0x08, //#####. # -0x00, 0x80, 0x00, 0x28, // # @# -0x00, 0x80, 0x00, 0x18, // # .# -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 63 -0x08, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x08, 0x00, 0x08, //# # # -0x80, 0x41, 0x14, 0x08, //# $..$ # -0x82, 0x41, 0x50, 0x88, //#@$.* ## -0x80, 0x41, 0x14, 0x08, //# $..$ # -0x80, 0x08, 0x00, 0x08, //# # # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 64 -0x0F, 0x0E,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -0x00, 0x08, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, // ### # -0x00, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, // # # # -0x08, 0x88, 0x00, 0x40, 0x08, 0x88, 0x88, 0x80, // ### $ ###### -0x08, 0x00, 0x84, 0x80, 0x08, 0x00, 0x00, 0x80, // # #$# # # -0x08, 0x40, 0x40, 0x88, 0x00, 0x04, 0x00, 0x80, // #$ $ ## $ # -0x88, 0x00, 0x80, 0x00, 0x04, 0x44, 0x88, 0x80, //## # $$$### -0x80, 0x00, 0x08, 0x88, 0x40, 0x00, 0x80, 0x00, //# ###$ # -0x80, 0x48, 0x44, 0x11, 0x18, 0x88, 0x80, 0x00, //# $#$$...#### -0x80, 0x00, 0x08, 0x11, 0x11, 0x80, 0x00, 0x00, //# #....# -0x80, 0x80, 0x20, 0x81, 0x11, 0x80, 0x00, 0x00, //# # @ #...# -0x80, 0x00, 0x00, 0x41, 0x11, 0x80, 0x00, 0x00, //# $...# -0x88, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, //## # # -0x08, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ########## -//Level: 65 -0x0B, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //######### -0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //# # -0x80, 0x04, 0x04, 0x04, 0x80, 0x00, //# $ $ $# -0x88, 0x08, 0x48, 0x80, 0x80, 0x00, //## #$## # -0x08, 0x01, 0x10, 0x11, 0x88, 0x00, // # .. ..## -0x08, 0x81, 0x10, 0x11, 0x08, 0x00, // ##.. .. # -0x00, 0x80, 0x88, 0x48, 0x08, 0x80, // # ##$# ## -0x00, 0x84, 0x04, 0x04, 0x00, 0x80, // #$ $ $ # -0x00, 0x80, 0x00, 0x00, 0x02, 0x80, // # @# -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -//Level: 66 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, //######## -0x81, 0x11, 0x11, 0x18, 0x00, //#......# -0x80, 0x04, 0x08, 0x08, 0x80, //# $ # ## -0x80, 0x40, 0x80, 0x40, 0x80, //# $ # $ # -0x88, 0x40, 0x40, 0x40, 0x80, //##$ $ $ # -0x08, 0x00, 0x20, 0x00, 0x80, // # @ # -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -//Level: 67 -0x0A, 0x08,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, // ##### -0x88, 0x88, 0x88, 0x11, 0x18, //######...# -0x80, 0x00, 0x42, 0x04, 0x88, //# $@ $## -0x80, 0x04, 0x08, 0x04, 0x08, //# $ # $ # -0x81, 0x04, 0x08, 0x40, 0x08, //#. $ #$ # -0x80, 0x88, 0x88, 0x08, 0x18, //# #### #.# -0x81, 0x00, 0x00, 0x04, 0x18, //#. $.# -0x88, 0x88, 0x88, 0x88, 0x88, //########## -//Level: 68 -0x0B, 0x07,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x80, // ######## -0x88, 0x88, 0x20, 0x00, 0x10, 0x80, //####@ . # -0x80, 0x04, 0x04, 0x04, 0x10, 0x80, //# $ $ $. # -0x80, 0x01, 0x88, 0x80, 0x18, 0x80, //# .### .## -0x80, 0x41, 0x40, 0x40, 0x08, 0x00, //# $.$ $ # -0x80, 0x01, 0x00, 0x88, 0x88, 0x00, //# . #### -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //####### -//Level: 69 -0x08, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, // ##### -0x00, 0x08, 0x02, 0x08, // # @ # -0x08, 0x88, 0x00, 0x08, // ### # -0x08, 0x04, 0x04, 0x88, // # $ $## -0x88, 0x04, 0x00, 0x80, //## $ # -0x81, 0x00, 0x80, 0x80, //#. # # -0x81, 0x10, 0x00, 0x80, //#.. # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 70 -0x10, 0x0E,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ########## -0x00, 0x08, 0x11, 0x00, 0x80, 0x00, 0x80, 0x00, // #.. # # -0x00, 0x08, 0x11, 0x00, 0x00, 0x00, 0x80, 0x00, // #.. # -0x00, 0x08, 0x11, 0x00, 0x80, 0x08, 0x88, 0x80, // #.. # #### -0x00, 0x88, 0x88, 0x88, 0x80, 0x08, 0x00, 0x88, // ####### # ## -0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, // # # -0x00, 0x80, 0x08, 0x00, 0x88, 0x00, 0x80, 0x08, // # # ## # # -0x88, 0x88, 0x08, 0x80, 0x08, 0x88, 0x80, 0x88, //#### ## #### ## -0x80, 0x04, 0x00, 0x88, 0x88, 0x80, 0x80, 0x08, //# $ ##### # # -0x80, 0x80, 0x40, 0x04, 0x00, 0x80, 0x40, 0x08, //# # $ $ # $ # -0x80, 0x24, 0x00, 0x40, 0x00, 0x80, 0x00, 0x88, //# @$ $ # ## -0x88, 0x88, 0x08, 0x80, 0x88, 0x88, 0x88, 0x80, //#### ## ####### -0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, // # # -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ###### -//Level: 71 -0x0A, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, // ######## -0x00, 0x80, 0x00, 0x81, 0x08, // # #. # -0x08, 0x80, 0x04, 0x11, 0x18, // ## $...# -0x08, 0x00, 0x40, 0x85, 0x18, // # $ #*.# -0x88, 0x08, 0x84, 0x80, 0x88, //## ##$# ## -0x80, 0x00, 0x40, 0x04, 0x08, //# $ $ # -0x80, 0x00, 0x80, 0x00, 0x08, //# # # -0x88, 0x88, 0x88, 0x82, 0x08, //#######@ # -0x00, 0x00, 0x00, 0x88, 0x88, // #### -//Level: 72 -0x13, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //############# -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, //# # -0x80, 0x88, 0x80, 0x44, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, //# ### $$ # -0x80, 0x00, 0x80, 0x40, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, //# # $ $ # -0x80, 0x04, 0x88, 0x88, 0x48, 0x88, 0x88, 0x80, 0x00, 0x00, //# $####$###### -0x80, 0x40, 0x88, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, //# $ ## ##### -0x80, 0x04, 0x40, 0x40, 0x00, 0x00, 0x00, 0x01, 0x11, 0x80, //# $$ $ ...# -0x88, 0x80, 0x88, 0x04, 0x48, 0x00, 0x00, 0x01, 0x11, 0x80, //### ## $$# ...# -0x00, 0x80, 0x88, 0x00, 0x08, 0x00, 0x00, 0x01, 0x11, 0x80, // # ## # ...# -0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x01, 0x11, 0x80, // # # ...# -0x00, 0x88, 0x82, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ###@############# -0x00, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ### -//Level: 73 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ###### -0x08, 0x88, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // #### # -0x08, 0x00, 0x00, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, // # ## # -0x08, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // # $ # -0x88, 0x80, 0x88, 0x88, 0x08, 0x88, 0x88, 0x88, 0x80, //### #### ######## -0x80, 0x04, 0x00, 0x04, 0x08, 0x80, 0x01, 0x11, 0x80, //# $ $ ## ...# -0x80, 0x00, 0x44, 0x04, 0x40, 0x00, 0x01, 0x11, 0x80, //# $$ $$ ...# -0x80, 0x00, 0x04, 0x00, 0x48, 0x80, 0x01, 0x11, 0x80, //# $ $## ...# -0x88, 0x28, 0x80, 0x88, 0x08, 0x80, 0x01, 0x11, 0x80, //##@## ## ## ...# -0x08, 0x88, 0x00, 0x40, 0x08, 0x88, 0x88, 0x88, 0x80, // ### $ ######## -0x08, 0x00, 0x04, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, // # $$ # -0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, // # # # -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ######### -//Level: 74 -0x0F, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x80, //# ##### # -0x80, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x80, //# . . # -0x81, 0x81, 0x88, 0x08, 0x81, 0x88, 0x80, 0x80, //#.#.## ##.### # -0x81, 0x11, 0x00, 0x40, 0x01, 0x11, 0x10, 0x80, //#... $ .... # -0x88, 0x11, 0x08, 0x08, 0x01, 0x18, 0x80, 0x80, //##.. # # ..## # -0x88, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, 0x80, //###### ###### # -0x80, 0x00, 0x08, 0x08, 0x00, 0x00, 0x80, 0x80, //# # # # # -0x80, 0x44, 0x08, 0x48, 0x04, 0x40, 0x80, 0x80, //# $$ #$# $$ # # -0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, //# $ $ $ $ $ # # -0x80, 0x44, 0x08, 0x48, 0x04, 0x40, 0x80, 0x80, //# $$ #$# $$ # # -0x80, 0x00, 0x08, 0x28, 0x00, 0x00, 0x80, 0x80, //# #@# # # -0x80, 0x88, 0x88, 0x08, 0x88, 0x08, 0x80, 0x80, //# #### ### ## # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 75 -0x09, 0x09,//Size x and y -0x88, 0x88, 0x80, 0x00, 0x00, //##### -0x82, 0x00, 0x80, 0x00, 0x00, //#@ # -0x80, 0x44, 0x80, 0x88, 0x80, //# $$# ### -0x80, 0x40, 0x80, 0x81, 0x80, //# $ # #.# -0x88, 0x80, 0x88, 0x81, 0x80, //### ###.# -0x08, 0x80, 0x00, 0x01, 0x80, // ## .# -0x08, 0x00, 0x08, 0x00, 0x80, // # # # -0x08, 0x00, 0x08, 0x88, 0x80, // # #### -0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 76 -0x0A, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, //########## -0x81, 0x10, 0x00, 0x00, 0x08, //#.. # -0x81, 0x14, 0x00, 0x80, 0x08, //#..$ # # -0x80, 0x08, 0x48, 0x80, 0x88, //# #$## ## -0x80, 0x40, 0x00, 0x00, 0x80, //# $ # -0x88, 0x88, 0x80, 0x80, 0x80, //##### # # -0x00, 0x80, 0x40, 0x20, 0x80, // # $ @ # -0x00, 0x80, 0x00, 0x00, 0x80, // # # -0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 77 -0x0C, 0x0D,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, // #### -0x08, 0x00, 0x88, 0x88, 0x88, 0x00, // # ###### -0x08, 0x00, 0x00, 0x04, 0x28, 0x00, // # $@# -0x88, 0x08, 0x81, 0x88, 0x48, 0x00, //## ##.##$# -0x80, 0x08, 0x01, 0x08, 0x08, 0x88, //# # . # ### -0x80, 0x00, 0x51, 0x18, 0x00, 0x08, //# *..# # -0x88, 0x08, 0x01, 0x04, 0x08, 0x08, //## # . $ # # -0x88, 0x08, 0x81, 0x80, 0x04, 0x08, //## ##.# $ # -0x80, 0x08, 0x81, 0x80, 0x88, 0x88, //# ##.# #### -0x80, 0x44, 0x04, 0x80, 0x08, 0x00, //# $$ $# # -0x80, 0x08, 0x00, 0x00, 0x08, 0x00, //# # # -0x88, 0x88, 0x88, 0x80, 0x08, 0x00, //####### # -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -//Level: 78 -0x0D, 0x0A,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -0x00, 0x88, 0x80, 0x00, 0x88, 0x80, 0x00, // ### ### -0x08, 0x81, 0x40, 0x00, 0x00, 0x88, 0x00, // ##.$ ## -0x08, 0x10, 0x44, 0x44, 0x40, 0x08, 0x00, // #. $$$$$ # -0x88, 0x00, 0x80, 0x00, 0x80, 0x08, 0x80, //## # # ## -0x80, 0x08, 0x58, 0x28, 0x58, 0x00, 0x80, //# #*#@#*# # -0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, //# # # # -0x88, 0x01, 0x44, 0x44, 0x41, 0x08, 0x80, //## .$$$$$. ## -0x08, 0x81, 0x11, 0x11, 0x11, 0x88, 0x00, // ##.......## -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ######### -//Level: 79 -0x10, 0x09,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, // # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x05, 0x08, 0x88, //########## * ### -0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, //# . # -0x80, 0x44, 0x44, 0x55, 0x55, 0x41, 0x11, 0x28, //# $$$$****$...@# -0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, //# . # -0x88, 0x88, 0x88, 0x88, 0x88, 0x05, 0x08, 0x88, //########## * ### -0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 80 -0x11, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //################ -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, //# # -0x80, 0x80, 0x88, 0x88, 0x88, 0x00, 0x00, 0x08, 0x00, //# # ###### # -0x80, 0x80, 0x04, 0x04, 0x04, 0x04, 0x80, 0x08, 0x00, //# # $ $ $ $# # -0x80, 0x80, 0x00, 0x42, 0x40, 0x00, 0x88, 0x08, 0x80, //# # $@$ ## ## -0x80, 0x80, 0x04, 0x04, 0x04, 0x88, 0x81, 0x11, 0x80, //# # $ $ $###...# -0x80, 0x80, 0x00, 0x40, 0x40, 0x08, 0x81, 0x11, 0x80, //# # $ $ ##...# -0x80, 0x88, 0x84, 0x44, 0x04, 0x08, 0x81, 0x11, 0x80, //# ###$$$ $ ##...# -0x80, 0x00, 0x00, 0x80, 0x88, 0x08, 0x81, 0x11, 0x80, //# # ## ##...# -0x88, 0x88, 0x80, 0x00, 0x88, 0x08, 0x81, 0x11, 0x80, //##### ## ##...# -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x88, 0x80, // ##### ### -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, // ####### -//Level: 81 -0x06, 0x08,//Size x and y -0x08, 0x88, 0x80, // #### -0x88, 0x00, 0x80, //## # -0x82, 0x40, 0x80, //#@$ # -0x88, 0x40, 0x88, //##$ ## -0x88, 0x04, 0x08, //## $ # -0x81, 0x40, 0x08, //#.$ # -0x81, 0x15, 0x18, //#..*.# -0x88, 0x88, 0x88, //###### -//Level: 82 -0x0E, 0x0C,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, // ###### -0x00, 0x88, 0x80, 0x00, 0x08, 0x88, 0x00, // ### ### -0x00, 0x80, 0x00, 0x84, 0x00, 0x08, 0x88, // # #$ ### -0x00, 0x80, 0x00, 0x40, 0x00, 0x44, 0x08, // # $ $$ # -0x00, 0x80, 0x44, 0x08, 0x40, 0x00, 0x08, // # $$ #$ # -0x00, 0x88, 0x00, 0x04, 0x00, 0x04, 0x08, // ## $ $ # -0x88, 0x88, 0x88, 0x08, 0x48, 0x88, 0x88, //###### #$##### -0x81, 0x12, 0x08, 0x40, 0x08, 0x00, 0x00, //#..@ #$ # -0x81, 0x81, 0x10, 0x04, 0x88, 0x00, 0x00, //#.#.. $## -0x81, 0x11, 0x14, 0x80, 0x80, 0x00, 0x00, //#....$# # -0x81, 0x11, 0x10, 0x00, 0x80, 0x00, 0x00, //#.... # -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //######### -//Level: 83 -0x0D, 0x0A,//Size x and y -0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, // #### -0x88, 0x88, 0x00, 0x88, 0x88, 0x88, 0x00, //#### ###### -0x80, 0x00, 0x00, 0x88, 0x00, 0x08, 0x00, //# ## # -0x80, 0x48, 0x04, 0x00, 0x00, 0x48, 0x00, //# $# $ $# -0x88, 0x08, 0x88, 0x04, 0x80, 0x08, 0x00, //## ### $# # -0x08, 0x04, 0x04, 0x00, 0x88, 0x08, 0x00, // # $ $ ## # -0x08, 0x00, 0x04, 0x08, 0x80, 0x08, 0x80, // # $ ## ## -0x08, 0x40, 0x81, 0x11, 0x50, 0x40, 0x80, // #$ #...* $ # -0x08, 0x02, 0x80, 0x11, 0x11, 0x11, 0x80, // # @# ......# -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############ -//Level: 84 -0x08, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x00, // #### -0x00, 0x80, 0x08, 0x00, // # # -0x00, 0x80, 0x08, 0x88, // # ### -0x88, 0x80, 0x11, 0x08, //### .. # -0x80, 0x04, 0x80, 0x08, //# $# # -0x80, 0x01, 0x44, 0x08, //# .$$ # -0x88, 0x88, 0x02, 0x08, //#### @ # -0x00, 0x08, 0x88, 0x88, // ##### -//Level: 85 -0x08, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x80, // ###### -0x08, 0x20, 0x00, 0x88, // #@ ## -0x08, 0x84, 0x00, 0x08, // ##$ # -0x88, 0x80, 0x10, 0x08, //### . # -0x80, 0x40, 0x84, 0x88, //# $ #$## -0x80, 0x10, 0x01, 0x80, //# . .# -0x88, 0x88, 0x00, 0x80, //#### # -0x00, 0x08, 0x88, 0x80, // #### -//Level: 86 -0x0F, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //######### -0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, //# # -0x80, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, //# #### -0x88, 0x08, 0x88, 0x80, 0x80, 0x08, 0x00, 0x00, //## #### # # -0x88, 0x08, 0x28, 0x80, 0x00, 0x08, 0x00, 0x00, //## #@## # -0x80, 0x44, 0x40, 0x40, 0x04, 0x48, 0x00, 0x00, //# $$$ $ $$# -0x80, 0x08, 0x08, 0x80, 0x40, 0x08, 0x00, 0x00, //# # ## $ # -0x80, 0x08, 0x08, 0x80, 0x04, 0x08, 0x88, 0x80, //# # ## $ #### -0x88, 0x88, 0x00, 0x44, 0x40, 0x48, 0x00, 0x80, //#### $$$ $# # -0x08, 0x00, 0x08, 0x80, 0x00, 0x11, 0x11, 0x80, // # ## ....# -0x08, 0x08, 0x00, 0x08, 0x08, 0x11, 0x01, 0x80, // # # # #.. .# -0x08, 0x00, 0x08, 0x08, 0x08, 0x81, 0x11, 0x80, // # # # ##...# -0x08, 0x88, 0x88, 0x04, 0x00, 0x81, 0x11, 0x80, // ##### $ #...# -0x00, 0x00, 0x08, 0x80, 0x00, 0x88, 0x88, 0x80, // ## ##### -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -//Level: 87 -0x13, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x08, 0x80, 0x00, // ## ## -0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x80, 0x00, // ## # -0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x44, 0x00, 0x80, 0x00, // ## $$ # -0x00, 0x00, 0x00, 0x08, 0x80, 0x44, 0x00, 0x40, 0x80, 0x00, // ## $$ $ # -0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x40, 0x80, 0x00, // # $ $ # -0x88, 0x88, 0x00, 0x08, 0x00, 0x04, 0x40, 0x88, 0x88, 0x80, //#### # $$ ##### -0x80, 0x08, 0x88, 0x88, 0x88, 0x80, 0x88, 0x00, 0x00, 0x80, //# ######## ## # -0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x42, 0x80, //#. $$$@# -0x81, 0x80, 0x88, 0x88, 0x88, 0x80, 0x88, 0x00, 0x08, 0x80, //#.# ####### ## ## -0x81, 0x80, 0x88, 0x88, 0x88, 0x81, 0x08, 0x40, 0x48, 0x80, //#.# #######. #$ $## -0x81, 0x11, 0x11, 0x11, 0x11, 0x11, 0x08, 0x00, 0x00, 0x80, //#........... # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x40, 0x80, //############## $ # -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x08, 0x80, // ## ## -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -//Level: 88 -0x0D, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############# -0x80, 0x01, 0x01, 0x01, 0x01, 0x00, 0x80, //# . . . . # -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # -0x81, 0x40, 0x80, 0x40, 0x80, 0x41, 0x80, //#.$ # $ # $.# -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # -0x80, 0x84, 0x44, 0x84, 0x44, 0x80, 0x80, //# #$$$#$$$# # -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # -0x81, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, //#.$ # $ # $ # -0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, //# # # # # #.# -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # -0x80, 0x01, 0x01, 0x21, 0x01, 0x00, 0x80, //# . .@. . # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############# -//Level: 89 -0x0A, 0x06,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, // ######### -0x88, 0x20, 0x00, 0x00, 0x08, //##@ # -0x80, 0x00, 0x84, 0x84, 0x08, //# #$#$ # -0x80, 0x44, 0x00, 0x14, 0x18, //# $$ .$.# -0x80, 0x08, 0x88, 0x11, 0x18, //# ###...# -0x88, 0x88, 0x08, 0x88, 0x88, //#### ##### -//Level: 90 -0x11, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x88, 0x88, 0x88, 0x88, 0x80, //####### ######### -0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x88, 0x00, 0x80, //# # # ## # -0x80, 0x88, 0x80, 0x80, 0x80, 0x00, 0x40, 0x00, 0x80, //# ### # # $ # -0x80, 0x80, 0x40, 0x88, 0x80, 0x00, 0x40, 0x00, 0x80, //# # $ ### $ # -0x80, 0x00, 0x44, 0x00, 0x00, 0x00, 0x88, 0x40, 0x80, //# $$ ##$ # -0x80, 0x00, 0x08, 0x88, 0x80, 0x00, 0x88, 0x00, 0x80, //# #### ## # -0x82, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x80, //#@############ ## -0x88, 0x81, 0x10, 0x00, 0x08, 0x88, 0x88, 0x40, 0x80, //###.. #####$ # -0x00, 0x81, 0x10, 0x00, 0x08, 0x88, 0x80, 0x00, 0x80, // #.. #### # -0x00, 0x81, 0x10, 0x00, 0x00, 0x00, 0x44, 0x00, 0x80, // #.. $$ # -0x00, 0x81, 0x10, 0x00, 0x08, 0x88, 0x80, 0x40, 0x80, // #.. #### $ # -0x00, 0x81, 0x10, 0x00, 0x08, 0x00, 0x80, 0x00, 0x80, // #.. # # # -0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, // ######## ##### -//Level: 91 -0x10, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, // # # -0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // # # # # # -0x00, 0x00, 0x00, 0x08, 0x00, 0x40, 0x48, 0x08, // # $ $# # -0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, // # $ # -0x00, 0x00, 0x00, 0x08, 0x80, 0x40, 0x48, 0x08, // ## $ $# # -0x08, 0x88, 0x00, 0x00, 0x80, 0x40, 0x40, 0x08, // ### # $ $ # -0x88, 0x18, 0x88, 0x88, 0x80, 0x88, 0x88, 0x88, //##.###### ###### -0x81, 0x11, 0x00, 0x80, 0x40, 0x40, 0x80, 0x00, //#... # $ $ # -0x88, 0x11, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, //##.. $ # -0x81, 0x11, 0x00, 0x80, 0x02, 0x88, 0x80, 0x00, //#... # @### -0x88, 0x18, 0x88, 0x80, 0x08, 0x80, 0x00, 0x00, //##.#### ## -0x08, 0x88, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // ### #### -//Level: 92 -0x12, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ########### -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x88, // # # ## -0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x01, 0x18, // # $ ..# -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x84, 0x81, 0x18, // # #$#..# -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x01, 0x18, // ########### ..# -0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x18, // # $ ..# -0x00, 0x80, 0x80, 0x80, 0x48, 0x80, 0x80, 0x81, 0x18, // # # # $## # #..# -0x00, 0x80, 0x00, 0x84, 0x00, 0x00, 0x80, 0x01, 0x18, // # #$ # ..# -0x08, 0x84, 0x80, 0x40, 0x88, 0x88, 0x88, 0x80, 0x08, // ##$# $ ####### # -0x88, 0x00, 0x04, 0x00, 0x80, 0x00, 0x08, 0x04, 0x08, //## $ # # $ # -0x80, 0x00, 0x48, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, //# $# # # # -0x80, 0x04, 0x00, 0x08, 0x80, 0x00, 0x08, 0x88, 0x88, //# $ ## ##### -0x80, 0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //# $##### -0x80, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //# @# -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -//Level: 93 -0x12, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################## -0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x08, 0x11, 0x18, //# ## #...# -0x80, 0x40, 0x44, 0x80, 0x00, 0x04, 0x08, 0x11, 0x18, //# $ $$# $ #...# -0x80, 0x40, 0x00, 0x84, 0x88, 0x44, 0x08, 0x11, 0x18, //# $ #$##$$ #...# -0x80, 0x44, 0x84, 0x00, 0x00, 0x00, 0x02, 0x11, 0x18, //# $$#$ @...# -0x80, 0x40, 0x40, 0x48, 0x40, 0x88, 0x88, 0x00, 0x18, //# $ $ $#$ #### .# -0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x04, 0x11, 0x18, //# ## $...# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################## -//Level: 94 -0x0A, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x80, 0x00, 0x88, 0x00, 0x80, //# ## # -0x80, 0x80, 0x40, 0x40, 0x80, //# # $ $ # -0x80, 0x05, 0x18, 0x00, 0x80, //# *.# # -0x88, 0x08, 0x12, 0x18, 0x80, //## #.@.## -0x88, 0x48, 0x88, 0x58, 0x88, //##$###*### -0x80, 0x00, 0x00, 0x00, 0x08, //# # -0x80, 0x00, 0x88, 0x08, 0x08, //# ## # # -0x88, 0x88, 0x88, 0x00, 0x08, //###### # -0x00, 0x00, 0x08, 0x88, 0x88, // ##### -//Level: 95 -0x0E, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ######## -0x00, 0x80, 0x00, 0x80, 0x08, 0x88, 0x00, // # # ### -0x88, 0x80, 0x80, 0x40, 0x04, 0x08, 0x88, //### # $ $ ### -0x80, 0x00, 0x08, 0x44, 0x08, 0x00, 0x08, //# #$$ # # -0x80, 0x88, 0x48, 0x00, 0x20, 0x04, 0x08, //# ##$# @ $ # -0x80, 0x00, 0x04, 0x48, 0x88, 0x40, 0x88, //# $$###$ ## -0x80, 0x00, 0x48, 0x08, 0x80, 0x08, 0x80, //# $# ## ## -0x80, 0x84, 0x08, 0x01, 0x11, 0x88, 0x00, //# #$ # ...## -0x80, 0x40, 0x81, 0x11, 0x11, 0x80, 0x00, //# $ #.....# -0x88, 0x00, 0x11, 0x11, 0x18, 0x80, 0x00, //## .....## -0x08, 0x04, 0x80, 0x88, 0x88, 0x00, 0x00, // # $# #### -0x08, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, // ## # -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ##### -//Level: 96 -0x0C, 0x08,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, // ##### -0x88, 0x88, 0x88, 0x88, 0x00, 0x08, //######## # -0x80, 0x11, 0x11, 0x11, 0x40, 0x08, //# ......$ # -0x80, 0x08, 0x48, 0x88, 0x00, 0x08, //# #$### # -0x88, 0x04, 0x24, 0x08, 0x00, 0x08, //## $@$ # # -0x08, 0x04, 0x04, 0x08, 0x00, 0x08, // # $ $ # # -0x08, 0x00, 0x00, 0x08, 0x88, 0x88, // # ##### -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, // ####### -//Level: 97 -0x14, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //###### -0x80, 0x00, 0x08, 0x88, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, //# ### ###### -0x80, 0x80, 0x04, 0x08, 0x00, 0x88, 0x88, 0x00, 0x11, 0x80, //# # $ # #### ..# -0x80, 0x80, 0x04, 0x08, 0x88, 0x82, 0x88, 0x00, 0x11, 0x88, //# # $ ####@## ..## -0x80, 0x04, 0x44, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x18, //# $$$ $ ...# -0x88, 0x80, 0x04, 0x00, 0x48, 0x88, 0x88, 0x00, 0x11, 0x88, //### $ $##### ..## -0x00, 0x84, 0x04, 0x04, 0x08, 0x00, 0x08, 0x00, 0x11, 0x80, // #$ $ $ # # ..# -0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x08, 0x88, 0x88, 0x80, // # # ###### -0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ######## -//Level: 98 -0x0F, 0x0E,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ##### -0x88, 0x88, 0x80, 0x00, 0x88, 0x88, 0x88, 0x00, //##### ###### -0x80, 0x00, 0x00, 0x80, 0x08, 0x80, 0x08, 0x80, //# # ## ## -0x80, 0x80, 0x44, 0x00, 0x04, 0x00, 0x00, 0x80, //# # $$ $ # -0x80, 0x08, 0x00, 0x08, 0x80, 0x80, 0x80, 0x80, //# # ## # # # -0x80, 0x40, 0x80, 0x88, 0x00, 0x04, 0x00, 0x80, //# $ # ## $ # -0x80, 0x00, 0x04, 0x04, 0x00, 0x08, 0x08, 0x80, //# $ $ # ## -0x88, 0x04, 0x08, 0x00, 0x84, 0x88, 0x08, 0x00, //## $ # #$## # -0x08, 0x88, 0x00, 0x80, 0x80, 0x80, 0x48, 0x00, // ### # # # $# -0x00, 0x08, 0x04, 0x00, 0x20, 0x11, 0x18, 0x00, // # $ @ ...# -0x00, 0x08, 0x04, 0x88, 0x48, 0x11, 0x18, 0x00, // # $##$#...# -0x00, 0x08, 0x80, 0x00, 0x11, 0x11, 0x88, 0x00, // ## ....## -0x00, 0x00, 0x88, 0x80, 0x11, 0x18, 0x80, 0x00, // ### ...## -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, // ###### -//Level: 99 -0x0B, 0x0A,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, // ######### -0x08, 0x00, 0x00, 0x00, 0x08, 0x80, // # ## -0x08, 0x40, 0x88, 0x88, 0x00, 0x80, // #$ #### # -0x88, 0x08, 0x01, 0x50, 0x80, 0x80, //## # .* # # -0x80, 0x00, 0x45, 0x10, 0x80, 0x80, //# $*. # # -0x80, 0x84, 0x21, 0x50, 0x80, 0x80, //# #$@.* # # -0x80, 0x00, 0x04, 0x00, 0x00, 0x80, //# $ # -0x88, 0x88, 0x48, 0x84, 0x08, 0x80, //####$##$ ## -0x00, 0x08, 0x01, 0x11, 0x08, 0x00, // # ... # -0x00, 0x08, 0x88, 0x88, 0x88, 0x00, // ####### -//Level: 100 -0x09, 0x0C,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x00, 0x80, 0x20, 0x80, 0x00, // # @ # -0x00, 0x80, 0x40, 0x80, 0x00, // # $ # -0x88, 0x80, 0x10, 0x88, 0x80, //### . ### -0x80, 0x00, 0x50, 0x00, 0x80, //# * # -0x80, 0x55, 0x55, 0x50, 0x80, //# ***** # -0x80, 0x00, 0x50, 0x00, 0x80, //# * # -0x88, 0x84, 0x54, 0x88, 0x80, //###$*$### -0x00, 0x80, 0x10, 0x80, 0x00, // # . # -0x00, 0x80, 0x50, 0x80, 0x00, // # * # -0x00, 0x80, 0x10, 0x80, 0x00, // # . # -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -//Level: 101 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x88, 0x88, 0x80, // # ##### -0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x88, 0x00, 0x80, // # #$## # -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, // # $ # -0x88, 0x88, 0x88, 0x88, 0x80, 0x88, 0x80, 0x00, 0x80, //######### ### # -0x81, 0x11, 0x10, 0x08, 0x80, 0x40, 0x04, 0x88, 0x80, //#.... ## $ $### -0x81, 0x11, 0x10, 0x00, 0x04, 0x04, 0x40, 0x88, 0x00, //#.... $ $$ ## -0x81, 0x11, 0x10, 0x08, 0x84, 0x00, 0x40, 0x28, 0x00, //#.... ##$ $ @# -0x88, 0x88, 0x88, 0x88, 0x80, 0x04, 0x00, 0x88, 0x00, //######### $ ## -0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x08, 0x00, // # $ $ # -0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x88, 0x08, 0x00, // ### ## # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, // ###### -//Level: 102 -0x13, 0x0F,//Size x and y -0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ##### -0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // # # -0x08, 0x08, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // # # ####### -0x08, 0x00, 0x00, 0x00, 0x42, 0x88, 0x88, 0x88, 0x00, 0x00, // # $@###### -0x08, 0x04, 0x08, 0x84, 0x08, 0x88, 0x00, 0x08, 0x00, 0x00, // # $ ##$ ### # -0x08, 0x08, 0x88, 0x80, 0x40, 0x00, 0x04, 0x08, 0x00, 0x00, // # #### $ $ # -0x08, 0x08, 0x88, 0x88, 0x08, 0x00, 0x84, 0x08, 0x88, 0x80, // # ##### # #$ #### -0x88, 0x00, 0x88, 0x88, 0x08, 0x84, 0x00, 0x00, 0x00, 0x80, //## #### ##$ # -0x80, 0x04, 0x80, 0x04, 0x00, 0x80, 0x88, 0x08, 0x80, 0x80, //# $# $ # ## ## # -0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x11, 0x80, 0x80, //# # #...# # -0x88, 0x88, 0x88, 0x00, 0x88, 0x80, 0x01, 0x11, 0x00, 0x80, //###### ### ... # -0x00, 0x00, 0x08, 0x88, 0x80, 0x80, 0x81, 0x11, 0x80, 0x80, // #### # #...# # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0x80, 0x80, 0x80, // # ### # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -//Level: 103 -0x08, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x88, // ###### -0x00, 0x80, 0x00, 0x08, // # # -0x88, 0x84, 0x44, 0x08, //###$$$ # -0x82, 0x04, 0x11, 0x08, //#@ $.. # -0x80, 0x41, 0x11, 0x88, //# $...## -0x88, 0x88, 0x00, 0x80, //#### # -0x00, 0x08, 0x88, 0x80, // #### -//Level: 104 -0x0C, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //####### -0x80, 0x11, 0x11, 0x80, 0x00, 0x00, //# ....# -0x80, 0x11, 0x11, 0x80, 0x00, 0x00, //# ....# -0x80, 0x11, 0x11, 0x80, 0x00, 0x00, //# ....# -0x88, 0x48, 0x88, 0x88, 0x88, 0x88, //##$######### -0x80, 0x40, 0x40, 0x00, 0x00, 0x08, //# $ $ # -0x80, 0x00, 0x80, 0x00, 0x00, 0x08, //# # # -0x88, 0x80, 0x80, 0x44, 0x04, 0x08, //### # $$ $ # -0x00, 0x80, 0x80, 0x00, 0x84, 0x08, // # # #$ # -0x00, 0x80, 0x80, 0x44, 0x00, 0x08, // # # $$ # -0x00, 0x80, 0x80, 0x80, 0x44, 0x08, // # # # $$ # -0x00, 0x80, 0x80, 0x04, 0x08, 0x88, // # # $ ### -0x00, 0x80, 0x88, 0x80, 0x08, 0x00, // # ### # -0x00, 0x80, 0x00, 0x08, 0x28, 0x00, // # #@# -0x00, 0x88, 0x88, 0x00, 0x08, 0x00, // #### # -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 105 -0x0E, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, // ###### -0x00, 0x08, 0x88, 0x00, 0x00, 0x88, 0x00, // ### ## -0x00, 0x08, 0x00, 0x08, 0x80, 0x08, 0x00, // # ## # -0x08, 0x88, 0x48, 0x80, 0x08, 0x08, 0x00, // ###$## # # -0x88, 0x00, 0x00, 0x01, 0x18, 0x08, 0x00, //## ..# # -0x80, 0x04, 0x84, 0x85, 0x18, 0x08, 0x00, //# $#$#*.# # -0x80, 0x44, 0x20, 0x81, 0x58, 0x08, 0x88, //# $$@ #.*# ### -0x80, 0x04, 0x40, 0x81, 0x18, 0x00, 0x08, //# $$ #..# # -0x88, 0x00, 0x00, 0x81, 0x14, 0x00, 0x08, //## #..$ # -0x08, 0x88, 0x48, 0x81, 0x08, 0x08, 0x88, // ###$##. # ### -0x00, 0x08, 0x00, 0x88, 0x80, 0x08, 0x00, // # ### # -0x00, 0x08, 0x80, 0x00, 0x00, 0x88, 0x00, // ## ## -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, // ####### -//Level: 106 -0x0D, 0x0B,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, // # # -0x88, 0x88, 0x88, 0x88, 0x80, 0x80, 0x80, //######### # # -0x80, 0x40, 0x40, 0x40, 0x40, 0x00, 0x80, //# $ $ $ $ # -0x80, 0x81, 0x81, 0x81, 0x82, 0x48, 0x80, //# #.#.#.#@$## -0x81, 0x11, 0x11, 0x11, 0x00, 0x08, 0x00, //#....... # -0x80, 0x80, 0x80, 0x80, 0x84, 0x88, 0x80, //# # # # #$### -0x80, 0x40, 0x40, 0x40, 0x40, 0x00, 0x80, //# $ $ $ $ # -0x88, 0x88, 0x88, 0x88, 0x80, 0x80, 0x80, //######### # # -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -//Level: 107 -0x08, 0x08,//Size x and y -0x08, 0x88, 0x80, 0x00, // #### -0x08, 0x20, 0x88, 0x80, // #@ ### -0x08, 0x04, 0x00, 0x80, // # $ # -0x88, 0x80, 0x80, 0x88, //### # ## -0x81, 0x80, 0x80, 0x08, //#.# # # -0x81, 0x40, 0x08, 0x08, //#.$ # # -0x81, 0x00, 0x04, 0x08, //#. $ # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 108 -0x0B, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, // #### -0x00, 0x00, 0x00, 0x08, 0x20, 0x80, // #@ # -0x00, 0x08, 0x88, 0x88, 0x00, 0x80, // ##### # -0x88, 0x88, 0x00, 0x00, 0x00, 0x80, //#### # -0x80, 0x00, 0x18, 0x88, 0x08, 0x80, //# .### ## -0x80, 0x80, 0x80, 0x00, 0x08, 0x80, //# # # ## -0x80, 0x80, 0x40, 0x48, 0x10, 0x80, //# # $ $#. # -0x80, 0x80, 0x05, 0x00, 0x80, 0x80, //# # * # # -0x80, 0x18, 0x40, 0x40, 0x80, 0x80, //# .#$ $ # # -0x88, 0x00, 0x00, 0x80, 0x80, 0x80, //## # # # -0x08, 0x08, 0x88, 0x10, 0x00, 0x80, // # ###. # -0x08, 0x00, 0x00, 0x08, 0x88, 0x80, // # #### -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, // ####### -//Level: 109 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######### -0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x00, 0x84, 0x40, 0x44, 0x80, 0x88, 0x88, 0x00, // #$$ $$# #### -0x88, 0x88, 0x80, 0x08, 0x00, 0x40, 0x80, 0x08, 0x00, //##### # $ # # -0x81, 0x18, 0x00, 0x88, 0x04, 0x00, 0x40, 0x08, 0x00, //#..# ## $ $ # -0x81, 0x18, 0x04, 0x40, 0x00, 0x00, 0x80, 0x08, 0x00, //#..# $$ # # -0x81, 0x18, 0x00, 0x88, 0x48, 0x88, 0x80, 0x88, 0x00, //#..# ##$#### ## -0x81, 0x18, 0x80, 0x88, 0x00, 0x00, 0x80, 0x80, 0x00, //#..## ## # # -0x81, 0x11, 0x00, 0x08, 0x80, 0x88, 0x80, 0x88, 0x80, //#... ## ### ### -0x80, 0x00, 0x88, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, //# ## $ # -0x88, 0x88, 0x88, 0x28, 0x00, 0x08, 0x80, 0x80, 0x80, //######@# ## # # -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x80, // ######## # -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -//Level: 110 -0x0F, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ##### -0x88, 0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, //### ## -0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, //# # -0x80, 0x44, 0x08, 0x48, 0x88, 0x88, 0x88, 0x80, //# $$ #$######## -0x88, 0x08, 0x40, 0x40, 0x40, 0x80, 0x00, 0x80, //## #$ $ $ # # -0x81, 0x11, 0x18, 0x00, 0x04, 0x00, 0x00, 0x80, //#....# $ # -0x81, 0x11, 0x12, 0x80, 0x08, 0x88, 0x48, 0x80, //#....@# ###$## -0x81, 0x11, 0x14, 0x80, 0x00, 0x40, 0x40, 0x80, //#....$# $ $ # -0x81, 0x11, 0x14, 0x04, 0x80, 0x00, 0x00, 0x80, //#....$ $# # -0x88, 0x88, 0x80, 0x00, 0x80, 0x48, 0x48, 0x80, //##### # $#$## -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x40, 0x80, // ##### $ # -0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x80, // ### # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -//Level: 111 -0x0A, 0x08,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, // ##### -0x08, 0x88, 0x88, 0x00, 0x08, // ##### # -0x08, 0x01, 0x10, 0x48, 0x08, // # .. $# # -0x08, 0x08, 0x15, 0x00, 0x08, // # #.* # -0x88, 0x05, 0x18, 0x40, 0x88, //## *.#$ ## -0x80, 0x40, 0x04, 0x00, 0x80, //# $ $ # -0x80, 0x00, 0x88, 0x02, 0x80, //# ## @# -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 112 -0x0E, 0x0F,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ######### -0x08, 0x11, 0x11, 0x00, 0x08, 0x80, 0x00, // #.... ## -0x08, 0x18, 0x18, 0x00, 0x40, 0x88, 0x00, // #.#.# $ ## -0x88, 0x11, 0x11, 0x80, 0x80, 0x28, 0x80, //##....# # @## -0x80, 0x11, 0x11, 0x80, 0x08, 0x00, 0x88, //# ....# # ## -0x80, 0x00, 0x00, 0x84, 0x08, 0x84, 0x08, //# #$ ##$ # -0x88, 0x08, 0x88, 0x00, 0x40, 0x00, 0x08, //## ### $ # -0x08, 0x40, 0x04, 0x04, 0x04, 0x80, 0x08, // #$ $ $ $# # -0x08, 0x08, 0x00, 0x40, 0x40, 0x88, 0x08, // # # $ $ ## # -0x08, 0x00, 0x88, 0x80, 0x08, 0x80, 0x08, // # ### ## # -0x08, 0x00, 0x00, 0x88, 0x08, 0x80, 0x88, // # ## ## ## -0x08, 0x00, 0x40, 0x80, 0x04, 0x00, 0x80, // # $ # $ # -0x08, 0x88, 0x40, 0x40, 0x00, 0x88, 0x80, // ###$ $ ### -0x00, 0x08, 0x00, 0x88, 0x88, 0x80, 0x00, // # ##### -0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, // #### -//Level: 113 -0x0E, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ######### -0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // # # -0x08, 0x04, 0x04, 0x40, 0x48, 0x00, 0x00, // # $ $$ $# -0x88, 0x80, 0x80, 0x04, 0x08, 0x00, 0x00, //### # $ # -0x81, 0x80, 0x00, 0x44, 0x08, 0x80, 0x00, //#.# $$ ## -0x81, 0x88, 0x80, 0x00, 0x40, 0x80, 0x00, //#.### $ # -0x81, 0x81, 0x04, 0x08, 0x80, 0x88, 0x88, //#.#. $ ## #### -0x81, 0x11, 0x00, 0x48, 0x80, 0x40, 0x08, //#... $## $ # -0x81, 0x11, 0x40, 0x00, 0x40, 0x00, 0x08, //#...$ $ # -0x81, 0x18, 0x88, 0x48, 0x88, 0x08, 0x28, //#..###$### #@# -0x81, 0x18, 0x08, 0x00, 0x00, 0x08, 0x88, //#..# # ### -0x88, 0x88, 0x08, 0x88, 0x88, 0x88, 0x00, //#### ####### -//Level: 114 -0x07, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x81, 0x14, 0x11, 0x80, //#..$..# -0x81, 0x18, 0x11, 0x80, //#..#..# -0x80, 0x44, 0x40, 0x80, //# $$$ # -0x80, 0x04, 0x00, 0x80, //# $ # -0x80, 0x44, 0x40, 0x80, //# $$$ # -0x80, 0x08, 0x20, 0x80, //# #@ # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 115 -0x08, 0x0B,//Size x and y -0x00, 0x08, 0x88, 0x88, // ##### -0x00, 0x08, 0x00, 0x08, // # # -0x88, 0x88, 0x40, 0x08, //####$ # -0x81, 0x10, 0x40, 0x08, //#.. $ # -0x81, 0x14, 0x00, 0x88, //#..$ ## -0x81, 0x18, 0x04, 0x80, //#..# $# -0x80, 0x18, 0x40, 0x88, //# .#$ ## -0x88, 0x88, 0x04, 0x08, //#### $ # -0x00, 0x80, 0x40, 0x08, // # $ # -0x00, 0x80, 0x02, 0x08, // # @ # -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 116 -0x0C, 0x05,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -0x80, 0x00, 0x01, 0x11, 0x04, 0x08, //# ... $ # -0x80, 0x44, 0x45, 0x55, 0x04, 0x28, //# $$$*** $@# -0x80, 0x00, 0x01, 0x11, 0x04, 0x08, //# ... $ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -//Level: 117 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x02, 0x00, 0x08, //# @ # -0x80, 0x88, 0x48, 0x08, //# ##$# # -0x80, 0x40, 0x04, 0x08, //# $ $ # -0x88, 0x40, 0x08, 0x88, //##$ ### -0x08, 0x14, 0x01, 0x80, // #.$ .# -0x08, 0x11, 0x01, 0x80, // #.. .# -0x08, 0x88, 0x88, 0x80, // ###### -//Level: 118 -0x08, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x88, // ####### -0x88, 0x00, 0x01, 0x08, //## . # -0x80, 0x40, 0x04, 0x28, //# $ $@# -0x81, 0x41, 0x88, 0x88, //#.$.#### -0x80, 0x08, 0x80, 0x00, //# ## -0x80, 0x08, 0x00, 0x00, //# # -0x80, 0x08, 0x00, 0x00, //# # -0x88, 0x88, 0x00, 0x00, //#### -//Level: 119 -0x13, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x80, // ########## # -0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, // # # # -0x00, 0x00, 0x08, 0x00, 0x40, 0x40, 0x00, 0x04, 0x40, 0x80, // # $ $ $$ # -0x00, 0x00, 0x08, 0x08, 0x88, 0x88, 0x08, 0x80, 0x40, 0x80, // # ##### ## $ # -0x00, 0x00, 0x08, 0x44, 0x00, 0x08, 0x48, 0x80, 0x40, 0x80, // #$$ #$## $ # -0x00, 0x00, 0x08, 0x08, 0x88, 0x08, 0x08, 0x84, 0x00, 0x80, // # ### # ##$ # -0x88, 0x88, 0x88, 0x08, 0x88, 0x04, 0x04, 0x00, 0x00, 0x80, //###### ### $ $ # -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x80, //#.... ## # -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, //#.... ###### -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, //#.... # -0x88, 0x88, 0x88, 0x88, 0x88, 0x82, 0x88, 0x00, 0x00, 0x00, //###########@## -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, // ### -//Level: 120 -0x10, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //############## -0x80, 0x00, 0x08, 0x88, 0x00, 0x08, 0x18, 0x00, //# ### #.# -0x80, 0x40, 0x00, 0x00, 0x40, 0x08, 0x18, 0x00, //# $ $ #.# -0x80, 0x40, 0x08, 0x08, 0x00, 0x08, 0x18, 0x80, //# $ # # #.## -0x88, 0x08, 0x88, 0x08, 0x84, 0x88, 0x11, 0x88, //## ### ##$##..## -0x80, 0x40, 0x08, 0x48, 0x00, 0x08, 0x02, 0x18, //# $ #$# # @.# -0x80, 0x04, 0x04, 0x00, 0x04, 0x00, 0x11, 0x18, //# $ $ $ ...# -0x80, 0x40, 0x08, 0x48, 0x00, 0x08, 0x11, 0x08, //# $ #$# #.. # -0x88, 0x08, 0x88, 0x08, 0x80, 0x88, 0x11, 0x88, //## ### ## ##..## -0x80, 0x04, 0x08, 0x08, 0x04, 0x08, 0x18, 0x80, //# $ # # $ #.## -0x80, 0x44, 0x00, 0x00, 0x04, 0x08, 0x18, 0x00, //# $$ $ #.# -0x80, 0x00, 0x08, 0x88, 0x00, 0x08, 0x18, 0x00, //# ### #.# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //############## -//Level: 121 -0x0F, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, // # # # # # -0x00, 0x00, 0x00, 0x80, 0x04, 0x04, 0x80, 0x80, // # $ $# # -0x88, 0x88, 0x88, 0x80, 0x00, 0x40, 0x00, 0x80, //####### $ # -0x81, 0x18, 0x00, 0x88, 0x04, 0x04, 0x80, 0x80, //#..# ## $ $# # -0x81, 0x10, 0x00, 0x88, 0x04, 0x04, 0x00, 0x80, //#.. ## $ $ # -0x81, 0x18, 0x00, 0x88, 0x08, 0x88, 0x88, 0x80, //#..# ## ###### -0x81, 0x18, 0x08, 0x04, 0x04, 0x08, 0x00, 0x00, //#..# # $ $ # -0x81, 0x10, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, //#.. $ # -0x80, 0x08, 0x88, 0x02, 0x08, 0x88, 0x00, 0x00, //# ### @ ### -0x88, 0x88, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, //#### ##### -//Level: 122 -0x0E, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, // # # -0x00, 0x00, 0x08, 0x00, 0x48, 0x48, 0x08, // # $#$# # -0x08, 0x88, 0x88, 0x80, 0x08, 0x04, 0x08, // ###### # $ # -0x08, 0x00, 0x08, 0x04, 0x00, 0x40, 0x08, // # # $ $ # -0x88, 0x04, 0x00, 0x00, 0x08, 0x88, 0x08, //## $ ### # -0x80, 0x00, 0x84, 0x88, 0x88, 0x00, 0x08, //# #$#### # -0x80, 0x00, 0x04, 0x08, 0x88, 0x08, 0x88, //# $ ### ### -0x88, 0x88, 0x81, 0x10, 0x28, 0x08, 0x80, //#####.. @# ## -0x00, 0x08, 0x11, 0x14, 0x04, 0x40, 0x80, // #...$ $$ # -0x00, 0x08, 0x11, 0x18, 0x00, 0x00, 0x80, // #...# # -0x00, 0x08, 0x11, 0x18, 0x88, 0x88, 0x80, // #...###### -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 123 -0x0D, 0x0A,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, //###### ##### -0x82, 0x40, 0x00, 0x04, 0x00, 0x40, 0x80, //#@$ $ $ # -0x84, 0x88, 0x80, 0x40, 0x80, 0x80, 0x80, //#$### $ # # # -0x80, 0x08, 0x00, 0x80, 0x40, 0x00, 0x80, //# # # $ # -0x80, 0x48, 0x00, 0x00, 0x80, 0x88, 0x80, //# $# # ### -0x80, 0x04, 0x08, 0x48, 0x00, 0x08, 0x00, //# $ #$# # -0x81, 0x11, 0x11, 0x11, 0x11, 0x08, 0x00, //#......... # -0x88, 0x88, 0x88, 0x88, 0x00, 0x08, 0x00, //######## # -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 124 -0x09, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x82, 0x00, 0x00, 0x00, 0x80, //#@ # -0x80, 0x41, 0x41, 0x40, 0x80, //# $.$.$ # -0x80, 0x14, 0x14, 0x10, 0x80, //# .$.$. # -0x80, 0x41, 0x51, 0x40, 0x80, //# $.*.$ # -0x80, 0x14, 0x14, 0x10, 0x80, //# .$.$. # -0x80, 0x41, 0x41, 0x40, 0x80, //# $.$.$ # -0x80, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 125 -0x09, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x80, 0x00, // ###### -0x88, 0x00, 0x12, 0x88, 0x00, //## .@## -0x80, 0x50, 0x80, 0x08, 0x80, //# * # ## -0x80, 0x00, 0x80, 0x00, 0x80, //# # # -0x80, 0x48, 0x80, 0x80, 0x80, //# $## # # -0x80, 0x04, 0x04, 0x51, 0x80, //# $ $*.# -0x80, 0x01, 0x80, 0x00, 0x80, //# .# # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 126 -0x13, 0x06,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################### -0x80, 0x00, 0x11, 0x10, 0x02, 0x00, 0x11, 0x10, 0x00, 0x80, //# ... @ ... # -0x80, 0x44, 0x40, 0x08, 0x88, 0x88, 0x00, 0x44, 0x40, 0x80, //# $$$ ##### $$$ # -0x88, 0x00, 0x08, 0x88, 0x00, 0x08, 0x88, 0x00, 0x08, 0x80, //## ### ### ## -0x08, 0x80, 0x08, 0x00, 0x00, 0x00, 0x08, 0x80, 0x08, 0x00, // ## # ## # -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### #### -//Level: 127 -0x10, 0x10,//Size x and y -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, // # ########### -0x00, 0x80, 0x00, 0x04, 0x00, 0x04, 0x04, 0x08, // # $ $ $ # -0x00, 0x80, 0x48, 0x04, 0x08, 0x00, 0x40, 0x08, // # $# $ # $ # -0x00, 0x80, 0x04, 0x04, 0x00, 0x80, 0x00, 0x08, // # $ $ # # -0x88, 0x80, 0x48, 0x08, 0x00, 0x88, 0x88, 0x08, //### $# # #### # -0x82, 0x84, 0x04, 0x04, 0x00, 0x88, 0x00, 0x08, //#@#$ $ $ ## # -0x80, 0x00, 0x04, 0x08, 0x48, 0x00, 0x08, 0x08, //# $ #$# # # -0x80, 0x00, 0x40, 0x00, 0x04, 0x04, 0x04, 0x08, //# $ $ $ $ # -0x88, 0x88, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, //##### ######### -0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x81, 0x11, 0x11, 0x18, 0x00, 0x00, 0x00, // #......# -0x00, 0x81, 0x11, 0x11, 0x18, 0x00, 0x00, 0x00, // #......# -0x00, 0x81, 0x11, 0x11, 0x18, 0x00, 0x00, 0x00, // #......# -0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ######## -//Level: 128 -0x0B, 0x0B,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -0x88, 0x88, 0x88, 0x80, 0x28, 0x00, //####### @# -0x80, 0x00, 0x00, 0x40, 0x08, 0x00, //# $ # -0x80, 0x00, 0x48, 0x80, 0x48, 0x00, //# $## $# -0x88, 0x48, 0x11, 0x18, 0x08, 0x00, //##$#...# # -0x08, 0x04, 0x11, 0x10, 0x08, 0x00, // # $... # -0x08, 0x08, 0x10, 0x18, 0x08, 0x80, // # #. .# ## -0x08, 0x00, 0x08, 0x08, 0x40, 0x80, // # # #$ # -0x08, 0x40, 0x04, 0x00, 0x00, 0x80, // #$ $ # -0x08, 0x00, 0x88, 0x88, 0x88, 0x80, // # ####### -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, // #### -//Level: 129 -0x11, 0x10,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ############ -0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, // # ## -0x00, 0x00, 0x80, 0x08, 0x08, 0x44, 0x04, 0x00, 0x80, // # # #$$ $ # -0x00, 0x00, 0x84, 0x08, 0x48, 0x00, 0x88, 0x02, 0x80, // #$ #$# ## @# -0x00, 0x08, 0x80, 0x88, 0x08, 0x04, 0x08, 0x08, 0x80, // ## ## # $ # ## -0x00, 0x08, 0x00, 0x04, 0x08, 0x40, 0x08, 0x08, 0x00, // # $ #$ # # -0x00, 0x08, 0x00, 0x08, 0x04, 0x00, 0x08, 0x08, 0x00, // # # $ # # -0x00, 0x08, 0x80, 0x40, 0x40, 0x00, 0x88, 0x08, 0x00, // ## $ $ ## # -0x00, 0x08, 0x00, 0x80, 0x08, 0x80, 0x04, 0x08, 0x00, // # # ## $ # -0x00, 0x08, 0x00, 0x00, 0x88, 0x04, 0x48, 0x08, 0x00, // # ## $$# # -0x88, 0x88, 0x88, 0x44, 0x00, 0x08, 0x00, 0x08, 0x00, //######$$ # # -0x81, 0x11, 0x18, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, //#....# ######## -0x81, 0x81, 0x11, 0x08, 0x80, 0x00, 0x00, 0x00, 0x00, //#.#... ## -0x81, 0x11, 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //#.... # -0x81, 0x11, 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //#.... # -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //######### -//Level: 130 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, //# ### -0x80, 0x48, 0x00, 0x04, 0x08, 0x80, 0x04, 0x00, 0x00, 0x88, //# $# $ ## $ ## -0x80, 0x00, 0x04, 0x88, 0x80, 0x00, 0x08, 0x04, 0x40, 0x88, //# $### # $$ ## -0x81, 0x88, 0x80, 0x00, 0x00, 0x40, 0x40, 0x88, 0x00, 0x88, //#.### $ $ ## ## -0x81, 0x11, 0x80, 0x08, 0x00, 0x80, 0x00, 0x08, 0x40, 0x08, //#...# # # #$ # -0x81, 0x18, 0x84, 0x48, 0x88, 0x80, 0x40, 0x08, 0x00, 0x08, //#..##$$#### $ # # -0x81, 0x11, 0x80, 0x00, 0x00, 0x04, 0x08, 0x80, 0x08, 0x88, //#...# $ ## ### -0x81, 0x11, 0x40, 0x08, 0x88, 0x00, 0x80, 0x00, 0x08, 0x08, //#...$ ### # # # -0x88, 0x11, 0x00, 0x48, 0x00, 0x88, 0x00, 0x08, 0x82, 0x08, //##.. $# ## ##@ # -0x88, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //###.# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 131 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x81, 0x11, 0x18, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //#....### # -0x81, 0x11, 0x18, 0x88, 0x88, 0x08, 0x00, 0x84, 0x80, 0x88, //#....##### # #$# ## -0x81, 0x11, 0x18, 0x88, 0x00, 0x08, 0x40, 0x04, 0x00, 0x08, //#....### #$ $ # -0x81, 0x11, 0x18, 0x88, 0x00, 0x00, 0x40, 0x08, 0x44, 0x88, //#....### $ #$$## -0x88, 0x00, 0x88, 0x88, 0x04, 0x80, 0x08, 0x40, 0x40, 0x08, //## #### $# #$ $ # -0x88, 0x00, 0x88, 0x88, 0x00, 0x40, 0x04, 0x00, 0x80, 0x08, //## #### $ $ # # -0x82, 0x00, 0x88, 0x88, 0x48, 0x88, 0x48, 0x80, 0x40, 0x08, //#@ ####$###$## $ # -0x88, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x40, 0x08, //## # # $ # -0x88, 0x00, 0x08, 0x88, 0x00, 0x80, 0x04, 0x00, 0x88, 0x88, //## ### # $ #### -0x88, 0x88, 0x88, 0x88, 0x00, 0x80, 0x08, 0x00, 0x00, 0x08, //######## # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 132 -0x0C, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, // ########## -0x88, 0x82, 0x00, 0x10, 0x00, 0x08, //###@ . # -0x80, 0x00, 0x88, 0x48, 0x80, 0x08, //# ##$## # -0x80, 0x04, 0x10, 0x10, 0x14, 0x88, //# $. . .$## -0x88, 0x04, 0x88, 0x48, 0x80, 0x80, //## $##$## # -0x08, 0x00, 0x00, 0x10, 0x00, 0x80, // # . # -0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // ########## -//Level: 133 -0x08, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x80, // ##### -0x88, 0x80, 0x00, 0x80, //### # -0x80, 0x40, 0x80, 0x88, //# $ # ## -0x80, 0x41, 0x41, 0x08, //# $.$. # -0x80, 0x88, 0x10, 0x08, //# ##. # -0x80, 0x02, 0x08, 0x88, //# @ ### -0x88, 0x88, 0x88, 0x00, //###### -//Level: 134 -0x0A, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x00, // ###### -0x00, 0x80, 0x00, 0x08, 0x88, // # ### -0x00, 0x80, 0x40, 0x00, 0x08, // # $ # -0x88, 0x80, 0x40, 0x88, 0x08, //### $ ## # -0x81, 0x11, 0x04, 0x00, 0x08, //#... $ # -0x81, 0x11, 0x48, 0x40, 0x88, //#...$#$ ## -0x88, 0x88, 0x08, 0x04, 0x08, //#### # $ # -0x00, 0x08, 0x00, 0x20, 0x08, // # @ # -0x00, 0x08, 0x88, 0x88, 0x88, // ####### -//Level: 135 -0x13, 0x0F,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -0x88, 0x88, 0x88, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, //###### # -0x80, 0x00, 0x04, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //# $ ########### -0x80, 0x88, 0x04, 0x00, 0x88, 0x00, 0x80, 0x11, 0x11, 0x80, //# ## $ ## # ....# -0x80, 0x40, 0x40, 0x04, 0x00, 0x00, 0x80, 0x11, 0x11, 0x80, //# $ $ $ # ....# -0x80, 0x80, 0x04, 0x40, 0x88, 0x80, 0x80, 0x11, 0x11, 0x80, //# # $$ ### # ....# -0x80, 0x24, 0x40, 0x00, 0x08, 0x80, 0x80, 0x11, 0x11, 0x80, //# @$$ ## # ....# -0x88, 0x88, 0x00, 0x80, 0x08, 0x00, 0x88, 0x08, 0x88, 0x80, //#### # # ## #### -0x00, 0x08, 0x04, 0x88, 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, // # $#### # -0x00, 0x08, 0x40, 0x40, 0x88, 0x88, 0x48, 0x08, 0x00, 0x00, // #$ $ ####$# # -0x00, 0x88, 0x08, 0x00, 0x80, 0x08, 0x08, 0x08, 0x00, 0x00, // ## # # # # # -0x00, 0x80, 0x04, 0x44, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, // # $$$ # -0x00, 0x80, 0x00, 0x00, 0x88, 0x88, 0x80, 0x08, 0x00, 0x00, // # ##### # -0x00, 0x80, 0x08, 0x88, 0x80, 0x00, 0x88, 0x88, 0x00, 0x00, // # #### #### -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 136 -0x0B, 0x09,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, // ######### -0x08, 0x00, 0x08, 0x00, 0x08, 0x00, // # # # -0x08, 0x04, 0x44, 0x44, 0x08, 0x00, // # $$$$$ # -0x88, 0x04, 0x04, 0x04, 0x08, 0x00, //## $ $ $ # -0x80, 0x40, 0x02, 0x00, 0x08, 0x00, //# $ @ # -0x80, 0x40, 0x88, 0x88, 0x08, 0x80, //# $ #### ## -0x80, 0x08, 0x11, 0x11, 0x10, 0x80, //# #..... # -0x88, 0x00, 0x11, 0x11, 0x10, 0x80, //## ..... # -0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // ########## -//Level: 137 -0x0E, 0x0B,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -0x00, 0x00, 0x08, 0x80, 0x00, 0x00, 0x88, // ## ## -0x00, 0x00, 0x88, 0x00, 0x48, 0x80, 0x08, // ## $## # -0x00, 0x00, 0x80, 0x08, 0x00, 0x04, 0x08, // # # $ # -0x00, 0x00, 0x80, 0x80, 0x08, 0x08, 0x08, // # # # # # -0x00, 0x00, 0x80, 0x40, 0x40, 0x04, 0x08, // # $ $ $ # -0x88, 0x88, 0x88, 0x80, 0x84, 0x80, 0x08, //####### #$# # -0x80, 0x04, 0x04, 0x00, 0x00, 0x00, 0x88, //# $ $ ## -0x82, 0x11, 0x40, 0x55, 0x18, 0x88, 0x80, //#@..$ **.#### -0x88, 0x11, 0x11, 0x11, 0x88, 0x00, 0x00, //##......## -0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######## -//Level: 138 -0x0D, 0x0B,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x08, 0x88, 0x80, 0x80, 0x88, 0x88, 0x80, // #### # ##### -0x88, 0x00, 0x04, 0x04, 0x00, 0x00, 0x80, //## $ $ # -0x80, 0x48, 0x08, 0x11, 0x18, 0x40, 0x80, //# $# #...#$ # -0x82, 0x40, 0x01, 0x11, 0x80, 0x08, 0x80, //#@$ ...# ## -0x80, 0x48, 0x01, 0x18, 0x04, 0x00, 0x80, //# $# ..# $ # -0x88, 0x00, 0x01, 0x80, 0x00, 0x00, 0x80, //## .# # -0x08, 0x88, 0x04, 0x04, 0x08, 0x00, 0x80, // ### $ $ # # -0x00, 0x08, 0x88, 0x00, 0x08, 0x88, 0x80, // ### #### -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 139 -0x09, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x00, //###### -0x80, 0x00, 0x28, 0x00, 0x00, //# @# -0x80, 0x40, 0x08, 0x88, 0x80, //# $ #### -0x80, 0x45, 0x11, 0x50, 0x80, //# $*..* # -0x80, 0x51, 0x15, 0x40, 0x80, //# *..*$ # -0x88, 0x88, 0x00, 0x40, 0x80, //#### $ # -0x00, 0x08, 0x00, 0x00, 0x80, // # # -0x00, 0x08, 0x88, 0x88, 0x80, // ###### -//Level: 140 -0x09, 0x09,//Size x and y -0x08, 0x88, 0x88, 0x80, 0x00, // ###### -0x88, 0x00, 0x00, 0x88, 0x00, //## ## -0x80, 0x08, 0x80, 0x08, 0x00, //# ## # -0x80, 0x80, 0x08, 0x08, 0x00, //# # # # -0x81, 0x00, 0x18, 0x48, 0x80, //#. .#$## -0x80, 0x80, 0x50, 0x40, 0x80, //# # * $ # -0x80, 0x80, 0x50, 0x42, 0x80, //# # * $@# -0x80, 0x01, 0x10, 0x40, 0x80, //# .. $ # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 141 -0x0B, 0x09,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, // ######### -0x08, 0x00, 0x88, 0x00, 0x08, 0x00, // # ## # -0x08, 0x00, 0x04, 0x00, 0x08, 0x00, // # $ # -0x08, 0x40, 0x88, 0x80, 0x48, 0x00, // #$ ### $# -0x08, 0x08, 0x11, 0x18, 0x08, 0x00, // # #...# # -0x88, 0x08, 0x11, 0x18, 0x08, 0x80, //## #...# ## -0x80, 0x40, 0x04, 0x00, 0x40, 0x80, //# $ $ $ # -0x80, 0x00, 0x00, 0x80, 0x20, 0x80, //# # @ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 142 -0x0E, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x00, 0x00, 0x08, 0x20, 0x08, 0x88, 0x80, // #@ #### -0x00, 0x88, 0x88, 0x84, 0x00, 0x00, 0x80, // #####$ # -0x00, 0x81, 0x11, 0x80, 0x08, 0x04, 0x88, // #...# # $## -0x00, 0x81, 0x51, 0x84, 0x08, 0x40, 0x08, // #.*.#$ #$ # -0x88, 0x81, 0x11, 0x04, 0x08, 0x08, 0x08, //###... $ # # # -0x80, 0x01, 0x18, 0x84, 0x80, 0x00, 0x08, //# ..##$# # -0x80, 0x08, 0x88, 0x80, 0x08, 0x04, 0x08, //# #### # $ # -0x88, 0x00, 0x04, 0x00, 0x08, 0x44, 0x08, //## $ #$$ # -0x08, 0x00, 0x88, 0x08, 0x80, 0x00, 0x88, // # ## ## ## -0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x80, // ##### # -0x00, 0x00, 0x08, 0x00, 0x88, 0x88, 0x80, // # ##### -0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 143 -0x11, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x08, 0x00, 0x00, // ##### # -0x00, 0x00, 0x88, 0x04, 0x00, 0x40, 0x08, 0x88, 0x80, // ## $ $ #### -0x88, 0x88, 0x80, 0x40, 0x04, 0x04, 0x08, 0x81, 0x80, //##### $ $ $ ##.# -0x80, 0x00, 0x00, 0x00, 0x44, 0x00, 0x88, 0x11, 0x80, //# $$ ##..# -0x80, 0x08, 0x88, 0x88, 0x80, 0x88, 0x81, 0x10, 0x80, //# ###### ###.. # -0x88, 0x08, 0x00, 0x80, 0x00, 0x08, 0x11, 0x10, 0x80, //## # # #... # -0x80, 0x40, 0x00, 0x80, 0x00, 0x08, 0x11, 0x10, 0x80, //# $ # #... # -0x82, 0x08, 0x40, 0x88, 0x08, 0x88, 0x81, 0x11, 0x80, //#@ #$ ## ####...# -0x88, 0x88, 0x00, 0x40, 0x44, 0x00, 0x88, 0x11, 0x80, //#### $ $$ ##..# -0x00, 0x08, 0x80, 0x04, 0x04, 0x00, 0x41, 0x11, 0x80, // ## $ $ $...# -0x00, 0x00, 0x80, 0x44, 0x00, 0x40, 0x80, 0x01, 0x80, // # $$ $ # .# -0x00, 0x00, 0x80, 0x00, 0x40, 0x40, 0x08, 0x88, 0x80, // # $ $ #### -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x08, 0x00, 0x00, // ###### # -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 144 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x01, 0x11, 0x18, 0x00, 0x00, 0x88, 0x88, //# ....# #### -0x80, 0x00, 0x00, 0x01, 0x11, 0x10, 0x00, 0x00, 0x00, 0x08, //# .... # -0x80, 0x80, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x08, //# # ########## # -0x80, 0x84, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x81, 0x18, //# #$ # ###..# -0x80, 0x04, 0x00, 0x08, 0x44, 0x88, 0x80, 0x00, 0x81, 0x18, //# $ #$$### #..# -0x80, 0x40, 0x88, 0x80, 0x40, 0x00, 0x40, 0x00, 0x81, 0x18, //# $ ### $ $ #..# -0x80, 0x40, 0x80, 0x00, 0x40, 0x40, 0x80, 0x08, 0x81, 0x18, //# $ # $ $ # ##..# -0x80, 0x08, 0x00, 0x44, 0x08, 0x04, 0x08, 0x80, 0x00, 0x88, //# # $$ # $ ## ## -0x82, 0x88, 0x04, 0x80, 0x04, 0x00, 0x40, 0x00, 0x00, 0x88, //#@## $# $ $ ## -0x88, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x80, 0x08, 0x88, //## ## # ### -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 145 -0x11, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //################ -0x80, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x08, 0x00, //# #@ # # -0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x04, 0x48, 0x00, //# # # # # $ $$# -0x80, 0x81, 0x11, 0x80, 0x84, 0x44, 0x00, 0x08, 0x00, //# #...# #$$$ # -0x80, 0x01, 0x11, 0x80, 0x80, 0x40, 0x04, 0x48, 0x80, //# ...# # $ $$## -0x80, 0x88, 0x18, 0x80, 0x80, 0x88, 0x00, 0x00, 0x80, //# ##.## # ## # -0x80, 0x81, 0x11, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, //# #... $ # -0x80, 0x88, 0x08, 0x88, 0x00, 0x88, 0x88, 0x88, 0x80, //# ## ### ####### -0x80, 0x00, 0x08, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, //# # #### -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //###### -//Level: 146 -0x0A, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, // ####### -0x00, 0x88, 0x00, 0x80, 0x28, // ## # @# -0x00, 0x80, 0x00, 0x80, 0x08, // # # # -0x00, 0x84, 0x04, 0x04, 0x08, // #$ $ $ # -0x00, 0x80, 0x48, 0x80, 0x08, // # $## # -0x88, 0x80, 0x40, 0x80, 0x88, //### $ # ## -0x81, 0x11, 0x11, 0x00, 0x80, //#..... # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 147 -0x11, 0x12,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x11, 0x80, // # ...# -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x01, 0x11, 0x80, // ##### ...# -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x11, 0x80, // # ...# -0x00, 0x00, 0x00, 0x80, 0x08, 0x80, 0x01, 0x11, 0x80, // # ## ...# -0x00, 0x00, 0x00, 0x88, 0x08, 0x80, 0x01, 0x11, 0x80, // ## ## ...# -0x00, 0x00, 0x08, 0x88, 0x08, 0x88, 0x88, 0x88, 0x80, // ### ######## -0x00, 0x00, 0x08, 0x04, 0x44, 0x08, 0x80, 0x00, 0x00, // # $$$ ## -0x08, 0x88, 0x88, 0x00, 0x40, 0x40, 0x88, 0x88, 0x80, // ##### $ $ ##### -0x88, 0x00, 0x08, 0x40, 0x40, 0x00, 0x80, 0x00, 0x80, //## #$ $ # # -0x82, 0x04, 0x00, 0x40, 0x00, 0x04, 0x00, 0x40, 0x80, //#@ $ $ $ $ # -0x88, 0x88, 0x88, 0x04, 0x40, 0x40, 0x88, 0x88, 0x80, //###### $$ $ ##### -0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x80, 0x00, 0x00, // # $ # -0x00, 0x00, 0x08, 0x88, 0x80, 0x88, 0x80, 0x00, 0x00, // #### ### -0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -//Level: 148 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x80, 0x00, 0x80, // ### # # -0x00, 0x00, 0x00, 0x82, 0x40, 0x04, 0x04, 0x40, 0x80, // #@$ $ $$ # -0x88, 0x80, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x80, //### ###### # -0x81, 0x88, 0x80, 0x00, 0x88, 0x00, 0x88, 0x40, 0x80, //#.### ## ##$ # -0x81, 0x11, 0x11, 0x51, 0x00, 0x88, 0x04, 0x00, 0x80, //#.....*. ## $ # -0x80, 0x58, 0x80, 0x08, 0x40, 0x80, 0x04, 0x00, 0x80, //# *## #$ # $ # -0x80, 0x00, 0x80, 0x04, 0x00, 0x11, 0x11, 0x11, 0x80, //# # $ ......# -0x88, 0x04, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, //## $## ######### -0x08, 0x04, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // # $ #### -0x08, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // # $ $ # -0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // # # -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ####### -//Level: 149 -0x0B, 0x0A,//Size x and y -0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -0x08, 0x02, 0x08, 0x88, 0x88, 0x80, // # @ ###### -0x08, 0x08, 0x11, 0x50, 0x00, 0x80, // # #..* # -0x08, 0x01, 0x11, 0x80, 0x00, 0x80, // # ...# # -0x88, 0x48, 0x80, 0x40, 0x40, 0x80, //##$## $ $ # -0x80, 0x00, 0x84, 0x88, 0x88, 0x80, //# #$##### -0x80, 0x00, 0x40, 0x00, 0x80, 0x00, //# $ # -0x88, 0x88, 0x80, 0x80, 0x80, 0x00, //##### # # -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, // # # -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, // ##### -//Level: 150 -0x07, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x01, 0x02, 0x80, //# . @# -0x80, 0x41, 0x40, 0x80, //# $.$ # -0x80, 0x51, 0x40, 0x80, //# *.$ # -0x81, 0x45, 0x41, 0x80, //#.$*$.# -0x80, 0x41, 0x50, 0x80, //# $.* # -0x80, 0x41, 0x40, 0x80, //# $.$ # -0x80, 0x01, 0x00, 0x80, //# . # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 151 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x82, 0x00, 0x50, 0x00, 0x80, //#@ * # -0x80, 0x41, 0x41, 0x40, 0x80, //# $.$.$ # -0x80, 0x14, 0x14, 0x10, 0x80, //# .$.$. # -0x80, 0x01, 0x41, 0x40, 0x80, //# .$.$ # -0x80, 0x00, 0x50, 0x00, 0x80, //# * # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 152 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x02, 0x88, //#### @## -0x80, 0x05, 0x40, 0x88, //# *$ ## -0x80, 0x00, 0x00, 0x88, //# ## -0x88, 0x01, 0x88, 0x88, //## .#### -0x88, 0x40, 0x88, 0x88, //##$ #### -0x88, 0x01, 0x88, 0x88, //## .#### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 153 -0x09, 0x0C,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x08, 0x00, 0x88, 0x88, 0x00, // # #### -0x08, 0x40, 0x20, 0x08, 0x00, // #$ @ # -0x88, 0x00, 0x88, 0x48, 0x80, //## ##$## -0x80, 0x58, 0x18, 0x00, 0x80, //# *#.# # -0x80, 0x11, 0x54, 0x40, 0x80, //# ..*$$ # -0x80, 0x18, 0x18, 0x00, 0x80, //# .#.# # -0x88, 0x00, 0x08, 0x08, 0x80, //## # ## -0x08, 0x88, 0x04, 0x00, 0x80, // ### $ # -0x00, 0x08, 0x08, 0x00, 0x80, // # # # -0x00, 0x08, 0x00, 0x08, 0x80, // # ## -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 154 -0x0C, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -0x81, 0x11, 0x08, 0x00, 0x00, 0x08, //#... # # -0x81, 0x10, 0x08, 0x08, 0x80, 0x08, //#.. # ## # -0x81, 0x10, 0x00, 0x00, 0x80, 0x08, //#.. # # -0x81, 0x10, 0x08, 0x04, 0x88, 0x08, //#.. # $## # -0x81, 0x11, 0x08, 0x40, 0x40, 0x08, //#... #$ $ # -0x88, 0x88, 0x88, 0x00, 0x44, 0x08, //###### $$ # -0x08, 0x80, 0x04, 0x04, 0x40, 0x08, // ## $ $$ # -0x08, 0x20, 0x44, 0x40, 0x08, 0x08, // #@ $$$ # # -0x08, 0x80, 0x40, 0x88, 0x00, 0x08, // ## $ ## # -0x00, 0x80, 0x00, 0x00, 0x00, 0x08, // # # -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, // ########## -//Level: 155 -0x0B, 0x0B,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //########## -0x80, 0x00, 0x00, 0x80, 0x08, 0x00, //# # # -0x80, 0x04, 0x04, 0x80, 0x08, 0x80, //# $ $# ## -0x80, 0x08, 0x81, 0x80, 0x00, 0x80, //# ##.# # -0x88, 0x48, 0x81, 0x88, 0x40, 0x80, //##$##.##$ # -0x80, 0x41, 0x11, 0x11, 0x00, 0x80, //# $..... # -0x82, 0x48, 0x81, 0x88, 0x48, 0x80, //#@$##.##$## -0x88, 0x08, 0x81, 0x80, 0x00, 0x80, //## ##.# # -0x80, 0x00, 0x40, 0x40, 0x00, 0x80, //# $ $ # -0x80, 0x00, 0x80, 0x00, 0x88, 0x80, //# # ### -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //######### -//Level: 156 -0x0F, 0x0C,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ##### -0x88, 0x88, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, //##### # -0x80, 0x00, 0x40, 0x20, 0x80, 0x00, 0x00, 0x00, //# $ @ # -0x80, 0x04, 0x08, 0x18, 0x88, 0x88, 0x00, 0x00, //# $ #.##### -0x88, 0x40, 0x88, 0x18, 0x80, 0x08, 0x88, 0x80, //##$ ##.## #### -0x08, 0x00, 0x11, 0x11, 0x10, 0x48, 0x00, 0x80, // # ..... $# # -0x08, 0x04, 0x88, 0x18, 0x80, 0x08, 0x40, 0x80, // # $##.## #$ # -0x08, 0x00, 0x08, 0x18, 0x80, 0x00, 0x00, 0x80, // # #.## # -0x08, 0x88, 0x04, 0x08, 0x88, 0x88, 0x08, 0x80, // ### $ ##### ## -0x00, 0x08, 0x08, 0x40, 0x00, 0x00, 0x40, 0x80, // # #$ $ # -0x00, 0x08, 0x00, 0x00, 0x88, 0x80, 0x00, 0x80, // # ### # -0x00, 0x08, 0x88, 0x88, 0x80, 0x88, 0x88, 0x80, // ###### ##### -//Level: 157 -0x12, 0x10,//Size x and y -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // # ######### -0x08, 0x80, 0x08, 0x80, 0x08, 0x00, 0x08, 0x00, 0x00, // ## ## # # -0x08, 0x00, 0x48, 0x04, 0x24, 0x00, 0x08, 0x88, 0x80, // # $# $@$ #### -0x08, 0x40, 0x04, 0x00, 0x80, 0x40, 0x48, 0x00, 0x88, // #$ $ # $ $# ## -0x88, 0x00, 0x48, 0x80, 0x84, 0x04, 0x00, 0x00, 0x08, //## $## #$ $ # -0x80, 0x08, 0x00, 0x80, 0x80, 0x00, 0x44, 0x40, 0x08, //# # # # $$$ # -0x80, 0x40, 0x00, 0x04, 0x00, 0x48, 0x80, 0x88, 0x88, //# $ $ $## #### -0x80, 0x40, 0x40, 0x84, 0x80, 0x08, 0x00, 0x80, 0x00, //# $ $ #$# # # -0x88, 0x00, 0x88, 0x80, 0x08, 0x88, 0x40, 0x80, 0x00, //## ### ###$ # -0x08, 0x00, 0x81, 0x11, 0x10, 0x00, 0x00, 0x80, 0x00, // # #.... # -0x08, 0x88, 0x81, 0x11, 0x11, 0x18, 0x88, 0x80, 0x00, // ####......#### -0x00, 0x08, 0x11, 0x11, 0x88, 0x88, 0x00, 0x00, 0x00, // #....#### -0x00, 0x08, 0x11, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, // #...## -0x00, 0x08, 0x11, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // #...# -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ##### -//Level: 158 -0x09, 0x0C,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x08, 0x00, 0x80, 0x00, 0x00, // # # -0x08, 0x40, 0x88, 0x80, 0x00, // #$ ### -0x08, 0x00, 0x02, 0x80, 0x00, // # @# -0x88, 0x08, 0x10, 0x88, 0x80, //## #. ### -0x80, 0x08, 0x51, 0x40, 0x80, //# #*.$ # -0x80, 0x44, 0x11, 0x80, 0x80, //# $$..# # -0x88, 0x08, 0x81, 0x00, 0x80, //## ##. # -0x08, 0x04, 0x00, 0x88, 0x80, // # $ ### -0x08, 0x00, 0x88, 0x80, 0x00, // # ### -0x08, 0x00, 0x80, 0x00, 0x00, // # # -0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 159 -0x0F, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x80, // ##### # -0x08, 0x88, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, // #### $ $ $ $ # -0x08, 0x00, 0x80, 0x04, 0x08, 0x88, 0x00, 0x80, // # # $ ### # -0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x40, 0x80, // # @ #$ # -0x08, 0x08, 0x88, 0x08, 0x88, 0x00, 0x00, 0x80, // # ### ### # -0x08, 0x08, 0x11, 0x11, 0x18, 0x04, 0x40, 0x80, // # #.....# $$ # -0x08, 0x08, 0x11, 0x11, 0x18, 0x00, 0x48, 0x80, // # #.....# $## -0x88, 0x48, 0x11, 0x11, 0x14, 0x00, 0x08, 0x00, //##$#.....$ # -0x80, 0x00, 0x08, 0x80, 0x80, 0x08, 0x88, 0x00, //# ## # ### -0x80, 0x40, 0x40, 0x00, 0x44, 0x08, 0x00, 0x00, //# $ $ $$ # -0x88, 0x00, 0x88, 0x88, 0x80, 0x08, 0x00, 0x00, //## ##### # -0x08, 0x88, 0x80, 0x00, 0x88, 0x88, 0x00, 0x00, // #### #### -//Level: 160 -0x10, 0x0C,//Size x and y -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, //##### -0x81, 0x11, 0x80, 0x88, 0x88, 0x80, 0x00, 0x00, //#...# ##### -0x81, 0x11, 0x88, 0x80, 0x00, 0x80, 0x00, 0x00, //#...### # -0x81, 0x11, 0x10, 0x00, 0x44, 0x88, 0x88, 0x80, //#.... $$##### -0x81, 0x11, 0x10, 0x08, 0x00, 0x80, 0x00, 0x88, //#.... # # ## -0x81, 0x18, 0x48, 0x88, 0x80, 0x84, 0x80, 0x08, //#..#$#### #$# # -0x88, 0x04, 0x00, 0x80, 0x00, 0x00, 0x44, 0x08, //## $ # $$ # -0x80, 0x04, 0x80, 0x20, 0x40, 0x44, 0x80, 0x08, //# $# @ $ $$# # -0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x40, 0x88, //# $ $ $ # $ ## -0x80, 0x00, 0x80, 0x04, 0x08, 0x80, 0x00, 0x80, //# # $ ## # -0x88, 0x88, 0x88, 0x00, 0x08, 0x88, 0x88, 0x80, //###### ###### -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 161 -0x13, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, // ######## -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x11, 0x11, 0x80, // # ....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x11, 0x11, 0x80, //############ ....# -0x80, 0x00, 0x08, 0x00, 0x40, 0x40, 0x00, 0x11, 0x11, 0x80, //# # $ $ ....# -0x80, 0x44, 0x48, 0x40, 0x04, 0x08, 0x00, 0x11, 0x11, 0x80, //# $$$#$ $ # ....# -0x80, 0x04, 0x00, 0x00, 0x04, 0x08, 0x00, 0x11, 0x11, 0x80, //# $ $ # ....# -0x80, 0x44, 0x08, 0x40, 0x40, 0x48, 0x88, 0x88, 0x88, 0x80, //# $$ #$ $ $######## -0x80, 0x04, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, //# $ # # -0x88, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //## ######### -0x80, 0x00, 0x08, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, //# # ## -0x80, 0x00, 0x00, 0x40, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, //# $ ## -0x80, 0x04, 0x48, 0x44, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, //# $$#$$ @# -0x80, 0x00, 0x08, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, //# # ## -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //########### -//Level: 162 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x80, 0x00, 0x88, 0x88, 0x80, 0x00, 0x08, //# # ##### # -0x88, 0x04, 0x00, 0x80, 0x00, 0x88, 0x88, 0x00, 0x40, 0x08, //## $ # #### $ # -0x88, 0x88, 0x04, 0x40, 0x00, 0x81, 0x18, 0x00, 0x80, 0x08, //#### $$ #..# # # -0x80, 0x04, 0x00, 0x40, 0x08, 0x81, 0x18, 0x88, 0x80, 0x88, //# $ $ ##..#### ## -0x80, 0x40, 0x00, 0x88, 0x81, 0x11, 0x10, 0x00, 0x44, 0x08, //# $ ###.... $$ # -0x80, 0x08, 0x48, 0x00, 0x01, 0x11, 0x18, 0x08, 0x04, 0x08, //# #$# ....# # $ # -0x80, 0x80, 0x08, 0x04, 0x01, 0x18, 0x88, 0x48, 0x00, 0x08, //# # # $ ..###$# # -0x80, 0x80, 0x00, 0x40, 0x81, 0x18, 0x00, 0x08, 0x80, 0x08, //# # $ #..# ## # -0x80, 0x00, 0x48, 0x00, 0x88, 0x88, 0x00, 0x08, 0x04, 0x88, //# $# #### # $## -0x80, 0x80, 0x08, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x88, //# # # @# ## -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 163 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x18, 0x88, 0x18, //##.###.# -0x88, 0x08, 0x00, 0x18, //## # .# -0x88, 0x04, 0x40, 0x28, //## $$ @# -0x88, 0x00, 0x40, 0x08, //## $ # -0x88, 0x00, 0x80, 0x08, //## # # -0x88, 0x00, 0x88, 0x88, //## #### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 164 -0x0E, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -0x80, 0x00, 0x88, 0x01, 0x11, 0x11, 0x18, //# ## ......# -0x80, 0x08, 0x88, 0x01, 0x18, 0x18, 0x08, //# ### ..#.# # -0x80, 0x48, 0x00, 0x11, 0x88, 0x10, 0x18, //# $# ..##. .# -0x88, 0x08, 0x04, 0x80, 0x80, 0x00, 0x08, //## # $# # # -0x80, 0x40, 0x04, 0x00, 0x00, 0x80, 0x88, //# $ $ # ## -0x80, 0x48, 0x08, 0x04, 0x88, 0x84, 0x08, //# $# # $###$ # -0x82, 0x08, 0x08, 0x04, 0x00, 0x80, 0x08, //#@ # # $ # # -0x80, 0x48, 0x08, 0x84, 0x80, 0x84, 0x08, //# $# ##$# #$ # -0x80, 0x40, 0x00, 0x80, 0x00, 0x00, 0x08, //# $ # # -0x88, 0x80, 0x00, 0x80, 0x88, 0x40, 0x88, //### # ##$ ## -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x80, // ##### # -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 165 -0x0F, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x80, 0x41, 0x41, 0x41, 0x41, 0x41, 0x80, 0x80, //# $.$.$.$.$.# # -0x80, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x80, //# .$.$.$.$.$ # -0x80, 0x41, 0x41, 0x41, 0x41, 0x41, 0x82, 0x80, //# $.$.$.$.$.#@# -0x80, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x80, //# .$.$.$.$.$ # -0x80, 0x41, 0x41, 0x41, 0x41, 0x41, 0x80, 0x80, //# $.$.$.$.$.# # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 166 -0x0F, 0x0B,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ####### -0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x08, 0x04, 0x04, 0x08, 0x80, 0x00, 0x00, // # $ $ ## -0x00, 0x08, 0x88, 0x88, 0x11, 0x88, 0x88, 0x80, // #####..##### -0x88, 0x88, 0x88, 0x11, 0x51, 0x00, 0x40, 0x80, //######..*. $ # -0x80, 0x04, 0x24, 0x11, 0x11, 0x84, 0x40, 0x80, //# $@$....#$$ # -0x80, 0x00, 0x40, 0x84, 0x88, 0x80, 0x00, 0x80, //# $ #$### # -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x88, 0x80, //##### ### -0x00, 0x00, 0x88, 0x80, 0x08, 0x88, 0x80, 0x00, // ### #### -0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -//Level: 167 -0x09, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x00, 0x80, 0x00, 0x88, 0x80, // # ### -0x88, 0x81, 0x80, 0x00, 0x80, //###.# # -0x80, 0x41, 0x40, 0x80, 0x80, //# $.$ # # -0x80, 0x85, 0x04, 0x00, 0x80, //# #* $ # -0x82, 0x01, 0x08, 0x88, 0x80, //#@ . #### -0x88, 0x88, 0x88, 0x00, 0x00, //###### -//Level: 168 -0x13, 0x0E,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ####### -0x00, 0x00, 0x80, 0x08, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // # # #### -0x88, 0x88, 0x80, 0x48, 0x40, 0x80, 0x08, 0x80, 0x00, 0x00, //##### $#$ # ## -0x81, 0x10, 0x80, 0x08, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, //#.. # # # # -0x81, 0x10, 0x80, 0x48, 0x40, 0x80, 0x04, 0x88, 0x88, 0x00, //#.. # $#$ # $#### -0x81, 0x00, 0x80, 0x00, 0x00, 0x84, 0x00, 0x80, 0x08, 0x00, //#. # #$ # # -0x81, 0x10, 0x00, 0x48, 0x00, 0x80, 0x40, 0x00, 0x08, 0x00, //#.. $# # $ # -0x81, 0x12, 0x80, 0x08, 0x40, 0x84, 0x00, 0x80, 0x08, 0x00, //#..@# #$ #$ # # -0x81, 0x10, 0x80, 0x48, 0x00, 0x00, 0x04, 0x80, 0x08, 0x00, //#.. # $# $# # -0x81, 0x10, 0x80, 0x08, 0x44, 0x84, 0x00, 0x80, 0x08, 0x80, //#.. # #$$#$ # ## -0x81, 0x10, 0x80, 0x48, 0x00, 0x80, 0x04, 0x84, 0x00, 0x80, //#.. # $# # $#$ # -0x81, 0x10, 0x80, 0x08, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, //#.. # # # # # -0x88, 0x10, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, 0x00, 0x80, //##. #### ##### # -0x08, 0x88, 0x80, 0x08, 0x88, 0x80, 0x00, 0x88, 0x88, 0x80, // #### #### ##### -//Level: 169 -0x10, 0x0E,//Size x and y -0x88, 0x88, 0x80, 0x88, 0x88, 0x00, 0x00, 0x00, //##### #### -0x81, 0x11, 0x80, 0x80, 0x08, 0x88, 0x80, 0x00, //#...# # #### -0x81, 0x11, 0x88, 0x80, 0x04, 0x00, 0x80, 0x00, //#...### $ # -0x81, 0x11, 0x18, 0x80, 0x40, 0x04, 0x88, 0x80, //#....## $ $### -0x88, 0x11, 0x11, 0x88, 0x00, 0x04, 0x00, 0x80, //##....## $ # -0x88, 0x81, 0x11, 0x08, 0x80, 0x40, 0x40, 0x80, //###... ## $ $ # -0x80, 0x88, 0x00, 0x00, 0x80, 0x04, 0x00, 0x80, //# ## # $ # -0x80, 0x08, 0x80, 0x80, 0x88, 0x80, 0x88, 0x88, //# ## # ### #### -0x80, 0x40, 0x80, 0x84, 0x00, 0x40, 0x00, 0x08, //# $ # #$ $ # -0x80, 0x04, 0x02, 0x04, 0x00, 0x00, 0x40, 0x08, //# $ @ $ $ # -0x80, 0x00, 0x80, 0x40, 0x44, 0x04, 0x08, 0x88, //# # $ $$ $ ### -0x80, 0x08, 0x88, 0x88, 0x80, 0x08, 0x88, 0x00, //# ###### ### -0x80, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, //# ## #### -0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //### -//Level: 170 -0x0D, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ######### -0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, // # # -0x08, 0x84, 0x04, 0x04, 0x04, 0x88, 0x00, // ##$ $ $ $## -0x88, 0x00, 0x40, 0x40, 0x40, 0x08, 0x80, //## $ $ $ ## -0x80, 0x40, 0x08, 0x08, 0x00, 0x40, 0x80, //# $ # # $ # -0x80, 0x00, 0x81, 0x11, 0x80, 0x00, 0x80, //# #...# # -0x88, 0x08, 0x11, 0x11, 0x18, 0x08, 0x80, //## #.....# ## -0x08, 0x08, 0x11, 0x11, 0x18, 0x08, 0x00, // # #.....# # -0x08, 0x00, 0x81, 0x81, 0x80, 0x08, 0x00, // # #.#.# # -0x08, 0x40, 0x40, 0x44, 0x40, 0x48, 0x00, // #$ $ $$$ $# -0x08, 0x00, 0x80, 0x00, 0x80, 0x08, 0x00, // # # # # -0x08, 0x88, 0x80, 0x28, 0x88, 0x88, 0x00, // #### @##### -0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -//Level: 171 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x82, 0x00, 0x00, 0x08, 0x88, 0x00, 0x08, 0x00, 0x80, 0x08, //#@ ### # # # -0x80, 0x80, 0x80, 0x08, 0x00, 0x40, 0x04, 0x00, 0x00, 0x08, //# # # # $ $ # -0x88, 0x88, 0x80, 0x00, 0x00, 0x80, 0x40, 0x48, 0x48, 0x08, //##### # $ $#$# # -0x81, 0x81, 0x18, 0x00, 0x00, 0x88, 0x40, 0x40, 0x00, 0x08, //#.#..# ##$ $ # -0x81, 0x11, 0x11, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x88, //#..... $ # ## -0x81, 0x11, 0x11, 0x00, 0x00, 0x88, 0x84, 0x88, 0x48, 0x88, //#..... ###$##$### -0x81, 0x81, 0x18, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, //#.#..# $ # # -0x88, 0x88, 0x80, 0x00, 0x00, 0x80, 0x08, 0x40, 0x04, 0x08, //##### # #$ $ # -0x88, 0x88, 0x80, 0x08, 0x00, 0x40, 0x00, 0x04, 0x04, 0x08, //##### # $ $ $ # -0x88, 0x88, 0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x80, 0x08, //##### # # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 172 -0x0E, 0x0E,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ########## -0x08, 0x80, 0x08, 0x00, 0x80, 0x08, 0x80, // ## # # ## -0x88, 0x00, 0x48, 0x00, 0x00, 0x00, 0x88, //## $# ## -0x80, 0x00, 0x00, 0x04, 0x80, 0x40, 0x08, //# $# $ # -0x80, 0x44, 0x08, 0x11, 0x80, 0x40, 0x08, //# $$ #..# $ # -0x88, 0x80, 0x83, 0x51, 0x18, 0x80, 0x88, //### #+*..## ## -0x80, 0x00, 0x15, 0x88, 0x11, 0x40, 0x08, //# .*##..$ # -0x80, 0x04, 0x11, 0x88, 0x51, 0x40, 0x08, //# $..##*.$ # -0x88, 0x08, 0x81, 0x15, 0x58, 0x08, 0x88, //## ##..**# ### -0x80, 0x44, 0x08, 0x11, 0x80, 0x04, 0x08, //# $$ #..# $ # -0x80, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, //# # $ # -0x88, 0x00, 0x00, 0x40, 0x84, 0x00, 0x88, //## $ #$ ## -0x08, 0x80, 0x08, 0x00, 0x80, 0x08, 0x80, // ## # # ## -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ########## -//Level: 173 -0x0F, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x80, 0x40, 0x08, 0x04, 0x08, 0x00, 0x00, 0x80, //# $ # $ # # -0x80, 0x40, 0x80, 0x48, 0x40, 0x80, 0x00, 0x80, //# $ # $#$ # # -0x80, 0x48, 0x04, 0x00, 0x04, 0x00, 0x00, 0x80, //# $# $ $ # -0x80, 0x00, 0x40, 0x00, 0x80, 0x48, 0x00, 0x80, //# $ # $# # -0x84, 0x80, 0x40, 0x08, 0x00, 0x40, 0x84, 0x80, //#$# $ # $ #$# -0x80, 0x08, 0x40, 0x80, 0x00, 0x40, 0x00, 0x80, //# #$ # $ # -0x80, 0x00, 0x04, 0x00, 0x04, 0x08, 0x40, 0x80, //# $ $ #$ # -0x80, 0x00, 0x80, 0x48, 0x40, 0x80, 0x40, 0x80, //# # $#$ # $ # -0x80, 0x00, 0x08, 0x04, 0x08, 0x00, 0x40, 0x80, //# # $ # $ # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x80, 0x88, 0x88, 0x82, 0x88, 0x88, 0x80, 0x80, //# #####@##### # -0x81, 0x11, 0x11, 0x01, 0x11, 0x11, 0x11, 0x80, //#..... .......# -0x81, 0x11, 0x11, 0x01, 0x11, 0x11, 0x11, 0x80, //#..... .......# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 174 -0x0A, 0x0C,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, // ####### -0x08, 0x88, 0x00, 0x00, 0x08, // ### # -0x88, 0x00, 0x08, 0x08, 0x08, //## # # # -0x80, 0x08, 0x14, 0x44, 0x08, //# #.$$$ # -0x80, 0x81, 0x58, 0x08, 0x88, //# #.*# ### -0x80, 0x01, 0x18, 0x08, 0x00, //# ..# # -0x88, 0x81, 0x14, 0x08, 0x80, //###..$ ## -0x00, 0x81, 0x80, 0x40, 0x80, // #.# $ # -0x08, 0x80, 0x80, 0x82, 0x80, // ## # #@# -0x08, 0x04, 0x00, 0x40, 0x80, // # $ $ # -0x08, 0x00, 0x00, 0x08, 0x80, // # ## -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -//Level: 175 -0x0A, 0x09,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x08, 0x00, 0x88, 0x88, 0x80, // # ##### -0x88, 0x40, 0x88, 0x00, 0x80, //##$ ## # -0x80, 0x04, 0x24, 0x00, 0x80, //# $@$ # -0x80, 0x00, 0x88, 0x40, 0x80, //# ##$ # -0x88, 0x81, 0x88, 0x08, 0x88, //###.## ### -0x08, 0x11, 0x14, 0x04, 0x08, // #...$ $ # -0x08, 0x81, 0x10, 0x00, 0x08, // ##.. # -0x00, 0x88, 0x88, 0x88, 0x88, // ######## -//Level: 176 -0x0B, 0x09,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x00, 0x08, 0x02, 0x08, 0x00, 0x00, // # @ # -0x00, 0x08, 0x04, 0x08, 0x00, 0x00, // # $ # -0x00, 0x08, 0x41, 0x48, 0x00, 0x00, // #$.$# -0x00, 0x88, 0x14, 0x18, 0x80, 0x00, // ##.$.## -0x88, 0x81, 0x41, 0x41, 0x88, 0x80, //###.$.$.### -0x80, 0x04, 0x14, 0x14, 0x00, 0x80, //# $.$.$ # -0x80, 0x00, 0x01, 0x00, 0x00, 0x80, //# . # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 177 -0x0B, 0x0B,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x00, 0x08, 0x00, 0x08, 0x00, 0x00, // # # -0x00, 0x08, 0x04, 0x48, 0x00, 0x00, // # $$# -0x88, 0x88, 0x01, 0x08, 0x88, 0x80, //#### . #### -0x80, 0x40, 0x51, 0x50, 0x00, 0x80, //# $ *.* # -0x80, 0x41, 0x11, 0x11, 0x40, 0x80, //# $.....$ # -0x80, 0x00, 0x51, 0x50, 0x40, 0x80, //# *.* $ # -0x88, 0x88, 0x01, 0x08, 0x88, 0x80, //#### . #### -0x00, 0x08, 0x44, 0x48, 0x00, 0x00, // #$$$# -0x00, 0x08, 0x02, 0x08, 0x00, 0x00, // # @ # -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 178 -0x08, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x80, // ##### -0x88, 0x80, 0x00, 0x88, //### ## -0x80, 0x01, 0x05, 0x08, //# . * # -0x80, 0x14, 0x18, 0x28, //# .$.#@# -0x88, 0x08, 0x04, 0x08, //## # $ # -0x08, 0x04, 0x08, 0x08, // # $ # # -0x08, 0x88, 0x00, 0x08, // ### # -0x00, 0x08, 0x88, 0x88, // ##### -//Level: 179 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x80, 0x00, //##### -0x80, 0x00, 0x88, 0x88, //# #### -0x80, 0x44, 0x00, 0x08, //# $$ # -0x80, 0x18, 0x10, 0x08, //# .#. # -0x80, 0x08, 0x80, 0x88, //# ## ## -0x80, 0x08, 0x84, 0x80, //# ##$# -0x80, 0x20, 0x01, 0x80, //# @ .# -0x88, 0x88, 0x88, 0x80, //####### -//Level: 180 -0x14, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // #### -0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, //######## ##### -0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, //# # # -0x80, 0x00, 0x08, 0x08, 0x80, 0x08, 0x00, 0x88, 0x88, 0x00, //# # ## # #### -0x88, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x88, //## # # ### -0x08, 0x00, 0x08, 0x80, 0x00, 0x80, 0x44, 0x48, 0x00, 0x08, // # ## # $$$# # -0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x04, 0x08, // # # $ $ # -0x08, 0x00, 0x80, 0x08, 0x08, 0x08, 0x48, 0x02, 0x80, 0x88, // # # # # #$# @# ## -0x08, 0x88, 0x80, 0x04, 0x04, 0x08, 0x00, 0x04, 0x00, 0x80, // #### $ $ # $ # -0x00, 0x80, 0x40, 0x88, 0x88, 0x80, 0x88, 0x80, 0x48, 0x80, // # $ ##### ### $## -0x00, 0x80, 0x01, 0x11, 0x11, 0x11, 0x11, 0x11, 0x08, 0x00, // # ........... # -0x00, 0x88, 0x80, 0x08, 0x88, 0x88, 0x88, 0x00, 0x88, 0x00, // ### ####### ## -0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, // #### #### -//Level: 181 -0x0A, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x00, //###### -0x80, 0x00, 0x08, 0x00, 0x00, //# # -0x80, 0x04, 0x08, 0x88, 0x80, //# $ #### -0x80, 0x44, 0x08, 0x00, 0x88, //# $$ # ## -0x80, 0x80, 0x88, 0x40, 0x08, //# # ##$ # -0x81, 0x11, 0x00, 0x11, 0x08, //#... .. # -0x88, 0x88, 0x88, 0x80, 0x88, //####### ## -0x80, 0x00, 0x88, 0x00, 0x08, //# ## # -0x82, 0x40, 0x00, 0x14, 0x08, //#@$ .$ # -0x80, 0x00, 0x88, 0x00, 0x08, //# ## # -0x80, 0x00, 0x88, 0x88, 0x88, //# ###### -0x88, 0x88, 0x80, 0x00, 0x00, //##### -//Level: 182 -0x13, 0x0D,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ######### -0x00, 0x88, 0x00, 0x08, 0x80, 0x08, 0x88, 0x88, 0x80, 0x00, // ## ## ###### -0x88, 0x80, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x88, 0x80, //### # # ### -0x80, 0x04, 0x08, 0x40, 0x80, 0x08, 0x00, 0x11, 0x10, 0x80, //# $ #$ # # ... # -0x80, 0x80, 0x48, 0x24, 0x88, 0x08, 0x08, 0x18, 0x10, 0x80, //# # $#@$## # #.#. # -0x80, 0x08, 0x08, 0x40, 0x08, 0x00, 0x00, 0x10, 0x10, 0x80, //# # #$ # . . # -0x80, 0x40, 0x00, 0x04, 0x08, 0x08, 0x08, 0x18, 0x10, 0x80, //# $ $ # # #.#. # -0x80, 0x00, 0x88, 0x00, 0x88, 0x40, 0x40, 0x10, 0x10, 0x80, //# ## ##$ $ . . # -0x80, 0x40, 0x80, 0x00, 0x80, 0x08, 0x48, 0x18, 0x10, 0x80, //# $ # # #$#.#. # -0x88, 0x04, 0x00, 0x40, 0x00, 0x40, 0x04, 0x11, 0x10, 0x80, //## $ $ $ $... # -0x08, 0x40, 0x88, 0x88, 0x88, 0x00, 0x00, 0x88, 0x00, 0x80, // #$ ###### ## # -0x08, 0x00, 0x80, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // # # ########## -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 183 -0x11, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################# -0x80, 0x00, 0x00, 0x00, 0x81, 0x11, 0x11, 0x11, 0x80, //# #.......# -0x80, 0x44, 0x40, 0x80, 0x41, 0x81, 0x11, 0x11, 0x80, //# $$$ # $.#.....# -0x80, 0x08, 0x04, 0x01, 0x11, 0x11, 0x18, 0x11, 0x80, //# # $ ......#..# -0x80, 0x40, 0x08, 0x08, 0x88, 0x18, 0x11, 0x00, 0x80, //# $ # ###.#.. # -0x80, 0x04, 0x04, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, //# $ $$ # # -0x80, 0x08, 0x04, 0x00, 0x04, 0x40, 0x08, 0x00, 0x80, //# # $ $$ # # -0x80, 0x88, 0x00, 0x80, 0x80, 0x80, 0x08, 0x80, 0x80, //# ## # # # ## # -0x80, 0x40, 0x48, 0x80, 0x80, 0x88, 0x00, 0x00, 0x80, //# $ $## # ## # -0x80, 0x42, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, //# $@$ $ # # -0x80, 0x40, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, //# $ $ # # -0x80, 0x08, 0x84, 0x40, 0x80, 0x08, 0x80, 0x00, 0x80, //# ##$$ # ## # -0x80, 0x44, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, //# $$ $ # # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################# -//Level: 184 -0x0F, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //############# -0x81, 0x11, 0x18, 0x00, 0x88, 0x00, 0x80, 0x00, //#....# ## # -0x81, 0x10, 0x18, 0x04, 0x04, 0x40, 0x80, 0x00, //#.. .# $ $$ # -0x81, 0x11, 0x11, 0x20, 0x88, 0x00, 0x80, 0x00, //#.....@ ## # -0x81, 0x11, 0x18, 0x80, 0x80, 0x08, 0x80, 0x00, //#....## # ## -0x88, 0x18, 0x88, 0x84, 0x80, 0x08, 0x00, 0x00, //##.####$# # -0x80, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, //# # # -0x80, 0x40, 0x04, 0x08, 0x88, 0x48, 0x88, 0x80, //# $ $ ###$#### -0x88, 0x08, 0x88, 0x00, 0x00, 0x40, 0x00, 0x80, //## ### $ # -0x80, 0x40, 0x80, 0x48, 0x08, 0x80, 0x40, 0x80, //# $ # $# ## $ # -0x80, 0x00, 0x04, 0x00, 0x40, 0x88, 0x08, 0x80, //# $ $ ## ## -0x88, 0x88, 0x88, 0x80, 0x04, 0x88, 0x08, 0x80, //####### $## ## -0x00, 0x00, 0x88, 0x84, 0x04, 0x00, 0x00, 0x80, // ###$ $ # -0x00, 0x00, 0x80, 0x00, 0x04, 0x80, 0x00, 0x80, // # $# # -0x00, 0x00, 0x80, 0x00, 0x00, 0x88, 0x88, 0x80, // # ##### -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ####### -//Level: 185 -0x0B, 0x0A,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x80, // ###### -0x08, 0x88, 0x88, 0x10, 0x00, 0x80, // #####. # -0x08, 0x00, 0x81, 0x18, 0x80, 0x80, // # #..## # -0x08, 0x00, 0x41, 0x10, 0x00, 0x80, // # $.. # -0x08, 0x00, 0x80, 0x18, 0x08, 0x80, // # # .# ## -0x88, 0x80, 0x88, 0x48, 0x00, 0x80, //### ##$# # -0x80, 0x40, 0x00, 0x04, 0x40, 0x80, //# $ $$ # -0x80, 0x84, 0x80, 0x08, 0x00, 0x80, //# #$# # # -0x82, 0x00, 0x88, 0x88, 0x88, 0x80, //#@ ####### -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //##### -//Level: 186 -0x07, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x82, 0x05, 0x00, 0x80, //#@ * # -0x80, 0x41, 0x04, 0x80, //# $. $# -0x84, 0x05, 0x00, 0x80, //#$ * # -0x81, 0x51, 0x51, 0x80, //#.*.*.# -0x80, 0x01, 0x40, 0x80, //# .$ # -0x80, 0x41, 0x40, 0x80, //# $.$ # -0x80, 0x05, 0x00, 0x80, //# * # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 187 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x80, 0x08, 0x28, 0x08, 0x80, 0x08, 0x88, 0x88, //# # #@# ## ##### -0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x40, 0x08, 0x88, 0x88, //# # # $ $ ##### -0x80, 0x80, 0x00, 0x08, 0x88, 0x88, 0x80, 0x40, 0x08, 0x88, //# # ###### $ ### -0x80, 0x00, 0x80, 0x08, 0x11, 0x11, 0x80, 0x04, 0x40, 0x08, //# # #....# $$ # -0x88, 0x48, 0x84, 0x88, 0x11, 0x11, 0x80, 0x00, 0x00, 0x08, //##$##$##....# # -0x80, 0x00, 0x00, 0x08, 0x11, 0x11, 0x88, 0x48, 0x84, 0x88, //# #....##$##$## -0x80, 0x04, 0x40, 0x08, 0x11, 0x11, 0x80, 0x00, 0x00, 0x08, //# $$ #....# # -0x80, 0x40, 0x04, 0x00, 0x80, 0x08, 0x00, 0x88, 0x80, 0x08, //# $ $ # # ### # -0x88, 0x88, 0x80, 0x04, 0x00, 0x04, 0x00, 0x00, 0x40, 0x08, //##### $ $ $ # -0x88, 0x88, 0x80, 0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x88, //##### # # # ## -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 188 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x08, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x88, //# # # # ## -0x80, 0x48, 0x04, 0x04, 0x08, 0x81, 0x11, 0x40, 0x04, 0x08, //# $# $ $ ##...$ $ # -0x80, 0x04, 0x00, 0x80, 0x88, 0x11, 0x11, 0x80, 0x40, 0x08, //# $ # ##....# $ # -0x80, 0x88, 0x04, 0x08, 0x81, 0x11, 0x18, 0x00, 0x04, 0x08, //# ## $ ##....# $ # -0x80, 0x40, 0x00, 0x08, 0x11, 0x11, 0x88, 0x04, 0x00, 0x08, //# $ #....## $ # -0x80, 0x48, 0x80, 0x08, 0x11, 0x18, 0x00, 0x00, 0x00, 0x08, //# $## #...# # -0x80, 0x00, 0x44, 0x48, 0x84, 0x88, 0x00, 0x88, 0x80, 0x88, //# $$$##$## ### ## -0x80, 0x80, 0x80, 0x08, 0x00, 0x08, 0x00, 0x80, 0x00, 0x08, //# # # # # # # -0x80, 0x40, 0x80, 0x04, 0x00, 0x88, 0x00, 0x00, 0x00, 0x08, //# $ # $ ## # -0x80, 0x00, 0x08, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x08, //# # #@ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 189 -0x0F, 0x0E,//Size x and y -0x88, 0x88, 0x80, 0x00, 0x00, 0x08, 0x88, 0x80, //##### #### -0x82, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x80, //#@ ######## # -0x88, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, //## $ $ # -0x08, 0x08, 0x08, 0x00, 0x88, 0x88, 0x00, 0x80, // # # # #### # -0x08, 0x00, 0x40, 0x00, 0x88, 0x88, 0x48, 0x80, // # $ ####$## -0x08, 0x40, 0x88, 0x08, 0x04, 0x04, 0x08, 0x00, // #$ ## # $ $ # -0x88, 0x04, 0x00, 0x48, 0x00, 0x00, 0x08, 0x00, //## $ $# # -0x80, 0x00, 0x80, 0x00, 0x00, 0x08, 0x08, 0x00, //# # # # -0x80, 0x00, 0x88, 0x88, 0x84, 0x88, 0x88, 0x00, //# #####$#### -0x88, 0x88, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, //##### # # -0x00, 0x00, 0x81, 0x11, 0x00, 0x40, 0x80, 0x00, // #... $ # -0x00, 0x00, 0x81, 0x11, 0x18, 0x00, 0x80, 0x00, // #....# # -0x00, 0x00, 0x81, 0x11, 0x18, 0x88, 0x80, 0x00, // #....#### -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### -//Level: 190 -0x14, 0x10,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -0x88, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //## ### -0x82, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#@$ # -0x88, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //### $ # -0x08, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // # ####### -0x08, 0x00, 0x40, 0x11, 0x11, 0x88, 0x88, 0x00, 0x00, 0x00, // # $ ....#### -0x08, 0x00, 0x88, 0x81, 0x11, 0x00, 0x08, 0x88, 0x88, 0x80, // # ###... ###### -0x08, 0x80, 0x88, 0x01, 0x11, 0x80, 0x08, 0x00, 0x00, 0x88, // ## ## ...# # ## -0x08, 0x04, 0x88, 0x01, 0x11, 0x80, 0x88, 0x00, 0x40, 0x08, // # $## ...# ## $ # -0x08, 0x00, 0x00, 0x88, 0x88, 0x80, 0x88, 0x80, 0x84, 0x08, // # ##### ### #$ # -0x08, 0x00, 0x80, 0x08, 0x08, 0x80, 0x80, 0x00, 0x80, 0x08, // # # # ## # # # -0x08, 0x88, 0x88, 0x00, 0x00, 0x80, 0x84, 0x08, 0x04, 0x08, // ##### # #$ # $ # -0x00, 0x00, 0x08, 0x80, 0x80, 0x00, 0x00, 0x40, 0x40, 0x08, // ## # $ $ # -0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x84, 0x04, 0x04, 0x08, // ### #$ $ $ # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x80, 0x08, // ##### # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, // ######## -//Level: 191 -0x0F, 0x0D,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //# # -0x80, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //# ########## -0x80, 0x00, 0x08, 0x80, 0x00, 0x00, 0x80, 0x00, //# ## # -0x81, 0x18, 0x00, 0x00, 0x44, 0x80, 0x80, 0x00, //#..# $$# # -0x81, 0x10, 0x08, 0x80, 0x00, 0x40, 0x88, 0x80, //#.. ## $ ### -0x81, 0x18, 0x00, 0x88, 0x48, 0x04, 0x00, 0x80, //#..# ##$# $ # -0x81, 0x10, 0x00, 0x80, 0x24, 0x04, 0x00, 0x80, //#.. # @$ $ # -0x81, 0x18, 0x00, 0x80, 0x40, 0x40, 0x00, 0x80, //#..# # $ $ # -0x80, 0x10, 0x00, 0x80, 0x40, 0x40, 0x88, 0x80, //# . # $ $ ### -0x80, 0x08, 0x00, 0x80, 0x00, 0x88, 0x80, 0x00, //# # # ### -0x80, 0x08, 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, //# # ### -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //######### -//Level: 192 -0x08, 0x07,//Size x and y -0x00, 0x08, 0x88, 0x88, // ##### -0x88, 0x88, 0x01, 0x08, //#### . # -0x80, 0x52, 0x01, 0x08, //# *@ . # -0x80, 0x40, 0x80, 0x08, //# $ # # -0x80, 0x80, 0x04, 0x08, //# # $ # -0x80, 0x00, 0x88, 0x88, //# #### -0x88, 0x88, 0x80, 0x00, //##### -//Level: 193 -0x13, 0x0B,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ####### -0x00, 0x00, 0x88, 0x88, 0x80, 0x08, 0x00, 0x88, 0x88, 0x00, // ##### # #### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x08, 0x00, // # # $ # -0x08, 0x88, 0x80, 0x84, 0x40, 0x88, 0x08, 0x80, 0x08, 0x00, // #### #$$ ## ## # -0x88, 0x00, 0x00, 0x00, 0x80, 0x80, 0x08, 0x80, 0x88, 0x80, //## # # ## ### -0x80, 0x08, 0x88, 0x04, 0x84, 0x00, 0x40, 0x04, 0x00, 0x80, //# ### $#$ $ $ # -0x81, 0x11, 0x00, 0x00, 0x80, 0x88, 0x00, 0x80, 0x00, 0x80, //#... # ## # # -0x81, 0x11, 0x80, 0x00, 0x02, 0x08, 0x08, 0x88, 0x08, 0x80, //#...# @ # ### ## -0x81, 0x11, 0x80, 0x08, 0x88, 0x00, 0x40, 0x04, 0x00, 0x80, //#...# ### $ $ # -0x88, 0x88, 0x88, 0x88, 0x08, 0x80, 0x00, 0x80, 0x00, 0x80, //######## ## # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -//Level: 194 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x80, 0x01, 0x88, //### .## -0x80, 0x40, 0x80, 0x88, //# $ # ## -0x80, 0x54, 0x00, 0x88, //# *$ ## -0x80, 0x18, 0x20, 0x88, //# .#@ ## -0x80, 0x00, 0x08, 0x88, //# ### -0x80, 0x00, 0x88, 0x88, //# #### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 195 -0x10, 0x0F,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### -0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, // # # -0x00, 0x88, 0x80, 0x88, 0x08, 0x00, 0x00, 0x00, // ### ## # -0x88, 0x80, 0x04, 0x00, 0x48, 0x88, 0x88, 0x88, //### $ $####### -0x80, 0x00, 0x40, 0x40, 0x08, 0x00, 0x11, 0x18, //# $ $ # ...# -0x80, 0x84, 0x08, 0x00, 0x48, 0x00, 0x11, 0x18, //# #$ # $# ...# -0x80, 0x80, 0x08, 0x40, 0x00, 0x00, 0x11, 0x18, //# # #$ ...# -0x80, 0x84, 0x08, 0x00, 0x08, 0x00, 0x11, 0x18, //# #$ # # ...# -0x80, 0x80, 0x48, 0x04, 0x48, 0x00, 0x11, 0x18, //# # $# $$# ...# -0x80, 0x82, 0x08, 0x40, 0x08, 0x88, 0x88, 0x88, //# #@ #$ ####### -0x80, 0x80, 0x40, 0x40, 0x88, 0x00, 0x00, 0x00, //# # $ $ ## -0x80, 0x80, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, //# # $ # -0x80, 0x88, 0x80, 0x88, 0x80, 0x00, 0x00, 0x00, //# ### ### -0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //# # -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //####### -//Level: 196 -0x0C, 0x0C,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, // ##### -0x00, 0x88, 0x88, 0x88, 0x00, 0x08, // ###### # -0x88, 0x80, 0x00, 0x01, 0x04, 0x08, //### . $ # -0x80, 0x40, 0x08, 0x41, 0x84, 0x88, //# $ #$.#$## -0x80, 0x08, 0x00, 0x21, 0x80, 0x08, //# # @.# # -0x88, 0x08, 0x88, 0x81, 0x00, 0x08, //## ####. # -0x08, 0x04, 0x00, 0x85, 0x88, 0x88, // # $ #*#### -0x08, 0x08, 0x80, 0x81, 0x00, 0x80, // # ## #. # -0x08, 0x00, 0x00, 0x01, 0x80, 0x80, // # .# # -0x08, 0x88, 0x40, 0x00, 0x00, 0x80, // ###$ # -0x00, 0x08, 0x00, 0x88, 0x88, 0x80, // # ##### -0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 197 -0x0E, 0x0D,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // ########## -0x88, 0x88, 0x11, 0x11, 0x11, 0x00, 0x80, //####...... # -0x80, 0x00, 0x11, 0x11, 0x18, 0x00, 0x80, //# .....# # -0x80, 0x08, 0x11, 0x11, 0x11, 0x08, 0x80, //# #...... ## -0x88, 0x08, 0x88, 0x84, 0x88, 0x48, 0x00, //## ####$##$# -0x82, 0x40, 0x04, 0x04, 0x00, 0x08, 0x88, //#@$ $ $ ### -0x80, 0x44, 0x00, 0x00, 0x88, 0x00, 0x08, //# $$ ## # -0x80, 0x80, 0x04, 0x48, 0x80, 0x08, 0x08, //# # $$## # # -0x80, 0x00, 0x40, 0x08, 0x04, 0x40, 0x08, //# $ # $$ # -0x80, 0x04, 0x00, 0x40, 0x00, 0x84, 0x08, //# $ $ #$ # -0x88, 0x88, 0x00, 0x08, 0x04, 0x04, 0x08, //#### # $ $ # -0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x08, // # # # -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, // ########### -//Level: 198 -0x0F, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //######## -0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, //# # -0x80, 0x44, 0x00, 0x08, 0x88, 0x00, 0x00, 0x00, //# $$ ### -0x80, 0x04, 0x04, 0x44, 0x08, 0x88, 0x88, 0x00, //# $ $$$ ##### -0x88, 0x08, 0x80, 0x11, 0x10, 0x00, 0x08, 0x80, //## ## ... ## -0x08, 0x08, 0x28, 0x11, 0x18, 0x88, 0x40, 0x80, // # #@#...###$ # -0x08, 0x08, 0x04, 0x11, 0x10, 0x00, 0x00, 0x80, // # # $... # -0x88, 0x08, 0x04, 0x11, 0x14, 0x08, 0x08, 0x80, //## # $...$ # ## -0x80, 0x08, 0x88, 0x88, 0x08, 0x88, 0x08, 0x00, //# ##### ### # -0x80, 0x00, 0x00, 0x04, 0x00, 0x04, 0x08, 0x00, //# $ $ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, 0x00, //########### # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -//Level: 199 -0x13, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ########### -0x00, 0x00, 0x08, 0x00, 0x10, 0x08, 0x00, 0x08, 0x00, 0x00, // # . # # -0x00, 0x00, 0x08, 0x08, 0x10, 0x00, 0x02, 0x08, 0x00, 0x00, // # #. @ # -0x08, 0x88, 0x88, 0x08, 0x81, 0x18, 0x08, 0x88, 0x80, 0x00, // ##### ##..# #### -0x88, 0x00, 0x80, 0x11, 0x88, 0x80, 0x00, 0x00, 0x88, 0x80, //## # ..### ### -0x80, 0x40, 0x81, 0x11, 0x00, 0x04, 0x08, 0x00, 0x40, 0x80, //# $ #... $ # $ # -0x80, 0x00, 0x01, 0x10, 0x88, 0x00, 0x88, 0x08, 0x80, 0x80, //# .. ## ## ## # -0x88, 0x88, 0x48, 0x84, 0x80, 0x40, 0x80, 0x00, 0x80, 0x80, //####$##$# $ # # # -0x00, 0x88, 0x08, 0x00, 0x00, 0x84, 0x04, 0x40, 0x80, 0x80, // ## # #$ $$ # # -0x00, 0x80, 0x04, 0x08, 0x08, 0x00, 0x80, 0x48, 0x80, 0x80, // # $ # # # $## # -0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // # # -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x80, // # ########### # -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, // #### #### -//Level: 200 -0x0F, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ####### -0x08, 0x00, 0x80, 0x08, 0x88, 0x88, 0x00, 0x00, // # # ##### -0x88, 0x00, 0x80, 0x08, 0x11, 0x18, 0x88, 0x00, //## # #...### -0x80, 0x04, 0x80, 0x08, 0x11, 0x10, 0x08, 0x00, //# $# #... # -0x80, 0x40, 0x84, 0x40, 0x11, 0x10, 0x08, 0x00, //# $ #$$ ... # -0x80, 0x04, 0x80, 0x08, 0x11, 0x10, 0x18, 0x00, //# $# #... .# -0x80, 0x00, 0x80, 0x48, 0x88, 0x88, 0x88, 0x80, //# # $######## -0x88, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x80, //##$ $ $ # -0x88, 0x00, 0x80, 0x04, 0x40, 0x80, 0x00, 0x80, //## # $$ # # -0x08, 0x88, 0x88, 0x80, 0x08, 0x84, 0x42, 0x80, // ###### ##$$@# -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x80, // # ## -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, // ######## -//Level: 201 -0x13, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //########### -0x81, 0x11, 0x11, 0x10, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, //#...... ######### -0x81, 0x11, 0x11, 0x10, 0x00, 0x80, 0x08, 0x80, 0x00, 0x80, //#...... # ## # -0x81, 0x18, 0x88, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, //#..### $ $ # -0x81, 0x11, 0x04, 0x04, 0x08, 0x00, 0x08, 0x80, 0x00, 0x80, //#... $ $ # ## # -0x81, 0x11, 0x84, 0x88, 0x88, 0x80, 0x00, 0x08, 0x00, 0x80, //#...#$##### # # -0x88, 0x80, 0x00, 0x08, 0x00, 0x08, 0x40, 0x08, 0x40, 0x80, //### # #$ #$ # -0x00, 0x80, 0x04, 0x40, 0x40, 0x40, 0x04, 0x88, 0x00, 0x80, // # $$ $ $ $## # -0x00, 0x80, 0x04, 0x00, 0x08, 0x48, 0x40, 0x88, 0x40, 0x80, // # $ #$#$ ##$ # -0x00, 0x88, 0x80, 0x88, 0x08, 0x00, 0x00, 0x88, 0x00, 0x80, // ### ## # ## # -0x00, 0x08, 0x00, 0x40, 0x40, 0x88, 0x08, 0x88, 0x88, 0x80, // # $ $ ## ###### -0x00, 0x08, 0x00, 0x00, 0x40, 0x04, 0x00, 0x80, 0x00, 0x00, // # $ $ # -0x00, 0x08, 0x80, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, // ## # # # -0x00, 0x00, 0x88, 0x88, 0x82, 0x88, 0x88, 0x80, 0x00, 0x00, // #####@##### -0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ### -//Level: 202 -0x10, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ######### -0x08, 0x00, 0x80, 0x00, 0x08, 0x88, 0x88, 0x88, // # # ####### -0x08, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x08, // # $ # # -0x88, 0x18, 0x88, 0x80, 0x40, 0x42, 0x48, 0x08, //##.#### $ $@$# # -0x81, 0x11, 0x18, 0x88, 0x00, 0x88, 0x04, 0x08, //#....### ## $ # -0x81, 0x11, 0x18, 0x88, 0x84, 0x08, 0x00, 0x08, //#....####$ # # -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x04, 0x08, //#.... $ # -0x88, 0x80, 0x88, 0x88, 0x48, 0x04, 0x04, 0x08, //### ####$# $ $ # -0x80, 0x00, 0x00, 0x00, 0x08, 0x80, 0x08, 0x88, //# ## ### -0x80, 0x44, 0x04, 0x08, 0x88, 0x88, 0x88, 0x00, //# $$ $ ####### -0x80, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //# ##### -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -//Level: 203 -0x0E, 0x0C,//Size x and y -0x08, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, // ##### ###### -0x08, 0x00, 0x08, 0x88, 0x00, 0x00, 0x80, // # ### # -0x88, 0x04, 0x04, 0x08, 0x40, 0x84, 0x80, //## $ $ #$ #$# -0x80, 0x04, 0x02, 0x04, 0x00, 0x40, 0x88, //# $ @ $ $ ## -0x80, 0x80, 0x08, 0x80, 0x81, 0x11, 0x18, //# # ## #....# -0x80, 0x08, 0x80, 0x40, 0x81, 0x88, 0x18, //# ## $ #.##.# -0x88, 0x00, 0x40, 0x00, 0x01, 0x11, 0x18, //## $ ....# -0x08, 0x04, 0x40, 0x84, 0x81, 0x11, 0x18, // # $$ #$#....# -0x08, 0x00, 0x08, 0x00, 0x08, 0x40, 0x88, // # # #$ ## -0x08, 0x88, 0x88, 0x04, 0x00, 0x00, 0x80, // ##### $ # -0x00, 0x00, 0x08, 0x88, 0x80, 0x08, 0x80, // #### ## -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -//Level: 204 -0x0E, 0x0C,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, // ###### -0x08, 0x88, 0x88, 0x00, 0x00, 0x80, 0x00, // ##### # -0x08, 0x00, 0x80, 0x04, 0x04, 0x80, 0x00, // # # $ $# -0x08, 0x00, 0x40, 0x80, 0x40, 0x88, 0x80, // # $ # $ ### -0x88, 0x00, 0x80, 0x08, 0x00, 0x40, 0x88, //## # # $ ## -0x80, 0x48, 0x00, 0x20, 0x80, 0x00, 0x08, //# $# @ # # -0x80, 0x00, 0x04, 0x04, 0x80, 0x44, 0x08, //# $ $# $$ # -0x80, 0x04, 0x08, 0x41, 0x51, 0x08, 0x88, //# $ #$.*. ### -0x88, 0x00, 0x80, 0x41, 0x11, 0x88, 0x00, //## # $...## -0x08, 0x88, 0x80, 0x81, 0x11, 0x18, 0x00, // #### #....# -0x00, 0x00, 0x80, 0x01, 0x11, 0x18, 0x00, // # ....# -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, // ######## -//Level: 205 -0x07, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x41, 0x02, 0x80, //# $. @# -0x80, 0x01, 0x00, 0x80, //# . # -0x84, 0x45, 0x40, 0x80, //#$$*$ # -0x81, 0x15, 0x11, 0x80, //#..*..# -0x80, 0x45, 0x40, 0x80, //# $*$ # -0x80, 0x41, 0x40, 0x80, //# $.$ # -0x80, 0x01, 0x00, 0x80, //# . # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 206 -0x0B, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //####### -0x80, 0x28, 0x00, 0x88, 0x88, 0x80, //# @# ##### -0x80, 0x44, 0x00, 0x40, 0x00, 0x80, //# $$ $ # -0x80, 0x08, 0x18, 0x84, 0x80, 0x80, //# #.##$# # -0x88, 0x48, 0x11, 0x10, 0x00, 0x80, //##$#... # -0x88, 0x01, 0x11, 0x88, 0x48, 0x80, //## ...##$## -0x80, 0x08, 0x81, 0x88, 0x00, 0x80, //# ##.## # -0x80, 0x04, 0x00, 0x40, 0x00, 0x80, //# $ $ # -0x80, 0x08, 0x00, 0x08, 0x00, 0x80, //# # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 207 -0x13, 0x0D,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ################# -0x08, 0x11, 0x10, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, 0x80, // #... # # ## -0x88, 0x11, 0x11, 0x10, 0x04, 0x88, 0x08, 0x08, 0x40, 0x80, //##..... $## # #$ # -0x81, 0x11, 0x11, 0x18, 0x00, 0x40, 0x08, 0x00, 0x00, 0x80, //#......# $ # # -0x81, 0x11, 0x11, 0x18, 0x00, 0x80, 0x08, 0x08, 0x00, 0x80, //#......# # # # # -0x88, 0x88, 0x88, 0x88, 0x80, 0x40, 0x04, 0x04, 0x00, 0x80, //######### $ $ $ # -0x00, 0x80, 0x00, 0x00, 0x84, 0x88, 0x40, 0x88, 0x48, 0x80, // # #$##$ ##$## -0x08, 0x80, 0x00, 0x40, 0x00, 0x08, 0x04, 0x00, 0x00, 0x80, // ## $ # $ # -0x08, 0x00, 0x88, 0x08, 0x88, 0x08, 0x00, 0x88, 0x40, 0x80, // # ## ### # ##$ # -0x08, 0x04, 0x04, 0x40, 0x00, 0x00, 0x40, 0x04, 0x00, 0x80, // # $ $$ $ $ # -0x08, 0x04, 0x00, 0x00, 0x48, 0x84, 0x08, 0x88, 0x88, 0x80, // # $ $##$ ###### -0x08, 0x88, 0x88, 0x88, 0x00, 0x20, 0x88, 0x00, 0x00, 0x00, // ####### @ ## -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ###### -//Level: 208 -0x10, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x00, 0x00, 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, // # ## -0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x80, 0x00, // # ## -0x00, 0x00, 0x00, 0x08, 0x04, 0x40, 0x88, 0x00, // # $$ ## -0x00, 0x00, 0x08, 0x88, 0x40, 0x04, 0x08, 0x80, // ###$ $ ## -0x00, 0x88, 0x88, 0x00, 0x00, 0x40, 0x00, 0x80, // #### $ # -0x88, 0x80, 0x08, 0x08, 0x88, 0x88, 0x00, 0x80, //### # ##### # -0x80, 0x00, 0x08, 0x08, 0x11, 0x11, 0x40, 0x80, //# # #....$ # -0x80, 0x80, 0x00, 0x40, 0x11, 0x11, 0x80, 0x80, //# # $ ....# # -0x80, 0x04, 0x08, 0x08, 0x15, 0x11, 0x80, 0x80, //# $ # #.*..# # -0x88, 0x80, 0x08, 0x88, 0x80, 0x88, 0x80, 0x80, //### #### ### # -0x00, 0x88, 0x88, 0x02, 0x40, 0x08, 0x84, 0x88, // #### @$ ##$## -0x00, 0x00, 0x08, 0x88, 0x04, 0x00, 0x00, 0x08, // ### $ # -0x00, 0x00, 0x00, 0x08, 0x00, 0x88, 0x00, 0x08, // # ## # -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -//Level: 209 -0x13, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### -0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x08, 0x88, 0x88, 0x80, // # # ###### -0x00, 0x88, 0x88, 0x80, 0x80, 0x04, 0x08, 0x11, 0x11, 0x80, // ##### # $ #....# -0x08, 0x80, 0x00, 0x88, 0x80, 0x08, 0x08, 0x11, 0x11, 0x80, // ## ### # #....# -0x08, 0x04, 0x04, 0x08, 0x84, 0x88, 0x08, 0x11, 0x11, 0x80, // # $ $ ##$## #....# -0x08, 0x00, 0x80, 0x08, 0x00, 0x08, 0x08, 0x11, 0x11, 0x80, // # # # # #....# -0x08, 0x40, 0x40, 0x04, 0x24, 0x08, 0x08, 0x80, 0x08, 0x80, // #$ $ $@$ # ## ## -0x08, 0x04, 0x80, 0x08, 0x80, 0x88, 0x00, 0x80, 0x08, 0x00, // # $# ## ## # # -0x88, 0x00, 0x04, 0x48, 0x00, 0x88, 0x80, 0x80, 0x08, 0x00, //## $$# ### # # -0x80, 0x04, 0x00, 0x08, 0x04, 0x40, 0x00, 0x00, 0x08, 0x00, //# $ # $$ # -0x80, 0x40, 0x04, 0x08, 0x00, 0x88, 0x88, 0x00, 0x88, 0x00, //# $ $ # #### ## -0x80, 0x00, 0x08, 0x88, 0x88, 0x80, 0x08, 0x88, 0x80, 0x00, //# ###### #### -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //###### -//Level: 210 -0x10, 0x12,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // ######### -0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, // # # -0x00, 0x00, 0x00, 0x08, 0x04, 0x44, 0x44, 0x08, // # $$$$$ # -0x00, 0x00, 0x00, 0x08, 0x04, 0x04, 0x00, 0x08, // # $ $ # -0x00, 0x08, 0x88, 0x88, 0x00, 0x40, 0x40, 0x08, // ##### $ $ # -0x00, 0x08, 0x00, 0x08, 0x88, 0x80, 0x88, 0x88, // # #### #### -0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, // # # -0x00, 0x08, 0x88, 0x08, 0x88, 0x80, 0x08, 0x00, // ### #### # -0x00, 0x00, 0x81, 0x11, 0x18, 0x80, 0x88, 0x00, // #....## ## -0x00, 0x00, 0x81, 0x11, 0x18, 0x00, 0x80, 0x00, // #....# # -0x00, 0x00, 0x81, 0x11, 0x18, 0x00, 0x80, 0x00, // #....# # -0x88, 0x88, 0x81, 0x88, 0x80, 0x00, 0x80, 0x00, //#####.### # -0x80, 0x08, 0x80, 0x80, 0x80, 0x88, 0x80, 0x00, //# ## # # ### -0x80, 0x48, 0x84, 0x88, 0x80, 0x08, 0x80, 0x00, //# $##$### ## -0x80, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, //# $ # -0x80, 0x48, 0x00, 0x08, 0x80, 0x08, 0x00, 0x00, //# $# ## # -0x88, 0x28, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, //##@######### -0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ### -//Level: 211 -0x0D, 0x09,//Size x and y -0x88, 0x88, 0x80, 0x88, 0x88, 0x88, 0x80, //##### ####### -0x80, 0x00, 0x88, 0x80, 0x08, 0x00, 0x80, //# ### # # -0x80, 0x40, 0x00, 0x00, 0x40, 0x20, 0x80, //# $ $ @ # -0x88, 0x08, 0x48, 0x81, 0x88, 0x00, 0x80, //## #$##.## # -0x08, 0x00, 0x11, 0x15, 0x10, 0x40, 0x80, // # ...*. $ # -0x08, 0x04, 0x80, 0x81, 0x80, 0x80, 0x80, // # $# #.# # # -0x08, 0x80, 0x00, 0x04, 0x00, 0x00, 0x80, // ## $ # -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x80, // # ######## -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 212 -0x07, 0x09,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x01, 0x00, 0x80, //# . # -0x80, 0x01, 0x40, 0x80, //# .$ # -0x80, 0x45, 0x10, 0x80, //# $*. # -0x85, 0x01, 0x45, 0x80, //#* .$*# -0x80, 0x55, 0x40, 0x80, //# **$ # -0x80, 0x01, 0x40, 0x80, //# .$ # -0x80, 0x41, 0x02, 0x80, //# $. @# -0x88, 0x88, 0x88, 0x80, //####### -//Level: 213 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x00, 0x28, 0x00, //# @# -0x80, 0x48, 0x08, 0x88, //# $# ### -0x80, 0x50, 0x40, 0x08, //# * $ # -0x80, 0x00, 0x88, 0x08, //# ## # -0x88, 0x10, 0x01, 0x08, //##. . # -0x08, 0x80, 0x00, 0x88, // ## ## -0x00, 0x88, 0x88, 0x80, // ##### -//Level: 214 -0x10, 0x0E,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ##### -0x08, 0x88, 0x80, 0x00, 0x88, 0x08, 0x88, 0x88, // #### ## ##### -0x08, 0x00, 0x40, 0x00, 0x08, 0x88, 0x00, 0x08, // # $ ### # -0x08, 0x04, 0x24, 0x04, 0x00, 0x00, 0x40, 0x08, // # $@$ $ $ # -0x08, 0x08, 0x48, 0x88, 0x88, 0x88, 0x80, 0x88, // # #$######## ## -0x08, 0x08, 0x00, 0x40, 0x08, 0x00, 0x00, 0x08, // # # $ # # -0x08, 0x08, 0x04, 0x04, 0x08, 0x08, 0x00, 0x08, // # # $ $ # # # -0x88, 0x08, 0x00, 0x48, 0x08, 0x08, 0x88, 0x88, //## # $# # ##### -0x80, 0x08, 0x80, 0x00, 0x08, 0x00, 0x00, 0x08, //# ## # # -0x80, 0x00, 0x04, 0x08, 0x08, 0x88, 0x00, 0x08, //# $ # ### # -0x88, 0x88, 0x80, 0x88, 0x00, 0x81, 0x11, 0x18, //##### ## #....# -0x80, 0x00, 0x04, 0x00, 0x00, 0x01, 0x11, 0x18, //# $ ....# -0x80, 0x00, 0x00, 0x00, 0x00, 0x81, 0x11, 0x18, //# #....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################ -//Level: 215 -0x10, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //######## -0x80, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, //# # # -0x80, 0x40, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, //# $ #### -0x88, 0x08, 0x84, 0x08, 0x20, 0x88, 0x88, 0x88, //## ##$ #@ ###### -0x08, 0x00, 0x40, 0x48, 0x84, 0x00, 0x80, 0x08, // # $ $##$ # # -0x08, 0x08, 0x00, 0x40, 0x80, 0x40, 0x11, 0x18, // # # $ # $ ...# -0x08, 0x04, 0x08, 0x40, 0x00, 0x08, 0x11, 0x18, // # $ #$ #...# -0x08, 0x00, 0x00, 0x08, 0x80, 0x48, 0x11, 0x18, // # ## $#...# -0x08, 0x88, 0x04, 0x08, 0x00, 0x40, 0x11, 0x18, // ### $ # $ ...# -0x00, 0x08, 0x88, 0x08, 0x00, 0x48, 0x11, 0x18, // ### # $#...# -0x00, 0x00, 0x80, 0x04, 0x40, 0x08, 0x88, 0x88, // # $$ ##### -0x00, 0x00, 0x80, 0x00, 0x00, 0x88, 0x00, 0x00, // # ## -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ####### -//Level: 216 -0x0E, 0x0E,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -0x80, 0x00, 0x00, 0x00, 0x88, 0x80, 0x08, //# ### # -0x80, 0x44, 0x04, 0x00, 0x00, 0x44, 0x08, //# $$ $ $$ # -0x80, 0x00, 0x00, 0x40, 0x88, 0x80, 0x08, //# $ ### # -0x88, 0x48, 0x88, 0x88, 0x00, 0x80, 0x88, //##$##### # ## -0x88, 0x08, 0x01, 0x11, 0x11, 0x80, 0x08, //## # .....# # -0x88, 0x08, 0x01, 0x11, 0x81, 0x80, 0x08, //## # ...#.# # -0x80, 0x00, 0x81, 0x11, 0x11, 0x84, 0x08, //# #.....#$ # -0x80, 0x00, 0x81, 0x51, 0x11, 0x42, 0x88, //# #.*...$@## -0x80, 0x40, 0x80, 0x08, 0x88, 0x08, 0x88, //# $ # ### ### -0x80, 0x40, 0x88, 0x80, 0x40, 0x40, 0x08, //# $ ### $ $ # -0x80, 0x44, 0x40, 0x00, 0x00, 0x44, 0x08, //# $$$ $$ # -0x80, 0x00, 0x88, 0x80, 0x00, 0x00, 0x08, //# ### # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -//Level: 217 -0x0E, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, // #### -0x00, 0x88, 0x88, 0x88, 0x80, 0x08, 0x80, // ####### ## -0x00, 0x80, 0x00, 0x08, 0x80, 0x00, 0x80, // # ## # -0x00, 0x80, 0x80, 0x00, 0x41, 0x80, 0x88, // # # $.# ## -0x00, 0x80, 0x00, 0x40, 0x81, 0x02, 0x08, // # $ #. @ # -0x00, 0x88, 0x00, 0x88, 0x11, 0x10, 0x08, // ## ##... # -0x00, 0x08, 0x84, 0x04, 0x11, 0x10, 0x88, // ##$ $... ## -0x00, 0x88, 0x00, 0x88, 0x15, 0x18, 0x80, // ## ##.*.## -0x88, 0x80, 0x40, 0x00, 0x08, 0x88, 0x00, //### $ ### -0x80, 0x44, 0x08, 0x48, 0x48, 0x80, 0x00, //# $$ #$#$## -0x80, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00, //# # $ # -0x80, 0x00, 0x08, 0x80, 0x00, 0x80, 0x00, //# ## # -0x88, 0x80, 0x08, 0x88, 0x88, 0x80, 0x00, //### ###### -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 218 -0x0E, 0x0D,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -0x08, 0x88, 0x80, 0x08, 0x88, 0x80, 0x00, // #### #### -0x08, 0x00, 0x80, 0x00, 0x40, 0x88, 0x88, // # # $ #### -0x08, 0x11, 0x10, 0x48, 0x40, 0x80, 0x08, // #... $#$ # # -0x88, 0x18, 0x10, 0x08, 0x00, 0x04, 0x08, //##.#. # $ # -0x81, 0x11, 0x11, 0x08, 0x88, 0x40, 0x08, //#..... ###$ # -0x81, 0x11, 0x18, 0x48, 0x00, 0x40, 0x88, //#....#$# $ ## -0x88, 0x84, 0x88, 0x04, 0x40, 0x00, 0x80, //###$## $$ # -0x08, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, // # # $ # -0x08, 0x04, 0x00, 0x24, 0x00, 0x88, 0x80, // # $ @$ ### -0x08, 0x88, 0x84, 0x80, 0x88, 0x80, 0x00, // ####$# ### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -//Level: 219 -0x0E, 0x0E,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############ -0x88, 0x00, 0x08, 0x00, 0x80, 0x00, 0x88, //## # # ## -0x80, 0x20, 0x48, 0x04, 0x04, 0x04, 0x08, //# @ $# $ $ $ # -0x80, 0x04, 0x00, 0x00, 0x80, 0x40, 0x08, //# $ # $ # -0x80, 0x44, 0x08, 0x11, 0x80, 0x04, 0x08, //# $$ #..# $ # -0x88, 0x80, 0x81, 0x11, 0x18, 0x80, 0x88, //### #....## ## -0x80, 0x00, 0x11, 0x88, 0x11, 0x04, 0x08, //# ..##.. $ # -0x80, 0x40, 0x11, 0x88, 0x11, 0x00, 0x08, //# $ ..##.. # -0x88, 0x08, 0x81, 0x11, 0x18, 0x08, 0x88, //## ##....# ### -0x80, 0x40, 0x08, 0x11, 0x80, 0x40, 0x08, //# $ #..# $ # -0x80, 0x04, 0x08, 0x00, 0x04, 0x04, 0x08, //# $ # $ $ # -0x80, 0x40, 0x40, 0x40, 0x80, 0x40, 0x08, //# $ $ $ # $ # -0x88, 0x00, 0x08, 0x00, 0x80, 0x00, 0x88, //## # # ## -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############ -//Level: 220 -0x10, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ########## -0x00, 0x80, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, // # # # -0x00, 0x80, 0x48, 0x00, 0x04, 0x08, 0x00, 0x00, // # $# $ # -0x00, 0x80, 0x40, 0x48, 0x48, 0x08, 0x00, 0x00, // # $ $#$# # -0x08, 0x88, 0x18, 0x11, 0x10, 0x08, 0x88, 0x88, // ###.#... ##### -0x88, 0x00, 0x11, 0x11, 0x84, 0x08, 0x00, 0x08, //## ....#$ # # -0x80, 0x48, 0x18, 0x85, 0x80, 0x04, 0x44, 0x08, //# $#.##*# $$$ # -0x80, 0x00, 0x11, 0x11, 0x12, 0x80, 0x40, 0x08, //# .....@# $ # -0x80, 0x08, 0x18, 0x11, 0x10, 0x04, 0x04, 0x08, //# #.#... $ $ # -0x80, 0x44, 0x00, 0x48, 0x48, 0x00, 0x40, 0x08, //# $$ $#$# $ # -0x80, 0x00, 0x80, 0x08, 0x00, 0x80, 0x00, 0x88, //# # # # ## -0x88, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x80, //###### ##### -0x00, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, // ###### -//Level: 221 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, //######## -0x80, 0x08, 0x11, 0x08, 0x80, //# #.. ## -0x80, 0x41, 0x24, 0x50, 0x80, //# $.@$* # -0x80, 0x04, 0x04, 0x00, 0x80, //# $ $ # -0x80, 0x54, 0x01, 0x40, 0x80, //# *$ .$ # -0x88, 0x01, 0x18, 0x00, 0x80, //## ..# # -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -//Level: 222 -0x09, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x00, 0x08, 0x00, 0x08, 0x00, // # # -0x00, 0x08, 0x10, 0x48, 0x00, // #. $# -0x00, 0x08, 0x04, 0x08, 0x00, // # $ # -0x88, 0x88, 0x11, 0x08, 0x80, //####.. ## -0x80, 0x40, 0x55, 0x00, 0x80, //# $ ** # -0x80, 0x10, 0x02, 0x40, 0x80, //# . @$ # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 223 -0x0E, 0x0F,//Size x and y -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //##### -0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, //# ## -0x80, 0x00, 0x08, 0x00, 0x88, 0x88, 0x00, //# # #### -0x80, 0x40, 0x08, 0x88, 0x80, 0x08, 0x00, //# $ #### # -0x80, 0x04, 0x40, 0x40, 0x00, 0x48, 0x00, //# $$ $ $# -0x88, 0x82, 0x08, 0x40, 0x00, 0x08, 0x80, //###@ #$ ## -0x08, 0x00, 0x88, 0x00, 0x40, 0x40, 0x88, // # ## $ $ ## -0x08, 0x04, 0x00, 0x88, 0x08, 0x80, 0x18, // # $ ## ## .# -0x08, 0x00, 0x84, 0x88, 0x40, 0x08, 0x18, // # #$##$ #.# -0x08, 0x88, 0x00, 0x04, 0x11, 0x88, 0x18, // ### $..##.# -0x00, 0x80, 0x00, 0x08, 0x15, 0x11, 0x18, // # #.*...# -0x00, 0x80, 0x44, 0x08, 0x11, 0x11, 0x18, // # $$ #.....# -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x88, // # ######### -0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, // # # -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 224 -0x13, 0x10,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ###### -0x00, 0x80, 0x00, 0x28, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // # @#### -0x88, 0x88, 0x80, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //##### $ # -0x80, 0x00, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, //# ## #### -0x80, 0x40, 0x80, 0x08, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, //# $ # ## # -0x80, 0x40, 0x80, 0x08, 0x88, 0x88, 0x08, 0x00, 0x00, 0x00, //# $ # ##### # -0x88, 0x04, 0x00, 0x40, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, //## $ $ # # -0x88, 0x04, 0x04, 0x08, 0x88, 0x08, 0x08, 0x00, 0x00, 0x00, //## $ $ ### # # -0x88, 0x08, 0x00, 0x40, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, //## # $ # # # -0x88, 0x08, 0x08, 0x48, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, //## # #$# # # -0x88, 0x08, 0x88, 0x00, 0x08, 0x08, 0x08, 0x88, 0x88, 0x80, //## ### # # ###### -0x80, 0x04, 0x00, 0x88, 0x88, 0x08, 0x08, 0x11, 0x11, 0x80, //# $ #### # #....# -0x80, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x11, 0x81, 0x80, //# $ $ ..#.# -0x88, 0x88, 0x40, 0x04, 0x80, 0x40, 0x00, 0x11, 0x11, 0x80, //####$ $# $ ....# -0x80, 0x00, 0x00, 0x00, 0x80, 0x08, 0x80, 0x11, 0x11, 0x80, //# # ## ....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################### -//Level: 225 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x20, 0x80, 0x08, //# # #@ # # -0x80, 0x44, 0x00, 0x84, 0x48, 0x08, 0x08, 0x00, 0x88, 0x08, //# $$ #$$# # # ## # -0x80, 0x08, 0x04, 0x04, 0x08, 0x44, 0x08, 0x00, 0x00, 0x08, //# # $ $ #$$ # # -0x88, 0x08, 0x00, 0x80, 0x08, 0x08, 0x08, 0x00, 0x80, 0x08, //## # # # # # # # -0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, //# ## # # -0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x80, 0x08, //# # $ # # # # -0x80, 0x40, 0x84, 0x08, 0x00, 0x08, 0x00, 0x40, 0x81, 0x18, //# $ #$ # # $ #..# -0x88, 0x40, 0x80, 0x08, 0x88, 0x80, 0x00, 0x08, 0x11, 0x18, //##$ # #### #...# -0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x11, 0x18, //# $ #....# -0x80, 0x00, 0x80, 0x08, 0x00, 0x00, 0x08, 0x11, 0x11, 0x18, //# # # #.....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 226 -0x11, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //############# -0x81, 0x11, 0x11, 0x11, 0x18, 0x88, 0x80, 0x00, 0x00, //#........#### -0x81, 0x11, 0x88, 0x88, 0x08, 0x00, 0x88, 0x88, 0x80, //#...#### # ##### -0x81, 0x11, 0x80, 0x08, 0x88, 0x00, 0x00, 0x40, 0x80, //#...# ### $ # -0x81, 0x11, 0x44, 0x00, 0x00, 0x04, 0x04, 0x00, 0x80, //#...$$ $ $ # -0x80, 0x01, 0x80, 0x04, 0x04, 0x80, 0x40, 0x08, 0x80, //# .# $ $# $ ## -0x81, 0x11, 0x80, 0x84, 0x80, 0x00, 0x40, 0x08, 0x00, //#...# #$# $ # -0x81, 0x80, 0x80, 0x40, 0x00, 0x40, 0x00, 0x08, 0x00, //#.# # $ $ # -0x81, 0x00, 0x84, 0x88, 0x84, 0x88, 0x88, 0x48, 0x00, //#. #$###$####$# -0x88, 0x00, 0x80, 0x00, 0x40, 0x40, 0x00, 0x08, 0x00, //## # $ $ # -0x08, 0x00, 0x80, 0x04, 0x24, 0x00, 0x80, 0x08, 0x00, // # # $@$ # # -0x08, 0x00, 0x80, 0x88, 0x88, 0x04, 0x00, 0x48, 0x00, // # # #### $ $# -0x08, 0x00, 0x80, 0x00, 0x08, 0x88, 0x00, 0x08, 0x00, // # # ### # -0x08, 0x00, 0x80, 0x44, 0x08, 0x08, 0x88, 0x88, 0x00, // # # $$ # ##### -0x08, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // # # # -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ######### -//Level: 227 -0x0F, 0x0E,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x00, 0x08, 0x11, 0x11, 0x11, 0x80, //# #......# -0x80, 0x44, 0x08, 0x04, 0x18, 0x11, 0x11, 0x80, //# $$ # $.#....# -0x80, 0x00, 0x80, 0x48, 0x20, 0x81, 0x11, 0x80, //# # $#@ #...# -0x80, 0x48, 0x04, 0x08, 0x04, 0x08, 0x11, 0x80, //# $# $ # $ #..# -0x80, 0x00, 0x40, 0x08, 0x44, 0x00, 0x11, 0x80, //# $ #$$ ..# -0x80, 0x40, 0x84, 0x08, 0x00, 0x81, 0x41, 0x80, //# $ #$ # #.$.# -0x80, 0x08, 0x00, 0x40, 0x40, 0x08, 0x11, 0x80, //# # $ $ #..# -0x80, 0x80, 0x40, 0x08, 0x00, 0x00, 0x80, 0x80, //# # $ # # # -0x80, 0x00, 0x08, 0x08, 0x48, 0x00, 0x44, 0x80, //# # #$# $$# -0x80, 0x00, 0x80, 0x48, 0x00, 0x80, 0x00, 0x80, //# # $# # # -0x80, 0x08, 0x00, 0x04, 0x40, 0x08, 0x00, 0x80, //# # $$ # # -0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, //# # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 228 -0x0B, 0x0A,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x08, 0x88, 0x00, 0x08, 0x88, 0x00, // ### ### -0x88, 0x02, 0x04, 0x04, 0x08, 0x00, //## @ $ $ # -0x80, 0x08, 0x80, 0x88, 0x08, 0x80, //# ## ## ## -0x80, 0x41, 0x81, 0x40, 0x00, 0x80, //# $.#.$ # -0x80, 0x81, 0x85, 0x80, 0x00, 0x80, //# #.#*# # -0x80, 0x41, 0x11, 0x00, 0x88, 0x80, //# $... ### -0x88, 0x84, 0x80, 0x88, 0x80, 0x00, //###$# ### -0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x88, 0x88, 0x80, 0x00, 0x00, // ##### -//Level: 229 -0x0F, 0x0F,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -0x80, 0x08, 0x88, 0x80, 0x08, 0x88, 0x88, 0x00, //# #### ##### -0x80, 0x40, 0x00, 0x88, 0x88, 0x00, 0x08, 0x00, //# $ #### # -0x80, 0x40, 0x00, 0x08, 0x80, 0x00, 0x08, 0x00, //# $ ## # -0x80, 0x88, 0x84, 0x04, 0x00, 0x40, 0x08, 0x80, //# ###$ $ $ ## -0x80, 0x80, 0x40, 0x04, 0x08, 0x80, 0x00, 0x80, //# # $ $ ## # -0x80, 0x04, 0x08, 0x44, 0x80, 0x00, 0x80, 0x80, //# $ #$$# # # -0x88, 0x00, 0x08, 0x00, 0x84, 0x00, 0x00, 0x80, //## # #$ # -0x08, 0x80, 0x08, 0x80, 0x04, 0x08, 0x08, 0x80, // ## ## $ # ## -0x88, 0x88, 0x18, 0x88, 0x00, 0x48, 0x08, 0x00, //####.### $# # -0x80, 0x08, 0x18, 0x11, 0x08, 0x00, 0x08, 0x00, //# #.#.. # # -0x80, 0x08, 0x11, 0x11, 0x02, 0x08, 0x88, 0x00, //# #.... @ ### -0x80, 0x40, 0x11, 0x11, 0x80, 0x88, 0x00, 0x00, //# $ ....# ## -0x80, 0x00, 0x88, 0x11, 0x00, 0x80, 0x00, 0x00, //# ##.. # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //########### -//Level: 230 -0x09, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x88, 0x88, 0x00, 0x28, 0x80, //#### @## -0x80, 0x40, 0x40, 0x00, 0x80, //# $ $ # -0x80, 0x81, 0x51, 0x80, 0x80, //# #.*.# # -0x80, 0x81, 0x51, 0x80, 0x80, //# #.*.# # -0x80, 0x00, 0x40, 0x40, 0x80, //# $ $ # -0x88, 0x00, 0x08, 0x88, 0x80, //## #### -0x08, 0x88, 0x88, 0x00, 0x00, // ##### -//Level: 231 -0x0A, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x00, // ###### -0x88, 0x80, 0x00, 0x18, 0x00, //### .# -0x80, 0x04, 0x18, 0x88, 0x88, //# $.##### -0x80, 0x44, 0x18, 0x20, 0x08, //# $$.#@ # -0x80, 0x00, 0x88, 0x44, 0x08, //# ##$$ # -0x80, 0x01, 0x41, 0x00, 0x08, //# .$. # -0x88, 0x84, 0x08, 0x88, 0x18, //###$ ###.# -0x00, 0x81, 0x08, 0x08, 0x88, // #. # ### -0x00, 0x88, 0x88, 0x00, 0x00, // #### -//Level: 232 -0x08, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x80, // ###### -0x88, 0x21, 0x00, 0x80, //##@. # -0x80, 0x44, 0x50, 0x80, //# $$* # -0x80, 0x08, 0x00, 0x88, //# # ## -0x80, 0x08, 0x00, 0x18, //# # .# -0x88, 0x88, 0x08, 0x08, //#### # # -0x00, 0x08, 0x00, 0x08, // # # -0x00, 0x08, 0x88, 0x88, // ##### -//Level: 233 -0x13, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -0x00, 0x00, 0x08, 0x88, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, // #### # # -0x00, 0x08, 0x88, 0x02, 0x88, 0x84, 0x08, 0x00, 0x00, 0x00, // ### @###$ # -0x00, 0x88, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, // ## $ # -0x08, 0x80, 0x04, 0x04, 0x48, 0x80, 0x88, 0x00, 0x00, 0x00, // ## $ $$## ## -0x08, 0x00, 0x84, 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, // # #$## # -0x08, 0x08, 0x04, 0x04, 0x40, 0x80, 0x88, 0x80, 0x00, 0x00, // # # $ $$ # ### -0x08, 0x00, 0x04, 0x08, 0x00, 0x80, 0x40, 0x88, 0x88, 0x80, // # $ # # $ ##### -0x88, 0x88, 0x00, 0x00, 0x80, 0x04, 0x40, 0x80, 0x00, 0x80, //#### # $$ # # -0x88, 0x88, 0x08, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, //#### ## $ # -0x81, 0x00, 0x00, 0x88, 0x80, 0x08, 0x88, 0x88, 0x88, 0x80, //#. ### ######## -0x81, 0x10, 0x11, 0x80, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //#.. ..# #### -0x81, 0x11, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#...#.# -0x81, 0x11, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#.....# -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //####### -//Level: 234 -0x12, 0x0B,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x88, 0x00, 0x00, // ######### ## -0x88, 0x00, 0x40, 0x00, 0x00, 0x04, 0x08, 0x88, 0x88, //## $ $ ##### -0x80, 0x00, 0x88, 0x08, 0x80, 0x00, 0x88, 0x11, 0x18, //# ## ## ##...# -0x80, 0x84, 0x40, 0x40, 0x44, 0x84, 0x88, 0x11, 0x18, //# #$$ $ $$#$##...# -0x80, 0x80, 0x00, 0x20, 0x00, 0x80, 0x00, 0x11, 0x18, //# # @ # ...# -0x80, 0x04, 0x80, 0x88, 0x84, 0x40, 0x00, 0x11, 0x18, //# $# ###$$ ...# -0x80, 0x40, 0x04, 0x40, 0x04, 0x08, 0x81, 0x11, 0x18, //# $ $$ $ ##....# -0x88, 0x84, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, //###$ ####### -0x00, 0x80, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // # ####### -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 235 -0x10, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################ -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x00, 0x08, //#....# # -0x81, 0x11, 0x18, 0x08, 0x08, 0x80, 0x08, 0x08, //#....# # ## # # -0x81, 0x11, 0x10, 0x04, 0x08, 0x00, 0x80, 0x08, //#.... $ # # # -0x88, 0x00, 0x80, 0x04, 0x00, 0x08, 0x00, 0x08, //## # $ # # -0x80, 0x00, 0x08, 0x44, 0x44, 0x80, 0x08, 0x08, //# #$$$$# # # -0x80, 0x88, 0x04, 0x00, 0x00, 0x40, 0x88, 0x08, //# ## $ $ ## # -0x80, 0x00, 0x04, 0x08, 0x80, 0x44, 0x40, 0x08, //# $ ## $$$ # -0x80, 0x84, 0x44, 0x08, 0x80, 0x40, 0x08, 0x08, //# #$$$ ## $ # # -0x80, 0x80, 0x04, 0x00, 0x00, 0x40, 0x00, 0x08, //# # $ $ # -0x80, 0x00, 0x88, 0x44, 0x44, 0x80, 0x08, 0x88, //# ##$$$$# ### -0x80, 0x08, 0x00, 0x00, 0x40, 0x08, 0x11, 0x18, //# # $ #...# -0x80, 0x00, 0x00, 0x80, 0x48, 0x00, 0x11, 0x18, //# # $# ...# -0x80, 0x88, 0x08, 0x08, 0x08, 0x00, 0x11, 0x18, //# ## # # # ...# -0x82, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x18, //#@ #...# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################ -//Level: 236 -0x14, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, // ################## -0x00, 0x80, 0x00, 0x00, 0x00, 0x88, 0x11, 0x18, 0x00, 0x08, // # ##...# # -0x00, 0x80, 0x84, 0x84, 0x80, 0x88, 0x81, 0x11, 0x04, 0x08, // # #$#$# ###... $ # -0x00, 0x80, 0x02, 0x40, 0x04, 0x00, 0x01, 0x18, 0x04, 0x08, // # @$ $ ..# $ # -0x88, 0x88, 0x84, 0x84, 0x80, 0x80, 0x01, 0x10, 0x08, 0x88, //#####$#$# # .. ### -0x80, 0x00, 0x40, 0x40, 0x80, 0x88, 0x88, 0x88, 0x08, 0x80, //# $ $ # ###### ## -0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, //# # # # # # -0x80, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x80, //# ####### # -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x88, 0x88, 0x80, //######### ##### -//Level: 237 -0x0E, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //######### -0x80, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, //# ## -0x80, 0x84, 0x84, 0x82, 0x08, 0x88, 0x88, //# #$#$#@ ##### -0x80, 0x40, 0x00, 0x04, 0x08, 0x00, 0x08, //# $ $ # # -0x88, 0x08, 0x88, 0x80, 0x88, 0x08, 0x08, //## #### ## # # -0x80, 0x08, 0x00, 0x80, 0x00, 0x00, 0x08, //# # # # -0x80, 0x48, 0x00, 0x40, 0x08, 0x88, 0x88, //# $# $ ##### -0x81, 0x14, 0x00, 0x88, 0x08, 0x00, 0x08, //#..$ ## # # -0x81, 0x18, 0x00, 0x80, 0x00, 0x44, 0x08, //#..# # $$ # -0x81, 0x18, 0x88, 0x80, 0x04, 0x00, 0x08, //#..#### $ # -0x85, 0x11, 0x18, 0x04, 0x04, 0x04, 0x08, //#*...# $ $ $ # -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x08, //#....# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -//Level: 238 -0x0F, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, //####### -0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //# # -0x80, 0x40, 0x44, 0x80, 0x00, 0x00, 0x00, 0x00, //# $ $$# -0x82, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, //#@ $ # -0x80, 0x40, 0x40, 0x88, 0x88, 0x80, 0x00, 0x00, //# $ $ ##### -0x80, 0x40, 0x05, 0x11, 0x11, 0x80, 0x00, 0x00, //# $ *....# -0x88, 0x88, 0x81, 0x88, 0x81, 0x80, 0x00, 0x00, //#####.###.# -0x00, 0x08, 0x81, 0x80, 0x81, 0x80, 0x00, 0x00, // ##.# #.# -0x00, 0x08, 0x01, 0x88, 0x81, 0x88, 0x88, 0x80, // # .###.##### -0x00, 0x08, 0x01, 0x11, 0x15, 0x00, 0x40, 0x80, // # ....* $ # -0x00, 0x08, 0x00, 0x08, 0x80, 0x40, 0x40, 0x80, // # ## $ $ # -0x00, 0x08, 0x88, 0x88, 0x80, 0x04, 0x00, 0x80, // ###### $ # -0x00, 0x00, 0x00, 0x00, 0x84, 0x40, 0x40, 0x80, // #$$ $ # -0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 239 -0x09, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x80, // ###### -0x88, 0x88, 0x10, 0x02, 0x80, //####. @# -0x80, 0x04, 0x44, 0x00, 0x80, //# $$$ # -0x81, 0x88, 0x18, 0x81, 0x80, //#.##.##.# -0x80, 0x00, 0x40, 0x00, 0x80, //# $ # -0x80, 0x04, 0x18, 0x08, 0x80, //# $.# ## -0x88, 0x80, 0x00, 0x08, 0x00, //### # -0x00, 0x88, 0x88, 0x88, 0x00, // ###### -//Level: 240 -0x0A, 0x08,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -0x08, 0x00, 0x82, 0x00, 0x88, // # #@ ## -0x88, 0x04, 0x88, 0x80, 0x08, //## $### # -0x80, 0x00, 0x50, 0x50, 0x08, //# * * # -0x80, 0x05, 0x05, 0x05, 0x08, //# * * * # -0x80, 0x10, 0x50, 0x50, 0x08, //# . * * # -0x88, 0x88, 0x00, 0x08, 0x88, //#### ### -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -//Level: 241 -0x06, 0x07,//Size x and y -0x88, 0x88, 0x00, //#### -0x82, 0x08, 0x88, //#@ ### -0x80, 0x44, 0x18, //# $$.# -0x80, 0x04, 0x18, //# $.# -0x80, 0x40, 0x18, //# $ .# -0x80, 0x80, 0x18, //# # .# -0x88, 0x88, 0x88, //###### -//Level: 242 -0x0C, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -0x88, 0x00, 0x00, 0x08, 0x80, 0x08, //## ## # -0x88, 0x00, 0x04, 0x00, 0x04, 0x08, //## $ $ # -0x88, 0x88, 0x08, 0x80, 0x44, 0x08, //#### ## $$ # -0x80, 0x00, 0x40, 0x80, 0x00, 0x08, //# $ # # -0x80, 0x44, 0x40, 0x80, 0x88, 0x88, //# $$$ # #### -0x80, 0x00, 0x80, 0x80, 0x40, 0x88, //# # # $ ## -0x80, 0x08, 0x00, 0x80, 0x04, 0x08, //# # # $ # -0x80, 0x48, 0x04, 0x80, 0x00, 0x08, //# $# $# # -0x80, 0x00, 0x11, 0x80, 0x88, 0x88, //# ..# #### -0x88, 0x88, 0x11, 0x04, 0x08, 0x28, //####.. $ #@# -0x81, 0x11, 0x11, 0x80, 0x48, 0x08, //#.....# $# # -0x88, 0x11, 0x11, 0x80, 0x04, 0x08, //##....# $ # -0x88, 0x81, 0x18, 0x80, 0x00, 0x08, //###..## # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############ -//Level: 243 -0x12, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######## -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, // #### ###### -0x00, 0x80, 0x00, 0x08, 0x80, 0x40, 0x40, 0x00, 0x28, // # ## $ $ @# -0x00, 0x80, 0x88, 0x08, 0x84, 0x84, 0x04, 0x04, 0x88, // # ## ##$#$ $ $## -0x88, 0x80, 0x11, 0x11, 0x11, 0x80, 0x04, 0x40, 0x88, //### ......# $$ ## -0x80, 0x00, 0x11, 0x11, 0x11, 0x80, 0x08, 0x00, 0x08, //# ......# # # -0x80, 0x80, 0x11, 0x11, 0x11, 0x84, 0x00, 0x40, 0x08, //# # ......#$ $ # -0x80, 0x84, 0x11, 0x11, 0x11, 0x04, 0x48, 0x04, 0x08, //# #$...... $$# $ # -0x80, 0x00, 0x88, 0x80, 0x88, 0x84, 0x00, 0x40, 0x88, //# ### ###$ $ ## -0x88, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x80, //### $ $ $ $ # -0x00, 0x80, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x80, // # $ $ $ $ # -0x00, 0x88, 0x88, 0x88, 0x00, 0x08, 0x88, 0x88, 0x80, // ###### ###### -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 244 -0x0E, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, //########## -0x80, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, //# #### -0x80, 0x88, 0x88, 0x88, 0x08, 0x00, 0x88, //# ###### # ## -0x80, 0x80, 0x40, 0x40, 0x40, 0x04, 0x08, //# # $ $ $ $ # -0x80, 0x00, 0x00, 0x00, 0x84, 0x00, 0x08, //# #$ # -0x88, 0x84, 0x00, 0x44, 0x80, 0x08, 0x88, //###$ $$# ### -0x00, 0x80, 0x08, 0x80, 0x80, 0x48, 0x80, // # ## # $## -0x00, 0x88, 0x48, 0x00, 0x04, 0x02, 0x80, // ##$# $ @# -0x00, 0x08, 0x00, 0x40, 0x40, 0x88, 0x80, // # $ $ ### -0x00, 0x08, 0x08, 0x00, 0x04, 0x00, 0x80, // # # $ # -0x00, 0x08, 0x08, 0x80, 0x00, 0x80, 0x80, // # ## # # -0x00, 0x88, 0x00, 0x88, 0x88, 0x80, 0x80, // ## ##### # -0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, // # # -0x00, 0x81, 0x11, 0x11, 0x11, 0x88, 0x80, // #.......### -0x00, 0x81, 0x11, 0x11, 0x11, 0x80, 0x00, // #.......# -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ######### -//Level: 245 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x00, 0x12, 0x88, //## .@## -0x88, 0x00, 0x04, 0x18, //## $.# -0x88, 0x88, 0x58, 0x08, //####*# # -0x88, 0x00, 0x00, 0x08, //## # -0x80, 0x04, 0x00, 0x88, //# $ ## -0x80, 0x00, 0x88, 0x88, //# #### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 246 -0x0F, 0x10,//Size x and y -0x08, 0x88, 0x80, 0x88, 0x88, 0x80, 0x00, 0x00, // #### ##### -0x08, 0x00, 0x88, 0x80, 0x00, 0x88, 0x00, 0x00, // # ### ## -0x08, 0x04, 0x00, 0x80, 0x80, 0x08, 0x80, 0x00, // # $ # # ## -0x08, 0x04, 0x80, 0x80, 0x88, 0x00, 0x88, 0x00, // # $# # ## ## -0x08, 0x00, 0x04, 0x00, 0x80, 0x40, 0x08, 0x80, // # $ # $ ## -0x08, 0x04, 0x00, 0x40, 0x84, 0x04, 0x00, 0x80, // # $ $ #$ $ # -0x88, 0x80, 0x80, 0x88, 0x80, 0x80, 0x40, 0x80, //### # ### # $ # -0x80, 0x00, 0x00, 0x81, 0x11, 0x18, 0x00, 0x80, //# #....# # -0x80, 0x80, 0x44, 0x01, 0x11, 0x18, 0x80, 0x80, //# # $$ ....## # -0x80, 0x80, 0x00, 0x81, 0x11, 0x10, 0x00, 0x80, //# # #.... # -0x80, 0x08, 0x84, 0x81, 0x11, 0x18, 0x28, 0x80, //# ##$#....#@## -0x80, 0x40, 0x40, 0x00, 0x80, 0x88, 0x88, 0x00, //# $ $ # #### -0x88, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, //## # $ # -0x08, 0x88, 0x88, 0x80, 0x40, 0x80, 0x00, 0x00, // ###### $ # -0x00, 0x00, 0x00, 0x88, 0x00, 0x80, 0x00, 0x00, // ## # -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 247 -0x0E, 0x0F,//Size x and y -0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ##### -0x88, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, //## ## -0x80, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, //# ##### -0x80, 0x80, 0x00, 0x04, 0x00, 0x80, 0x00, //# # $ # -0x80, 0x08, 0x04, 0x08, 0x80, 0x80, 0x00, //# # $ ## # -0x88, 0x04, 0x48, 0x11, 0x10, 0x80, 0x00, //## $$#... # -0x08, 0x88, 0x00, 0x11, 0x10, 0x80, 0x00, // ### ... # -0x00, 0x08, 0x88, 0x81, 0x18, 0x88, 0x88, // ####..##### -0x88, 0x88, 0x88, 0x11, 0x18, 0x80, 0x08, //######...## # -0x80, 0x08, 0x88, 0x04, 0x20, 0x84, 0x08, //# ### $@ #$ # -0x80, 0x40, 0x80, 0x00, 0x80, 0x00, 0x08, //# $ # # # -0x80, 0x04, 0x00, 0x84, 0x00, 0x40, 0x88, //# $ #$ $ ## -0x88, 0x00, 0x00, 0x40, 0x08, 0x88, 0x80, //## $ #### -0x08, 0x88, 0x88, 0x00, 0x88, 0x00, 0x00, // ##### ## -0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 248 -0x08, 0x08,//Size x and y -0x00, 0x88, 0x88, 0x88, // ###### -0x88, 0x80, 0x10, 0x08, //### . # -0x80, 0x42, 0x81, 0x08, //# $@#. # -0x80, 0x04, 0x80, 0x88, //# $# ## -0x80, 0x05, 0x00, 0x80, //# * # -0x88, 0x00, 0x80, 0x80, //## # # -0x08, 0x80, 0x00, 0x80, // ## # -0x00, 0x88, 0x88, 0x80, // ##### -//Level: 249 -0x13, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ########### -0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, // # # # -0x88, 0x88, 0x80, 0x08, 0x00, 0x00, 0x04, 0x04, 0x08, 0x00, //##### # $ $ # -0x80, 0x00, 0x88, 0x88, 0x80, 0x48, 0x80, 0x80, 0x88, 0x00, //# ##### $## # ## -0x80, 0x40, 0x88, 0x00, 0x08, 0x08, 0x80, 0x40, 0x08, 0x00, //# $ ## # ## $ # -0x80, 0x40, 0x02, 0x44, 0x08, 0x08, 0x84, 0x44, 0x08, 0x00, //# $ @$$ # ##$$$ # -0x88, 0x08, 0x88, 0x00, 0x08, 0x08, 0x80, 0x00, 0x08, 0x00, //## ### # ## # -0x88, 0x08, 0x00, 0x08, 0x88, 0x08, 0x88, 0x88, 0x48, 0x00, //## # ### #####$# -0x88, 0x08, 0x00, 0x00, 0x04, 0x00, 0x81, 0x11, 0x18, 0x00, //## # $ #....# -0x80, 0x08, 0x88, 0x08, 0x80, 0x40, 0x81, 0x11, 0x18, 0x80, //# ### ## $ #....## -0x80, 0x40, 0x00, 0x40, 0x80, 0x00, 0x81, 0x14, 0x10, 0x80, //# $ $ # #..$. # -0x80, 0x08, 0x80, 0x40, 0x80, 0x08, 0x81, 0x11, 0x10, 0x80, //# ## $ # ##.... # -0x88, 0x88, 0x80, 0x00, 0x88, 0x88, 0x88, 0x11, 0x18, 0x80, //##### ######...## -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x08, 0x88, 0x88, 0x00, // ##### ##### -//Level: 250 -0x13, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, //############ ###### -0x80, 0x00, 0x80, 0x00, 0x08, 0x08, 0x88, 0x11, 0x11, 0x80, //# # # ###....# -0x80, 0x00, 0x44, 0x80, 0x00, 0x20, 0x01, 0x11, 0x11, 0x80, //# $$# @ .....# -0x80, 0x00, 0x80, 0x88, 0x80, 0x00, 0x80, 0x11, 0x11, 0x80, //# # ### # ....# -0x88, 0x08, 0x80, 0x88, 0x80, 0x08, 0x00, 0x11, 0x11, 0x80, //## ## ### # ....# -0x08, 0x04, 0x04, 0x00, 0x00, 0x08, 0x08, 0x08, 0x88, 0x80, // # $ $ # # #### -0x08, 0x00, 0x40, 0x48, 0x80, 0x08, 0x00, 0x00, 0x00, 0x80, // # $ $## # # -0x88, 0x88, 0x08, 0x00, 0x88, 0x88, 0x08, 0x08, 0x80, 0x80, //#### # #### # ## # -0x80, 0x08, 0x08, 0x40, 0x00, 0x88, 0x08, 0x00, 0x00, 0x80, //# # #$ ## # # -0x80, 0x40, 0x04, 0x00, 0x80, 0x88, 0x08, 0x00, 0x08, 0x80, //# $ $ # ## # ## -0x80, 0x80, 0x40, 0x40, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, //# # $ $ # # # -0x80, 0x04, 0x08, 0x80, 0x88, 0x08, 0x08, 0x88, 0x88, 0x00, //# $ ## ## # ##### -0x80, 0x44, 0x00, 0x00, 0x04, 0x40, 0x08, 0x00, 0x00, 0x00, //# $$ $$ # -0x88, 0x08, 0x80, 0x88, 0x80, 0x40, 0x08, 0x00, 0x00, 0x00, //## ## ### $ # -0x08, 0x00, 0x00, 0x80, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, // # # # # -0x08, 0x88, 0x88, 0x80, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### ###### -//Level: 251 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x08, 0x00, 0x88, 0x00, 0x00, 0x80, 0x00, 0x28, 0x88, //# # ## # @### -0x88, 0x00, 0x00, 0x40, 0x00, 0x08, 0x04, 0x88, 0x80, 0x08, //## $ # $### # -0x88, 0x48, 0x04, 0x08, 0x84, 0x80, 0x40, 0x40, 0x00, 0x08, //##$# $ ##$# $ $ # -0x80, 0x00, 0x48, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x88, //# $# $ ### -0x80, 0x88, 0x00, 0x04, 0x08, 0x88, 0x00, 0x81, 0x11, 0x18, //# ## $ ### #....# -0x80, 0x80, 0x48, 0x08, 0x08, 0x08, 0x08, 0x11, 0x11, 0x88, //# # $# # # # #....## -0x80, 0x00, 0x04, 0x04, 0x08, 0x00, 0x81, 0x11, 0x18, 0x88, //# $ $ # #....### -0x88, 0x40, 0x88, 0x80, 0x04, 0x08, 0x11, 0x11, 0x88, 0x88, //##$ ### $ #....#### -0x80, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, //# # $ ###### -0x80, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x88, 0x88, 0x88, //# # # ###### -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 252 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x08, 0x00, 0x00, 0x08, 0x00, 0x88, 0x00, 0x00, 0x88, //# # # ## ## -0x80, 0x48, 0x00, 0x04, 0x08, 0x00, 0x00, 0x08, 0x80, 0x08, //# $# $ # ## # -0x80, 0x40, 0x04, 0x00, 0x81, 0x18, 0x00, 0x00, 0x04, 0x08, //# $ $ #..# $ # -0x80, 0x40, 0x40, 0x08, 0x11, 0x11, 0x80, 0x00, 0x80, 0x88, //# $ $ #....# # ## -0x80, 0x48, 0x00, 0x81, 0x11, 0x11, 0x18, 0x88, 0x04, 0x08, //# $# #......### $ # -0x80, 0x00, 0x80, 0x08, 0x11, 0x11, 0x80, 0x08, 0x40, 0x08, //# # #....# #$ # -0x80, 0x40, 0x08, 0x88, 0x81, 0x18, 0x00, 0x08, 0x00, 0x08, //# $ ####..# # # -0x88, 0x04, 0x00, 0x08, 0x80, 0x80, 0x80, 0x40, 0x04, 0x88, //## $ ## # # $ $## -0x88, 0x80, 0x40, 0x00, 0x04, 0x82, 0x40, 0x48, 0x00, 0x08, //### $ $#@$ $# # -0x88, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, //#### # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 253 -0x0F, 0x10,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############## -0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, // # # # -0x88, 0x08, 0x80, 0x00, 0x08, 0x08, 0x80, 0x80, //## ## # ## # -0x81, 0x11, 0x11, 0x01, 0x11, 0x11, 0x80, 0x80, //#..... .....# # -0x81, 0x10, 0x18, 0x08, 0x10, 0x11, 0x80, 0x80, //#.. .# #. ..# # -0x88, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, 0x80, //###### ###### # -0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, // # # -0x08, 0x88, 0x88, 0x04, 0x88, 0x88, 0x80, 0x80, // ##### $##### # -0x08, 0x00, 0x00, 0x82, 0x80, 0x00, 0x80, 0x80, // # #@# # # -0x88, 0x40, 0x40, 0x84, 0x80, 0x00, 0x80, 0x80, //##$ $ #$# # # -0x80, 0x40, 0x04, 0x04, 0x00, 0x44, 0x40, 0x80, //# $ $ $ $$$ # -0x80, 0x04, 0x00, 0x84, 0x80, 0x00, 0x80, 0x80, //# $ #$# # # -0x80, 0x00, 0x44, 0x80, 0x84, 0x40, 0x80, 0x80, //# $$# #$$ # # -0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x80, 0x80, //#### ### # -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x80, // ###### # -0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 254 -0x0F, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //########### -0x80, 0x00, 0x88, 0x11, 0x11, 0x88, 0x88, 0x80, //# ##....##### -0x80, 0x04, 0x00, 0x11, 0x18, 0x80, 0x00, 0x80, //# $ ...## # -0x88, 0x84, 0x40, 0x11, 0x88, 0x80, 0x80, 0x80, //###$$ ..### # # -0x00, 0x80, 0x88, 0x11, 0x18, 0x84, 0x00, 0x80, // # ##...##$ # -0x00, 0x80, 0x80, 0x00, 0x88, 0x80, 0x08, 0x80, // # # ### ## -0x08, 0x80, 0x80, 0x40, 0x04, 0x04, 0x08, 0x00, // ## # $ $ $ # -0x08, 0x00, 0x80, 0x80, 0x80, 0x00, 0x08, 0x00, // # # # # # -0x08, 0x00, 0x00, 0x80, 0x40, 0x84, 0x08, 0x00, // # # $ #$ # -0x08, 0x04, 0x40, 0x80, 0x48, 0x00, 0x88, 0x00, // # $$ # $# ## -0x08, 0x88, 0x08, 0x80, 0x08, 0x08, 0x80, 0x00, // ### ## # ## -0x00, 0x08, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, // #@ # -0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ######### -//Level: 255 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x28, //# # # # #@# -0x80, 0x40, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x08, //# $ $ $ # # -0x88, 0x08, 0x88, 0x11, 0x88, 0x08, 0x88, 0x00, 0x00, 0x08, //## ###..## ### # -0x80, 0x00, 0x81, 0x11, 0x18, 0x48, 0x00, 0x48, 0x88, 0x08, //# #....#$# $### # -0x80, 0x40, 0x81, 0x11, 0x18, 0x00, 0x40, 0x04, 0x04, 0x08, //# $ #....# $ $ $ # -0x80, 0x00, 0x81, 0x11, 0x18, 0x08, 0x08, 0x04, 0x04, 0x08, //# #....# # # $ $ # -0x80, 0x00, 0x88, 0x11, 0x88, 0x00, 0x08, 0x48, 0x00, 0x08, //# ##..## #$# # -0x88, 0x48, 0x80, 0x00, 0x08, 0x80, 0x08, 0x00, 0x84, 0x88, //##$## ## # #$## -0x80, 0x00, 0x40, 0x04, 0x00, 0x00, 0x08, 0x00, 0x80, 0x08, //# $ $ # # # -0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x08, //# # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 256 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, //# # # # -0x80, 0x00, 0x00, 0x00, 0x40, 0x08, 0x80, 0x88, 0x80, 0x88, //# $ ## ### ## -0x88, 0x88, 0x80, 0x08, 0x80, 0x00, 0x40, 0x04, 0x00, 0x08, //##### ## $ $ # -0x88, 0x11, 0x88, 0x00, 0x80, 0x80, 0x40, 0x80, 0x80, 0x08, //##..## # # $ # # # -0x81, 0x11, 0x10, 0x04, 0x00, 0x00, 0x08, 0x84, 0x80, 0x88, //#.... $ ##$# ## -0x81, 0x11, 0x10, 0x04, 0x88, 0x88, 0x80, 0x00, 0x84, 0x88, //#.... $##### #$## -0x88, 0x11, 0x80, 0x80, 0x08, 0x00, 0x08, 0x00, 0x40, 0x08, //##..# # # # $ # -0x88, 0x81, 0x80, 0x80, 0x04, 0x00, 0x04, 0x00, 0x80, 0x28, //###.# # $ $ # @# -0x88, 0x00, 0x40, 0x04, 0x08, 0x00, 0x08, 0x00, 0x88, 0x88, //## $ $ # # #### -0x88, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, //## ########### -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 257 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x08, 0x00, 0x80, 0x80, 0x00, 0x08, 0x00, 0x80, 0x08, //# # # # # # # -0x80, 0x00, 0x40, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, //# $ $ $ # -0x88, 0x08, 0x00, 0x84, 0x88, 0x84, 0x88, 0x00, 0x88, 0x08, //## # #$###$## ## # -0x80, 0x00, 0x40, 0x00, 0x00, 0x40, 0x08, 0x00, 0x40, 0x08, //# $ $ # $ # -0x80, 0x88, 0x84, 0x88, 0x48, 0x00, 0x08, 0x04, 0x00, 0x08, //# ###$##$# # $ # -0x80, 0x80, 0x00, 0x40, 0x40, 0x08, 0x88, 0x88, 0x80, 0x48, //# # $ $ ###### $# -0x80, 0x40, 0x04, 0x40, 0x40, 0x08, 0x28, 0x18, 0x11, 0x18, //# $ $$ $ #@#.#...# -0x80, 0x80, 0x00, 0x00, 0x80, 0x08, 0x08, 0x18, 0x11, 0x18, //# # # # #.#...# -0x80, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x11, 0x11, 0x18, //# ########## #.....# -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x11, 0x18, //# #.....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 258 -0x14, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x20, 0x80, 0x00, 0x00, // ##########@ # -0x88, 0x80, 0x00, 0x80, 0x00, 0x88, 0x40, 0x88, 0x88, 0x88, //### # ##$ ###### -0x80, 0x04, 0x40, 0x80, 0x00, 0x00, 0x40, 0x80, 0x01, 0x18, //# $$ # $ # ..# -0x80, 0x80, 0x00, 0x80, 0x00, 0x88, 0x40, 0x00, 0x01, 0x18, //# # # ##$ ..# -0x80, 0x80, 0x00, 0x80, 0x44, 0x08, 0x00, 0x80, 0x01, 0x18, //# # # $$ # # ..# -0x80, 0x80, 0x88, 0x88, 0x08, 0x08, 0x88, 0x80, 0x11, 0x18, //# # #### # #### ...# -0x80, 0x84, 0x08, 0x88, 0x08, 0x00, 0x80, 0x88, 0x88, 0x88, //# #$ ### # # ###### -0x80, 0x80, 0x08, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, //# # # # # -0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, //# $ # # -0x80, 0x80, 0x08, 0x88, 0x08, 0x80, 0x80, 0x00, 0x00, 0x00, //# # ### ## # -0x80, 0x88, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, //# #### # -0x80, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //# ###### -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //######## -//Level: 259 -0x0F, 0x0C,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ####### -0x00, 0x08, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, // # ###### -0x00, 0x08, 0x00, 0x48, 0x00, 0x00, 0x00, 0x80, // # $# # -0x88, 0x88, 0x40, 0x04, 0x00, 0x84, 0x40, 0x80, //####$ $ #$$ # -0x80, 0x00, 0x04, 0x40, 0x40, 0x00, 0x40, 0x80, //# $$ $ $ # -0x80, 0x48, 0x00, 0x88, 0x08, 0x88, 0x08, 0x80, //# $# ## ### ## -0x80, 0x28, 0x84, 0x04, 0x00, 0x40, 0x08, 0x00, //# @##$ $ $ # -0x80, 0x00, 0x00, 0x40, 0x04, 0x04, 0x08, 0x00, //# $ $ $ # -0x88, 0x88, 0x88, 0x88, 0x88, 0x44, 0x08, 0x00, //##########$$ # -0x00, 0x81, 0x11, 0x11, 0x11, 0x11, 0x88, 0x00, // #.........## -0x00, 0x81, 0x11, 0x11, 0x11, 0x11, 0x80, 0x00, // #.........# -0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ########### -//Level: 260 -0x10, 0x0E,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############## -0x08, 0x20, 0x05, 0x05, 0x05, 0x08, 0x00, 0x88, // #@ * * * # ## -0x08, 0x48, 0x00, 0x50, 0x50, 0x08, 0x00, 0x08, // #$# * * # # -0x08, 0x08, 0x05, 0x05, 0x05, 0x00, 0x00, 0x08, // # # * * * # -0x08, 0x08, 0x00, 0x50, 0x50, 0x08, 0x80, 0x88, // # # * * ## ## -0x08, 0x08, 0x05, 0x05, 0x05, 0x08, 0x80, 0x80, // # # * * * ## # -0x08, 0x08, 0x00, 0x50, 0x50, 0x08, 0x80, 0x80, // # # * * ## # -0x08, 0x08, 0x05, 0x05, 0x05, 0x08, 0x80, 0x80, // # # * * * ## # -0x08, 0x08, 0x00, 0x50, 0x50, 0x08, 0x80, 0x80, // # # * * ## # -0x08, 0x08, 0x05, 0x01, 0x05, 0x08, 0x80, 0x88, // # # * . * ## ## -0x88, 0x08, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, //## ########## # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //# # -0x80, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, //# ######### # -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x88, 0x88, //##### #### -//Level: 261 -0x08, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x81, 0x11, 0x11, 0x08, //#..... # -0x84, 0x08, 0x84, 0x08, //#$ ##$ # -0x80, 0x48, 0x80, 0x08, //# $## # -0x80, 0x04, 0x24, 0x08, //# $@$ # -0x80, 0x00, 0x00, 0x88, //# ## -0x88, 0x88, 0x88, 0x80, //####### -//Level: 262 -0x13, 0x0D,//Size x and y -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //##### -0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //# ## -0x80, 0x40, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, //# $ ######### -0x88, 0x08, 0x08, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, //## # # ###### -0x88, 0x08, 0x00, 0x04, 0x84, 0x82, 0x00, 0x80, 0x00, 0x80, //## # $#$#@ # # -0x80, 0x08, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x40, 0x80, //# # $ # $ # -0x80, 0x08, 0x88, 0x08, 0x88, 0x88, 0x88, 0x88, 0x08, 0x80, //# ### ######### ## -0x80, 0x08, 0x80, 0x11, 0x51, 0x11, 0x11, 0x08, 0x08, 0x80, //# ## ..*..... # ## -0x88, 0x08, 0x80, 0x51, 0x51, 0x15, 0x15, 0x08, 0x08, 0x80, //## ## *.*..*.* # ## -0x80, 0x48, 0x88, 0x88, 0x88, 0x88, 0x80, 0x88, 0x40, 0x80, //# $########## ##$ # -0x80, 0x04, 0x00, 0x04, 0x00, 0x40, 0x00, 0x04, 0x00, 0x80, //# $ $ $ $ # -0x80, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x80, //# # # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################### -//Level: 263 -0x13, 0x10,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x80, // ###### -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x11, 0x11, 0x80, // #############....# -0x88, 0x00, 0x08, 0x80, 0x00, 0x00, 0x88, 0x11, 0x11, 0x80, //## ## ##....# -0x80, 0x04, 0x48, 0x80, 0x04, 0x02, 0x88, 0x11, 0x11, 0x80, //# $$## $ @##....# -0x80, 0x00, 0x00, 0x04, 0x40, 0x48, 0x00, 0x11, 0x11, 0x80, //# $$ $# ....# -0x80, 0x04, 0x08, 0x80, 0x44, 0x08, 0x08, 0x01, 0x11, 0x80, //# $ ## $$ # # ...# -0x80, 0x04, 0x08, 0x80, 0x40, 0x08, 0x00, 0x11, 0x11, 0x80, //# $ ## $ # ....# -0x88, 0x08, 0x88, 0x88, 0x08, 0x88, 0x08, 0x81, 0x88, 0x80, //## ##### ### ##.### -0x88, 0x00, 0x04, 0x00, 0x40, 0x88, 0x00, 0x01, 0x00, 0x80, //## $ $ ## . # -0x80, 0x48, 0x88, 0x00, 0x80, 0x88, 0x88, 0x80, 0x88, 0x80, //# $### # ##### ### -0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //# $ # # -0x80, 0x04, 0x08, 0x40, 0x40, 0x48, 0x88, 0x00, 0x80, 0x00, //# $ #$ $ $### # -0x80, 0x44, 0x48, 0x04, 0x00, 0x08, 0x08, 0x88, 0x80, 0x00, //# $$$# $ # #### -0x80, 0x00, 0x08, 0x00, 0x44, 0x08, 0x00, 0x00, 0x00, 0x00, //# # $$ # -0x88, 0x88, 0x88, 0x00, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, //###### ### -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ##### -//Level: 264 -0x10, 0x0E,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, // ####### ###### -0x08, 0x00, 0x00, 0x08, 0x88, 0x00, 0x00, 0x80, // # ### # -0x08, 0x00, 0x88, 0x08, 0x00, 0x44, 0x80, 0x88, // # ## # $$# ## -0x08, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x08, // #$ $ $ $ $ # -0x08, 0x04, 0x04, 0x08, 0x00, 0x08, 0x00, 0x08, // # $ $ # # # -0x88, 0x00, 0x44, 0x08, 0x88, 0x88, 0x81, 0x88, //## $$ ######.## -0x80, 0x40, 0x00, 0x08, 0x00, 0x08, 0x11, 0x18, //# $ # #...# -0x82, 0x84, 0x40, 0x88, 0x00, 0x08, 0x11, 0x18, //#@#$$ ## #...# -0x80, 0x04, 0x00, 0x08, 0x00, 0x08, 0x11, 0x18, //# $ # #...# -0x88, 0x00, 0x84, 0x08, 0x00, 0x08, 0x11, 0x18, //## #$ # #...# -0x08, 0x44, 0x80, 0x08, 0x88, 0x88, 0x11, 0x18, // #$$# #####...# -0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x11, 0x18, // # $ ...# -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x08, // ########### # -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, // ##### -//Level: 265 -0x14, 0x0E,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x88, 0x88, 0x00, 0x00, // #### #### -0x00, 0x00, 0x08, 0x88, 0x00, 0x80, 0x80, 0x08, 0x00, 0x00, // ### # # # -0x00, 0x88, 0x88, 0x00, 0x40, 0x88, 0x80, 0x48, 0x00, 0x00, // #### $ ### $# -0x00, 0x80, 0x40, 0x00, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, // # $ $ # -0x88, 0x80, 0x08, 0x80, 0x40, 0x04, 0x00, 0x48, 0x00, 0x00, //### ## $ $ $# -0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x88, 0x08, 0x00, 0x00, //# # $ ## # -0x80, 0x84, 0x44, 0x48, 0x04, 0x40, 0x40, 0x08, 0x00, 0x00, //# #$$$$# $$ $ # -0x80, 0x00, 0x04, 0x04, 0x40, 0x88, 0x88, 0x08, 0x88, 0x88, //# $ $$ #### ##### -0x88, 0x88, 0x00, 0x00, 0x40, 0x28, 0x80, 0x11, 0x11, 0x18, //#### $ @## .....# -0x08, 0x00, 0x44, 0x88, 0x08, 0x88, 0x80, 0x11, 0x11, 0x88, // # $$## #### ....## -0x08, 0x04, 0x00, 0x81, 0x11, 0x18, 0x80, 0x11, 0x88, 0x80, // # $ #....## ..### -0x08, 0x08, 0x00, 0x41, 0x11, 0x18, 0x88, 0x88, 0x80, 0x00, // # # $....###### -0x08, 0x88, 0x80, 0x01, 0x11, 0x18, 0x00, 0x00, 0x00, 0x00, // #### ....# -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ######## -//Level: 266 -0x0F, 0x0E,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ###### -0x08, 0x88, 0x80, 0x00, 0x08, 0x88, 0x88, 0x80, // #### ###### -0x08, 0x00, 0x80, 0x40, 0x00, 0x08, 0x00, 0x80, // # # $ # # -0x08, 0x04, 0x00, 0x84, 0x40, 0x04, 0x40, 0x80, // # $ #$$ $$ # -0x08, 0x00, 0x48, 0x00, 0x81, 0x18, 0x10, 0x80, // # $# #..#. # -0x88, 0x40, 0x08, 0x08, 0x11, 0x15, 0x18, 0x80, //##$ # #...*.## -0x80, 0x40, 0x80, 0x40, 0x11, 0x88, 0x10, 0x80, //# $ # $ ..##. # -0x80, 0x84, 0x04, 0x08, 0x11, 0x11, 0x10, 0x80, //# #$ $ #..... # -0x80, 0x00, 0x08, 0x00, 0x80, 0x08, 0x88, 0x80, //# # # #### -0x80, 0x48, 0x00, 0x80, 0x00, 0x28, 0x80, 0x00, //# $# # @## -0x80, 0x00, 0x04, 0x80, 0x80, 0x08, 0x00, 0x00, //# $# # # -0x88, 0x88, 0x00, 0x40, 0x88, 0x88, 0x00, 0x00, //#### $ #### -0x00, 0x08, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, // # ### -0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 267 -0x0D, 0x0D,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -0x00, 0x00, 0x80, 0x28, 0x88, 0x00, 0x00, // # @### -0x00, 0x88, 0x80, 0x40, 0x08, 0x80, 0x00, // ### $ ## -0x08, 0x80, 0x04, 0x14, 0x00, 0x80, 0x00, // ## $.$ # -0x08, 0x00, 0x41, 0x51, 0x40, 0x88, 0x80, // # $.*.$ ### -0x88, 0x04, 0x15, 0x15, 0x14, 0x00, 0x80, //## $.*.*.$ # -0x80, 0x41, 0x51, 0x51, 0x51, 0x40, 0x80, //# $.*.*.*.$ # -0x80, 0x04, 0x15, 0x15, 0x14, 0x08, 0x80, //# $.*.*.$ ## -0x88, 0x80, 0x41, 0x51, 0x40, 0x08, 0x00, //### $.*.$ # -0x00, 0x80, 0x04, 0x14, 0x00, 0x88, 0x00, // # $.$ ## -0x00, 0x88, 0x00, 0x40, 0x88, 0x80, 0x00, // ## $ ### -0x00, 0x08, 0x88, 0x00, 0x80, 0x00, 0x00, // ### # -0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // #### -//Level: 268 -0x0D, 0x0B,//Size x and y -0x08, 0x88, 0x80, 0x08, 0x88, 0x88, 0x80, // #### ###### -0x08, 0x00, 0x88, 0x88, 0x00, 0x00, 0x80, // # #### # -0x88, 0x50, 0x00, 0x50, 0x55, 0x00, 0x80, //##* * ** # -0x80, 0x40, 0x50, 0x00, 0x05, 0x80, 0x80, //# $ * *# # -0x80, 0x10, 0x00, 0x88, 0x80, 0x00, 0x80, //# . ### # -0x88, 0x88, 0x88, 0x00, 0x08, 0x28, 0x80, //###### #@## -0x80, 0x50, 0x10, 0x50, 0x05, 0x50, 0x80, //# * . * ** # -0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, //# # # # -0x88, 0x50, 0x00, 0x50, 0x84, 0x80, 0x80, //##* * #$# # -0x08, 0x00, 0x88, 0x88, 0x80, 0x00, 0x80, // # ##### # -0x08, 0x88, 0x80, 0x00, 0x88, 0x88, 0x80, // #### ##### -//Level: 269 -0x09, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x00, 0x80, 0x00, 0x88, 0x00, // # ## -0x88, 0x84, 0x00, 0x08, 0x80, //###$ ## -0x80, 0x01, 0x41, 0x40, 0x80, //# .$.$ # -0x80, 0x81, 0x81, 0x80, 0x80, //# #.#.# # -0x80, 0x05, 0x45, 0x00, 0x80, //# *$* # -0x88, 0x80, 0x00, 0x88, 0x80, //### ### -0x00, 0x80, 0x20, 0x80, 0x00, // # @ # -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -//Level: 270 -0x08, 0x07,//Size x and y -0x88, 0x88, 0x80, 0x00, //##### -0x80, 0x00, 0x88, 0x80, //# ### -0x80, 0x80, 0x52, 0x88, //# # *@## -0x80, 0x05, 0x00, 0x08, //# * # -0x88, 0x84, 0x00, 0x08, //###$ # -0x00, 0x80, 0x00, 0x18, // # .# -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 271 -0x11, 0x10,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ######## -0x00, 0x08, 0x00, 0x08, 0x00, 0x80, 0x00, 0x00, 0x00, // # # # -0x00, 0x08, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, // # $ # -0x08, 0x88, 0x08, 0x40, 0x00, 0x88, 0x88, 0x00, 0x00, // ### #$ #### -0x08, 0x00, 0x40, 0x08, 0x84, 0x00, 0x08, 0x00, 0x00, // # $ ##$ # -0x08, 0x00, 0x80, 0x20, 0x40, 0x80, 0x48, 0x00, 0x00, // # # @ $ # $# -0x08, 0x00, 0x80, 0x00, 0x00, 0x04, 0x08, 0x88, 0x80, // # # $ #### -0x08, 0x80, 0x88, 0x88, 0x48, 0x80, 0x00, 0x00, 0x80, // ## ####$## # -0x08, 0x04, 0x81, 0x11, 0x11, 0x80, 0x80, 0x00, 0x80, // # $#.....# # # -0x08, 0x00, 0x41, 0x15, 0x51, 0x04, 0x80, 0x88, 0x80, // # $..**. $# ### -0x88, 0x00, 0x81, 0x11, 0x11, 0x80, 0x00, 0x80, 0x00, //## #.....# # -0x80, 0x00, 0x88, 0x80, 0x88, 0x88, 0x88, 0x80, 0x00, //# ### ####### -0x80, 0x44, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, //# $$ # # -0x80, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, //# # # -0x88, 0x88, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, //###### # -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ##### -//Level: 272 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x88, 0x11, 0x10, 0x00, 0x88, 0x08, 0x00, 0x00, 0x80, 0x08, //##... ## # # # -0x81, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x40, 0x88, 0x08, //#.... $ ## # -0x81, 0x11, 0x18, 0x08, 0x08, 0x48, 0x88, 0x40, 0x00, 0x08, //#....# # #$###$ # -0x81, 0x11, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x08, //#...# # # # -0x88, 0x18, 0x00, 0x84, 0x08, 0x00, 0x00, 0x04, 0x88, 0x08, //##.# #$ # $## # -0x80, 0x08, 0x00, 0x80, 0x40, 0x40, 0x88, 0x80, 0x04, 0x08, //# # # $ $ ### $ # -0x80, 0x00, 0x00, 0x40, 0x04, 0x08, 0x00, 0x80, 0x88, 0x08, //# $ $ # # ## # -0x88, 0x08, 0x08, 0x80, 0x84, 0x48, 0x04, 0x80, 0x08, 0x08, //## # ## #$$# $# # # -0x80, 0x08, 0x00, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x88, //# # $ $ # ## -0x80, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, 0x80, 0x00, 0x28, //# # # # @# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 273 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x08, 0x00, 0x80, 0x80, 0x08, 0x00, 0x80, 0x08, //# # # # # # # -0x80, 0x28, 0x08, 0x08, 0x80, 0x40, 0x00, 0x40, 0x00, 0x88, //# @# # ## $ $ ## -0x88, 0x88, 0x08, 0x00, 0x00, 0x80, 0x08, 0x04, 0x00, 0x08, //#### # # # $ # -0x80, 0x00, 0x08, 0x08, 0x80, 0x84, 0x08, 0x80, 0x88, 0x08, //# # ## #$ ## ## # -0x80, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, //# $ $ $ # -0x81, 0x18, 0x88, 0x44, 0x88, 0x04, 0x88, 0x40, 0x88, 0x08, //#..###$$## $##$ ## # -0x81, 0x18, 0x18, 0x00, 0x80, 0x40, 0x00, 0x40, 0x80, 0x08, //#..#.# # $ $ # # -0x81, 0x11, 0x18, 0x04, 0x40, 0x00, 0x88, 0x40, 0x88, 0x88, //#....# $$ ##$ #### -0x81, 0x11, 0x18, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x08, //#....# ##### # -0x81, 0x11, 0x88, 0x80, 0x00, 0x00, 0x00, 0x08, 0x80, 0x08, //#...### ## # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 274 -0x12, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // ######### -0x00, 0x00, 0x08, 0x00, 0x00, 0x11, 0x18, 0x00, 0x00, // # ...# -0x00, 0x00, 0x08, 0x08, 0x00, 0x11, 0x18, 0x00, 0x00, // # # ...# -0x00, 0x00, 0x08, 0x08, 0x80, 0x01, 0x18, 0x00, 0x00, // # ## ..# -0x88, 0x88, 0x88, 0x04, 0x04, 0x08, 0x88, 0x00, 0x00, //###### $ $ ### -0x81, 0x11, 0x40, 0x40, 0x42, 0x88, 0x00, 0x00, 0x00, //#...$ $ $@## -0x81, 0x18, 0x04, 0x04, 0x04, 0x88, 0x88, 0x88, 0x88, //#..# $ $ $######## -0x81, 0x11, 0x80, 0x40, 0x40, 0x00, 0x00, 0x00, 0x08, //#...# $ $ # -0x81, 0x11, 0x04, 0x04, 0x00, 0x84, 0x84, 0x88, 0x08, //#... $ $ #$#$## # -0x80, 0x08, 0x88, 0x80, 0x40, 0x40, 0x40, 0x80, 0x08, //# #### $ $ $ # # -0x80, 0x08, 0x00, 0x80, 0x04, 0x00, 0x04, 0x00, 0x08, //# # # $ $ # -0x88, 0x88, 0x00, 0x88, 0x00, 0x08, 0x88, 0x88, 0x88, //#### ## ####### -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -//Level: 275 -0x10, 0x0D,//Size x and y -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //## ############ -0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x28, //# $ $ $ $ $ $ @# -0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, //# # $ # -0x80, 0x80, 0x08, 0x88, 0x85, 0x88, 0x84, 0x88, //# # ####*###$## -0x80, 0x80, 0x08, 0x11, 0x11, 0x18, 0x00, 0x80, //# # #.....# # -0x80, 0x84, 0x08, 0x15, 0x55, 0x15, 0x00, 0x80, //# #$ #.***.* # -0x80, 0x80, 0x05, 0x11, 0x11, 0x18, 0x00, 0x80, //# # *.....# # -0x80, 0x80, 0x48, 0x88, 0x88, 0x88, 0x44, 0x80, //# # $#######$$# -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x80, 0x80, //########### # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, // # # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // ##### -//Level: 276 -0x0E, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //#. # -0x81, 0x40, 0x40, 0x40, 0x40, 0x40, 0x08, //#.$ $ $ $ $ # -0x81, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, //#.######### # -0x81, 0x81, 0x50, 0x40, 0x11, 0x45, 0x88, //#.#.* $ ..$*## -0x81, 0x80, 0x40, 0x40, 0x51, 0x42, 0x80, //#.# $ $ *.$@# -0x81, 0x81, 0x00, 0x40, 0x11, 0x44, 0x80, //#.#. $ ..$$# -0x81, 0x88, 0x88, 0x88, 0x88, 0x81, 0x80, //#.#########.# -0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //#. # -0x81, 0x84, 0x84, 0x84, 0x84, 0x84, 0x80, //#.#$#$#$#$#$# -0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //#. # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############# -//Level: 277 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x00, 0x00, //#### -0x81, 0x08, 0x00, 0x00, //#. # -0x80, 0x48, 0x00, 0x00, //# $# -0x80, 0x08, 0x88, 0x88, //# ##### -0x80, 0x14, 0x02, 0x08, //# .$ @ # -0x80, 0x14, 0x08, 0x08, //# .$ # # -0x88, 0x80, 0x00, 0x08, //### # -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 278 -0x08, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x00, 0x00, 0x08, //# # -0x80, 0x84, 0x00, 0x08, //# #$ # -0x80, 0x40, 0x28, 0x18, //# $ @#.# -0x88, 0x48, 0x10, 0x08, //##$#. # -0x08, 0x00, 0x00, 0x18, // # .# -0x08, 0x88, 0x88, 0x88, // ####### -//Level: 279 -0x13, 0x11,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, // ######## -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, 0x11, 0x11, 0x80, // #......# -0x00, 0x08, 0x88, 0x80, 0x00, 0x08, 0x11, 0x11, 0x11, 0x80, // #### #......# -0x00, 0x08, 0x00, 0x88, 0x88, 0x88, 0x88, 0x81, 0x11, 0x80, // # #########...# -0x00, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x81, 0x11, 0x80, // # $ $ #...# -0x00, 0x08, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, // # # # # # # # -0x88, 0x88, 0x80, 0x80, 0x80, 0x82, 0x80, 0x80, 0x00, 0x80, //##### # # #@# # # -0x80, 0x00, 0x80, 0x88, 0x80, 0x88, 0x80, 0x88, 0x08, 0x80, //# # ### ### ## ## -0x80, 0x00, 0x04, 0x08, 0x04, 0x04, 0x04, 0x08, 0x08, 0x00, //# $ # $ $ $ # # -0x80, 0x44, 0x40, 0x04, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, //# $$$ $ # # -0x80, 0x00, 0x80, 0x88, 0x84, 0x88, 0x84, 0x88, 0x08, 0x00, //# # ###$###$## # -0x88, 0x80, 0x80, 0x04, 0x00, 0x08, 0x00, 0x00, 0x08, 0x00, //### # $ # # -0x08, 0x80, 0x40, 0x08, 0x04, 0x04, 0x04, 0x08, 0x88, 0x00, // ## $ # $ $ $ ### -0x08, 0x00, 0x80, 0x88, 0x80, 0x88, 0x80, 0x88, 0x00, 0x00, // # # ### ### ## -0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // # $ # -0x08, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // # ########### -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 280 -0x0F, 0x0E,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -0x80, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //# ### -0x80, 0x40, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, //# $ ### -0x80, 0x40, 0x40, 0x08, 0x88, 0x00, 0x00, 0x00, //# $ $ ### -0x80, 0x40, 0x40, 0x40, 0x08, 0x88, 0x00, 0x00, //# $ $ $ ### -0x80, 0x40, 0x40, 0x40, 0x00, 0x08, 0x00, 0x00, //# $ $ $ # -0x80, 0x40, 0x40, 0x08, 0x00, 0x08, 0x80, 0x00, //# $ $ # ## -0x80, 0x40, 0x08, 0x80, 0x44, 0x40, 0x80, 0x00, //# $ ## $$$ # -0x82, 0x08, 0x88, 0x80, 0x00, 0x00, 0x88, 0x00, //#@ #### ## -0x88, 0x08, 0x08, 0x14, 0x44, 0x44, 0x18, 0x00, //## # #.$$$$$.# -0x08, 0x08, 0x88, 0x11, 0x11, 0x11, 0x18, 0x80, // # ###.......## -0x08, 0x00, 0x01, 0x55, 0x55, 0x55, 0x51, 0x80, // # .*******.# -0x08, 0x88, 0x81, 0x11, 0x11, 0x11, 0x11, 0x80, // ####.........# -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ########### -//Level: 281 -0x10, 0x12,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ####### -0x00, 0x00, 0x80, 0x00, 0x82, 0x80, 0x00, 0x00, // # #@# -0x08, 0x88, 0x80, 0x80, 0x80, 0x88, 0x88, 0x80, // #### # # ##### -0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, // # # # -0x08, 0x04, 0x84, 0x88, 0x88, 0x88, 0x80, 0x80, // # $#$####### # -0x88, 0x40, 0x00, 0x81, 0x18, 0x11, 0x84, 0x88, //##$ #..#..#$## -0x80, 0x00, 0x04, 0x41, 0x11, 0x11, 0x80, 0x08, //# $$.....# # -0x80, 0x40, 0x40, 0x81, 0x11, 0x11, 0x44, 0x08, //# $ $ #.....$$ # -0x88, 0x00, 0x08, 0x81, 0x11, 0x81, 0x80, 0x08, //## ##...#.# # -0x08, 0x04, 0x00, 0x88, 0x11, 0x18, 0x84, 0x08, // # $ ##...##$ # -0x08, 0x08, 0x80, 0x88, 0x88, 0x88, 0x80, 0x08, // # ## ####### # -0x08, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x88, // # $ $ $ ## -0x08, 0x88, 0x88, 0x80, 0x00, 0x40, 0x80, 0x80, // ###### $ # # -0x00, 0x00, 0x00, 0x88, 0x08, 0x04, 0x00, 0x80, // ## # $ # -0x00, 0x00, 0x00, 0x80, 0x44, 0x04, 0x00, 0x80, // # $$ $ # -0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, // # $ # -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x80, // ###### # -0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, // #### -//Level: 282 -0x0B, 0x07,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x80, // ########## -0x88, 0x04, 0x00, 0x51, 0x50, 0x80, //## $ *.* # -0x80, 0x04, 0x00, 0x51, 0x50, 0x80, //# $ *.* # -0x80, 0x04, 0x00, 0x51, 0x52, 0x80, //# $ *.*@# -0x80, 0x04, 0x00, 0x51, 0x50, 0x80, //# $ *.* # -0x80, 0x04, 0x00, 0x51, 0x50, 0x80, //# $ *.* # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 283 -0x0F, 0x0D,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // #### -0x00, 0x00, 0x00, 0x80, 0x08, 0x88, 0x88, 0x80, // # ###### -0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x80, // # # # -0x00, 0x00, 0x00, 0x80, 0x44, 0x00, 0x00, 0x80, // # $$ # -0x88, 0x88, 0x88, 0x84, 0x80, 0x08, 0x00, 0x80, //#######$# # # -0x80, 0x08, 0x15, 0x11, 0x08, 0x88, 0x48, 0x80, //# #.*.. ###$## -0x80, 0x08, 0x18, 0x51, 0x40, 0x00, 0x00, 0x80, //# #.#*.$ # -0x80, 0x08, 0x18, 0x15, 0x80, 0x80, 0x00, 0x80, //# #.#.*# # # -0x80, 0x44, 0x11, 0x11, 0x80, 0x88, 0x88, 0x80, //# $$....# ##### -0x80, 0x24, 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, //# @$ # # -0x80, 0x44, 0x48, 0x00, 0x00, 0x80, 0x00, 0x00, //# $$$# # -0x80, 0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, //# ###### -0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //###### -//Level: 284 -0x10, 0x0E,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ####### -0x08, 0x00, 0x00, 0x08, 0x00, 0x08, 0x88, 0x88, // # # ##### -0x08, 0x00, 0x88, 0x08, 0x88, 0x88, 0x00, 0x08, // # ## ##### # -0x08, 0x40, 0x40, 0x40, 0x08, 0x00, 0x08, 0x08, // #$ $ $ # # # -0x08, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x08, // # $ $ # # -0x88, 0x00, 0x44, 0x08, 0x88, 0x48, 0x88, 0x08, //## $$ ###$### # -0x80, 0x40, 0x00, 0x08, 0x11, 0x11, 0x80, 0x08, //# $ #....# # -0x82, 0x84, 0x40, 0x88, 0x11, 0x11, 0x80, 0x08, //#@#$$ ##....# # -0x80, 0x04, 0x00, 0x08, 0x11, 0x11, 0x40, 0x08, //# $ #....$ # -0x88, 0x00, 0x88, 0x08, 0x11, 0x11, 0x80, 0x88, //## ## #....# ## -0x08, 0x44, 0x80, 0x08, 0x80, 0x88, 0x80, 0x08, // #$$# ## ### # -0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, // # $ # -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x08, // ############ # -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, // #### -//Level: 285 -0x10, 0x0D,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######### -0x00, 0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x00, // # # # -0x88, 0x80, 0x84, 0x00, 0x40, 0x88, 0x88, 0x00, //### #$ $ #### -0x80, 0x04, 0x00, 0x88, 0x11, 0x80, 0x08, 0x88, //# $ ##..# ### -0x80, 0x80, 0x04, 0x08, 0x11, 0x40, 0x40, 0x08, //# # $ #..$ $ # -0x80, 0x44, 0x00, 0x48, 0x11, 0x00, 0x80, 0x08, //# $$ $#.. # # -0x88, 0x00, 0x80, 0x01, 0x11, 0x84, 0x00, 0x08, //## # ...#$ # -0x08, 0x40, 0x20, 0x81, 0x11, 0x80, 0x40, 0x88, // #$ @ #...# $ ## -0x08, 0x00, 0x00, 0x81, 0x11, 0x40, 0x08, 0x80, // # #...$ ## -0x08, 0x08, 0x84, 0x08, 0x88, 0x00, 0x08, 0x00, // # ##$ ### # -0x08, 0x00, 0x04, 0x00, 0x00, 0x08, 0x88, 0x00, // # $ ### -0x08, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, // # ######## -0x08, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #### -//Level: 286 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x82, 0x00, 0x50, 0x00, 0x80, //#@ * # -0x80, 0x44, 0x14, 0x00, 0x80, //# $$.$ # -0x81, 0x11, 0x15, 0x55, 0x80, //#....***# -0x80, 0x44, 0x14, 0x00, 0x80, //# $$.$ # -0x80, 0x00, 0x50, 0x00, 0x80, //# * # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 287 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x02, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x88, //# @## # ## -0x80, 0x00, 0x08, 0x80, 0x00, 0x04, 0x00, 0x00, 0x40, 0x88, //# ## $ $ ## -0x80, 0x08, 0x88, 0x11, 0x11, 0x80, 0x80, 0x80, 0x08, 0x88, //# ###....# # # ### -0x80, 0x00, 0x81, 0x11, 0x18, 0x08, 0x08, 0x04, 0x00, 0x08, //# #....# # # $ # -0x88, 0x80, 0x81, 0x11, 0x80, 0x08, 0x00, 0x00, 0x00, 0x08, //### #...# # # -0x88, 0x00, 0x88, 0x18, 0x00, 0x00, 0x04, 0x00, 0x04, 0x08, //## ##.# $ $ # -0x88, 0x00, 0x40, 0x40, 0x88, 0x80, 0x08, 0x08, 0x08, 0x88, //## $ $ ### # # ### -0x88, 0x04, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, 0x08, //## $ # # $ # -0x88, 0x88, 0x04, 0x00, 0x48, 0x08, 0x08, 0x08, 0x04, 0x08, //#### $ $# # # # $ # -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x88, //#### # # ## -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 288 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x02, 0x08, 0x88, //## @ ### -0x88, 0x01, 0x00, 0x08, //## . # -0x81, 0x04, 0x14, 0x08, //#. $.$ # -0x88, 0x48, 0x08, 0x88, //##$# ### -0x88, 0x00, 0x08, 0x88, //## ### -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 289 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x20, 0x88, 0x88, //##@ #### -0x88, 0x00, 0x88, 0x88, //## #### -0x88, 0x10, 0x88, 0x88, //##. #### -0x80, 0x44, 0x10, 0x18, //# $$. .# -0x80, 0x04, 0x08, 0x88, //# $ ### -0x88, 0x80, 0x08, 0x88, //### ### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 290 -0x0A, 0x12,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x80, // ######## -0x08, 0x11, 0x11, 0x11, 0x80, // #......# -0x08, 0x11, 0x88, 0x11, 0x80, // #..##..# -0x08, 0x11, 0x11, 0x11, 0x80, // #......# -0x08, 0x11, 0x55, 0x11, 0x80, // #..**..# -0x08, 0x88, 0x11, 0x88, 0x80, // ###..### -0x08, 0x00, 0x44, 0x00, 0x80, // # $$ # -0x08, 0x00, 0x00, 0x00, 0x80, // # # -0x08, 0x04, 0x44, 0x40, 0x80, // # $$$$ # -0x88, 0x80, 0x00, 0x08, 0x88, //### ### -0x80, 0x04, 0x44, 0x40, 0x08, //# $$$$ # -0x80, 0x00, 0x00, 0x00, 0x08, //# # -0x80, 0x44, 0x44, 0x44, 0x08, //# $$$$$$ # -0x88, 0x00, 0x00, 0x00, 0x88, //## ## -0x80, 0x44, 0x44, 0x44, 0x08, //# $$$$$$ # -0x80, 0x00, 0x20, 0x00, 0x08, //# @ # -0x80, 0x08, 0x88, 0x80, 0x08, //# #### # -0x88, 0x88, 0x00, 0x88, 0x88, //#### #### -//Level: 291 -0x0F, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, //# # # -0x80, 0x40, 0x84, 0x08, 0x04, 0x88, 0x40, 0x80, //# $ #$ # $##$ # -0x80, 0x80, 0x04, 0x08, 0x00, 0x00, 0x00, 0x80, //# # $ # # -0x80, 0x00, 0x88, 0x48, 0x48, 0x84, 0x40, 0x80, //# ##$#$##$$ # -0x80, 0x80, 0x80, 0x11, 0x10, 0x80, 0x00, 0x80, //# # # ... # # -0x80, 0x40, 0x01, 0x08, 0x01, 0x40, 0x80, 0x80, //# $ . # .$ # # -0x80, 0x48, 0x24, 0x11, 0x18, 0x08, 0x00, 0x80, //# $#@$...# # # -0x80, 0x00, 0x01, 0x08, 0x01, 0x00, 0x40, 0x80, //# . # . $ # -0x80, 0x88, 0x14, 0x88, 0x84, 0x10, 0x80, 0x80, //# ##.$###$. # # -0x80, 0x80, 0x41, 0x11, 0x11, 0x08, 0x80, 0x80, //# # $..... ## # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 292 -0x0F, 0x0A,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ############# -0x08, 0x00, 0x00, 0x80, 0x08, 0x80, 0x08, 0x00, // # # ## # -0x08, 0x44, 0x40, 0x80, 0x44, 0x00, 0x48, 0x80, // #$$$ # $$ $## -0x08, 0x04, 0x00, 0x80, 0x01, 0x11, 0x10, 0x80, // # $ # .... # -0x08, 0x00, 0x40, 0x08, 0x41, 0x88, 0x10, 0x80, // # $ #$.##. # -0x08, 0x00, 0x80, 0x48, 0x01, 0x11, 0x18, 0x80, // # # $# ....## -0x88, 0x40, 0x40, 0x08, 0x41, 0x88, 0x10, 0x80, //##$ $ #$.##. # -0x80, 0x40, 0x04, 0x02, 0x41, 0x11, 0x10, 0x80, //# $ $ @$.... # -0x80, 0x00, 0x88, 0x80, 0x08, 0x88, 0x88, 0x80, //# ### ###### -0x88, 0x88, 0x80, 0x88, 0x88, 0x00, 0x00, 0x00, //##### #### -//Level: 293 -0x09, 0x07,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x88, 0x80, 0x00, 0x88, 0x80, //### ### -0x80, 0x10, 0x40, 0x10, 0x80, //# . $ . # -0x80, 0x81, 0x41, 0x80, 0x80, //# #.$.# # -0x80, 0x40, 0x80, 0x40, 0x80, //# $ # $ # -0x88, 0x80, 0x20, 0x88, 0x80, //### @ ### -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -//Level: 294 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x82, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, //#@ # # # -0x88, 0x08, 0x88, 0x08, 0x80, 0x08, 0x88, 0x80, 0x80, 0x88, //## ### ## #### # ## -0x80, 0x00, 0x08, 0x08, 0x00, 0x44, 0x00, 0x00, 0x00, 0x08, //# # # $$ # -0x80, 0x08, 0x08, 0x08, 0x04, 0x08, 0x04, 0x08, 0x80, 0x88, //# # # # $ # $ ## ## -0x80, 0x00, 0x00, 0x40, 0x80, 0x08, 0x44, 0x08, 0x00, 0x08, //# $ # #$$ # # -0x80, 0x08, 0x88, 0x00, 0x80, 0x00, 0x00, 0x08, 0x80, 0x88, //# ### # ## ## -0x81, 0x18, 0x18, 0x04, 0x08, 0x00, 0x40, 0x80, 0x00, 0x08, //#..#.# $ # $ # # -0x81, 0x18, 0x18, 0x00, 0x40, 0x80, 0x88, 0x04, 0x40, 0x08, //#..#.# $ # ## $$ # -0x81, 0x11, 0x18, 0x80, 0x00, 0x44, 0x00, 0x40, 0x08, 0x08, //#....## $$ $ # # -0x81, 0x11, 0x11, 0x88, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, //#.....## # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 295 -0x0D, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############# -0x80, 0x04, 0x04, 0x04, 0x15, 0x11, 0x80, //# $ $ $.*..# -0x80, 0x40, 0x40, 0x40, 0x51, 0x11, 0x80, //# $ $ $ *...# -0x80, 0x04, 0x04, 0x04, 0x15, 0x11, 0x80, //# $ $ $.*..# -0x80, 0x40, 0x40, 0x40, 0x51, 0x11, 0x80, //# $ $ $ *...# -0x80, 0x04, 0x04, 0x04, 0x15, 0x11, 0x80, //# $ $ $.*..# -0x80, 0x40, 0x40, 0x40, 0x51, 0x11, 0x80, //# $ $ $ *...# -0x80, 0x04, 0x04, 0x04, 0x15, 0x11, 0x80, //# $ $ $.*..# -0x80, 0x40, 0x40, 0x40, 0x51, 0x11, 0x80, //# $ $ $ *...# -0x80, 0x04, 0x04, 0x04, 0x15, 0x11, 0x80, //# $ $ $.*..# -0x82, 0x40, 0x40, 0x40, 0x51, 0x11, 0x80, //#@$ $ $ *...# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############# -//Level: 296 -0x13, 0x10,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, // ############ -0x00, 0x00, 0x08, 0x81, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, // ##.. # # -0x00, 0x00, 0x88, 0x11, 0x50, 0x40, 0x00, 0x04, 0x08, 0x00, // ##..* $ $ # -0x00, 0x08, 0x81, 0x15, 0x18, 0x08, 0x08, 0x04, 0x88, 0x00, // ##..*.# # # $## -0x00, 0x08, 0x11, 0x51, 0x80, 0x80, 0x80, 0x40, 0x08, 0x00, // #..*.# # # $ # -0x88, 0x88, 0x11, 0x18, 0x00, 0x80, 0x00, 0x08, 0x08, 0x00, //####...# # # # -0x80, 0x08, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, //# ## # # -0x80, 0x24, 0x04, 0x08, 0x88, 0x00, 0x80, 0x00, 0x88, 0x00, //# @$ $ ### # ## -0x80, 0x40, 0x00, 0x40, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, //# $ $ # # # -0x88, 0x84, 0x40, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, //###$$ # # # # # -0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x80, 0x88, 0x88, 0x80, // # $ # # ##### -0x00, 0x80, 0x48, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x80, // # $# ##### # -0x00, 0x84, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x80, 0x80, // #$ # # # # -0x00, 0x80, 0x08, 0x88, 0x00, 0x08, 0x80, 0x00, 0x00, 0x80, // # ### ## # -0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x80, // # # # ## -0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, // #### ###### -//Level: 297 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x80, 0x08, 0x11, 0x18, 0x20, 0x00, 0x08, //# # #...#@ # -0x80, 0x80, 0x00, 0x00, 0x00, 0x11, 0x11, 0x80, 0x00, 0x08, //# # ....# # -0x80, 0x04, 0x00, 0x80, 0x00, 0x81, 0x11, 0x18, 0x00, 0x08, //# $ # #....# # -0x80, 0x88, 0x48, 0x88, 0x80, 0x88, 0x11, 0x11, 0x80, 0x08, //# ##$#### ##....# # -0x80, 0x40, 0x00, 0x40, 0x08, 0x00, 0x81, 0x11, 0x80, 0x08, //# $ $ # #...# # -0x80, 0x44, 0x08, 0x00, 0x08, 0x00, 0x08, 0x04, 0x40, 0x08, //# $$ # # # $$ # -0x88, 0x80, 0x04, 0x44, 0x80, 0x00, 0x44, 0x00, 0x40, 0x08, //### $$$# $$ $ # -0x80, 0x40, 0x08, 0x00, 0x80, 0x00, 0x08, 0x04, 0x80, 0x08, //# $ # # # $# # -0x80, 0x00, 0x48, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x08, //# $# # $ # -0x80, 0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x80, 0x08, //# # # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 298 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x08, 0x80, 0x08, //# ## # -0x80, 0x10, 0x01, 0x48, //# . .$# -0x80, 0x48, 0x04, 0x18, //# $# $.# -0x88, 0x02, 0x08, 0x08, //## @ # # -0x88, 0x88, 0x00, 0x08, //#### # -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 299 -0x08, 0x08,//Size x and y -0x00, 0x00, 0x88, 0x88, // #### -0x00, 0x00, 0x80, 0x08, // # # -0x00, 0x88, 0x84, 0x18, // ###$.# -0x00, 0x80, 0x01, 0x08, // # . # -0x88, 0x80, 0x08, 0x18, //### #.# -0x80, 0x40, 0x04, 0x08, //# $ $ # -0x80, 0x00, 0x82, 0x08, //# #@ # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 300 -0x08, 0x06,//Size x and y -0x00, 0x88, 0x88, 0x00, // #### -0x88, 0x80, 0x08, 0x88, //### ### -0x80, 0x11, 0x04, 0x18, //# .. $.# -0x80, 0x04, 0x40, 0x28, //# $$ @# -0x88, 0x88, 0x00, 0x08, //#### # -0x00, 0x08, 0x88, 0x88, // ##### -//Level: 301 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x01, 0x08, 0x00, //# . # -0x80, 0x00, 0x08, 0x88, //# ### -0x80, 0x84, 0x41, 0x08, //# #$$. # -0x81, 0x00, 0x88, 0x08, //#. ## # -0x82, 0x40, 0x88, 0x08, //#@$ ## # -0x88, 0x80, 0x00, 0x08, //### # -0x00, 0x88, 0x88, 0x88, // ###### -//Level: 302 -0x11, 0x12,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, // #### -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x80, // ######## # -0x00, 0x00, 0x08, 0x80, 0x40, 0x40, 0x00, 0x40, 0x80, // ## $ $ $ # -0x00, 0x00, 0x08, 0x00, 0x02, 0x84, 0x00, 0x40, 0x80, // # @#$ $ # -0x00, 0x00, 0x08, 0x00, 0x40, 0x80, 0x08, 0x00, 0x80, // # $ # # # -0x88, 0x88, 0x88, 0x88, 0x04, 0x80, 0x00, 0x00, 0x80, //######## $# # -0x80, 0x00, 0x40, 0x00, 0x00, 0x40, 0x40, 0x88, 0x80, //# $ $ $ ### -0x80, 0x00, 0x88, 0x88, 0x84, 0x88, 0x48, 0x80, 0x00, //# #####$##$## -0x88, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, //## $$ # -0x08, 0x00, 0x88, 0x04, 0x04, 0x04, 0x00, 0x80, 0x00, // # ## $ $ $ # -0x08, 0x88, 0x88, 0x80, 0x80, 0x80, 0x88, 0x80, 0x00, // ###### # # ### -0x00, 0x00, 0x08, 0x04, 0x04, 0x00, 0x80, 0x00, 0x00, // # $ $ # -0x00, 0x00, 0x08, 0x00, 0x40, 0x08, 0x80, 0x00, 0x00, // # $ ## -0x00, 0x00, 0x88, 0x88, 0x04, 0x88, 0x80, 0x00, 0x00, // #### $### -0x00, 0x00, 0x81, 0x11, 0x11, 0x11, 0x80, 0x00, 0x00, // #.......# -0x00, 0x00, 0x81, 0x11, 0x11, 0x11, 0x80, 0x00, 0x00, // #.......# -0x00, 0x00, 0x81, 0x11, 0x11, 0x11, 0x80, 0x00, 0x00, // #.......# -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######### -//Level: 303 -0x10, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, // ##### -0x88, 0x88, 0x88, 0x80, 0x00, 0x80, 0x00, 0x00, //####### # -0x80, 0x00, 0x88, 0x10, 0x00, 0x80, 0x00, 0x00, //# ##. # -0x80, 0x04, 0x81, 0x10, 0x08, 0x88, 0x00, 0x00, //# $#.. ### -0x88, 0x00, 0x11, 0x18, 0x44, 0x08, 0x88, 0x88, //## ...#$$ ##### -0x08, 0x04, 0x18, 0x14, 0x00, 0x00, 0x00, 0x08, // # $.#.$ # -0x08, 0x04, 0x88, 0x84, 0x88, 0x08, 0x04, 0x08, // # $###$## # $ # -0x08, 0x00, 0x08, 0x00, 0x00, 0x04, 0x48, 0x08, // # # $$# # -0x08, 0x84, 0x48, 0x08, 0x84, 0x84, 0x00, 0x08, // ##$$# ##$#$ # -0x08, 0x11, 0x10, 0x42, 0x04, 0x00, 0x08, 0x88, // #... $@ $ ### -0x08, 0x11, 0x18, 0x48, 0x00, 0x08, 0x88, 0x00, // #...#$# ### -0x08, 0x11, 0x10, 0x08, 0x88, 0x88, 0x00, 0x00, // #... ##### -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ####### -//Level: 304 -0x10, 0x0F,//Size x and y -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, // ###### -0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x08, // ######## # -0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x04, 0x08, // # $ $ $ # -0x00, 0x08, 0x08, 0x08, 0x08, 0x04, 0x88, 0x08, // # # # # $## # -0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x04, 0x08, // # $ $ # -0x00, 0x08, 0x88, 0x88, 0x88, 0x84, 0x08, 0x08, // ########$ # # -0x00, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, // ## # # -0x00, 0x82, 0x40, 0x04, 0x00, 0x80, 0x40, 0x08, // #@$ $ # $ # -0x88, 0x88, 0x88, 0x08, 0x40, 0x84, 0x84, 0x08, //###### #$ #$#$ # -0x81, 0x11, 0x18, 0x04, 0x00, 0x80, 0x00, 0x08, //#....# $ # # -0x81, 0x51, 0x18, 0x88, 0x08, 0x80, 0x88, 0x88, //#.*..### ## #### -0x81, 0x15, 0x10, 0x40, 0x00, 0x80, 0x08, 0x00, //#..*. $ # # -0x81, 0x11, 0x14, 0x04, 0x00, 0x00, 0x08, 0x00, //#....$ $ # -0x81, 0x11, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //#...########## -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, //##### -//Level: 305 -0x07, 0x06,//Size x and y -0x88, 0x88, 0x80, 0x00, //##### -0x80, 0x00, 0x88, 0x80, //# ### -0x81, 0x14, 0x41, 0x80, //#..$$.# -0x80, 0x44, 0x20, 0x80, //# $$@ # -0x88, 0x00, 0x18, 0x80, //## .## -0x08, 0x88, 0x88, 0x00, // ##### -//Level: 306 -0x08, 0x06,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x10, 0x08, 0x00, //# . # -0x80, 0x18, 0x08, 0x88, //# .# ### -0x80, 0x24, 0x40, 0x08, //# @$$ # -0x80, 0x41, 0x00, 0x08, //# $. # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 307 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x00, 0x28, 0x00, //# @# -0x80, 0x44, 0x88, 0x88, //# $$#### -0x80, 0x40, 0x10, 0x08, //# $ . # -0x88, 0x08, 0x18, 0x08, //## #.# # -0x81, 0x00, 0x08, 0x08, //#. # # -0x80, 0x00, 0x00, 0x08, //# # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 308 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x80, 0x00, 0x88, //### ## -0x88, 0x80, 0x81, 0x88, //### #.## -0x88, 0x80, 0x01, 0x88, //### .## -0x82, 0x04, 0x40, 0x88, //#@ $$ ## -0x80, 0x01, 0x40, 0x88, //# .$ ## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 309 -0x08, 0x06,//Size x and y -0x08, 0x88, 0x80, 0x00, // #### -0x88, 0x00, 0x88, 0x80, //## ### -0x80, 0x00, 0x00, 0x88, //# ## -0x80, 0x08, 0x44, 0x28, //# #$$@# -0x80, 0x01, 0x05, 0x18, //# . *.# -0x88, 0x88, 0x88, 0x88, //######## -//Level: 310 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x00, 0x88, 0x88, //## #### -0x81, 0x14, 0x00, 0x18, //#..$ .# -0x80, 0x84, 0x04, 0x08, //# #$ $ # -0x82, 0x00, 0x80, 0x08, //#@ # # -0x88, 0x88, 0x80, 0x08, //##### # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 311 -0x11, 0x0D,//Size x and y -0x00, 0x00, 0x08, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, // ##### -0x00, 0x00, 0x08, 0x20, 0x08, 0x88, 0x88, 0x88, 0x00, // #@ ####### -0x00, 0x08, 0x88, 0x80, 0x40, 0x04, 0x00, 0x08, 0x00, // #### $ $ # -0x08, 0x88, 0x00, 0x04, 0x40, 0x40, 0x40, 0x08, 0x00, // ### $$ $ $ # -0x08, 0x00, 0x08, 0x00, 0x48, 0x08, 0x88, 0x88, 0x00, // # # $# ##### -0x08, 0x48, 0x88, 0x80, 0x04, 0x00, 0x04, 0x08, 0x00, // #$#### $ $ # -0x08, 0x04, 0x00, 0x40, 0x04, 0x00, 0x04, 0x08, 0x00, // # $ $ $ $ # -0x08, 0x00, 0x40, 0x08, 0x88, 0x48, 0x88, 0x08, 0x80, // # $ ###$### ## -0x88, 0x00, 0x88, 0x08, 0x11, 0x11, 0x18, 0x00, 0x80, //## ## #.....# # -0x80, 0x04, 0x04, 0x08, 0x11, 0x11, 0x10, 0x00, 0x80, //# $ $ #..... # -0x80, 0x40, 0x00, 0x40, 0x11, 0x11, 0x18, 0x88, 0x80, //# $ $ .....#### -0x88, 0x88, 0x88, 0x88, 0x11, 0x11, 0x18, 0x00, 0x00, //########.....# -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, // ####### -//Level: 312 -0x12, 0x0E,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, //######## -0x81, 0x11, 0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, //#... ######## -0x81, 0x11, 0x10, 0x00, 0x00, 0x40, 0x00, 0x88, 0x00, //#.... $ ## -0x81, 0x11, 0x11, 0x88, 0x04, 0x08, 0x40, 0x08, 0x00, //#.....## $ #$ # -0x81, 0x11, 0x11, 0x80, 0x08, 0x00, 0x40, 0x08, 0x00, //#.....# # $ # -0x88, 0x88, 0x88, 0x84, 0x08, 0x80, 0x04, 0x08, 0x88, //#######$ ## $ ### -0x08, 0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x40, 0x08, // # ### $ # -0x08, 0x00, 0x40, 0x80, 0x40, 0x08, 0x00, 0x40, 0x08, // # $ # $ # $ # -0x08, 0x00, 0x88, 0x80, 0x88, 0x00, 0x80, 0x88, 0x88, // # ### ## # #### -0x08, 0x00, 0x80, 0x04, 0x00, 0x40, 0x80, 0x00, 0x80, // # # $ $ # # -0x08, 0x88, 0x80, 0x84, 0x80, 0x08, 0x84, 0x00, 0x80, // #### #$# ##$ # -0x00, 0x82, 0x40, 0x00, 0x04, 0x00, 0x04, 0x00, 0x80, // #@$ $ $ # -0x00, 0x88, 0x88, 0x80, 0x00, 0x88, 0x88, 0x88, 0x80, // ##### ####### -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, // ##### -//Level: 313 -0x0B, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //####### -0x82, 0x00, 0x00, 0x88, 0x88, 0x80, //#@ ##### -0x80, 0x40, 0x15, 0x10, 0x40, 0x80, //# $ .*. $ # -0x80, 0x41, 0x50, 0x51, 0x40, 0x80, //# $.* *.$ # -0x80, 0x40, 0x15, 0x10, 0x40, 0x80, //# $ .*. $ # -0x88, 0x88, 0x88, 0x00, 0x00, 0x80, //###### # -0x00, 0x00, 0x08, 0x88, 0x88, 0x80, // ###### -//Level: 314 -0x09, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x00, 0x08, 0x02, 0x08, 0x00, // # @ # -0x00, 0x08, 0x44, 0x48, 0x00, // #$$$# -0x88, 0x88, 0x00, 0x08, 0x00, //#### # -0x80, 0x00, 0x18, 0x48, 0x80, //# .#$## -0x80, 0x41, 0x41, 0x01, 0x80, //# $.$. .# -0x80, 0x08, 0x18, 0x18, 0x80, //# #.#.## -0x88, 0x88, 0x88, 0x88, 0x00, //######## -//Level: 315 -0x09, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -0x00, 0x80, 0x00, 0x80, 0x00, // # # -0x88, 0x80, 0x84, 0x80, 0x00, //### #$# -0x80, 0x01, 0x41, 0x88, 0x80, //# .$.### -0x80, 0x84, 0x34, 0x00, 0x80, //# #$+$ # -0x80, 0x01, 0x40, 0x80, 0x80, //# .$ # # -0x88, 0x80, 0x81, 0x00, 0x80, //### #. # -0x00, 0x80, 0x00, 0x88, 0x80, // # ### -0x00, 0x88, 0x88, 0x80, 0x00, // ##### -//Level: 316 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x00, 0x00, 0x08, //# # -0x80, 0x80, 0x88, 0x58, //# # ##*# -0x80, 0x82, 0x04, 0x08, //# #@ $ # -0x81, 0x40, 0x10, 0x08, //#.$ . # -0x88, 0x88, 0x80, 0x08, //##### # -0x00, 0x00, 0x80, 0x08, // # # -0x00, 0x00, 0x88, 0x88, // #### -//Level: 317 -0x08, 0x07,//Size x and y -0x00, 0x08, 0x88, 0x88, // ##### -0x88, 0x88, 0x10, 0x28, //####. @# -0x80, 0x01, 0x40, 0x08, //# .$ # -0x80, 0x80, 0x08, 0x88, //# # ### -0x80, 0x40, 0x40, 0x18, //# $ $ .# -0x88, 0x88, 0x00, 0x08, //#### # -0x00, 0x08, 0x88, 0x88, // ##### -//Level: 318 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, 0x28, //# # # # #@# -0x80, 0x00, 0x40, 0x04, 0x00, 0x00, 0x08, 0x04, 0x08, 0x08, //# $ $ # $ # # -0x88, 0x48, 0x04, 0x88, 0x80, 0x80, 0x00, 0x04, 0x48, 0x08, //##$# $### # $$# # -0x80, 0x08, 0x00, 0x81, 0x88, 0x80, 0x08, 0x40, 0x40, 0x08, //# # #.### #$ $ # -0x80, 0x08, 0x48, 0x11, 0x11, 0x80, 0x08, 0x08, 0x88, 0x08, //# #$#....# # ### # -0x80, 0x40, 0x08, 0x11, 0x11, 0x18, 0x80, 0x00, 0x08, 0x08, //# $ #.....## # # -0x88, 0x40, 0x08, 0x18, 0x11, 0x11, 0x84, 0x40, 0x40, 0x08, //##$ #.#....#$$ $ # -0x80, 0x08, 0x88, 0x88, 0x81, 0x18, 0x80, 0x80, 0x08, 0x08, //# ######..## # # # -0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x88, 0x08, //# $ $ ### # -0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x08, //# # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 319 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x10, 0x08, 0x88, //##. ### -0x88, 0x08, 0x08, 0x88, //## # ### -0x88, 0x05, 0x40, 0x08, //## *$ # -0x88, 0x00, 0x41, 0x08, //## $. # -0x88, 0x00, 0x28, 0x88, //## @### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 320 -0x08, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x80, // #### -0x00, 0x88, 0x20, 0x88, // ##@ ## -0x08, 0x80, 0x01, 0x18, // ## ..# -0x88, 0x04, 0x84, 0x88, //## $#$## -0x80, 0x00, 0x41, 0x08, //# $. # -0x80, 0x08, 0x00, 0x08, //# # # -0x80, 0x00, 0x08, 0x88, //# ### -0x88, 0x88, 0x88, 0x00, //###### -//Level: 321 -0x13, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, //############### -0x81, 0x11, 0x11, 0x11, 0x11, 0x10, 0x01, 0x88, 0x88, 0x00, //#.......... .#### -0x81, 0x11, 0x11, 0x11, 0x11, 0x14, 0x41, 0x80, 0x08, 0x00, //#..........$$.# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x84, 0x08, 0x00, 0x08, 0x80, //###########$ # ## -0x80, 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x40, 0x80, //# $ $ $ # -0x88, 0x08, 0x88, 0x80, 0x00, 0x80, 0x04, 0x08, 0x00, 0x80, //## #### # $ # # -0x80, 0x00, 0x00, 0x08, 0x00, 0x08, 0x80, 0x08, 0x08, 0x80, //# # ## # ## -0x80, 0x04, 0x80, 0x08, 0x08, 0x80, 0x08, 0x88, 0x08, 0x80, //# $# # ## ### ## -0x80, 0x40, 0x84, 0x88, 0x80, 0x00, 0x08, 0x88, 0x08, 0x80, //# $ #$### ### ## -0x88, 0x80, 0x04, 0x08, 0x00, 0x80, 0x08, 0x88, 0x08, 0x80, //### $ # # ### ## -0x88, 0x80, 0x00, 0x04, 0x08, 0x80, 0x80, 0x08, 0x08, 0x80, //### $ ## # # ## -0x08, 0x04, 0x00, 0x80, 0x04, 0x00, 0x40, 0x40, 0x00, 0x80, // # $ # $ $ $ # -0x08, 0x00, 0x40, 0x04, 0x84, 0x44, 0x00, 0x80, 0x00, 0x80, // # $ $#$$$ # # -0x08, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, // # # $ ##### -0x08, 0x02, 0x88, 0x00, 0x80, 0x08, 0x00, 0x80, 0x00, 0x00, // # @## # # # -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ############## -//Level: 322 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x80, 0x00, //##### -0x80, 0x01, 0x88, 0x80, //# .### -0x80, 0x41, 0x10, 0x80, //# $.. # -0x80, 0x08, 0x84, 0x88, //# ##$## -0x88, 0x00, 0x80, 0x08, //## # # -0x08, 0x40, 0x00, 0x28, // #$ @# -0x08, 0x00, 0x88, 0x88, // # #### -0x08, 0x88, 0x80, 0x00, // #### -//Level: 323 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x81, 0x11, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x08, //#....# # # # -0x81, 0x11, 0x18, 0x08, 0x04, 0x00, 0x40, 0x00, 0x00, 0x08, //#....# # $ $ # -0x81, 0x11, 0x10, 0x88, 0x00, 0x48, 0x08, 0x04, 0x84, 0x08, //#.... ## $# # $#$ # -0x81, 0x11, 0x80, 0x00, 0x40, 0x00, 0x48, 0x00, 0x40, 0x08, //#...# $ $# $ # -0x81, 0x18, 0x88, 0x80, 0x08, 0x04, 0x00, 0x04, 0x40, 0x08, //#..#### # $ $$ # -0x80, 0x00, 0x00, 0x08, 0x88, 0x80, 0x88, 0x88, 0x08, 0x88, //# #### #### ### -0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x08, //# # # # -0x80, 0x88, 0x00, 0x08, 0x00, 0x04, 0x08, 0x04, 0x04, 0x08, //# ## # $ # $ $ # -0x80, 0x88, 0x00, 0x00, 0x40, 0x88, 0x04, 0x00, 0x40, 0x08, //# ## $ ## $ $ # -0x80, 0x00, 0x00, 0x28, 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, //# @# # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 324 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x28, 0x11, 0x18, 0x88, //# # @#...### -0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, 0x81, 0x11, 0x88, //# # ##...## -0x80, 0x80, 0x80, 0x88, 0x48, 0x80, 0x88, 0x01, 0x11, 0x18, //# # # ##$## ## ....# -0x80, 0x00, 0x40, 0x80, 0x00, 0x44, 0x40, 0x01, 0x11, 0x18, //# $ # $$$ ....# -0x88, 0x84, 0x88, 0x80, 0x44, 0x00, 0x88, 0x80, 0x88, 0x18, //###$### $$ ### ##.# -0x80, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x80, 0x88, 0x88, //# $ # # #### -0x80, 0x04, 0x00, 0x80, 0x08, 0x88, 0x00, 0x80, 0x80, 0x08, //# $ # ### # # # -0x88, 0x08, 0x48, 0x80, 0x00, 0x04, 0x00, 0x44, 0x00, 0x08, //## #$## $ $$ # -0x80, 0x00, 0x40, 0x88, 0x00, 0x08, 0x00, 0x80, 0x80, 0x08, //# $ ## # # # # -0x80, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x08, //# # # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 325 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x88, 0x88, 0x82, 0x88, 0x81, 0x88, 0x11, 0x18, 0x80, 0x08, //#####@###.##...## # -0x88, 0x88, 0x84, 0x00, 0x11, 0x81, 0x11, 0x80, 0x00, 0x08, //#####$ ..#...# # -0x88, 0x88, 0x00, 0x00, 0x11, 0x11, 0x11, 0x80, 0x04, 0x08, //#### ......# $ # -0x88, 0x80, 0x04, 0x08, 0x11, 0x11, 0x18, 0x80, 0x80, 0x88, //### $ #.....## # ## -0x88, 0x00, 0x44, 0x80, 0x88, 0x88, 0x80, 0x04, 0x04, 0x08, //## $$# ##### $ $ # -0x88, 0x04, 0x80, 0x40, 0x00, 0x08, 0x80, 0x04, 0x40, 0x08, //## $# $ ## $$ # -0x88, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x40, 0x04, 0x08, //## # # # $ $ # -0x88, 0x00, 0x04, 0x40, 0x88, 0x80, 0x84, 0x88, 0x00, 0x08, //## $$ ### #$## # -0x88, 0x04, 0x80, 0x00, 0x00, 0x04, 0x04, 0x00, 0x40, 0x88, //## $# $ $ $ ## -0x88, 0x80, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x08, 0x88, //### # # ### -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 326 -0x0B, 0x0B,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -0x80, 0x41, 0x04, 0x01, 0x00, 0x80, //# $. $ . # -0x80, 0x08, 0x00, 0x41, 0x00, 0x80, //# # $. # -0x81, 0x15, 0x11, 0x85, 0x81, 0x80, //#..*..#*#.# -0x84, 0x48, 0x44, 0x41, 0x04, 0x80, //#$$#$$$. $# -0x80, 0x01, 0x42, 0x41, 0x00, 0x80, //# .$@$. # -0x84, 0x01, 0x44, 0x48, 0x44, 0x80, //#$ .$$$#$$# -0x81, 0x85, 0x81, 0x15, 0x11, 0x80, //#.#*#..*..# -0x80, 0x01, 0x40, 0x08, 0x00, 0x80, //# .$ # # -0x80, 0x01, 0x40, 0x41, 0x00, 0x80, //# .$ $. # -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //########### -//Level: 327 -0x12, 0x10,//Size x and y -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, // ####### -0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x08, 0x00, 0x00, // ####### # -0x08, 0x00, 0x00, 0x08, 0x04, 0x24, 0x08, 0x00, 0x00, // # # $@$ # -0x08, 0x44, 0x08, 0x00, 0x08, 0x88, 0x88, 0x88, 0x88, // #$$ # ######### -0x08, 0x08, 0x88, 0x11, 0x11, 0x11, 0x88, 0x00, 0x08, // # ###......## # -0x08, 0x00, 0x04, 0x11, 0x11, 0x11, 0x88, 0x08, 0x08, // # $......## # # -0x08, 0x08, 0x88, 0x11, 0x11, 0x11, 0x00, 0x00, 0x08, // # ###...... # -0x88, 0x00, 0x08, 0x88, 0x80, 0x88, 0x80, 0x84, 0x88, //## #### ### #$## -0x80, 0x08, 0x40, 0x00, 0x80, 0x04, 0x00, 0x80, 0x80, //# #$ # $ # # -0x80, 0x04, 0x04, 0x44, 0x00, 0x80, 0x48, 0x80, 0x80, //# $ $$$ # $## # -0x80, 0x00, 0x40, 0x40, 0x88, 0x84, 0x40, 0x80, 0x80, //# $ $ ###$$ # # -0x88, 0x88, 0x80, 0x00, 0x00, 0x40, 0x00, 0x80, 0x80, //##### $ # # -0x00, 0x00, 0x88, 0x80, 0x88, 0x80, 0x00, 0x80, 0x80, // ### ### # # -0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x80, // # # # -0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x00, 0x80, // ######## # -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, // #### -//Level: 328 -0x09, 0x07,//Size x and y -0x08, 0x88, 0x88, 0x00, 0x00, // ##### -0x08, 0x00, 0x08, 0x88, 0x80, // # #### -0x88, 0x08, 0x42, 0x00, 0x80, //## #$@ # -0x80, 0x40, 0x04, 0x40, 0x80, //# $ $$ # -0x80, 0x84, 0x81, 0x51, 0x80, //# #$#.*.# -0x80, 0x00, 0x01, 0x11, 0x80, //# ...# -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 329 -0x08, 0x06,//Size x and y -0x00, 0x88, 0x88, 0x00, // #### -0x88, 0x81, 0x08, 0x00, //###. # -0x80, 0x10, 0x08, 0x88, //# . ### -0x80, 0x00, 0x44, 0x08, //# $$ # -0x88, 0x01, 0x04, 0x28, //## . $@# -0x08, 0x88, 0x88, 0x88, // ####### -//Level: 330 -0x08, 0x07,//Size x and y -0x08, 0x88, 0x88, 0x88, // ####### -0x88, 0x20, 0x00, 0x08, //##@ # -0x81, 0x08, 0x00, 0x08, //#. # # -0x80, 0x44, 0x41, 0x88, //# $$$.## -0x80, 0x18, 0x00, 0x80, //# .# # -0x80, 0x08, 0x88, 0x80, //# #### -0x88, 0x88, 0x00, 0x00, //#### -//Level: 331 -0x09, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x80, 0x00, 0x20, 0x00, 0x80, //# @ # -0x84, 0x44, 0x44, 0x44, 0x80, //#$$$$$$$# -0x81, 0x11, 0x81, 0x11, 0x80, //#...#...# -0x81, 0x11, 0x11, 0x11, 0x80, //#.......# -0x84, 0x44, 0x04, 0x44, 0x80, //#$$$ $$$# -0x80, 0x00, 0x00, 0x00, 0x80, //# # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 332 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x00, 0x08, 0x88, //## ### -0x80, 0x48, 0x08, 0x88, //# $# ### -0x80, 0x10, 0x28, 0x88, //# . @### -0x80, 0x50, 0x00, 0x88, //# * ## -0x88, 0x08, 0x40, 0x88, //## #$ ## -0x88, 0x10, 0x08, 0x88, //##. ### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 333 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x80, 0x80, 0x80, 0x00, 0x82, 0x88, 0x00, 0x08, 0x08, //# # # # #@## # # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, //# $ # -0x80, 0x08, 0x84, 0x80, 0x88, 0x88, 0x80, 0x40, 0x80, 0x88, //# ##$# ##### $ # ## -0x88, 0x00, 0x00, 0x88, 0x11, 0x11, 0x18, 0x00, 0x80, 0x08, //## ##.....# # # -0x88, 0x48, 0x84, 0x81, 0x11, 0x11, 0x88, 0x84, 0x84, 0x08, //##$##$#.....###$#$ # -0x80, 0x00, 0x80, 0x88, 0x11, 0x11, 0x18, 0x00, 0x80, 0x88, //# # ##.....# # ## -0x80, 0x04, 0x00, 0x00, 0x88, 0x11, 0x88, 0x00, 0x80, 0x08, //# $ ##..## # # -0x80, 0x40, 0x80, 0x00, 0x40, 0x00, 0x40, 0x04, 0x44, 0x08, //# $ # $ $ $$$ # -0x88, 0x04, 0x00, 0x48, 0x08, 0x00, 0x80, 0x04, 0x00, 0x08, //## $ $# # # $ # -0x80, 0x00, 0x88, 0x00, 0x08, 0x00, 0x80, 0x00, 0x00, 0x08, //# ## # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 334 -0x12, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################## -0x81, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //#..# # -0x81, 0x18, 0x00, 0x80, 0x40, 0x40, 0x40, 0x88, 0x08, //#..# # $ $ $ ## # -0x81, 0x18, 0x08, 0x88, 0x08, 0x08, 0x00, 0x80, 0x08, //#..# ### # # # # -0x81, 0x18, 0x08, 0x04, 0x48, 0x88, 0x48, 0x84, 0x08, //#..# # $$###$##$ # -0x81, 0x18, 0x00, 0x00, 0x00, 0x04, 0x24, 0x04, 0x08, //#..# $@$ $ # -0x81, 0x10, 0x04, 0x80, 0x40, 0x80, 0x44, 0x08, 0x08, //#.. $# $ # $$ # # -0x80, 0x08, 0x00, 0x80, 0x08, 0x88, 0x00, 0x08, 0x08, //# # # ### # # -0x80, 0x00, 0x08, 0x88, 0x00, 0x80, 0x08, 0x88, 0x08, //# ### # ### # -0x81, 0x18, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x08, //#..# $ $ # -0x81, 0x18, 0x08, 0x84, 0x00, 0x80, 0x08, 0x04, 0x08, //#..# ##$ # # $ # -0x81, 0x18, 0x00, 0x80, 0x08, 0x88, 0x08, 0x80, 0x08, //#..# # ### ## # -0x81, 0x18, 0x00, 0x88, 0x44, 0x08, 0x48, 0x84, 0x08, //#..# ##$$ #$##$ # -0x81, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, //#..# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //################## -//Level: 335 -0x13, 0x10,//Size x and y -0x08, 0x88, 0x88, 0x80, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, // ###### #### -0x08, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x80, 0x00, 0x00, // # ###### # -0x08, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, // #@# $ ## -0x88, 0x88, 0x84, 0x04, 0x08, 0x88, 0x80, 0x08, 0x80, 0x00, //#####$ $ #### ## -0x80, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x00, //# $ # ## -0x80, 0x04, 0x40, 0x80, 0x88, 0x48, 0x88, 0x44, 0x08, 0x00, //# $$ # ##$###$$ # -0x80, 0x00, 0x00, 0x45, 0x15, 0x11, 0x80, 0x00, 0x08, 0x00, //# $*.*..# # -0x88, 0x88, 0x88, 0x81, 0x11, 0x15, 0x80, 0x40, 0x08, 0x00, //#######....*# $ # -0x00, 0x00, 0x00, 0x85, 0x11, 0x51, 0x80, 0x84, 0x88, 0x00, // #*..*.# #$## -0x00, 0x00, 0x00, 0x81, 0x11, 0x15, 0x04, 0x00, 0x08, 0x00, // #....* $ # -0x00, 0x00, 0x00, 0x81, 0x11, 0x11, 0x80, 0x44, 0x48, 0x00, // #.....# $$$# -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x80, 0x80, 0x08, 0x80, // ##### # # ## -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x80, // # # $ $ # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x80, // # $ # -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x88, 0x00, 0x80, // # ### # -0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x08, 0x88, 0x80, // #### #### -//Level: 336 -0x09, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x88, 0x00, // ##### -0x88, 0x88, 0x10, 0x08, 0x80, //####. ## -0x80, 0x41, 0x41, 0x00, 0x80, //# $.$. # -0x82, 0x48, 0x08, 0x40, 0x80, //#@$# #$ # -0x80, 0x41, 0x01, 0x00, 0x80, //# $. . # -0x88, 0x88, 0x48, 0x40, 0x80, //####$#$ # -0x00, 0x81, 0x01, 0x00, 0x80, // #. . # -0x00, 0x88, 0x88, 0x88, 0x80, // ####### -//Level: 337 -0x07, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x80, 0x00, 0x00, 0x80, //# # -0x81, 0x88, 0x01, 0x80, //#.## .# -0x85, 0x00, 0x42, 0x80, //#* $@# -0x80, 0x08, 0x40, 0x80, //# #$ # -0x80, 0x08, 0x00, 0x80, //# # # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 338 -0x13, 0x10,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //#### -0x80, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //# ############## -0x80, 0x08, 0x00, 0x01, 0x18, 0x11, 0x11, 0x11, 0x80, 0x00, //# # ..#......# -0x80, 0x08, 0x08, 0x08, 0x88, 0x88, 0x01, 0x11, 0x80, 0x00, //# # # ##### ...# -0x88, 0x48, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x80, 0x00, //##$# ........# -0x80, 0x00, 0x88, 0x48, 0x88, 0x88, 0x80, 0x08, 0x88, 0x80, //# ##$###### #### -0x80, 0x40, 0x80, 0x00, 0x00, 0x88, 0x88, 0x88, 0x20, 0x80, //# $ # ######@ # -0x88, 0x40, 0x80, 0x40, 0x00, 0x88, 0x88, 0x88, 0x00, 0x80, //##$ # $ ###### # -0x80, 0x04, 0x08, 0x44, 0x48, 0x80, 0x00, 0x00, 0x00, 0x80, //# $ #$$$## # -0x80, 0x00, 0x00, 0x08, 0x00, 0x00, 0x84, 0x84, 0x88, 0x80, //# # #$#$### -0x80, 0x88, 0x88, 0x08, 0x44, 0x44, 0x40, 0x00, 0x08, 0x00, //# #### #$$$$$ # -0x80, 0x80, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, //# # $ # # -0x80, 0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x88, 0x80, //# # ## ### -0x80, 0x88, 0x88, 0x88, 0x48, 0x88, 0x88, 0x80, 0x40, 0x80, //# ######$###### $ # -0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x00, 0x80, //# # # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x80, //########## ##### -//Level: 339 -0x14, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, //############ -0x80, 0x00, 0x00, 0x08, 0x00, 0x08, 0x80, 0x00, 0x00, 0x00, //# # ## -0x80, 0x40, 0x04, 0x00, 0x08, 0x00, 0x88, 0x88, 0x88, 0x00, //# $ $ # ###### -0x88, 0x88, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x08, 0x00, //#### ##### # -0x08, 0x11, 0x00, 0x80, 0x00, 0x00, 0x88, 0x88, 0x08, 0x00, // #.. # #### # -0x08, 0x18, 0x88, 0x80, 0x08, 0x88, 0x80, 0x00, 0x08, 0x00, // #.#### #### # -0x08, 0x11, 0x11, 0x00, 0x00, 0x80, 0x04, 0x08, 0x88, 0x80, // #.... # $ #### -0x08, 0x01, 0x11, 0x80, 0x00, 0x80, 0x44, 0x48, 0x00, 0x88, // # ...# # $$$# ## -0x88, 0x81, 0x88, 0x88, 0x08, 0x80, 0x04, 0x24, 0x00, 0x08, //###.#### ## $@$ # -0x80, 0x00, 0x00, 0x88, 0x88, 0x80, 0x40, 0x80, 0x00, 0x08, //# ##### $ # # -0x80, 0x81, 0x80, 0x40, 0x00, 0x00, 0x04, 0x88, 0x84, 0x08, //# #.# $ $###$ # -0x80, 0x81, 0x88, 0x88, 0x88, 0x88, 0x00, 0x80, 0x04, 0x08, //# #.######## # $ # -0x80, 0x81, 0x10, 0x00, 0x00, 0x00, 0x08, 0x80, 0x04, 0x08, //# #.. ## $ # -0x80, 0x80, 0x88, 0x88, 0x88, 0x80, 0x40, 0x80, 0x80, 0x08, //# # ####### $ # # # -0x80, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x88, //# # # ## -0x88, 0x88, 0x80, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, //##### ########## -//Level: 340 -0x09, 0x09,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -0x88, 0x00, 0x50, 0x08, 0x80, //## * ## -0x80, 0x12, 0x10, 0x10, 0x80, //# .@. . # -0x80, 0x40, 0x50, 0x00, 0x80, //# $ * # -0x85, 0x44, 0x54, 0x45, 0x80, //#*$$*$$*# -0x80, 0x00, 0x50, 0x40, 0x80, //# * $ # -0x80, 0x10, 0x10, 0x10, 0x80, //# . . . # -0x88, 0x00, 0x50, 0x08, 0x80, //## * ## -0x08, 0x88, 0x88, 0x88, 0x00, // ####### -//Level: 341 -0x14, 0x0C,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x00, 0x88, 0x81, 0x18, 0x88, 0x00, 0x00, 0x08, //# ###..### # -0x80, 0x44, 0x00, 0x88, 0x81, 0x18, 0x88, 0x00, 0x42, 0x08, //# $$ ###..### $@ # -0x80, 0x08, 0x08, 0x81, 0x11, 0x11, 0x18, 0x00, 0x40, 0x08, //# # ##......# $ # -0x80, 0x00, 0x00, 0x81, 0x11, 0x11, 0x18, 0x00, 0x40, 0x08, //# #......# $ # -0x88, 0x88, 0x00, 0x88, 0x81, 0x18, 0x88, 0x88, 0x84, 0x08, //#### ###..######$ # -0x80, 0x00, 0x44, 0x40, 0x81, 0x18, 0x00, 0x00, 0x80, 0x08, //# $$$ #..# # # -0x80, 0x48, 0x00, 0x04, 0x00, 0x40, 0x04, 0x40, 0x84, 0x08, //# $# $ $ $$ #$ # -0x80, 0x08, 0x00, 0x88, 0x04, 0x00, 0x88, 0x00, 0x80, 0x08, //# # ## $ ## # # -0x80, 0x40, 0x00, 0x04, 0x08, 0x80, 0x40, 0x00, 0x04, 0x08, //# $ $ ## $ $ # -0x80, 0x08, 0x00, 0x88, 0x00, 0x00, 0x88, 0x00, 0x80, 0x08, //# # ## ## # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 342 -0x07, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x00, 0x28, 0x80, //# @## -0x80, 0x08, 0x00, 0x80, //# # # -0x81, 0x00, 0x40, 0x80, //#. $ # -0x80, 0x44, 0x81, 0x80, //# $$#.# -0x88, 0x80, 0x01, 0x80, //### .# -0x00, 0x88, 0x88, 0x80, // ##### -//Level: 343 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x81, 0x00, 0x01, 0x08, //#. . # -0x80, 0x80, 0x80, 0x08, //# # # # -0x82, 0x40, 0x04, 0x18, //#@$ $.# -0x88, 0x88, 0x80, 0x48, //##### $# -0x88, 0x88, 0x80, 0x08, //##### # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 344 -0x0E, 0x0A,//Size x and y -0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, //#### #### -0x81, 0x18, 0x88, 0x88, 0x88, 0x81, 0x18, //#..########..# -0x85, 0x15, 0x11, 0x11, 0x15, 0x15, 0x18, //#*.*.....*.*.# -0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x48, //# $ $ $ $ $ $# -0x84, 0x04, 0x04, 0x24, 0x04, 0x04, 0x08, //#$ $ $@$ $ $ # -0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x48, //# $ $ $ $ $ $# -0x84, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, //#$ $ $ $ $ $ # -0x81, 0x51, 0x51, 0x11, 0x11, 0x51, 0x58, //#.*.*.....*.*# -0x81, 0x18, 0x88, 0x88, 0x88, 0x81, 0x18, //#..########..# -0x88, 0x88, 0x00, 0x00, 0x00, 0x88, 0x88, //#### #### -//Level: 345 -0x08, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x01, 0x80, 0x28, //# .# @# -0x80, 0x80, 0x40, 0x08, //# # $ # -0x80, 0x41, 0x84, 0x08, //# $.#$ # -0x88, 0x01, 0x00, 0x08, //## . # -0x08, 0x00, 0x88, 0x88, // # #### -0x08, 0x88, 0x80, 0x00, // #### -//Level: 346 -0x13, 0x10,//Size x and y -0x08, 0x88, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ### ############# -0x88, 0x28, 0x88, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, //##@#### # # -0x80, 0x44, 0x00, 0x04, 0x40, 0x04, 0x04, 0x01, 0x11, 0x80, //# $$ $$ $ $ ...# -0x80, 0x04, 0x44, 0x80, 0x00, 0x04, 0x00, 0x81, 0x11, 0x80, //# $$$# $ #...# -0x80, 0x40, 0x00, 0x80, 0x44, 0x04, 0x40, 0x81, 0x11, 0x80, //# $ # $$ $$ #...# -0x88, 0x80, 0x00, 0x80, 0x04, 0x00, 0x00, 0x81, 0x11, 0x80, //### # $ #...# -0x80, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x81, 0x11, 0x80, //# # $ $ $ #...# -0x80, 0x00, 0x08, 0x88, 0x88, 0x80, 0x88, 0x81, 0x11, 0x80, //# ###### ###...# -0x88, 0x08, 0x00, 0x80, 0x04, 0x04, 0x00, 0x81, 0x11, 0x80, //## # # $ $ #...# -0x80, 0x08, 0x80, 0x80, 0x44, 0x04, 0x04, 0x88, 0x11, 0x80, //# ## # $$ $ $##..# -0x80, 0x11, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x81, 0x80, //# ..# # $ #.# -0x80, 0x11, 0x80, 0x80, 0x44, 0x40, 0x44, 0x40, 0x81, 0x80, //# ..# # $$$ $$$ #.# -0x88, 0x88, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x81, 0x80, //##### # # #.# -0x00, 0x00, 0x80, 0x88, 0x88, 0x88, 0x88, 0x80, 0x81, 0x80, // # ######### #.# -0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x80, // # #.# -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ############### -//Level: 347 -0x13, 0x10,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ########## -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, //##### #### -0x80, 0x00, 0x00, 0x80, 0x00, 0x40, 0x08, 0x20, 0x80, 0x00, //# # $ #@ # -0x80, 0x88, 0x88, 0x88, 0x84, 0x88, 0x88, 0x00, 0x88, 0x80, //# #######$#### ### -0x80, 0x80, 0x00, 0x08, 0x80, 0x80, 0x08, 0x40, 0x11, 0x80, //# # ## # #$ ..# -0x80, 0x80, 0x40, 0x00, 0x00, 0x80, 0x08, 0x00, 0x81, 0x80, //# # $ # # #.# -0x80, 0x80, 0x40, 0x08, 0x00, 0x00, 0x08, 0x40, 0x11, 0x80, //# # $ # #$ ..# -0x80, 0x80, 0x08, 0x88, 0x08, 0x80, 0x00, 0x00, 0x81, 0x80, //# # ### ## #.# -0x80, 0x88, 0x80, 0x08, 0x00, 0x80, 0x08, 0x40, 0x11, 0x80, //# ### # # #$ ..# -0x80, 0x80, 0x00, 0x08, 0x00, 0x88, 0x88, 0x00, 0x81, 0x80, //# # # #### #.# -0x80, 0x84, 0x00, 0x04, 0x00, 0x40, 0x08, 0x40, 0x11, 0x80, //# #$ $ $ #$ ..# -0x80, 0x00, 0x04, 0x08, 0x04, 0x04, 0x08, 0x00, 0x81, 0x80, //# $ # $ $ # #.# -0x88, 0x88, 0x04, 0x88, 0x80, 0x00, 0x08, 0x40, 0x11, 0x80, //#### $### #$ ..# -0x00, 0x08, 0x00, 0x00, 0x44, 0x08, 0x88, 0x11, 0x11, 0x80, // # $$ ###....# -0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x08, 0x88, 0x88, 0x80, // # ## ###### -0x00, 0x08, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ######## -//Level: 348 -0x08, 0x08,//Size x and y -0x00, 0x08, 0x88, 0x80, // #### -0x00, 0x08, 0x00, 0x80, // # # -0x88, 0x88, 0x04, 0x88, //#### $## -0x80, 0x24, 0x10, 0x08, //# @$. # -0x80, 0x88, 0x00, 0x08, //# ## # -0x80, 0x00, 0x88, 0x08, //# ## # -0x80, 0x00, 0x50, 0x18, //# * .# -0x88, 0x88, 0x88, 0x88, //######## -//Level: 349 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x08, 0x88, 0x88, //# ##### -0x80, 0x08, 0x88, 0x88, //# ##### -0x80, 0x15, 0x00, 0x08, //# .* # -0x88, 0x40, 0x00, 0x08, //##$ # -0x88, 0x08, 0x48, 0x88, //## #$### -0x88, 0x10, 0x28, 0x88, //##. @### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 350 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x82, 0x00, 0x40, 0x10, 0x80, //#@ $ . # -0x80, 0x40, 0x41, 0x40, 0x80, //# $ $.$ # -0x81, 0x51, 0x51, 0x51, 0x80, //#.*.*.*.# -0x80, 0x41, 0x40, 0x40, 0x80, //# $.$ $ # -0x80, 0x10, 0x40, 0x00, 0x80, //# . $ # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 351 -0x07, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x80, //####### -0x81, 0x01, 0x01, 0x80, //#. . .# -0x80, 0x44, 0x40, 0x80, //# $$$ # -0x81, 0x42, 0x41, 0x80, //#.$@$.# -0x80, 0x44, 0x40, 0x80, //# $$$ # -0x81, 0x01, 0x01, 0x80, //#. . .# -0x88, 0x88, 0x88, 0x80, //####### -//Level: 352 -0x09, 0x07,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x80, //######### -0x82, 0x01, 0x00, 0x00, 0x80, //#@ . # -0x80, 0x44, 0x14, 0x40, 0x80, //# $$.$$ # -0x81, 0x51, 0x11, 0x51, 0x80, //#.*...*.# -0x80, 0x44, 0x14, 0x40, 0x80, //# $$.$$ # -0x80, 0x41, 0x00, 0x00, 0x80, //# $. # -0x88, 0x88, 0x88, 0x88, 0x80, //######### -//Level: 353 -0x14, 0x0F,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x80, 0x00, 0x08, 0x80, 0x00, 0x80, 0x00, 0x08, 0x00, 0x08, //# ## # # # -0x80, 0x04, 0x00, 0x40, 0x00, 0x00, 0x88, 0x04, 0x00, 0x08, //# $ $ ## $ # -0x88, 0x08, 0x88, 0x88, 0x00, 0x18, 0x88, 0x88, 0x80, 0x88, //## ##### .###### ## -0x08, 0x08, 0x80, 0x08, 0x81, 0x11, 0x18, 0x88, 0x80, 0x88, // # ## ##....#### ## -0x88, 0x08, 0x84, 0x08, 0x88, 0x11, 0x88, 0x00, 0x00, 0x08, //## ##$ ###..## # -0x80, 0x00, 0x00, 0x08, 0x11, 0x10, 0x18, 0x04, 0x04, 0x08, //# #... .# $ $ # -0x80, 0x40, 0x88, 0x08, 0x80, 0x10, 0x88, 0x80, 0x88, 0x88, //# $ ## ## . ### #### -0x80, 0x80, 0x40, 0x00, 0x08, 0x18, 0x80, 0x80, 0x80, 0x00, //# # $ #.## # # -0x80, 0x40, 0x40, 0x80, 0x00, 0x18, 0x88, 0x80, 0x88, 0x00, //# $ $ # .#### ## -0x80, 0x80, 0x08, 0x80, 0x80, 0x88, 0x00, 0x80, 0x08, 0x80, //# # ## # ## # ## -0x88, 0x88, 0x88, 0x80, 0x04, 0x88, 0x40, 0x00, 0x40, 0x80, //####### $##$ $ # -0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x40, 0x82, 0x80, // ## $ #@# -0x00, 0x00, 0x00, 0x08, 0x00, 0x88, 0x08, 0x88, 0x88, 0x80, // # ## ###### -0x00, 0x00, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, // ####### -//Level: 354 -0x0D, 0x10,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, // ######### -0x00, 0x85, 0x15, 0x85, 0x15, 0x80, 0x00, // #*.*#*.*# -0x00, 0x81, 0x51, 0x51, 0x51, 0x80, 0x00, // #.*.*.*.# -0x00, 0x85, 0x15, 0x15, 0x15, 0x80, 0x00, // #*.*.*.*# -0x00, 0x81, 0x51, 0x51, 0x51, 0x80, 0x00, // #.*.*.*.# -0x00, 0x85, 0x15, 0x15, 0x15, 0x80, 0x00, // #*.*.*.*# -0x00, 0x88, 0x80, 0x00, 0x88, 0x80, 0x00, // ### ### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, // # # -0x88, 0x88, 0x88, 0x08, 0x88, 0x88, 0x80, //###### ###### -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //# # -0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, //# $ $ $ $ $ # -0x88, 0x04, 0x04, 0x04, 0x04, 0x08, 0x80, //## $ $ $ $ ## -0x08, 0x40, 0x40, 0x40, 0x40, 0x48, 0x00, // #$ $ $ $ $# -0x08, 0x00, 0x04, 0x24, 0x00, 0x08, 0x00, // # $@$ # -0x08, 0x00, 0x88, 0x88, 0x80, 0x08, 0x00, // # ##### # -0x08, 0x88, 0x80, 0x00, 0x88, 0x88, 0x00, // #### #### -//Level: 355 -0x05, 0x08,//Size x and y -0x88, 0x88, 0x00, //#### -0x80, 0x28, 0x00, //# @# -0x80, 0x48, 0x80, //# $## -0x80, 0x41, 0x80, //# $.# -0x80, 0x41, 0x80, //# $.# -0x80, 0x41, 0x80, //# $.# -0x88, 0x81, 0x80, //###.# -0x00, 0x88, 0x80, // ### -//Level: 356 -0x0D, 0x0A,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, //########### -0x82, 0x40, 0x00, 0x11, 0x11, 0x88, 0x00, //#@$ ....## -0x80, 0x44, 0x44, 0x81, 0x11, 0x18, 0x00, //# $$$$#....# -0x80, 0x40, 0x04, 0x11, 0x55, 0x58, 0x80, //# $ $..***## -0x88, 0x00, 0x08, 0x08, 0x81, 0x10, 0x80, //## # ##.. # -0x80, 0x44, 0x48, 0x00, 0x88, 0x00, 0x80, //# $$$# ## # -0x80, 0x00, 0x08, 0x80, 0x80, 0x08, 0x80, //# ## # ## -0x80, 0x04, 0x40, 0x80, 0x00, 0x08, 0x00, //# $$ # # -0x80, 0x00, 0x00, 0x88, 0x80, 0x08, 0x00, //# ### # -0x88, 0x88, 0x88, 0x80, 0x88, 0x88, 0x00, //####### #### -//Level: 357 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x81, 0x01, 0x88, 0x88, //#. .#### -0x81, 0x84, 0x40, 0x88, //#.#$$ ## -0x80, 0x00, 0x20, 0x88, //# @ ## -0x80, 0x48, 0x00, 0x88, //# $# ## -0x88, 0x00, 0x08, 0x88, //## ### -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 358 -0x13, 0x13,//Size x and y -0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // # # # # # # # # # -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, //# # # # # # # #.# # -0x08, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, 0x00, // #... $.# -0x80, 0x04, 0x84, 0x00, 0x80, 0x80, 0x80, 0x40, 0x00, 0x80, //# $#$ # # # $ # -0x08, 0x10, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x18, 0x00, // #. $ # # # # $.# -0x80, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, //# # $ # # # -0x08, 0x00, 0x08, 0x00, 0x88, 0x88, 0x80, 0x08, 0x08, 0x00, // # # ##### # # -0x80, 0x00, 0x80, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x80, //# # # # # # -0x08, 0x08, 0x00, 0x80, 0x08, 0x88, 0x08, 0x08, 0x08, 0x00, // # # # ### # # # -0x80, 0x01, 0x40, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, //# .$ . # # -0x08, 0x08, 0x40, 0x80, 0x80, 0x08, 0x08, 0x08, 0x08, 0x00, // # #$ # # # # # # -0x80, 0x08, 0x00, 0x80, 0x08, 0x48, 0x08, 0x08, 0x00, 0x80, //# # # #$# # # # -0x08, 0x01, 0x80, 0x08, 0x00, 0x08, 0x08, 0x08, 0x28, 0x00, // # .# # # # #@# -0x80, 0x00, 0x08, 0x00, 0x88, 0x80, 0x48, 0x08, 0x00, 0x80, //# # ### $# # # -0x08, 0x04, 0x40, 0x80, 0x00, 0x00, 0x41, 0x18, 0x48, 0x00, // # $$ # $..#$# -0x80, 0x81, 0x00, 0x08, 0x88, 0x88, 0x84, 0x88, 0x10, 0x80, //# #. ######$##. # -0x08, 0x08, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x18, 0x00, // # #.$ . .# -0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //# # # # # # # # # # -0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // # # # # # # # # # -//Level: 359 -0x14, 0x11,//Size x and y -0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, // ################## -0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x11, 0x81, 0x88, // # $ ...#.## -0x08, 0x00, 0x00, 0x00, 0x08, 0x88, 0x81, 0x11, 0x11, 0x08, // # ####..... # -0x08, 0x08, 0x88, 0x88, 0x88, 0x00, 0x81, 0x11, 0x11, 0x08, // # ####### #..... # -0x08, 0x08, 0x00, 0x00, 0x40, 0x40, 0x88, 0x11, 0x11, 0x88, // # # $ $ ##....## -0x08, 0x08, 0x00, 0x40, 0x80, 0x80, 0x88, 0x81, 0x11, 0x80, // # # $ # # ###...# -0x08, 0x08, 0x04, 0x24, 0x04, 0x00, 0x88, 0x88, 0x80, 0x80, // # # $@$ $ ##### # -0x88, 0x08, 0x00, 0x40, 0x04, 0x04, 0x40, 0x00, 0x40, 0x80, //## # $ $ $$ $ # -0x80, 0x08, 0x48, 0x04, 0x80, 0x00, 0x80, 0x48, 0x80, 0x80, //# #$# $# # $## # -0x80, 0x88, 0x00, 0x00, 0x88, 0x08, 0x80, 0x40, 0x80, 0x80, //# ## ## ## $ # # -0x80, 0x80, 0x48, 0x04, 0x04, 0x00, 0x80, 0x00, 0x00, 0x80, //# # $# $ $ # # -0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, //# # ####### -0x80, 0x88, 0x88, 0x88, 0x88, 0x48, 0x80, 0x00, 0x80, 0x00, //# ########$## # -0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x40, 0x00, 0x80, 0x00, //# # $ # -0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, //######## ##### -0x00, 0x00, 0x00, 0x08, 0x88, 0x00, 0x80, 0x00, 0x00, 0x00, // ### # -0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, 0x00, // #### -//Level: 360 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x81, 0x00, 0x88, 0x88, //#. #### -0x80, 0x80, 0x00, 0x88, //# # ## -0x80, 0x10, 0x80, 0x88, //# . # ## -0x80, 0x45, 0x40, 0x88, //# $*$ ## -0x88, 0x20, 0x88, 0x88, //##@ #### -0x88, 0x00, 0x88, 0x88, //## #### -0x88, 0x88, 0x88, 0x88, //######## -//Level: 361 -0x13, 0x11,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ##### -0x00, 0x00, 0x08, 0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, // ## ## -0x00, 0x00, 0x88, 0x00, 0x50, 0x08, 0x80, 0x00, 0x00, 0x00, // ## * ## -0x00, 0x08, 0x80, 0x05, 0x05, 0x00, 0x88, 0x00, 0x00, 0x00, // ## * * ## -0x00, 0x88, 0x00, 0x50, 0x50, 0x50, 0x08, 0x80, 0x00, 0x00, // ## * * * ## -0x08, 0x80, 0x05, 0x05, 0x05, 0x05, 0x00, 0x88, 0x88, 0x00, // ## * * * * #### -0x88, 0x00, 0x50, 0x50, 0x50, 0x50, 0x50, 0x08, 0x08, 0x80, //## * * * * * # ## -0x80, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x80, //# * * * * * * # -0x80, 0x50, 0x50, 0x50, 0x10, 0x50, 0x50, 0x52, 0x40, 0x80, //# * * * . * * *@$ # -0x80, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x80, //# * * * * * * # -0x88, 0x00, 0x50, 0x50, 0x50, 0x50, 0x50, 0x08, 0x08, 0x80, //## * * * * * # ## -0x08, 0x80, 0x05, 0x05, 0x05, 0x05, 0x00, 0x88, 0x88, 0x00, // ## * * * * #### -0x00, 0x88, 0x00, 0x50, 0x50, 0x50, 0x08, 0x80, 0x00, 0x00, // ## * * * ## -0x00, 0x08, 0x80, 0x05, 0x05, 0x00, 0x88, 0x00, 0x00, 0x00, // ## * * ## -0x00, 0x00, 0x88, 0x00, 0x50, 0x08, 0x80, 0x00, 0x00, 0x00, // ## * ## -0x00, 0x00, 0x08, 0x80, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, // ## ## -0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ##### -//Level: 362 -0x07, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x00, //###### -0x80, 0x10, 0x08, 0x00, //# . # -0x80, 0x08, 0x28, 0x00, //# #@# -0x80, 0x04, 0x08, 0x80, //# $ ## -0x88, 0x48, 0x00, 0x80, //##$# # -0x80, 0x00, 0x80, 0x80, //# # # -0x81, 0x05, 0x00, 0x80, //#. * # -0x88, 0x88, 0x88, 0x80, //####### -//Level: 363 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x00, 0x12, 0x08, //## .@ # -0x88, 0x08, 0x18, 0x08, //## #.# # -0x88, 0x00, 0x04, 0x08, //## $ # -0x88, 0x14, 0x40, 0x88, //##.$$ ## -0x88, 0x00, 0x88, 0x88, //## #### -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 364 -0x13, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x00, 0x00, 0x08, 0x88, 0x80, 0x00, 0x00, //###### #### -0x80, 0x00, 0x08, 0x88, 0x88, 0x88, 0x00, 0x88, 0x88, 0x80, //# ####### ##### -0x80, 0x00, 0x48, 0x00, 0x80, 0x04, 0x00, 0x80, 0x00, 0x80, //# $# # $ # # -0x80, 0x04, 0x00, 0x40, 0x04, 0x08, 0x04, 0x04, 0x00, 0x80, //# $ $ $ # $ $ # -0x88, 0x40, 0x40, 0x00, 0x80, 0x28, 0x04, 0x00, 0x00, 0x80, //##$ $ # @# $ # -0x80, 0x04, 0x08, 0x88, 0x88, 0x88, 0x88, 0x88, 0x08, 0x80, //# $ ########### ## -0x80, 0x80, 0x00, 0x81, 0x11, 0x11, 0x11, 0x80, 0x48, 0x00, //# # #.......# $# -0x80, 0x88, 0x00, 0x80, 0x11, 0x11, 0x11, 0x80, 0x08, 0x00, //# ## # ......# # -0x80, 0x80, 0x00, 0x41, 0x11, 0x11, 0x11, 0x14, 0x08, 0x00, //# # $........$ # -0x80, 0x80, 0x40, 0x81, 0x11, 0x10, 0x11, 0x80, 0x08, 0x00, //# # $ #.... ..# # -0x80, 0x04, 0x04, 0x88, 0x88, 0x48, 0x88, 0x80, 0x48, 0x00, //# $ $####$#### $# -0x80, 0x40, 0x00, 0x88, 0x80, 0x40, 0x00, 0x40, 0x08, 0x80, //# $ ### $ $ ## -0x80, 0x40, 0x00, 0x00, 0x40, 0x40, 0x04, 0x00, 0x00, 0x80, //# $ $ $ $ # -0x88, 0x08, 0x88, 0x88, 0x80, 0x40, 0x88, 0x88, 0x80, 0x80, //## ###### $ ##### # -0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, //# # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################### -//Level: 365 -0x14, 0x12,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x80, 0x88, 0x88, 0x88, 0x00, 0x00, // ####### ###### -0x08, 0x80, 0x00, 0x00, 0x88, 0x80, 0x00, 0x08, 0x00, 0x00, // ## ### # -0x08, 0x00, 0x88, 0x80, 0x00, 0x80, 0x44, 0x08, 0x88, 0x00, // # ### # $$ ### -0x08, 0x08, 0x02, 0x08, 0x00, 0x80, 0x04, 0x00, 0x08, 0x00, // # # @ # # $ # -0x08, 0x08, 0x44, 0x48, 0x08, 0x88, 0x84, 0x88, 0x08, 0x88, // # #$$$# ####$## ### -0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x11, 0x18, //## $ #...# -0x80, 0x08, 0x48, 0x48, 0x80, 0x08, 0x00, 0x08, 0x11, 0x18, //# #$#$## # #...# -0x80, 0x80, 0x04, 0x00, 0x80, 0x80, 0x88, 0x08, 0x11, 0x18, //# # $ # # ## #...# -0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x08, 0x11, 0x18, //# # # # #...# -0x80, 0x08, 0x44, 0x48, 0x80, 0x84, 0x00, 0x08, 0x11, 0x18, //# #$$$## #$ #...# -0x88, 0x00, 0x00, 0x00, 0x00, 0x04, 0x48, 0x88, 0x11, 0x18, //## $$###...# -0x08, 0x08, 0x48, 0x48, 0x80, 0x84, 0x00, 0x00, 0x11, 0x18, // # #$#$## #$ ...# -0x08, 0x08, 0x00, 0x00, 0x80, 0x80, 0x40, 0x00, 0x11, 0x18, // # # # # $ ...# -0x08, 0x08, 0x00, 0x00, 0x80, 0x80, 0x08, 0x88, 0x88, 0x88, // # # # # ####### -0x08, 0x08, 0x44, 0x48, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, // # #$$$## # # -0x08, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, // # #### -0x08, 0x88, 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ### ### -0x00, 0x08, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // ###### -//Level: 366 -0x0E, 0x10,//Size x and y -0x00, 0x00, 0x00, 0x88, 0x80, 0x00, 0x00, // ### -0x08, 0x88, 0x88, 0x82, 0x88, 0x88, 0x80, // ######@##### -0x08, 0x11, 0x11, 0x11, 0x11, 0x11, 0x80, // #..........# -0x88, 0x15, 0x55, 0x55, 0x55, 0x51, 0x88, //##.********.## -0x81, 0x15, 0x11, 0x11, 0x11, 0x51, 0x18, //#..*......*..# -0x81, 0x15, 0x15, 0x55, 0x51, 0x51, 0x18, //#..*.****.*..# -0x88, 0x88, 0x88, 0x11, 0x88, 0x88, 0x88, //######..###### -0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // # # -0x08, 0x04, 0x04, 0x44, 0x40, 0x40, 0x80, // # $ $$$$ $ # -0x08, 0x44, 0x40, 0x00, 0x04, 0x44, 0x80, // #$$$ $$$# -0x08, 0x00, 0x04, 0x44, 0x40, 0x00, 0x80, // # $$$$ # -0x08, 0x40, 0x40, 0x00, 0x04, 0x04, 0x80, // #$ $ $ $# -0x88, 0x00, 0x04, 0x44, 0x40, 0x00, 0x88, //## $$$$ ## -0x80, 0x44, 0x40, 0x00, 0x04, 0x44, 0x08, //# $$$ $$$ # -0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x08, //# # # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //############## -//Level: 367 -0x14, 0x10,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -0x81, 0x18, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, //#..# # # -0x81, 0x40, 0x04, 0x00, 0x84, 0x40, 0x04, 0x88, 0x04, 0x88, //#.$ $ #$$ $## $## -0x81, 0x48, 0x00, 0x88, 0x80, 0x08, 0x80, 0x88, 0x00, 0x08, //#.$# ### ## ## # -0x80, 0x08, 0x04, 0x08, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, //# # $ # $$ $ # -0x80, 0x88, 0x80, 0x08, 0x08, 0x00, 0x84, 0x00, 0x88, 0x88, //# ### # # #$ #### -0x80, 0x08, 0x80, 0x80, 0x40, 0x00, 0x82, 0x08, 0x00, 0x08, //# ## # $ #@ # # -0x80, 0x40, 0x00, 0x04, 0x00, 0x88, 0x18, 0x80, 0x04, 0x08, //# $ $ ##.## $ # -0x80, 0x08, 0x04, 0x80, 0x48, 0x04, 0x00, 0x00, 0x08, 0x88, //# # $# $# $ ### -0x80, 0x08, 0x00, 0x80, 0x08, 0x00, 0x08, 0x88, 0x00, 0x08, //# # # # ### # -0x80, 0x08, 0x88, 0x88, 0x88, 0x80, 0x80, 0x00, 0x00, 0x08, //# ######## # # -0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x18, 0x18, //# # #.#.# -0x88, 0x48, 0x88, 0x88, 0x88, 0x84, 0x80, 0x00, 0x11, 0x18, //##$########$# ...# -0x80, 0x00, 0x01, 0x50, 0x08, 0x00, 0x00, 0x88, 0x18, 0x18, //# .* # ##.#.# -0x80, 0x15, 0x11, 0x15, 0x00, 0x04, 0x00, 0x11, 0x11, 0x18, //# .*...* $ .....# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, //#################### -//Level: 368 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x81, 0x00, 0x21, 0x88, //#. @.## -0x80, 0x04, 0x80, 0x88, //# $# ## -0x80, 0x80, 0x41, 0x08, //# # $. # -0x80, 0x00, 0x48, 0x08, //# $# # -0x88, 0x88, 0x00, 0x08, //#### # -0x88, 0x88, 0x88, 0x88, //######## -//Level: 369 -0x0B, 0x09,//Size x and y -0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // ######### -0x88, 0x80, 0x00, 0x80, 0x00, 0x80, //### # # -0x80, 0x04, 0x10, 0x50, 0x40, 0x80, //# $. * $ # -0x80, 0x81, 0x81, 0x81, 0x80, 0x80, //# #.#.#.# # -0x80, 0x40, 0x42, 0x40, 0x40, 0x80, //# $ $@$ $ # -0x80, 0x81, 0x81, 0x81, 0x80, 0x80, //# #.#.#.# # -0x80, 0x40, 0x50, 0x14, 0x00, 0x80, //# $ * .$ # -0x80, 0x00, 0x88, 0x88, 0x88, 0x80, //# ####### -0x88, 0x88, 0x80, 0x00, 0x00, 0x00, //##### -//Level: 370 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x80, 0x01, 0x08, //### . # -0x88, 0x05, 0x08, 0x08, //## * # # -0x88, 0x01, 0x40, 0x08, //## .$ # -0x88, 0x00, 0x84, 0x88, //## #$## -0x88, 0x80, 0x20, 0x88, //### @ ## -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 371 -0x08, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, //######## -0x80, 0x11, 0x88, 0x88, //# ..#### -0x80, 0x40, 0x00, 0x08, //# $ # -0x80, 0x08, 0x48, 0x08, //# #$# # -0x80, 0x20, 0x14, 0x08, //# @ .$ # -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -0x88, 0x88, 0x88, 0x88, //######## -//Level: 372 -0x0B, 0x08,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //########## -0x80, 0x00, 0x00, 0x00, 0x08, 0x80, //# ## -0x80, 0x48, 0x48, 0x48, 0x42, 0x80, //# $#$#$#$@# -0x81, 0x01, 0x41, 0x11, 0x41, 0x80, //#. .$...$.# -0x81, 0x01, 0x41, 0x11, 0x41, 0x80, //#. .$...$.# -0x80, 0x48, 0x48, 0x48, 0x48, 0x80, //# $#$#$#$## -0x80, 0x00, 0x00, 0x00, 0x08, 0x00, //# # -0x88, 0x88, 0x88, 0x88, 0x88, 0x00, //########## -//Level: 373 -0x0F, 0x0D,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -0x80, 0x01, 0x11, 0x11, 0x11, 0x11, 0x00, 0x80, //# ......... # -0x80, 0x44, 0x44, 0x44, 0x44, 0x41, 0x40, 0x80, //# $$$$$$$$$.$ # -0x80, 0x41, 0x11, 0x11, 0x11, 0x41, 0x40, 0x80, //# $.......$.$ # -0x80, 0x41, 0x44, 0x44, 0x41, 0x41, 0x40, 0x80, //# $.$$$$$.$.$ # -0x80, 0x41, 0x41, 0x11, 0x41, 0x41, 0x40, 0x80, //# $.$...$.$.$ # -0x80, 0x41, 0x41, 0x45, 0x41, 0x41, 0x42, 0x80, //# $.$.$*$.$.$@# -0x80, 0x41, 0x41, 0x41, 0x11, 0x41, 0x40, 0x80, //# $.$.$...$.$ # -0x80, 0x41, 0x41, 0x44, 0x44, 0x41, 0x40, 0x80, //# $.$.$$$$$.$ # -0x80, 0x41, 0x41, 0x11, 0x11, 0x11, 0x40, 0x80, //# $.$.......$ # -0x80, 0x41, 0x44, 0x44, 0x44, 0x44, 0x40, 0x80, //# $.$$$$$$$$$ # -0x80, 0x01, 0x11, 0x11, 0x11, 0x11, 0x00, 0x80, //# ......... # -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //############### -//Level: 374 -0x11, 0x12,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, // ######### -0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, // # # -0x00, 0x08, 0x80, 0x40, 0x40, 0x40, 0x88, 0x00, 0x00, // ## $ $ $ ## -0x88, 0x88, 0x00, 0x04, 0x04, 0x40, 0x08, 0x88, 0x80, //#### $ $$ #### -0x80, 0x00, 0x80, 0x40, 0x04, 0x00, 0x80, 0x00, 0x80, //# # $ $ # # -0x80, 0x44, 0x08, 0x04, 0x04, 0x08, 0x04, 0x40, 0x80, //# $$ # $ $ # $$ # -0x80, 0x00, 0x40, 0x84, 0x04, 0x80, 0x04, 0x00, 0x80, //# $ #$ $# $ # -0x80, 0x04, 0x00, 0x04, 0x04, 0x00, 0x00, 0x40, 0x80, //# $ $ $ $ # -0x80, 0x40, 0x40, 0x80, 0x40, 0x80, 0x44, 0x00, 0x80, //# $ $ # $ # $$ # -0x80, 0x40, 0x08, 0x88, 0x08, 0x88, 0x00, 0x40, 0x80, //# $ ### ### $ # -0x80, 0x00, 0x88, 0x08, 0x08, 0x08, 0x80, 0x00, 0x80, //# ## # # ## # -0x88, 0x88, 0x80, 0x08, 0x28, 0x00, 0x88, 0x88, 0x80, //##### #@# ##### -0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x00, 0x88, 0x08, 0x80, 0x00, 0x00, 0x00, // ## ## -0x88, 0x88, 0x88, 0x81, 0x01, 0x88, 0x88, 0x88, 0x80, //#######. .####### -0x81, 0x11, 0x11, 0x10, 0x10, 0x11, 0x11, 0x11, 0x80, //#...... . ......# -0x81, 0x11, 0x11, 0x11, 0x10, 0x11, 0x11, 0x11, 0x80, //#........ ......# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //################# -//Level: 375 -0x15, 0x11,//Size x and y -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80, //##################### -0x81, 0x00, 0x81, 0x00, 0x81, 0x41, 0x80, 0x01, 0x80, 0x01, 0x80, //#. #. #.$.# .# .# -0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, //# # # # # # # -0x80, 0x01, 0x80, 0x00, 0x10, 0x40, 0x10, 0x00, 0x81, 0x00, 0x80, //# .# . $ . #. # -0x80, 0x80, 0x01, 0x84, 0x40, 0x80, 0x44, 0x81, 0x00, 0x80, 0x80, //# # .#$$ # $$#. # # -0x80, 0x01, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x81, 0x00, 0x80, //# .# # $ # #. # -0x80, 0x80, 0x00, 0x84, 0x40, 0x80, 0x44, 0x80, 0x00, 0x80, 0x80, //# # #$$ # $$# # # -0x80, 0x01, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x81, 0x00, 0x80, //# .# # $ # #. # -0x82, 0x80, 0x00, 0x84, 0x44, 0x54, 0x44, 0x80, 0x00, 0x80, 0x80, //#@# #$$$*$$$# # # -0x80, 0x01, 0x10, 0x00, 0x80, 0x40, 0x80, 0x00, 0x11, 0x00, 0x80, //# .. # $ # .. # -0x80, 0x80, 0x00, 0x84, 0x40, 0x80, 0x44, 0x80, 0x00, 0x80, 0x80, //# # #$$ # $$# # # -0x80, 0x01, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x81, 0x00, 0x80, //# .# # $ # #. # -0x80, 0x80, 0x01, 0x84, 0x40, 0x80, 0x44, 0x81, 0x00, 0x80, 0x80, //# # .#$$ # $$#. # # -0x80, 0x01, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x81, 0x00, 0x80, //# .# # $ # #. # -0x80, 0x80, 0x00, 0x84, 0x00, 0x80, 0x04, 0x80, 0x00, 0x80, 0x80, //# # #$ # $# # # -0x81, 0x00, 0x81, 0x00, 0x81, 0x41, 0x80, 0x01, 0x80, 0x01, 0x80, //#. #. #.$.# .# .# -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x80 //##################### -}; -#else -#define SOKOBAN_LEVELS 1 -const unsigned char Sokoban_Levels[] = { -//Level: 1 -0x13, 0x0B,//Size x and y -0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // ##### -0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // # # -0x00, 0x00, 0x84, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // #$ # -0x00, 0x88, 0x80, 0x04, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, // ### $## -0x00, 0x80, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // # $ $ # -0x88, 0x80, 0x80, 0x88, 0x08, 0x00, 0x08, 0x88, 0x88, 0x80, //### # ## # ###### -0x80, 0x00, 0x80, 0x88, 0x08, 0x88, 0x88, 0x00, 0x11, 0x80, //# # ## ##### ..# -0x80, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x80, //# $ $ ..# -0x88, 0x88, 0x80, 0x88, 0x80, 0x82, 0x88, 0x00, 0x11, 0x80, //##### ### #@## ..# -0x00, 0x00, 0x80, 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x80, // # ######### -0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, // ####### -}; -#endif -#endif diff --git a/boop/trunk/games/tic_tac_toe.c b/boop/trunk/games/tic_tac_toe.c deleted file mode 100644 index 8d617ac..0000000 --- a/boop/trunk/games/tic_tac_toe.c +++ /dev/null @@ -1,375 +0,0 @@ -/* - tic_tac_toe.c - game - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "tic_tac_toe.h" - -void GameTicTacToe(void) -{ - BYTE Color; - BYTE Mode; - int i; - int k; - BOOL ComputerWon; - BOOL PlayerWon; - BYTE G[2][9];//GameArray [0=Computer / 1=Player][Game fields] - BOOL GameIsRunning = false; - BYTE Moves = 0; - int Pos; - - Color = LCD_COLOR_B; - Mode = DRAW_PUT; - -again: - //New game - //Init the display - lcd_fill(0);//Clr screen - - //Title - set_font(SMALLFONT); - draw_string(0, 0, "TicTacToe", Color, Mode); - - //Grid - draw_block(16, 16+30, 96, 3, Color, Mode); - draw_block(16, 16+30+3+30, 96, 3, Color, Mode); - draw_block(16+30, 16, 3, 96, Color, Mode); - draw_block(16+30+3+30, 16, 3, 96, Color, Mode); - - //Reset game field - for(k=0; k<2; k++) - { - for(i=0; i<9; i++) - { - G[k][i] = 0; - } - } - - Moves = 0; - - GameIsRunning = true; - - while(1) - { - Pos = -1; - if(KEY_1){Pos = 0;} - if(KEY_2){Pos = 1;} - if(KEY_3){Pos = 2;} - if(KEY_4){Pos = 3;} - if(KEY_5){Pos = 4;} - if(KEY_6){Pos = 5;} - if(KEY_7){Pos = 6;} - if(KEY_8){Pos = 7;} - if(KEY_9){Pos = 8;} - - if((Pos >= 0) && (Pos <= 8)) - { - if(GameIsRunning) - { - if((G[0][Pos] + G[1][Pos]) == 0) - { - //field is empty - G[1][Pos] = 1; - Moves++; - - if(Moves < 9) - { - //Moves left - if(!GameTicTacToe_IsSolved(G, &ComputerWon, &PlayerWon)) - { - //Not solved -> computer move - GameTicTacToe_ComputerMove(G); - Moves++; - } - } - GameTicTacToe_DrawGameField(G); - } - } - } - - //Is solved? - GameTicTacToe_IsSolved(G, &ComputerWon, &PlayerWon); - if(ComputerWon) - { - draw_string(0, LCD_SIZE_Y - (8*4), "Computer hat gewonnen", Color, Mode); - GameIsRunning = false; - } - else - { - if(PlayerWon) - { - draw_string(0, LCD_SIZE_Y - (8*4), "Spieler hat gewonnen", Color, Mode); - GameIsRunning = false; - } - else - { - if(Moves == 9) - { - draw_string(0, LCD_SIZE_Y - (8*4), "Unentschieden", Color, Mode); - GameIsRunning = false; - } - } - } - - //Footer - if(Moves > 0) - { - draw_string(0, LCD_SIZE_Y - (8*3), "0", Color, Mode); - draw_string(32, LCD_SIZE_Y - (8*3), "Neues Spiel", Color, Mode); - draw_string(0, LCD_SIZE_Y - (8*2), "Exit", Color, Mode); - draw_string(32, LCD_SIZE_Y - (8*2), "Spiel beenden", Color, Mode); - } - else - { - draw_block(0, LCD_SIZE_Y - (8*2), LCD_SIZE_X, 8, Color, DRAW_ERASE); - } - - if(GameIsRunning) - { - draw_string(0, LCD_SIZE_Y - 8, "1-9", Color, Mode); - draw_string(32, LCD_SIZE_Y - 8, "Feld waehlen", Color, Mode); - } - else - { - draw_block(0, LCD_SIZE_Y - 8, LCD_SIZE_X, 8, Color, DRAW_ERASE); - } - waitKeyUpDown(); - if(KEY_0) goto again; - if(KEY_Exit) return; - } -} - -void GameTicTacToe_ComputerMove(BYTE G[2][9]) -{ - int Pos; - BYTE TempG[2][9]; - BOOL ComputerWon; - BOOL PlayerWon; - - for(Pos=0; Pos<9; Pos++) - { - TempG[0][Pos] = G[0][Pos]; - TempG[1][Pos] = G[1][Pos]; - } - - //1: Check if the computer can win the game with the next move - for(Pos=0; Pos<9; Pos++) - { - if((G[0][Pos] + G[1][Pos]) == 0) - { - //Free pos - TempG[0][Pos] = 1;//Try this move - GameTicTacToe_IsSolved(TempG, &ComputerWon, &PlayerWon); - if(ComputerWon) - { - G[0][Pos] = 1;//Do the move - return; - } - TempG[0][Pos] = 0;//Undo the try - } - } - - //2: Check if the computer can prohibit the player to win the game with the next move - for(Pos=0; Pos<9; Pos++) - { - if((G[0][Pos] + G[1][Pos]) == 0) - { - //Free pos - TempG[1][Pos] = 1;//Try this move - GameTicTacToe_IsSolved(TempG, &ComputerWon, &PlayerWon); - if(PlayerWon) - { - G[0][Pos] = 1;//Do the move - return; - } - TempG[1][Pos] = 0;//Undo the try - } - } - - //The following strategy is not implemented to allow the player to win: - //3: Fork: threaten a win with two possible completions in two ways - //4: Block Fork 1: if there is a configuration where the opponent can fork, create two in a row to force a block - //5: Block Fork 2: if there is a configuration where the opponent can fork, block that fork - - //6: Try to play the centre - if((G[0][4] + G[1][4]) == 0) - { - G[0][4] = 1; - return; - } - - //7: If the Player is in a corner then try to play the opposite corner - if(((G[0][0] + G[1][0]) == 0) && (G[1][8])) - { - //Corner 0 is free and player is in corner 8 - G[0][0] = 1; - return; - } - if(((G[0][2] + G[1][2]) == 0) && (G[1][6])) - { - //Corner 2 is free and player is in corner 6 - G[0][2] = 1; - return; - } - if(((G[0][6] + G[1][6]) == 0) && (G[1][2])) - { - //Corner 6 is free and player is in corner 2 - G[0][6] = 1; - return; - } - if(((G[0][8] + G[1][8]) == 0) && (G[1][0])) - { - //Corner 8 is free and player is in corner 0 - G[0][8] = 1; - return; - } - - //8: Try to play an free corner - Pos = 0; - if((G[0][Pos] + G[1][Pos]) == 0) - { - G[0][Pos] = 1; - return; - } - Pos = 2; - if((G[0][Pos] + G[1][Pos]) == 0) - { - G[0][Pos] = 1; - return; - } - Pos = 6; - if((G[0][Pos] + G[1][Pos]) == 0) - { - G[0][Pos] = 1; - return; - } - Pos = 8; - if((G[0][Pos] + G[1][Pos]) == 0) - { - G[0][Pos] = 1; - return; - } - - //9: Play on a free pos - for(Pos=0; Pos<9; Pos++) - { - if((G[0][Pos] + G[1][Pos]) == 0) - { - //Free pos - G[0][Pos] = 1;//Do the move - return; - } - } -} - -BOOL GameTicTacToe_IsSolved(BYTE G[2][9], BOOL *pComputerWon, BOOL *pPlayerWon) -{ - //Return true=GameIsSolved - int k; - BYTE Result[2]; - - *pComputerWon = false; - *pPlayerWon = false; - - //Is solved? - Result[0] = 0; - Result[1] = 0; - for(k=0; k<2; k++) - { - Result[k] |= 1 << (G[k][0] + G[k][1] + G[k][2]);//Row 1 - Result[k] |= 1 << (G[k][3] + G[k][4] + G[k][5]);//Row 2 - Result[k] |= 1 << (G[k][6] + G[k][7] + G[k][8]);//Row 3 - - Result[k] |= 1 << (G[k][0] + G[k][3] + G[k][6]);//Column 1 - Result[k] |= 1 << (G[k][1] + G[k][4] + G[k][7]);//Column 2 - Result[k] |= 1 << (G[k][2] + G[k][5] + G[k][8]);//Column 3 - - Result[k] |= 1 << (G[k][0] + G[k][4] + G[k][8]);//Diagonal - Result[k] |= 1 << (G[k][2] + G[k][4] + G[k][6]);//Diagonal - } - - if(Result[0] & (1 << 3)) - { - *pComputerWon = true; - return true;//Solved - } - if(Result[1] & (1 << 3)) - { - *pPlayerWon = true; - return true;//Solved - } - - return false;//Not solved -} - -void GameTicTacToe_DrawGameField(BYTE G[2][9]) -{ - int Pos; - int x; - int y; - BYTE Color; - BYTE Mode; - - Color = LCD_COLOR_B; - Mode = DRAW_PUT; - - for(Pos=0; Pos<9; Pos++) - { - -// x = Pos % 3; -// y = Pos / 3; - y = 0; - x = Pos; - while(x >= 3) - { - x -= 3; - y++; - } - - if(G[0][Pos]) - { - //Computer (O) - draw_disc(16+14 + (x*33), 16+14 + (y*33), 11, Color, Mode); - draw_disc(16+14 + (x*33), 16+14 + (y*33), 8, Color, DRAW_XOR); - - } - else - { - if(G[1][Pos]) - { - //Player (X) -draw_line(16+3 + (x*33), 16+3 + (y*33)+2, 16+3 + (x*33) + 23-2, 16+3 + (y*33) + 23, Color, Mode); -draw_line(16+3 + (x*33), 16+3 + (y*33)+1, 16+3 + (x*33) + 23-1, 16+3 + (y*33) + 23, Color, Mode); -draw_line(16+3 + (x*33), 16+3 + (y*33), 16+3 + (x*33) + 23, 16+3 + (y*33) + 23, Color, Mode); -draw_line(16+3 + (x*33)+1, 16+3 + (y*33), 16+3 + (x*33) + 23, 16+3 + (y*33) + 23-1, Color, Mode); -draw_line(16+3 + (x*33)+2, 16+3 + (y*33), 16+3 + (x*33) + 23, 16+3 + (y*33) + 23-2, Color, Mode); - - -draw_line(16+3-1+(x*33)+2, 16+3+(y*33)+23+1, 16+3+(x*33)+23, 16+3 + (y*33)+2, Color, Mode); -draw_line(16+3-1+(x*33)+1, 16+3+(y*33)+23+1, 16+3+(x*33)+23, 16+3 + (y*33)+1, Color, Mode); -draw_line(16+3-1+(x*33), 16+3+(y*33)+23+1, 16+3+(x*33)+23, 16+3 + (y*33), Color, Mode); -draw_line(16+3-1+(x*33), 16+3+(y*33)+23+1-1, 16+3+(x*33)+23-1, 16+3 + (y*33), Color, Mode); -draw_line(16+3-1+(x*33), 16+3+(y*33)+23+1-2, 16+3+(x*33)+23-2, 16+3 + (y*33), Color, Mode); - - } - } - } -} - - diff --git a/boop/trunk/games/tic_tac_toe.h b/boop/trunk/games/tic_tac_toe.h deleted file mode 100644 index 1d57f18..0000000 --- a/boop/trunk/games/tic_tac_toe.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - tic_tac_toe.h - game - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef TIC_TAC_TOE_H -#define TIC_TAC_TOE_H - -#include "../global.h" - -void GameTicTacToe(void); -void GameTicTacToe_DrawGameField(BYTE G[2][9]); -void GameTicTacToe_ComputerMove(BYTE G[2][9]); -BOOL GameTicTacToe_IsSolved(BYTE G[2][9], BOOL *pComputerWon, BOOL *pPlayerWon); - -#endif diff --git a/boop/trunk/global.c b/boop/trunk/global.c deleted file mode 100644 index 7b218db..0000000 --- a/boop/trunk/global.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - global.c - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "rf.h" -#include "global.h" - -#define debugbuffersize 50 -unsigned char debugoutbuf [debugbuffersize]; - -void *memcpy(void *dest,void *src,int count) -{ - char *tmp = (char *) dest, *s = (char *) src; - - while (count--) - *tmp++ = *s++; - - return dest; -} - -int memcmp(const void * cs,const void * ct,int count) -{ - const unsigned char *su1, *su2; - signed char res = 0; - - for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--) - if ((res = *su1 - *su2) != 0) - break; - return res; -} - -unsigned char GetHWversion (void) -{ - if(((IOPIN2 >> 28) & 3) == 3) - return(((((IOPIN0 >> 5) & 1) << 4) | (((IOPIN2 >> 30) & 1) << 3) | (((IOPIN2 >> 16) & 1) << 2) | 3)); - return(((IOPIN2 >> 27) & 2) + ((IOPIN2 >> 29) & 1) + (((IOPIN1 >> 23) & 7) << 2)); -} - -int puts (const char* string) -{ - struct RFendpoint_* cur_ep; - volatile unsigned char i; - - cur_ep = openEP(debugoutbuf,0, packet_test); - - if (cur_ep) - { - for (i=0; (ibuffer[i] = string[i]; - } - - cur_ep->buffer[i] = 0; - cur_ep->bufferlen = i+1; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata; - - - RF_changestate(RFtx); - // wait until all date are sent - while(cur_ep->flags & EPnewdata); - closeEP(cur_ep); - } - return 1; -} - -/* - * The width of the CRC calculation and result. - * Modify the typedef for a 16 or 32-bit CRC standard. - */ - -#define CRC_POLYNOMIAL 0x8005 -#define CRC_WIDTH (8 * sizeof(crc)) -#define CRC_TOPBIT (1 << (CRC_WIDTH - 1)) - -crc CRCs(char* message) -{ - crc remainder = 0; - int byte; - unsigned char bit; - - /* - * Perform modulo-2 division, a byte at a time. - */ - for (byte = 0; message[byte]; ++byte) - { - /* - * Bring the next byte into the remainder. - */ - remainder ^= (message[byte] << (CRC_WIDTH - 8)); - - /* - * Perform modulo-2 division, a bit at a time. - */ - for (bit = 8; bit > 0; --bit) - { - /* - * Try to divide the current data bit. - */ - if (remainder & CRC_TOPBIT) - { - remainder = (remainder << 1) ^ CRC_POLYNOMIAL; - } - else - { - remainder = (remainder << 1); - } - } - } - - /* - * The final remainder is the CRC result. - */ - return (remainder); - -} /* crcSlow() */ - diff --git a/boop/trunk/global.h b/boop/trunk/global.h deleted file mode 100644 index 665747c..0000000 --- a/boop/trunk/global.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - global.h - Copyright (C) 2007 Colibri - - 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 3 of the License, 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, see . -*/ - -#ifndef GLOBAL_H -#define GLOBAL_H - -//Uncomment if you want compile with demo sound -//#define WITH_SOUND - -// Set appropriate feature flags -#define FF_UART_REDIRECT 1 -#define FF_LARGE_IDLE_CLOCK 0 -#define FF_LARGE_MENU 1 -#define FF_ICON_TRANSPARENT 1 // enable 3 BitPerPixel icons support - -typedef unsigned char BOOL; -typedef unsigned char BYTE; -typedef unsigned short WORD; -typedef unsigned long DWORD; - -#define false 0 -#define true 1 - -#ifndef NULL -#define NULL 0 -#endif - -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#define min(a,b) (((a) < (b)) ? (a) : (b)) - -#ifndef _BV -#define _BV(bit) (1 << (bit)) -#endif - -#define NUM_OF_ELEMENTS(x) sizeof(x)/sizeof(x[0]) - -#define SPEED_30 0 -#define SPEED_60 1 - -// Execute code in locked sequence -#define INT_LOCK(x) {unsigned cpsr = disableIRQ (); {x;} restoreIRQ (cpsr);} - -/** Let the LPC2200 sleep until the next IRQ -* -* This function tries to enter the sleep mode and stays -* there until the next interrupt wakes up the CPU. -* If that is not possible, the function returns immediately. -*/ -extern void cpu_idle (void); - -#define SYS_NOIDLE 0x08 // No Idle Mode -#define SYS_NOPDOWN 0x10 // No Power Down -#define SYS_IR 0x20 -#define SYS_KEY 0x40 -#define SYS_TURBO 0x80 - -#include -#define printd(...) printf(__VA_ARGS__) -#define debugbuffersize 50 -extern unsigned char debugoutbuf [debugbuffersize]; - -#ifndef __MAIN_C__ -extern char sysInfo; -#endif /* __MAIN_C__ */ - -extern unsigned char debugoutbuf []; - -#define PCON_IDLE 0x01 -#define PCON_PDOWN 0x02 - -typedef unsigned short crc; - -void *memcpy(void *dest,void *src,int count); -int memcmp(const void * cs,const void * ct,int count); -unsigned char GetHWversion(void); -int puts(const char* string); -crc CRCs(char* message); - -#endif diff --git a/boop/trunk/gui/Cross_2bpp.bmp b/boop/trunk/gui/Cross_2bpp.bmp deleted file mode 100644 index 96e496c8302d7b625942fbe6509572c5a18e1b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2406 zcma)&u~9@Z3`CERgqVN=2#F|woRAhM?$<$I$FrBy?MSlup83A@YV|DN$LIIsWv+Mj zSH73O@8R-1{Wt1APx_|8c0IQgKbKvmj^p^6>vsA5S3ZGdb1Ber@BdE`E`V$}5FNuH zLerCCnPO)j%IqN%Q`JpgfwO~%ndePk?x9P`}U~TcJeYK<07ic zwEqnGRMo@lAEG2a9QF{j`=!!U@!9=Y2Oxu~HHZ_gW5wb-6U|CjlX1vIj)ApQN-fTD z9Wl%sVEiT~P8}mS5{aM|akMLzoN<}0K!vd4kobvEo!TNAj|~wIm+39yyF-`f6Q^a; z4ksXqsnUi?04(h_vtrgENn(N$M9erkSuyfdSrQdU3sq<8iZ)3&ssvaZ{nF62Du+EX zNq}0>NVe^ooYJasBKrv`i3uc4vd6BN8=&~{1Vp;AWp47`9@COXgHkmyQ_Kmi_PkHh aYQim~H5rUNtD@w`6WaDOrpRZKWPSno`4`Io diff --git a/boop/trunk/gui/Cross_t_3bpp_t.bmp b/boop/trunk/gui/Cross_t_3bpp_t.bmp deleted file mode 100644 index 7a8bffe072be5fec04f0193c5346d0346a7a4143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2406 zcmb7=u~oz{5JXK#LQFsbghUiTPDl$B=Q`-?_-J5m-ma`OdS~BgcJ^!KxA)KcZLC+` z&pc1R&)xPo{1@t94|;~d>#|+W{1iWvTx9lr{}}7<@aw;P0*m%iB7E(?rOuFCz&vjF0v_?mc447n%0VXK4ytFc-bPMLEmc>D^uJ?c`-TlfqSH zjxJKF`jY*FKqiR~hqnc09x6>$;oSBC$Y5#>D_9oYanC ziZ*3p_A$(nC1~n~BTtnj(Sfv3O{R{RCJDPrfW$bE;Z04NsK6+zD z!8`bUP#1v1d+(gH)}BCdgTtaRTrlJ$Rf7#06b~Y;L=dKEqIK68B#5xY5y#gEu5n$b pQjvutFDv>bMGF4)%Lm=QFDFtQ=gRtSmyAdSFaMz%ruXOnJpf%w4HEzW diff --git a/boop/trunk/gui/FR_2bpp.bmp b/boop/trunk/gui/FR_2bpp.bmp deleted file mode 100644 index d088a4784cf2b65fe0c8a2aabf943f6da76d6ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmaKoF%m){5JT}-Hd_B9cmhicdrL0KIsU!yLDpr3na>PtHpvEt_vf{xzMh;9_RaPs z?VZ1(A9w9eaMW5$DLLmK@mJwd@gxcgJTpJec8gQWRvWQBB?=mo$s>l( z1*nJ>F?@!WGW%ji#IujyYcZeLL3+IPgbVFVNJxw1D@YzYQP% ze*OBD$h!>x>^U3r&xd&MgESvJA3rN!0sP>W-mP5yYeS@Y1&;4#%fsfyZC1D3$1g+t zI)J;hGq~u$;0d_OC*aS~)?+R9aHh+Ft+!}i;V8RQ4)N6A>fxxOudmZ}fMEWo8OPQK zN!wFgm|KdjSNV@B=oRuUWJnq{{R+r7<~K)IA_pUPcCFlv<8{lHezy43v zw>wK{UYk4z)W)r)n+{2DsyBoeInt+=`l(OA6a;s6dx-yyZ+S$YZm%|@l-kVI#Agxm z3509&L|EhT)2o}Xl$AmWj{DPu_#AWUYUb8UWtNI&Qs3@E$u%2Q`h81mMw;}&#;T;l+3I`Kd%`^Z6ACqjXEDhf6#OW2Jc)i^jLF8e!H-(yc<%!$2MdP?>_MeDEe5FVp z8%!>}H9=*$pSyy_nWr2zezh*++*X$qvHvz|i`k72{1@M{6;#3OGx;#{X#5nzDXL!q zeSR`foeSq&YE}Gz{#GrCn#->MBA_v{)u z_d1;m)hbG?DUXjVx;;o|>cKeqA_Lm=l^)bjAi(a1!PDYLCAt}XAshiU=*Spku9)K| z$SKm9aTVWYdKar7_FPUU2-fakg1bJD3pKqBj=pkk14JMQ&=sKTjDr)l*P>RdAjxho zgI96YJS3vJYUv)k^argr&eH=awUev`)*svA z+pQ`Z)3g<^RbtM6)M#cr`}!>LPS=2_h?f_AQPH1CY4`nyxS^`HL9ML!8G7uM||z-6rAhsV;@_KJa9m zsM}26!>9A^L=!>ErCrn5<_ma=L93p9uBb~GbZfbaXy-HH_QP!QB}WhTx1#w(S8*9X!caTL;Ke ztIkpzs1b5WTLGVkBqCr3l9RVvoxo|Xh*+%wbxb13X`~j9D5LL*y4AOWTc=SoCG#U?rr5}-02QF0`R0(wk_u03Am8@aVJ-S z5)bK0rK?n9k<5|jTvh(nNSzT)1f?u|RpeL#MVm3NIxoWE-O`4<^?-`V92HfoCd`4H z7d$6&RMv|BE$e*D6x|BD|FKI386?QXDng46#+ z|MBxC|9O;r0_86D@XqP${+~}U{r%`;zV-XBzXCiW!Ra>MHWAZU6aJHR{uNsPZ1l%R zU+?89Zrl6>=bxa7x6n6?bwhpoD~Xpt&jyc*M>4)TB>MmW diff --git a/boop/trunk/gui/Play_2bpp.bmp b/boop/trunk/gui/Play_2bpp.bmp deleted file mode 100644 index 04a5dd2813086ce97a89c9fff3f18035fe16d134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmb`EI}*Y$3`7l88mKt}C!kD0pVF7~IdU)atQDXzvD2U#S@G`kPkAo$Iaxdy@8rev zly0U^`0G_^0z<8}l#+9P3!93L3zH}~%$e*4Zet(@kX8b;Q{pyS9TmPCL_}4J?)1?m t?r<0p9dUU7+bvoVBmpWFP?t|3e+-g!U+kcibEBE$F&NdI2|eLfrrW diff --git a/boop/trunk/gui/Stop_2bpp.bmp b/boop/trunk/gui/Stop_2bpp.bmp deleted file mode 100644 index 8661f98cda0ecbc2633d0fb57e4a94364b074e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmchUyAgmO42IFlMr%iK0!s^fOO|8~_rfm(IL-O!%v}=yM-;=lEv-v2Qzx>|*|;(B z9r`|KCV~=U3?X>$3vuc2sCXO=1q`?iRPo?=G3g`*`O58U&ZL-#N-3<>@)j4P4& diff --git a/boop/trunk/gui/controls.c b/boop/trunk/gui/controls.c deleted file mode 100644 index 539d859..0000000 --- a/boop/trunk/gui/controls.c +++ /dev/null @@ -1,1017 +0,0 @@ -/* - controls.c - GUI controls - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "rtc.h" -#include "controls.h" -#include "lcd.h" -#include "fonty.h" -#include "global.h" -#include "lpc2220.h" -#include "keyboard.h" -#include "backlight.h" -#include "timerfuncs.h" - -#define Cursor_timeout 150 - -FORM* currentform = 0; - -const char string_yes[] = "JA"; -const char string_no[] = "NEIN"; -const char string_ok[] = "OK"; - -const char TXTKey1[] = ".,-+_1@*;:'&"; -const char TXTKey2[] = "abc2ABC"; -const char TXTKey3[] = "def3DEF"; -const char TXTKey4[] = "ghi4GHI"; -const char TXTKey5[] = "jkl5JKL"; -const char TXTKey6[] = "mno6MNO"; -const char TXTKey7[] = "pqrs7PQRS"; -const char TXTKey8[] = "tuv8TUV"; -const char TXTKey9[] = "wxyz9WXYZ"; -const char TXTKey0[] = " 0"; - -const char* const TXTKeys[10] = {TXTKey1,TXTKey2,TXTKey3,TXTKey4,TXTKey5,TXTKey6,TXTKey7,TXTKey8,TXTKey9,TXTKey0}; - -unsigned char msgbox (unsigned char y,unsigned short flags, char *st) -{ - unsigned short textwidth; - unsigned short textheight; - unsigned char width; - unsigned char height; - unsigned char left; - unsigned char x; - unsigned char sel; - - struct bt_ - { - unsigned char cnt; - unsigned char left[3]; - unsigned char top; - unsigned char ret[3]; - char* text[3]; - unsigned char textHeight; - } button; - - textwidth = get_stringwidth(st); - textheight = get_stringheight(st); - - if(textwidth > 120) - width = 124; - else if(textwidth < 54) - width = 60; - else - width = (textwidth | 0x01) + 6; - - button.textHeight = get_stringheight (string_yes); - if ((flags & 0x03) == BC_YesNo) - { - button.cnt = 2; - button.left[0] = 38; - button.ret[0]=BC_Yes; - button.text[0] = (char*)string_yes; - button.left[1] = 65; - button.ret[1]=BC_No; - button.text[1] = (char*)string_no; - button.top = y + textheight +5; - } - else if ((flags & 0x03) == BC_nobuttons) - { - button.cnt = 0; - button.top = 0; - } - else - { - button.cnt = 1; - button.left[0] = 51; - button.ret[0]=BC_OK; - button.text[0] = (char*)string_ok; - button.top = y + textheight +5; - - } - - if(button.cnt) - height = textheight + button.textHeight + 12; - else - height = textheight + 6; - - left = (128-width)>>1; - - draw_block (left,y,width,height, LCD_COLOR_B, DRAW_ERASE); - draw_rect (left,y,width,height,1, LCD_COLOR_B, DRAW_PUT); - draw_rect (left+1,y+1,width-2,height-2,1, LCD_COLOR_DG, DRAW_PUT); - draw_string (left+3,y+3,st, LCD_COLOR_B, DRAW_PUT); - - for (x=0;x>1), button.top+2, - button.text[x], LCD_COLOR_B, DRAW_PUT); - } - - sel = 0; - if ((flags & 0x0C) == BC_DefaultButton2) - { - if(button.cnt>1) - sel=1; - } - else if ((flags & 0x0C) == BC_DefaultButton3) - { - if(button.cnt>2) - sel=2; - } - - setBacklight(BL_AUTO); - while(KEY_OK) {}; - while(!KEY_OK && button.cnt) - { - draw_block (button.left[sel]+1, button.top+1, 23, button.textHeight, LCD_COLOR_B, DRAW_XOR); - waitKeyUpDown(); - draw_block (button.left[sel]+1, button.top+1, 23, button.textHeight, LCD_COLOR_B, DRAW_XOR); - if(KEY_Left) - { - if(sel>0) - sel--; - } - if(KEY_Right) - { - if(selfont); - if(label->type & BC_Disabled) - c=2; - else - c=3; - - if(sel) { - draw_block (label->left,label->top,label->width,label->height, LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - draw_string(label->left+1,label->top+1,label->caption, c, m); - -} - -void button_draw (BUTTON* button, unsigned char sel) -{ - unsigned char c; - unsigned char cleft; - unsigned char ctop; - - set_font (button->font); - if(button->type & BC_Disabled) - c=2; - else - c=3; - - draw_block(button->left,button->top,button->width,button->height,3,DRAW_ERASE); - draw_rect(button->left,button->top,button->width,button->height,1,c,DRAW_PUT); - draw_rect(button->left+1,button->top+1,button->width-2,button->height-2,1,c-1,DRAW_PUT); - - cleft = ((button->width - get_stringwidth(button->caption))>>1) +button->left; - ctop = ((button->height - get_stringheight(button->caption)+1)>>1) +button->top; - - if (sel == 2) - { - draw_block (button->left+2,button->top+2,button->width-4,button->height-4, LCD_COLOR_B, DRAW_PUT); - draw_string(cleft,ctop,button->caption, c, DRAW_ERASE); - } - else if (sel) - { - draw_block(button->left+2,button->top+2,button->width-4,button->height-4,1,DRAW_PUT); - draw_string(cleft,ctop,button->caption, c, DRAW_PUT); - } - else - draw_string(cleft,ctop,button->caption, c, DRAW_PUT); -} // button_draw - -void numbox_draw(NUMBOX* numbox, unsigned char sel) { - - unsigned char c; - unsigned char m; - - set_font (numbox->font); - if(numbox->type & BC_Disabled) - c=2; - else - c=3; - - if(sel) { - draw_block (numbox->left,numbox->top,numbox->width,numbox->height, LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - draw_numU(numbox->left+1,numbox->top+1,numbox->value, 0, c, m); - - -} - -void txtbox_draw(TXTBOX* txtbox, unsigned char sel) { - - unsigned char c; - unsigned char m; - - set_font (txtbox->font); - if(txtbox->type & BC_Disabled) - c=2; - else - c=3; - - if(sel) { - draw_block (txtbox->left,txtbox->top,txtbox->width,txtbox->height, LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - draw_string(txtbox->left+1,txtbox->top+1,txtbox->text, c, m); - -} - -void datebox_draw(DATEBOX* datebox, unsigned char sel) { - - unsigned char c; - unsigned char m; - unsigned char w1,w2; - - set_font (datebox->font); - if(datebox->type & BC_Disabled) - c=2; - else - c=3; - - if(sel) { - draw_block (datebox->left,datebox->top,datebox->width,datebox->height, LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - - w1 = get_stringwidth("0")+1; - w2 = get_stringwidth(".")+1; - - draw_char(1+datebox->left ,datebox->top+1,days[datebox->date.weekday * 2], c, m); - draw_char(1+datebox->left+1*w1 ,datebox->top+1,days[(datebox->date.weekday * 2) + 1], c, m); - draw_hexC(1+datebox->left+2*w1+1*w2,datebox->top+1,datebox->date.day, c, m); - draw_char(1+datebox->left+4*w1+1*w2,datebox->top+1,'.', c, m); - draw_hexC(1+datebox->left+4*w1+2*w2,datebox->top+1,datebox->date.month, c, m); - draw_char(1+datebox->left+6*w1+2*w2,datebox->top+1,'.', c, m); - draw_hexC(1+datebox->left+6*w1+3*w2,datebox->top+1,datebox->date.year, c, m); - -} - -void timebox_draw(TIMEBOX* timebox, unsigned char sel) { - - unsigned char c; - unsigned char m; - unsigned char w1,w2; - - set_font (timebox->font); - if(timebox->type & BC_Disabled) - c=2; - else - c=3; - - if(sel) { - draw_block (timebox->left,timebox->top,timebox->width,timebox->height, LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - - w1 = get_stringwidth("0")+1; - w2 = get_stringwidth(":")+1; - - draw_hexC(1+timebox->left ,timebox->top+1,timebox->time.hour, c, m); - draw_char(1+timebox->left+2*w1 ,timebox->top+1,':', c, m); - draw_hexC(1+timebox->left+2*w1+1*w2,timebox->top+1,timebox->time.minute, c, m); - draw_char(1+timebox->left+4*w1+1*w2,timebox->top+1,':', c, m); - draw_hexC(1+timebox->left+4*w1+2*w2,timebox->top+1,timebox->time.second, c, m); - -} - -void listbox_draw (LISTBOX* listbox, unsigned char sel) -{ - unsigned char c; - unsigned char m; - unsigned char arrow = (listbox->height - 6) / 2 + 1; - - set_font (listbox->font); - if(listbox->type & BC_Disabled) - c=2; - else - c=3; - - if (sel) - { - draw_block (listbox->left,listbox->top,listbox->width,listbox->height, - LCD_COLOR_B, DRAW_PUT); - m=DRAW_ERASE; - } - else - m=DRAW_PUT; - - if(listbox->listindex < listbox->listcount) - draw_string(listbox->left+1,listbox->top+1,listbox->list[listbox->listindex], c, m); - if (sel) - { - draw_block (listbox->left + listbox->width-((arrow+1)*2+1),listbox->top, - (arrow+1)*2+1,listbox->height, - LCD_COLOR_B, DRAW_PUT); - draw_arrow (listbox->left + listbox->width-(arrow+1)*2, listbox->top + (listbox->height/2)-arrow, - ARROW_LEFT, arrow, LCD_COLOR_B, DRAW_ERASE); - draw_arrow (listbox->left + listbox->width-arrow-1, listbox->top + (listbox->height/2)-arrow, - ARROW_RIGHT, arrow, LCD_COLOR_B, DRAW_ERASE); - } -} - -void control_draw (CONTROL* control, unsigned char select) -{ - draw_block (control->left,control->top,control->width,control->height,LCD_COLOR_B,DRAW_ERASE); - switch ((control->type) & 0x1F) - { - case BC_Label: - label_draw((LABEL*)control,select); - break; - case BC_Button: - button_draw((BUTTON*)control,select); - break; - case BC_Numbox: - numbox_draw((NUMBOX*)control,select); - break; - case BC_Txtbox: - txtbox_draw((TXTBOX*)control,select); - break; - case BC_Datebox: - datebox_draw((DATEBOX*)control,select); - break; - case BC_Timebox: - timebox_draw((TIMEBOX*)control,select); - break; - case BC_Listbox: - listbox_draw((LISTBOX*)control,select); - break; - } -} // control_draw - -void form_draw (FORM* form) -{ - unsigned char x; - - lcd_fill(0); - set_font(BOLDFONT); - draw_string (0, 0, form->caption, LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,128,2, LCD_COLOR_B, DRAW_PUT); - - if (form->footer) - { - set_font(SMALLFONT); - draw_block (0,149,128,2, LCD_COLOR_B, DRAW_PUT); - draw_string (0,152, form->footer, LCD_COLOR_B, DRAW_PUT); - } - - for (x=0;xcontrolcount;x++) - { - control_draw(form->controls[x],(form->sel == x)); - } -} // form_draw - -unsigned char get_prev_control(FORM* form) { - - signed short x; - unsigned char type; - - for(x=form->sel-1;x>-1;x--) { - type = (form->controls[x])->type; - if(!(type & 0xe0)) - return x; - } - for(x=form->controlcount-1;x>form->sel;x--) { - type = (form->controls[x])->type; - if(!(type & 0xe0)) - return x; - } - return form->sel; -} - -unsigned char get_next_control(FORM* form) { - - unsigned char x; - unsigned char type; - - for(x=form->sel+1;xcontrolcount;x++) { - type = (form->controls[x])->type; - if(!(type & 0xe0)) - return x; - } - for(x=0;xsel;x++) { - type = (form->controls[x])->type; - if(!(type & 0xe0)) - return x; - } - return form->sel; -} - -extern void cpu_idle(); - -void waitFormKeyUp(void) -{ - while((keys[0] != 0) || (keys[1] != 0)) { - if(currentform->flags & BC_Timer_expired) { - currentform->flags &= ~BC_Timer_expired; - if(currentform->timer) - currentform->timer(currentform); - } - if(currentform->flags & BC_Form_redraw) { - form_draw(currentform); - currentform->flags &= ~BC_Form_redraw; - } - } -} - -void waitFormKeyDown(void) -{ - while((keys[0] == 0) && (keys[1] == 0)) { - if(currentform->flags & BC_Timer_expired) { - currentform->flags &= ~BC_Timer_expired; - if(currentform->timer) - currentform->timer(currentform); - } - if(currentform->flags & BC_Form_redraw) { - form_draw(currentform); - currentform->flags &= ~BC_Form_redraw; - } - cpu_idle(); - }; - setBacklight(BL_AUTO); // pwm value -} - -#define waitFormKeyUpDown() { waitFormKeyUp(); waitFormKeyDown(); } - -void numbox_entervalue(NUMBOX* numbox) { - - unsigned char digit[5]; - unsigned char len; - unsigned char maxlen; - unsigned char cpos; - unsigned char width; - unsigned char space; - unsigned char k; - unsigned short value; - unsigned short x; - unsigned char h; - - if((KEY_Left) || (KEY_Right)) { - if((KEY_Left) && (numbox->value > numbox->min)) - numbox->value--; - if((KEY_Right) && (numbox->value < numbox->max)) - numbox->value++; - return; - } - set_font(numbox->font); - width = get_stringwidth("0"); - space = get_stringwidth("00") - 2 * width; - h=get_stringheight("0"); - - cpos = 0; - len = 0; - x=numbox->max; - for(maxlen = 1;x > 9;maxlen++) - x /= 10; - - while(!(KEY_Exit || KEY_OK)) { - k=getKeynum(); - if((k > 15) && (k < 26)) { - digit[cpos] = k-15; - if(digit[cpos] > 9) - digit[cpos] = 0; - if(len < maxlen) - len++; - cpos++; - if(cpos == maxlen) - cpos--; - } - if(KEY_Left) { - if(len) - len--; - cpos = len; - } - draw_block(numbox->left,numbox->top,numbox->width,numbox->height,3,DRAW_ERASE); - for(x=0; xleft+1)+(width+space)*x ,numbox->top+1, digit[x] + 0x30,3, DRAW_PUT); - draw_hline ((numbox->left+1)+ (width+space)*cpos,numbox->top+h,width, LCD_COLOR_B, DRAW_PUT); - waitFormKeyUpDown(); - } - if((KEY_OK) && len) { - x=1; - value = 0; - for(k=len;k;k--) { - value += x*digit[k-1]; - x *=10; - } - if(value > numbox->max) - numbox->value = numbox->max; - else if(value < numbox->min) - numbox->value = numbox->min; - else - numbox->value = value; - } - waitFormKeyUp(); -} - -void txtbox_entervalue(TXTBOX* txtbox) { - - unsigned char k; - unsigned char kpos; - unsigned char kold; - unsigned char cpos; - unsigned char x; - unsigned char y; - unsigned char h; - char buffer[txtbox->maxlen]; - - memcpy(buffer,txtbox->text,txtbox->maxlen); - - if(KEY_Right) { - for(cpos=0;buffer[cpos] !=0;cpos++); - } - else { - cpos = 0; - buffer[cpos] = 0; - } - if(cpos == txtbox->maxlen-1) - cpos--; - kpos = 0; - - h=get_stringheight("0"); - kold = 10; - while(!(KEY_Exit || KEY_OK)) { - k=getKeynum(); - if((k > 15) && (k < 26)) { - k = k-16; - if(k != kold) { - kpos = 0; - if((cpos < txtbox->maxlen-2) && (buffer[cpos])) - cpos++; - } - else { - kpos++; - if(TXTKeys[k][kpos] == 0) - kpos = 0; - } - buffer[cpos] = TXTKeys[k][kpos]; - buffer[cpos+1] = 0; - kold = k; - } - if(KEY_Right) { - if((cpos < txtbox->maxlen-2) && (buffer[cpos])) { - cpos++; - kold = 10; - } - } - if(KEY_Left) { - if((cpos > 0) && (!buffer[cpos])) - cpos--; - buffer[cpos] = 0; - } - draw_block(txtbox->left,txtbox->top,txtbox->width,txtbox->height,3,DRAW_ERASE); - draw_string (txtbox->left+1,txtbox->top+1,buffer, LCD_COLOR_B, DRAW_PUT); - x=get_stringwidth(buffer); - y=get_stringwidth(&buffer[cpos]); - if(!y){ - y=get_stringwidth("A"); - x+=y+1; - } - - draw_block(txtbox->left+x-y,txtbox->top,y+2,h+2,3,DRAW_XOR); - - waitKeyUp(); - if((buffer[cpos]) && (cpos < txtbox->maxlen-2)) { - unsigned short cnt; - cnt = Cursor_timeout; - while(((keys[0] == 0) && (keys[1] == 0)) && --cnt) { - wait5ms(); - } - setBacklight(BL_AUTO); - if(!cnt) { - if((cpos < txtbox->maxlen-2) && (buffer[cpos])) - cpos++; - buffer[cpos] = 0; - kold = 10; - } - } - else - waitFormKeyDown(); - - } - if(KEY_OK) { - memcpy(txtbox->text,buffer,txtbox->maxlen); - } - waitFormKeyUp(); -} - -void datebox_entervalue(DATEBOX* datebox) { - unsigned char cursor; - signed char x; - signed char v; - char cpos[3]; - unsigned char w1, w2; - struct date_ dateold; - unsigned char exit = 0; - - if(KEY_Right) - cursor = 2; - else - cursor = 0; - - dateold = datebox->date; - - w1 = get_stringwidth("0")+1; - w2 = get_stringwidth(".")+1; - - cpos[0] = 2 * w1 + 1 * w2; - cpos[1] = 4 * w1 + 2 * w2; - cpos[2] = 6 * w1 + 3 * w2; - - draw_block(datebox->left,datebox->top,datebox->width,datebox->height,3,DRAW_ERASE); - datebox_draw(datebox,0); - draw_block(datebox->left+ cpos[cursor],datebox->top,2*w1+1,datebox->height,3,DRAW_XOR); - - while(!(KEY_Exit | KEY_OK)) { - - if(KEY_Left || KEY_Right) { - cursor += 3; - if (KEY_Left) - cursor--; - else - cursor++; - cursor %= 3; - } - - x = getNumKeyValue(); - if (x >= 0) { - v= x<<4; - draw_block(datebox->left+cpos[cursor],datebox->top,2*w1+1,datebox->height,3,DRAW_ERASE); - draw_char(datebox->left+1+cpos[cursor],datebox->top+1, x + 0x30,3, DRAW_PUT); - draw_char(datebox->left+w1+1+cpos[cursor],datebox->top+1, '_',3, DRAW_PUT); - waitKeyUpDown(); - x = getNumKeyValue(); - if (x >= 0) { - v |= x; - switch (cursor++) { - case 0: - datebox->date.day = checkBCD(v,31,1); - break; - case 1: - datebox->date.month = checkBCD(v,12,1); - break; - case 2: - datebox->date.year = checkBCD(v,99,0); - exit++; - break; - } - cursor %= 3; - } - } - - if(KEY_Down || KEY_Up) { - if (KEY_Up) - x=1; - else - x=-1; - switch (cursor) { - case 0: - calcBCD((unsigned char*)&datebox->date.day, x, 31, 1); - break; - case 1: - calcBCD((unsigned char*)&datebox->date.month, x, 12, 1); - break; - case 2: - calcBCD((unsigned char*)&datebox->date.year, x, 99, 0); - break; - } - } - calcweekday(&datebox->date); - - draw_block(datebox->left,datebox->top,datebox->width,datebox->height,3,DRAW_ERASE); - datebox_draw(datebox,0); - draw_block(datebox->left+ cpos[cursor],datebox->top,2*w1+1,datebox->height,3,DRAW_XOR); - - if(exit) - break; - - waitFormKeyUpDown(); - } - - if (KEY_OK | exit) { - switch (datebox->date.month) { - case 0x02: - x = (((datebox->date.year & 0xf0)>>4) * 10 + (datebox->date.year & 0x0f)) & 0x03; - if (x && (datebox->date.day > 0x28)) - datebox->date.day = 0x28; - else if (!x && (datebox->date.day > 0x29)) - datebox->date.day = 0x29; - break; - case 0x04: - case 0x06: - case 0x09: - case 0x11: - if (datebox->date.day > 0x30) - datebox->date.day = 0x30; - } - calcweekday(&datebox->date); - } - else - datebox->date = dateold; - - waitFormKeyUp(); -} - -void timebox_entervalue(TIMEBOX* timebox) { - unsigned char cursor; - signed char x; - signed char v; - char cpos[3]; - unsigned char w1, w2; - struct time_ timeold; - unsigned char exit = 0; - - if(KEY_Right) - cursor = 2; - else - cursor = 0; - - timeold = timebox->time; - - w1 = get_stringwidth("0")+1; - w2 = get_stringwidth(":")+1; - - cpos[0] = 0; - cpos[1] = 2 * w1 + 1 * w2; - cpos[2] = 4 * w1 + 2 * w2; - - draw_block(timebox->left,timebox->top,timebox->width,timebox->height,3,DRAW_ERASE); - timebox_draw(timebox,0); - draw_block(timebox->left+ cpos[cursor],timebox->top,2*w1+1,timebox->height,3,DRAW_XOR); - - while(!(KEY_Exit | KEY_OK)) { - - if(KEY_Left || KEY_Right) { - cursor += 3; - if (KEY_Left) - cursor--; - else - cursor++; - cursor %= 3; - } - - x = getNumKeyValue(); - if (x >= 0) { - v= x<<4; - draw_block(timebox->left+cpos[cursor],timebox->top,2*w1+1,timebox->height,3,DRAW_ERASE); - draw_char(timebox->left+1+cpos[cursor],timebox->top+1, x + 0x30,3, DRAW_PUT); - draw_char(timebox->left+w1+1+cpos[cursor],timebox->top+1, '_',3, DRAW_PUT); - waitKeyUpDown(); - x = getNumKeyValue(); - if (x >= 0) { - v |= x; - switch (cursor++) { - case 0: - timebox->time.hour = checkBCD(v,23,0); - break; - case 1: - timebox->time.minute = checkBCD(v,59,0); - break; - case 2: - timebox->time.second = checkBCD(v,59,0); - exit++; - break; - } - cursor %= 3; - } - } - - if(KEY_Down || KEY_Up) { - if (KEY_Up) - x=1; - else - x=-1; - switch (cursor) { - case 0: - calcBCD((unsigned char*)&timebox->time.hour, x, 23, 0); - break; - case 1: - calcBCD((unsigned char*)&timebox->time.minute, x, 59, 0); - break; - case 2: - calcBCD((unsigned char*)&timebox->time.second, x, 59, 0); - break; - } - } - - draw_block(timebox->left,timebox->top,timebox->width,timebox->height,3,DRAW_ERASE); - timebox_draw(timebox,0); - draw_block(timebox->left+ cpos[cursor],timebox->top,2*w1+1,timebox->height,3,DRAW_XOR); - - - if(exit) - break; - - waitFormKeyUpDown(); - } - - if (KEY_Exit) - timebox->time = timeold; - - waitFormKeyUp(); -} - -void listbox_changevalue (LISTBOX* listbox) -{ - if((KEY_Left) && listbox->listindex) - listbox->listindex--; - if((KEY_Right) && listbox->listindex < listbox->listcount - 1) - listbox->listindex++; -} - -void control_onkey(FORM* form, CONTROL* control) { - unsigned short x; - - if (KEY_OK) - { - switch ((control->type) & 0x1F) { - case BC_Label: - case BC_Txtbox: - case BC_Numbox: - case BC_Datebox: - case BC_Timebox: - case BC_Listbox: - if (control->ONclick) - control->ONclick(form,control); - waitFormKeyUp(); - break; - case BC_Button: - x=form->sel; - button_draw((BUTTON*)control,2); - if (control->ONclick) - control->ONclick(form,control); - waitFormKeyUp(); - if(x==form->sel) - x=1; - else - x=0; - button_draw((BUTTON*)control,x); - break; - } - return; - } - switch ((control->type) & 0x1F) { - case BC_Label: - case BC_Button: - break; - case BC_Numbox: - { - NUMBOX* numbox = (NUMBOX*)control; - x=numbox->value; - if(((getKeynum() > 15) && (getKeynum() < 26)) || (KEY_Left) || (KEY_Right)) - numbox_entervalue(numbox); - if((x!=numbox->value) && (numbox->ONchange)) - numbox->ONchange(form,control); - } - break; - case BC_Txtbox: - { - TXTBOX* txtbox = (TXTBOX*)control; - crc oldtext = CRCs(txtbox->text); - if(((getKeynum() > 15) && (getKeynum() < 26)) | KEY_Right) - txtbox_entervalue(txtbox); - if((oldtext != CRCs(txtbox->text)) && (txtbox->ONchange)) - txtbox->ONchange(form,control); - } - break; - case BC_Datebox: - { - DATEBOX* datebox = (DATEBOX*)control; - struct date_ olddate = datebox->date; - if(((getKeynum() > 15) && (getKeynum() < 26)) | KEY_Right) - datebox_entervalue(datebox); - if(memcmp(&olddate,&datebox->date,4) && (datebox->ONchange)) - datebox->ONchange(form,control); - } - break; - case BC_Timebox: - { - TIMEBOX* timebox = (TIMEBOX*)control; - struct time_ oldtime = timebox->time; - if(((getKeynum() > 15) && (getKeynum() < 26)) | KEY_Right) - timebox_entervalue(timebox); - if(memcmp(&oldtime,&timebox->time,4) && (timebox->ONchange)) - timebox->ONchange(form,control); - } - break; - case BC_Listbox: - { - LISTBOX* listbox = (LISTBOX*)control; - unsigned char oldvalue = listbox->listindex; - if(KEY_Left | KEY_Right) - listbox_changevalue((LISTBOX*) control); - if((oldvalue!=listbox->listindex) && (listbox->ONchange)) - listbox->ONchange(form,control); - } - break; - } - control_draw(control,1); -} - -void form_ontimer(unsigned int cb) { - currentform->flags |= BC_Timer_expired; - //currentform->timer(currentform); -} - - - -// displays a form and passes input to form element handlers -void form_exec(FORM* form) { - - unsigned char x; - FORM* oldform; - unsigned int form_cb = 0xff; - - oldform = currentform; - currentform = form; - - if(form->load) - form->load(form); - - if(form->controls[form->sel]->type & BC_NoTabStop) { - x = get_next_control(form); - form->sel = x; - } - - form_draw(form); - - if(form->timer) { - form_cb = addTimerCB(form_ontimer, form->intervall); - startCB(form_cb); - sysInfo |= SYS_NOPDOWN; - } - - while(KEY_Exit) {}; - while((!KEY_Exit) && (!(form->flags & BC_Form_exit))) - { - waitFormKeyUpDown(); - - if(KEY_Up | KEY_Down) { - if(KEY_Up) - x = get_prev_control(form); - else - x = get_next_control(form); - control_draw(form->controls[form->sel],0); - form->sel = x; - control_draw(form->controls[form->sel],1); - } - else - control_onkey(form,form->controls[form->sel]); - } - - if(form_cb != 0xff) { - sysInfo &= ~SYS_NOPDOWN; - stopCB(form_cb); - removeTimerCB(form_cb); - } - - if(form->close) - form->close(form); - - currentform = oldform; - - while(KEY_Exit); -} diff --git a/boop/trunk/gui/controls.h b/boop/trunk/gui/controls.h deleted file mode 100644 index a13a70a..0000000 --- a/boop/trunk/gui/controls.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - controls.h - GUI controls - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef CONTROLS_H -#define CONTROLS_H - -#include "rtc.h" - -#define BC_OKOnly 0 -#define BC_YesNo 1 -#define BC_nobuttons 2 -#define BC_DefaultButton1 0 -#define BC_DefaultButton2 4 -#define BC_DefaultButton3 8 - -#define BC_OK 1 -#define BC_Yes 2 -#define BC_No 3 - -#define BC_NoTabStop 0x80 -#define BC_Disabled 0x40 - -#define BC_Label 1 -#define BC_Labelnotab (BC_Label | BC_NoTabStop) -#define BC_Button 2 -#define BC_Numbox 3 -#define BC_Txtbox 4 -#define BC_Datebox 5 -#define BC_Timebox 6 -#define BC_Listbox 7 - -extern struct FORM dummyform; -extern struct CONTROL dummycontrol; - -typedef void(*event)(struct FORM* form, struct CONTROL* control); -typedef void(*fevent)(struct FORM* form); - -typedef struct CONTROL -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned char tag1; - unsigned char tag2; - char* caption; - event ONclick; - event ONchange; -} CONTROL; - -typedef struct FORM -{ - char* caption; - char* footer; - fevent load; - fevent close; - fevent timer; - unsigned long tag; - CONTROL* *controls; - unsigned char sel; - unsigned char controlcount; - unsigned char flags; - unsigned char intervall; -} FORM; - -//form.flags -#define BC_Form_exit (1<<0) -#define BC_Timer_expired (1<<1) -#define BC_Form_redraw (1<<2) - -typedef struct LABEL -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned short tag; - char* caption; - event ONclick; -} LABEL; - -typedef struct BUTTON -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned short tag; - char* caption; - event ONclick; -} BUTTON; - -typedef struct NUMBOX -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned short value; - unsigned short min; - unsigned short max; - event ONclick; - event ONchange; -} NUMBOX; - -typedef struct TXTBOX -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned char maxlen; - unsigned char tag; - char* text; - event ONclick; - event ONchange; -} TXTBOX; - -typedef struct DATEBOX -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned short tag; - struct date_ date; - event ONclick; - event ONchange; -} DATEBOX; - -typedef struct TIMEBOX -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned short tag; - struct time_ time; - event ONclick; - event ONchange; -} TIMEBOX; - -typedef struct LISTBOX -{ - unsigned char type; - unsigned char left; - unsigned char top; - unsigned char width; - unsigned char height; - unsigned char font; - unsigned char listindex; - unsigned char listcount; - char* *list; - event ONclick; - event ONchange; -} LISTBOX; - -unsigned char msgbox(unsigned char x,unsigned short flags, char *st); -void form_draw(FORM* form); -void control_draw(CONTROL* control, unsigned char select); -void form_exec(FORM* form); - -void listbox_changevalue (LISTBOX* listbox); - -#endif diff --git a/boop/trunk/gui/iconCross.h b/boop/trunk/gui/iconCross.h deleted file mode 100644 index c93ba16..0000000 --- a/boop/trunk/gui/iconCross.h +++ /dev/null @@ -1,144 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Cross.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconCross.data) == 224 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconCross = -{ - /* width = */ 28, - /* height = */ 28, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x00, 0x00, - 0x00, 0x00, - 0xc0, 0x80, - 0xe0, 0xc0, - 0xf0, 0xf0, - 0x38, 0x70, - 0x1c, 0x38, - 0x1c, 0x1c, - 0x0c, 0x0e, - 0x0e, 0x04, - 0x06, 0x0c, - 0x06, 0x06, - 0x06, 0x06, - 0x07, 0xff, - 0x07, 0xff, - 0x06, 0x06, - 0x06, 0x06, - 0x06, 0x04, - 0x0e, 0x04, - 0x0c, 0x0e, - 0x1c, 0x1c, - 0x1c, 0x38, - 0x38, 0x70, - 0xf0, 0xf0, - 0xe0, 0xc0, - 0xc0, 0x80, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 1 --- - 0x60, 0x60, - 0xfe, 0xf9, - 0xff, 0xff, - 0x03, 0x65, - 0x00, 0x60, - 0x00, 0x60, - 0x00, 0x60, - 0x00, 0x60, - 0xf0, 0xf8, - 0x6c, 0x94, - 0x62, 0x9e, - 0x62, 0x9d, - 0x61, 0x9f, - 0xff, 0x61, - 0xff, 0x61, - 0x61, 0x9f, - 0x62, 0x9d, - 0x62, 0x9e, - 0x6c, 0x94, - 0xf0, 0xf8, - 0x00, 0x60, - 0x00, 0x60, - 0x00, 0x60, - 0x00, 0x60, - 0x03, 0x65, - 0xff, 0xff, - 0xfe, 0xf9, - 0x60, 0x60, - //--- Page 2 --- - 0x00, 0x00, - 0x07, 0x09, - 0x3f, 0x1f, - 0x7c, 0x3a, - 0xf0, 0xf0, - 0xc0, 0xe0, - 0x80, 0xc0, - 0x80, 0x80, - 0x00, 0x01, - 0x03, 0x02, - 0x04, 0x07, - 0x04, 0x0b, - 0x08, 0x0f, - 0x0f, 0xf8, - 0x0f, 0xf8, - 0x08, 0x0f, - 0x04, 0x0b, - 0x04, 0x07, - 0x03, 0x02, - 0x00, 0x01, - 0x80, 0x80, - 0x80, 0xc0, - 0xc0, 0xe0, - 0xf0, 0xf0, - 0x7c, 0x3a, - 0x3f, 0x1f, - 0x07, 0x09, - 0x00, 0x00, - //--- Page 3 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0x00, - 0x03, 0x01, - 0x03, 0x03, - 0x03, 0x07, - 0x07, 0x02, - 0x06, 0x03, - 0x06, 0x06, - 0x06, 0x06, - 0x0e, 0x0f, - 0x0e, 0x0f, - 0x06, 0x06, - 0x06, 0x06, - 0x06, 0x02, - 0x07, 0x02, - 0x03, 0x07, - 0x03, 0x03, - 0x03, 0x01, - 0x01, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00 - } -}; - - diff --git a/boop/trunk/gui/iconCross_t.h b/boop/trunk/gui/iconCross_t.h deleted file mode 100644 index 18fd07a..0000000 --- a/boop/trunk/gui/iconCross_t.h +++ /dev/null @@ -1,148 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Cross_t.bmp -// -// ICON_GRAY_TRANSPARENT - 3 bpp (Bit per Pixel) -// sizeof (iconCross_t.data) == 336 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconCross_t = -{ - /* width = */ 28, - /* height = */ 28, - /* info = */ ICON_INFO (ICON_GRAY_TRANSPARENT) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xc0, - 0xe0, 0xc0, 0xe0, - 0xf0, 0xf0, 0xf0, - 0x38, 0x70, 0x78, - 0x18, 0x3c, 0x3c, - 0x1c, 0x1c, 0x1c, - 0x0c, 0x0e, 0x0e, - 0x0e, 0x04, 0x0e, - 0x06, 0x0c, 0x0e, - 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, - 0x07, 0xff, 0xff, - 0x07, 0xff, 0xff, - 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, - 0x06, 0x0c, 0x0e, - 0x0e, 0x04, 0x0e, - 0x0c, 0x0e, 0x0e, - 0x1c, 0x1c, 0x1c, - 0x18, 0x3c, 0x3c, - 0x38, 0x70, 0x78, - 0xf0, 0xf0, 0xf0, - 0xe0, 0xc0, 0xe0, - 0x80, 0xc0, 0xc0, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 1 --- - // v--- Alpha Channel - 0x60, 0x60, 0x60, - 0xfe, 0xf9, 0xff, - 0xff, 0xff, 0xff, - 0x03, 0x65, 0x67, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0xf0, 0xf8, 0xf8, - 0x6c, 0x94, 0xfc, - 0x62, 0x9e, 0xfe, - 0x62, 0x9d, 0xff, - 0x61, 0x9f, 0xff, - 0xff, 0x61, 0xff, - 0xff, 0x61, 0xff, - 0x61, 0x9f, 0xff, - 0x62, 0x9d, 0xff, - 0x62, 0x9e, 0xfe, - 0x6c, 0x94, 0xfc, - 0xf0, 0xf8, 0xf8, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0x00, 0x60, 0x60, - 0x03, 0x65, 0x67, - 0xff, 0xff, 0xff, - 0xfe, 0xf9, 0xff, - 0x60, 0x60, 0x60, - //--- Page 2 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x07, 0x09, 0x0f, - 0x1f, 0x3f, 0x3f, - 0x7c, 0x3a, 0x7e, - 0xf0, 0xf0, 0xf0, - 0xc0, 0xe0, 0xe0, - 0x80, 0xc0, 0xc0, - 0x80, 0x80, 0x80, - 0x00, 0x01, 0x01, - 0x03, 0x02, 0x03, - 0x04, 0x07, 0x07, - 0x04, 0x0b, 0x0f, - 0x08, 0x0f, 0x0f, - 0x0f, 0xf8, 0xff, - 0x0f, 0xf8, 0xff, - 0x08, 0x0f, 0x0f, - 0x04, 0x0b, 0x0f, - 0x04, 0x07, 0x07, - 0x03, 0x02, 0x03, - 0x00, 0x01, 0x01, - 0x80, 0x80, 0x80, - 0x80, 0xc0, 0xc0, - 0xc0, 0xe0, 0xe0, - 0xf0, 0xf0, 0xf0, - 0x7c, 0x3a, 0x7e, - 0x1f, 0x3f, 0x3f, - 0x07, 0x09, 0x0f, - 0x00, 0x00, 0x00, - //--- Page 3 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x01, 0x00, 0x01, - 0x01, 0x03, 0x03, - 0x03, 0x03, 0x03, - 0x03, 0x07, 0x07, - 0x07, 0x02, 0x07, - 0x06, 0x03, 0x07, - 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, - 0x0e, 0x0f, 0x0f, - 0x0e, 0x0f, 0x0f, - 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, - 0x06, 0x03, 0x07, - 0x07, 0x02, 0x07, - 0x03, 0x07, 0x07, - 0x03, 0x03, 0x03, - 0x01, 0x03, 0x03, - 0x01, 0x00, 0x01, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00 - } -}; - - diff --git a/boop/trunk/gui/iconFf.h b/boop/trunk/gui/iconFf.h deleted file mode 100644 index 3787757..0000000 --- a/boop/trunk/gui/iconFf.h +++ /dev/null @@ -1,56 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\FF.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconFf.data) == 52 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconFf = -{ - /* width = */ 13, - /* height = */ 13, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0xfc, 0xfa, - 0x06, 0x03, - 0x03, 0x00, - 0xf9, 0xf9, - 0xf1, 0xf9, - 0xe1, 0xf1, - 0x41, 0xe1, - 0xf9, 0xf9, - 0xf1, 0xf9, - 0xe1, 0xf1, - 0x43, 0xe0, - 0x06, 0x03, - 0xfc, 0xfa, - //--- Page 1 --- - 0x07, 0x0b, - 0x0c, 0x18, - 0x18, 0x00, - 0x13, 0x13, - 0x11, 0x13, - 0x10, 0x11, - 0x10, 0x10, - 0x13, 0x13, - 0x11, 0x13, - 0x10, 0x11, - 0x10, 0x00, - 0x08, 0x18, - 0x07, 0x0b - } -}; - - diff --git a/boop/trunk/gui/iconFr.h b/boop/trunk/gui/iconFr.h deleted file mode 100644 index c022efd..0000000 --- a/boop/trunk/gui/iconFr.h +++ /dev/null @@ -1,56 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\FR.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconFr.data) == 52 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconFr = -{ - /* width = */ 13, - /* height = */ 13, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0xfc, 0xfa, - 0x02, 0x03, - 0x41, 0xe0, - 0xe1, 0xf1, - 0xf1, 0xf9, - 0xf9, 0xf9, - 0x41, 0xe1, - 0xe1, 0xf1, - 0xf1, 0xf9, - 0xf9, 0xf9, - 0x03, 0x00, - 0x06, 0x03, - 0xfc, 0xfa, - //--- Page 1 --- - 0x07, 0x0b, - 0x0c, 0x18, - 0x18, 0x00, - 0x10, 0x11, - 0x11, 0x13, - 0x13, 0x13, - 0x10, 0x10, - 0x10, 0x11, - 0x11, 0x13, - 0x13, 0x13, - 0x18, 0x00, - 0x0c, 0x18, - 0x07, 0x0b - } -}; - - diff --git a/boop/trunk/gui/iconHourglas.h b/boop/trunk/gui/iconHourglas.h deleted file mode 100644 index 6e99e15..0000000 --- a/boop/trunk/gui/iconHourglas.h +++ /dev/null @@ -1,173 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Hourglas.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconHourglas.data) == 280 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x0e, 0x11, - 0x3f, 0x1e, - 0x7f, 0x3a, - 0xff, 0x6a, - 0xff, 0xca, - 0xff, 0xca, - 0x3f, 0x0a, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3b, 0x0e, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0x3f, 0x0a, - 0xff, 0xca, - 0xff, 0xca, - 0xff, 0x6a, - 0x7f, 0x3a, - 0x3f, 0x1e, - 0x0e, 0x11, - //--- Page 1 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x0f, - 0xfe, 0xfd, - 0x70, 0xb8, - 0xe0, 0x70, - 0xc0, 0xa0, - 0x80, 0x50, - 0x30, 0x80, - 0xf0, 0x00, - 0xf0, 0x00, - 0xf0, 0x00, - 0xf0, 0x08, - 0x70, 0x88, - 0xb0, 0xc8, - 0xd8, 0x64, - 0x78, 0xe4, - 0x36, 0xf8, - 0xfe, 0xfd, - 0xff, 0x0f, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 2 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x00, - 0xff, 0xff, - 0x00, 0xff, - 0x80, 0x80, - 0xc1, 0xc0, - 0x61, 0xb3, - 0x3f, 0x12, - 0x1c, 0x0f, - 0x07, 0x00, - 0x1d, 0x0e, - 0x3f, 0x12, - 0x63, 0xb5, - 0xc1, 0xe2, - 0x80, 0xc1, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0x00, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 3 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xff, - 0xff, 0xff, - 0xff, 0xfc, - 0xff, 0x0f, - 0x07, 0x0b, - 0x81, 0x03, - 0xc0, 0x01, - 0xc0, 0x20, - 0xe0, 0x10, - 0xf0, 0x00, - 0xf8, 0x00, - 0xf0, 0x00, - 0xe0, 0x10, - 0xc0, 0x20, - 0xc0, 0x01, - 0x81, 0x03, - 0x03, 0x87, - 0x0e, 0x17, - 0xff, 0x1f, - 0xff, 0xf8, - 0xff, 0xff, - 0x00, 0xff, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 4 --- - 0x70, 0x88, - 0xfc, 0x78, - 0xfe, 0x7c, - 0xff, 0x76, - 0xff, 0x77, - 0xff, 0x77, - 0xff, 0x74, - 0xfe, 0x75, - 0xff, 0x74, - 0xff, 0x74, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xf7, 0x7c, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xff, 0x74, - 0xfe, 0x75, - 0xff, 0x74, - 0xff, 0x77, - 0xff, 0x77, - 0xff, 0x76, - 0xfe, 0x7c, - 0xfc, 0x78, - 0x70, 0x88 - } -}; - - diff --git a/boop/trunk/gui/iconHourglas_t.h b/boop/trunk/gui/iconHourglas_t.h deleted file mode 100644 index d46a555..0000000 --- a/boop/trunk/gui/iconHourglas_t.h +++ /dev/null @@ -1,178 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Hourglas_t.bmp -// -// ICON_GRAY_TRANSPARENT - 3 bpp (Bit per Pixel) -// sizeof (iconHourglas_t.data) == 420 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconHourglas_t = -{ - /* width = */ 28, - /* height = */ 40, - /* info = */ ICON_INFO (ICON_GRAY_TRANSPARENT) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - // v--- Alpha Channel - 0x0e, 0x11, 0x1f, - 0x3f, 0x1e, 0x3f, - 0x7f, 0x3a, 0x7f, - 0xff, 0x6a, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0xca, 0xff, - 0x3f, 0x0a, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3b, 0x0e, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0x3f, 0x0a, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0xca, 0xff, - 0xff, 0x6a, 0xff, - 0x7f, 0x3a, 0x7f, - 0x3f, 0x1e, 0x3f, - 0x0e, 0x11, 0x1f, - //--- Page 1 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x0f, 0xff, - 0xfe, 0xfd, 0xff, - 0x70, 0xb8, 0xff, - 0xe0, 0x70, 0xff, - 0xc0, 0xa0, 0xff, - 0x80, 0x50, 0xff, - 0x30, 0x80, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xf0, 0x08, 0xff, - 0x70, 0x88, 0xff, - 0xb0, 0xc8, 0xff, - 0xd8, 0x64, 0xff, - 0x78, 0xe4, 0xff, - 0x36, 0xf8, 0xff, - 0xfe, 0xfd, 0xff, - 0xff, 0x0f, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 2 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x00, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x80, 0x80, 0x80, - 0xc1, 0xc0, 0xc1, - 0x61, 0xb3, 0xf3, - 0x3f, 0x12, 0xff, - 0x1c, 0x0f, 0xff, - 0x07, 0x00, 0xff, - 0x1d, 0x0e, 0xff, - 0x3f, 0x12, 0xff, - 0x63, 0xb5, 0xf7, - 0xc1, 0xe2, 0xe3, - 0x80, 0xc1, 0xc1, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0x00, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 3 --- - // v--- Alpha Channel - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, - 0xff, 0xfc, 0xff, - 0xff, 0x0f, 0xff, - 0x07, 0x0b, 0xff, - 0x81, 0x03, 0xff, - 0xc0, 0x01, 0xff, - 0xc0, 0x20, 0xff, - 0xe0, 0x10, 0xff, - 0xf0, 0x00, 0xff, - 0xf8, 0x00, 0xff, - 0xf0, 0x00, 0xff, - 0xe0, 0x10, 0xff, - 0xc0, 0x20, 0xff, - 0xc0, 0x01, 0xff, - 0x81, 0x03, 0xff, - 0x03, 0x87, 0xff, - 0x0e, 0x17, 0xff, - 0xff, 0x1f, 0xff, - 0xff, 0xf8, 0xff, - 0xff, 0xff, 0xff, - 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - //--- Page 4 --- - // v--- Alpha Channel - 0x70, 0x88, 0xf8, - 0xfc, 0x78, 0xfc, - 0xfe, 0x7c, 0xfe, - 0xff, 0x76, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x74, 0xff, - 0xfe, 0x75, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xf7, 0x7c, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x74, 0xff, - 0xfe, 0x75, 0xff, - 0xff, 0x74, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x77, 0xff, - 0xff, 0x76, 0xff, - 0xfe, 0x7c, 0xfe, - 0xfc, 0x78, 0xfc, - 0x70, 0x88, 0xf8 - } -}; - - diff --git a/boop/trunk/gui/iconLeo_gray_128.h b/boop/trunk/gui/iconLeo_gray_128.h deleted file mode 100644 index 858328c..0000000 --- a/boop/trunk/gui/iconLeo_gray_128.h +++ /dev/null @@ -1,1189 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Leo_Gray_128.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconLeo_gray_128.data) == 2304 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconLeo_gray_128 = -{ - /* width = */ 128, - /* height = */ 65, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x38, - 0x78, 0x9c, - 0x64, 0xf2, - 0xc2, 0x80, - 0x02, 0xc3, - 0x02, 0xc3, - 0x02, 0xe3, - 0x02, 0xe3, - 0x02, 0xe3, - 0x02, 0xe2, - 0x02, 0xe0, - 0x02, 0xf0, - 0x02, 0xf4, - 0x02, 0xf4, - 0x04, 0xf2, - 0x04, 0xf6, - 0x04, 0xf6, - 0x04, 0xf6, - 0x04, 0xf2, - 0x10, 0xe4, - 0x10, 0xec, - 0xb8, 0x54, - 0xf8, 0x20, - 0xf0, 0x28, - 0xe0, 0x30, - 0xc0, 0xe0, - 0x00, 0xc0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 1 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x01, - 0xf7, 0xe8, - 0xff, 0x0f, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x00, 0xff, - 0x80, 0x7f, - 0x80, 0x7f, - 0x80, 0x7f, - 0x80, 0x7f, - 0x80, 0x7f, - 0x80, 0x7f, - 0xc0, 0x3f, - 0xe0, 0x1f, - 0xf0, 0x0f, - 0xf8, 0x07, - 0xfe, 0x01, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0xe0, - 0x3f, 0xfe, - 0x03, 0x07, - 0x01, 0x02, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 2 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xe0, 0xc0, - 0xff, 0x3f, - 0x01, 0xfe, - 0x00, 0xff, - 0x80, 0x7f, - 0xe0, 0x1f, - 0xfe, 0x01, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0xfe, - 0x07, 0xfb, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xc0, - 0x00, 0x30, - 0x00, 0x18, - 0x00, 0x88, - 0x00, 0x84, - 0x04, 0x80, - 0x00, 0xc6, - 0x00, 0xc2, - 0x00, 0xe2, - 0x80, 0x62, - 0x82, 0x6c, - 0x06, 0xf8, - 0x84, 0x7e, - 0x84, 0x7e, - 0x8c, 0xf2, - 0x8c, 0xf8, - 0x88, 0xfc, - 0x08, 0xf4, - 0x10, 0xf8, - 0x10, 0xf8, - 0x30, 0xd0, - 0x30, 0xe0, - 0xe0, 0x30, - 0xe0, 0x40, - 0x80, 0xc0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0xc0, - 0x00, 0x20, - 0x00, 0x30, - 0x00, 0x10, - 0x00, 0x18, - 0x00, 0x08, - 0x08, 0x84, - 0xc8, 0x84, - 0xc8, 0x94, - 0xc8, 0xb4, - 0xe8, 0x9c, - 0xc8, 0xb0, - 0xd8, 0xa8, - 0xd8, 0xa8, - 0xf8, 0x88, - 0xf8, 0x10, - 0xf0, 0x10, - 0xf0, 0x10, - 0xf0, 0x30, - 0xe0, 0x30, - 0xe0, 0x30, - 0xe0, 0x60, - 0xc0, 0xe0, - 0xc0, 0xe0, - 0xc0, 0x80, - 0x80, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 3 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xff, 0xff, - 0xff, 0x00, - 0xfc, 0x03, - 0xf8, 0x07, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x07, - 0xfc, 0x0b, - 0xf8, 0x0c, - 0xe8, 0x1c, - 0x88, 0x7c, - 0x98, 0x68, - 0x98, 0x70, - 0x98, 0x70, - 0xd8, 0x30, - 0xf0, 0x38, - 0xf0, 0x20, - 0xe0, 0x30, - 0xc0, 0xe0, - 0xc0, 0xc0, - 0x00, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x30, 0x68, - 0xfe, 0xfc, - 0xe1, 0x1e, - 0xe0, 0x1e, - 0xf0, 0x0f, - 0xf8, 0x07, - 0xfc, 0x03, - 0xfe, 0x01, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x00, - 0xff, 0x80, - 0xff, 0x44, - 0x7f, 0x4e, - 0x79, 0x4d, - 0x78, 0x4c, - 0x7c, 0x4c, - 0x7e, 0x45, - 0x7f, 0x47, - 0x7e, 0x41, - 0x7e, 0x61, - 0x7e, 0xe1, - 0xff, 0xe0, - 0xff, 0xe0, - 0xff, 0xb0, - 0x3f, 0x30, - 0x1f, 0x3f, - 0x08, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0xf8, 0xfb, - 0xe0, 0xf9, - 0xf0, 0xc8, - 0xf0, 0xec, - 0xf8, 0xe4, - 0xf0, 0xff, - 0xfb, 0xfc, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0x7f, 0x3f, - 0x0f, 0x07, - 0x07, 0x03, - 0x03, 0x01, - 0xc3, 0xe7, - 0xff, 0xff, - 0xff, 0xfc, - 0xff, 0xfa, - 0xff, 0xfc, - 0xff, 0xfa, - 0xff, 0xfc, - 0xff, 0xfe, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0x7f, - 0x00, 0x7c, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 4 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x02, 0x01, - 0x0f, 0x0f, - 0x0f, 0x0c, - 0x1f, 0x18, - 0x3f, 0x70, - 0x7f, 0x30, - 0x7f, 0x60, - 0xff, 0x60, - 0xff, 0x78, - 0xff, 0xe0, - 0xff, 0x70, - 0xff, 0xf0, - 0xff, 0x70, - 0x7f, 0xe8, - 0x7f, 0xe0, - 0x7f, 0xf0, - 0x7f, 0xf0, - 0x7f, 0xf0, - 0x7f, 0xf0, - 0x7f, 0xf0, - 0x7f, 0xf0, - 0x7f, 0xf8, - 0x7f, 0xf8, - 0x7f, 0xf8, - 0x7f, 0xf8, - 0x7f, 0xf8, - 0xff, 0x78, - 0x7f, 0xf8, - 0x7f, 0xf8, - 0x7f, 0xe0, - 0x7f, 0xf0, - 0x7f, 0x38, - 0x3f, 0x70, - 0x3f, 0x7e, - 0x3f, 0x9f, - 0x98, 0xc3, - 0xc0, 0x00, - 0x40, 0x00, - 0x00, 0xc0, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x40, - 0x01, 0xc1, - 0x43, 0xa7, - 0xc7, 0x46, - 0xc7, 0x8c, - 0xcf, 0x8c, - 0x8f, 0xcc, - 0x8f, 0xd8, - 0xdf, 0x9c, - 0xdf, 0x98, - 0xdf, 0x98, - 0xdf, 0x98, - 0xdf, 0x98, - 0xdf, 0x99, - 0xdf, 0x9b, - 0xdf, 0x9f, - 0xde, 0x9f, - 0xde, 0x9f, - 0xdf, 0x9e, - 0xdf, 0x9f, - 0xdf, 0x9f, - 0xdf, 0x9f, - 0xdf, 0x9f, - 0xdf, 0xdf, - 0xcf, 0x8f, - 0xcf, 0xcf, - 0xcf, 0x86, - 0xc0, 0x46, - 0x40, 0x80, - 0x00, 0x80, - 0x00, 0x80, - 0x00, 0x80, - 0x00, 0x00, - 0x00, 0x00, - 0x01, 0xa0, - 0x33, 0xc1, - 0x1f, 0x7f, - 0xdf, 0x2f, - 0xff, 0x0f, - 0xdf, 0x2f, - 0x9f, 0x67, - 0x1f, 0xe7, - 0xff, 0x3f, - 0xff, 0xbf, - 0xff, 0xff, - 0xdf, 0xaf, - 0x1f, 0x9e, - 0x1e, 0x0b, - 0x1f, 0x9e, - 0x1f, 0x9f, - 0x1f, 0x9f, - 0x1f, 0x9f, - 0x9f, 0x1f, - 0x9f, 0x1f, - 0x9f, 0x1f, - 0x9f, 0x1f, - 0x8f, 0x1f, - 0x8f, 0x0f, - 0x87, 0x07, - 0x83, 0x03, - 0x81, 0x03, - 0x80, 0x00, - 0x80, 0x00, - 0x80, 0x00, - 0x80, 0x00, - 0x00, 0x80, - 0x80, 0x80, - 0x80, 0x80, - 0x80, 0x80, - 0x80, 0x00, - 0x80, 0x80, - 0x80, 0x00, - 0x80, 0x00, - 0x80, 0x00, - 0x80, 0x80, - 0x80, 0x80, - 0x80, 0x80, - 0x00, 0x80, - 0x00, 0x00, - //--- Page 5 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x80, 0x00, - 0x80, 0x00, - 0x80, 0x00, - 0xc0, 0x00, - 0x80, 0x40, - 0xc0, 0x00, - 0xc0, 0x00, - 0x80, 0x60, - 0xa0, 0x80, - 0x00, 0xf0, - 0x10, 0xe6, - 0x97, 0x63, - 0xb1, 0x47, - 0xb0, 0x43, - 0xf8, 0x07, - 0xf9, 0xc6, - 0xfe, 0xff, - 0xfe, 0xf9, - 0xf8, 0x17, - 0xf8, 0x07, - 0xfc, 0x03, - 0xfc, 0x03, - 0xfe, 0x00, - 0xff, 0x00, - 0x1e, 0xff, - 0xfd, 0xfc, - 0xf9, 0xff, - 0xff, 0xe1, - 0xff, 0x00, - 0xff, 0x01, - 0xff, 0x00, - 0xff, 0x01, - 0xfb, 0x05, - 0xfb, 0x84, - 0xf9, 0x86, - 0xc1, 0xbe, - 0x01, 0xfe, - 0x03, 0xf8, - 0xff, 0x6f, - 0xff, 0xff, - 0xff, 0xf8, - 0xff, 0xe0, - 0xff, 0x00, - 0xff, 0xa0, - 0xfc, 0xe3, - 0xfc, 0xf2, - 0xf8, 0x86, - 0xf8, 0xc7, - 0xf8, 0xc6, - 0xf8, 0xc6, - 0xfc, 0x82, - 0xfc, 0xc2, - 0xfc, 0x83, - 0x9e, 0xa1, - 0x9e, 0xa3, - 0x0c, 0x92, - 0x00, 0x00, - 0xdb, 0x24, - 0xff, 0x00, - 0xff, 0x00, - 0xfe, 0x01, - 0xff, 0x80, - 0xff, 0xe1, - 0xff, 0xff, - 0xff, 0xff, - 0xfd, 0x73, - 0x3d, 0x71, - 0x3f, 0x39, - 0x3d, 0x7b, - 0x3d, 0x79, - 0x39, 0x3d, - 0x39, 0x3d, - 0x39, 0x3d, - 0x3d, 0x19, - 0x7d, 0x39, - 0x7d, 0x39, - 0x7d, 0x31, - 0x7d, 0x31, - 0x7d, 0x31, - 0x7d, 0x31, - 0x7d, 0x71, - 0x7d, 0x71, - 0x78, 0x7d, - 0x78, 0x75, - 0x7c, 0x71, - 0x7d, 0x70, - 0x79, 0x7c, - 0x79, 0x7c, - 0x79, 0x7c, - 0x79, 0x7c, - 0x79, 0x74, - 0x78, 0x7d, - 0x78, 0x7d, - 0x79, 0x7c, - 0x39, 0x7e, - 0x3d, 0x38, - 0x3f, 0x1f, - 0x1e, 0x1f, - //--- Page 6 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x80, - 0x00, 0x80, - 0x00, 0x40, - 0x00, 0x40, - 0x00, 0x40, - 0x00, 0x60, - 0x00, 0x20, - 0x00, 0xb0, - 0xc0, 0x90, - 0x80, 0xd8, - 0xc0, 0xe8, - 0xe0, 0xc0, - 0xf0, 0x40, - 0x70, 0x68, - 0x70, 0x38, - 0x38, 0x34, - 0x38, 0x3c, - 0x1c, 0x3a, - 0x1c, 0x1a, - 0x1d, 0x0e, - 0x0f, 0x0c, - 0x0f, 0x04, - 0x0f, 0x06, - 0x07, 0x0e, - 0x07, 0x02, - 0x07, 0x02, - 0x07, 0x03, - 0x03, 0x07, - 0x03, 0x03, - 0x03, 0x03, - 0x03, 0x01, - 0x03, 0x01, - 0x01, 0x07, - 0x3d, 0x4f, - 0x7d, 0x3f, - 0xff, 0x7d, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xff, - 0xff, 0xbf, - 0xff, 0xf8, - 0xff, 0xf8, - 0xff, 0xfc, - 0xff, 0xfe, - 0xff, 0xfe, - 0xff, 0x7e, - 0x7c, 0xfe, - 0x7f, 0x3f, - 0x7f, 0x3f, - 0x3f, 0x7f, - 0x3f, 0x3e, - 0x3f, 0x3f, - 0x3f, 0x36, - 0x37, 0x3e, - 0x3f, 0x3f, - 0x3f, 0x3e, - 0x37, 0x1f, - 0x3f, 0x13, - 0x1c, 0x3b, - 0x1e, 0x19, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x1f, - 0x1f, 0x0f, - 0x0f, 0x1f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x07, - 0x07, 0x0f, - 0x0f, 0x07, - 0x07, 0x0f, - 0x0f, 0x0f, - 0x0f, 0x0f, - 0x1f, 0x1f, - 0x1f, 0x37, - 0x3f, 0x2e, - 0x7f, 0x3e, - 0x7f, 0x7f, - 0x3f, 0x7f, - 0x3f, 0x3f, - 0x1f, 0x1f, - 0x0f, 0x07, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 7 --- - 0x10, 0x30, - 0x30, 0x6c, - 0x60, 0xf6, - 0x60, 0xe2, - 0x60, 0xe0, - 0x70, 0xe0, - 0x70, 0xa1, - 0x30, 0xf9, - 0x38, 0x30, - 0x38, 0x18, - 0x1c, 0x38, - 0x1c, 0x1a, - 0x0e, 0x0c, - 0x0e, 0x06, - 0x07, 0x06, - 0x07, 0x03, - 0x03, 0x03, - 0x01, 0x03, - 0x01, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x01, - 0x00, 0x01, - 0x01, 0x00, - 0x01, 0x00, - 0x01, 0x01, - 0x01, 0x01, - 0x01, 0x01, - 0x00, 0x01, - 0x00, 0x01, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - //--- Page 8 --- - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00 - } -}; - - diff --git a/boop/trunk/gui/iconPause.h b/boop/trunk/gui/iconPause.h deleted file mode 100644 index 087924c..0000000 --- a/boop/trunk/gui/iconPause.h +++ /dev/null @@ -1,56 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Pause.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconPause.data) == 52 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconPause = -{ - /* width = */ 13, - /* height = */ 13, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0xfc, 0xfa, - 0x06, 0x03, - 0x03, 0x00, - 0x01, 0x01, - 0xf9, 0xf9, - 0xf9, 0xf9, - 0x01, 0x01, - 0xf9, 0xf9, - 0xf9, 0xf9, - 0x01, 0x01, - 0x03, 0x00, - 0x06, 0x03, - 0xfc, 0xfa, - //--- Page 1 --- - 0x07, 0x0b, - 0x0c, 0x18, - 0x18, 0x00, - 0x10, 0x10, - 0x13, 0x13, - 0x13, 0x13, - 0x10, 0x10, - 0x13, 0x13, - 0x13, 0x13, - 0x10, 0x10, - 0x10, 0x00, - 0x08, 0x18, - 0x07, 0x0b - } -}; - - diff --git a/boop/trunk/gui/iconPlay.h b/boop/trunk/gui/iconPlay.h deleted file mode 100644 index 6224718..0000000 --- a/boop/trunk/gui/iconPlay.h +++ /dev/null @@ -1,56 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Play.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconPlay.data) == 52 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconPlay = -{ - /* width = */ 13, - /* height = */ 13, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0xfc, 0xfa, - 0x06, 0x03, - 0x03, 0x00, - 0x01, 0x01, - 0x01, 0x01, - 0xf9, 0xf9, - 0xf1, 0xf9, - 0xe1, 0xf1, - 0x41, 0xe1, - 0x01, 0x01, - 0x03, 0x00, - 0x06, 0x03, - 0xfc, 0xfa, - //--- Page 1 --- - 0x07, 0x0b, - 0x0c, 0x18, - 0x18, 0x00, - 0x10, 0x10, - 0x10, 0x10, - 0x13, 0x13, - 0x11, 0x13, - 0x10, 0x11, - 0x10, 0x10, - 0x10, 0x10, - 0x10, 0x00, - 0x08, 0x18, - 0x07, 0x0b - } -}; - - diff --git a/boop/trunk/gui/iconStop.h b/boop/trunk/gui/iconStop.h deleted file mode 100644 index ffaf217..0000000 --- a/boop/trunk/gui/iconStop.h +++ /dev/null @@ -1,56 +0,0 @@ -//////////////////////////////////////////////////// -// This file was generated by the tool GrayScaler. -// Source bitmap: R:\Project\GrayScaler\Icons\Stop.bmp -// -// ICON_GRAY - 2 bpp (Bit per Pixel) -// sizeof (iconStop.data) == 52 -// -//////////////////////////////////////////////////// -#include "icon.h" - -#ifndef ICON_INFO -#define ICON_INFO(i) i, -#endif - - -const ICON iconStop = -{ - /* width = */ 13, - /* height = */ 13, - /* info = */ ICON_INFO (ICON_GRAY) - /* data [] = */ - { - // Bit 0 is the upper most pixel - // of the page, which is 8 pixel high - //--- Page 0 --- - 0xfc, 0xfa, - 0x06, 0x03, - 0x03, 0x00, - 0x01, 0x01, - 0xf1, 0xf1, - 0xf1, 0xf1, - 0xf1, 0xf1, - 0xf1, 0xf1, - 0xf1, 0xf1, - 0x01, 0x01, - 0x03, 0x00, - 0x06, 0x03, - 0xfc, 0xfa, - //--- Page 1 --- - 0x07, 0x0b, - 0x0c, 0x18, - 0x18, 0x00, - 0x10, 0x10, - 0x11, 0x11, - 0x11, 0x11, - 0x11, 0x11, - 0x11, 0x11, - 0x11, 0x11, - 0x10, 0x10, - 0x10, 0x00, - 0x08, 0x18, - 0x07, 0x0b - } -}; - - diff --git a/boop/trunk/gui/mainmenu.c b/boop/trunk/gui/mainmenu.c deleted file mode 100644 index 406f7c0..0000000 --- a/boop/trunk/gui/mainmenu.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - testmenu.c - testmenu for menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "menu.h" -#include "testmenu.h" -#include "gamesmenu.h" -#include "settingsmenu.h" -#include "toolsmenu.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "global.h" -#include "flash.h" -#ifndef DEBUGMODE - #include "sounds.h" - #include "sound3.h" - #include "sound.h" -#endif -#include "version.h" - -unsigned int testdata1, testdata2; - - -void show_info(void) { - unsigned short flashID; - unsigned short hwID; - flashID = getFlashID(); - draw_hexC (0, 30, flashID, LCD_COLOR_B, DRAW_PUT); - - hwID = GetHWversion(); - draw_hexS (0, 38, hwID, LCD_COLOR_B, DRAW_PUT); - - lcd_fill(0); - set_font(BOLDFONT); - draw_string (0,0,"Info", LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - draw_string(0,14,"Flash \n" - "Manuf. ID\n" - "Device ID\n" - "\n" - "Betty\n" - "HW Version\n", LCD_COLOR_B, DRAW_PUT); - draw_hexC (65, 23, (flashID>>8), LCD_COLOR_B, DRAW_PUT); - draw_hexC (65, 32, (flashID&0x00ff), LCD_COLOR_B, DRAW_PUT); - draw_hexC (65, 59, (unsigned char)hwID, LCD_COLOR_B, DRAW_PUT); - draw_string (0,77,"Boop", LCD_COLOR_B, DRAW_PUT); -#ifdef RELEASE - draw_numU (65,86,SVNVERSION+1,0, LCD_COLOR_B, DRAW_PUT); - draw_string (0,86,"SVN Release", LCD_COLOR_B, DRAW_PUT); -#else - draw_numU (65,86,SVNVERSION,0, LCD_COLOR_B, DRAW_PUT); - draw_string (0,86,"SVN Revision", LCD_COLOR_B, DRAW_PUT); -#endif - draw_string (0,95,__DATE__, LCD_COLOR_B, DRAW_PUT); - draw_string (0,104,__TIME__, LCD_COLOR_B, DRAW_PUT); - - set_font(SMALLFONT); - - waitKeyUpDown(); -} // show_info - - -void show_credits(void) -{ - lcd_fill(0); - set_font(BOLDFONT); - draw_string (0,0,"Credits", LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - draw_string (0,14,"Netguy\tBasics\n" - "Telekatz\tBasics, IR/RF\n" - "Theborg\tFirst Steps, HW\n" - "Colibri\tFlash SW\n" - "Damaltor\tSupport\n" - "Pr0nbug\tFirst Steps\n" - "Asgart\tForum/Wiki\n" - "Spessi\tSurport, HW", LCD_COLOR_B, DRAW_PUT); - - draw_string(0,95,"Und alle Anderen\n" - "die vergessen wurden.", LCD_COLOR_B, DRAW_PUT); - - draw_string(0,120,"Thanks to Max Fleischer\n" - "for a great Cartoon!", LCD_COLOR_B, DRAW_PUT); - set_font(BOLDFONT); - draw_string (8,150,"www.bettyhacks.com", LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); -#ifndef DEBUGMODE - playSound((unsigned char*)sound1_data, sound1_len); - waitSound(); - playSound((unsigned char*)sound2_data, sound2_len); - waitSound(); -#endif - waitKeyUpDown(); -} // show_credits - -const struct MENU_ENTRY mainMenuEntries[] = -{ - { 0, (void*)&gamesMenu, MENUENTRY, "Games", "Play some games" }, - { 0, (void*)&testMenu, MENUENTRY, "TestStuff", "Various tests" }, - { enter_settings_menu, 0, FUNCENTRY, "Settings", "Change settings" }, - { 0, (void*)&toolsMenu, MENUENTRY, "Tools", "Tools" }, - { show_credits, 0, FUNCENTRY, "Credits", "Show Credits" }, - { show_info, 0, FUNCENTRY, "Info", "Show Info" } -}; - - -const struct MENU mainMenu = -{ - NUM_OF_ELEMENTS (mainMenuEntries), (MENU_ENTRY*)&mainMenuEntries, "Main Menu" -}; diff --git a/boop/trunk/gui/mainmenu.h b/boop/trunk/gui/mainmenu.h deleted file mode 100644 index d53d3df..0000000 --- a/boop/trunk/gui/mainmenu.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - mainmenu.h - the main menu for boop - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef MAINMENU_H -#define MAINMENU_H - -extern struct MENU mainMenu; - -#endif diff --git a/boop/trunk/gui/menu.c b/boop/trunk/gui/menu.c deleted file mode 100644 index 7e5a484..0000000 --- a/boop/trunk/gui/menu.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - menu.c - menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "global.h" -#include "menu.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "lpc2220.h" - -//----------------------------------------------------------------------------- -#if FF_LARGE_MENU -#define MENU_FONT SMOOTHFONT -#define MENU_LINE_HEIGHT (SMOOTHFONT_HEIGHT+2) -#else -#define MENU_FONT SMALLFONT -#define MENU_LINE_HEIGHT SMALLFONT_HEIGHT+1 -#endif - -#define MENU_HEAD_LINE_HEIGHT (BOLDFONT_HEIGHT+2+2+2) -#define MENU_LINE_WIDTH (LCD_SIZE_X - 10) -#define MENU_BOTTOM_LINE_HEIGHT (SMALLFONT_HEIGHT+5) - -#define MENU_ARROW_SIZE (min(MENU_LINE_HEIGHT-6, (LCD_SIZE_X-MENU_LINE_WIDTH-1)/2+1)) - -#define MENU_START_Y MENU_HEAD_LINE_HEIGHT -#define MENU_LIST_LEN ((LCD_SIZE_Y - MENU_HEAD_LINE_HEIGHT - MENU_BOTTOM_LINE_HEIGHT) / MENU_LINE_HEIGHT) - -#define MENU_SCROLLBAR_HEIGHT (MENU_LINE_HEIGHT*MENU_LIST_LEN-10-10-3) // [px] -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -int menu_execentry(struct MENU_ENTRY *entry) -{ - unsigned int *val; - struct MENU *m; - - draw_block (0, 100, LCD_SIZE_X, 8, LCD_COLOR_B, DRAW_ERASE); - switch(entry->type) - { - case INTENTRY: - val = (unsigned int*)entry->data; - draw_block (0, 50, LCD_SIZE_X, 8, LCD_COLOR_B, DRAW_ERASE); - draw_hexW (0, 50, *val, LCD_COLOR_B, DRAW_PUT); - break; - case FUNCENTRY: - entry->exec(); - return 1; - break; - case MENUENTRY: - m = (MENU*)entry->data; - if(m->num_entries != 0) - { - menu_exec((MENU*)entry->data); - return 1; - } - break; - default: - break; - } - return 0; -} // menu_execentry -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void menu_exec(struct MENU *menu) -{ - unsigned char total; // entries in menu - unsigned char csel; // selected entry - - unsigned char moff; // first entry displayed - unsigned char moffold; // only used to detect change - - unsigned char set; // iterator for visible entries - - csel = 0; - moff = 0; - -again: - lcd_fill(0); - - //----------------------------------------- - // Menu head line - set_font(BOLDFONT); - draw_string (0, 0, (char*)menu->name, LCD_COLOR_B, DRAW_PUT); - draw_block (0, BOLDFONT_HEIGHT+2, LCD_SIZE_X, 2, LCD_COLOR_B, DRAW_PUT); - // Menu bottom line - draw_block (0, LCD_SIZE_Y-SMALLFONT_HEIGHT-3, LCD_SIZE_X, 2, LCD_COLOR_B, DRAW_PUT); - //----------------------------------------- - - total = menu->num_entries; - moffold = total; - - while(KEY_Exit) {}; - while(!KEY_Exit) - { - // draw list: initially or when selection is on next 'page' and all entries 'move' - if (moff!=moffold) - { - // menu list - set_font (MENU_FONT); - draw_block (0, MENU_START_Y, LCD_SIZE_X, MENU_LINE_HEIGHT*MENU_LIST_LEN, LCD_COLOR_B, DRAW_ERASE); - for (set=moff; (setentry [set].name, LCD_COLOR_B, DRAW_PUT); - } - // scroll arrows - if (moff) // not the first page - { - draw_arrow (MENU_LINE_WIDTH+1, MENU_START_Y+3, - ARROW_UP, MENU_ARROW_SIZE, LCD_COLOR_B, DRAW_PUT); - } - if (total > moff+MENU_LIST_LEN) // not the last page - { - draw_arrow (MENU_LINE_WIDTH+1, MENU_LINE_HEIGHT*MENU_LIST_LEN+7, - ARROW_DOWN, MENU_ARROW_SIZE, LCD_COLOR_B, DRAW_PUT); - } - // scroll handle - if (total > MENU_LIST_LEN) - { - draw_block (MENU_LINE_WIDTH+1, MENU_START_Y + 10 + (MENU_SCROLLBAR_HEIGHT/(total-1))*(csel), - 9, MENU_SCROLLBAR_HEIGHT/(total-1), - LCD_COLOR_DG, DRAW_PUT); - } - // select entry (invert) - draw_block (0, MENU_START_Y + ((csel-moff) * MENU_LINE_HEIGHT), - MENU_LINE_WIDTH, MENU_LINE_HEIGHT, LCD_COLOR_B, DRAW_XOR); - } - moffold = moff; - - //----------------------------------------- - // Menu bottom line - set_font (SMALLFONT); - draw_block ( 0, LCD_SIZE_Y-SMALLFONT_HEIGHT, LCD_SIZE_X, SMALLFONT_HEIGHT, LCD_COLOR_B, DRAW_ERASE); - - // entry number - draw_char (0, LCD_SIZE_Y-SMALLFONT_HEIGHT, '0' + (csel+1)/10, LCD_COLOR_B, DRAW_PUT); - draw_char (6, LCD_SIZE_Y-SMALLFONT_HEIGHT, '0' + (csel+1)%10, LCD_COLOR_B, DRAW_PUT); - - // entry help text - draw_string (16, LCD_SIZE_Y-SMALLFONT_HEIGHT, (char*)menu->entry [csel].help, LCD_COLOR_B, DRAW_PUT); - //----------------------------------------- - - // wait for key press - waitKeyUpDown(); - - // deselect current entry - draw_block (0, MENU_START_Y + ((csel-moff) * MENU_LINE_HEIGHT), - MENU_LINE_WIDTH, MENU_LINE_HEIGHT, LCD_COLOR_B, DRAW_XOR); - - // clear scroll handle - if (total > MENU_LIST_LEN) - draw_block (MENU_LINE_WIDTH+1, MENU_START_Y + 10 + (MENU_SCROLLBAR_HEIGHT/(total-1))*(csel), - 9, MENU_SCROLLBAR_HEIGHT/(total-1), - LCD_COLOR_DG, DRAW_XOR); - - if(KEY_OK) - { - if(menu_execentry((MENU_ENTRY*)&menu->entry[csel])) - goto again; - } - if(KEY_Up) - { - csel--; - if(csel= total) - { - if (total > MENU_LIST_LEN) - moff = total - MENU_LIST_LEN; - csel = total-1; - } - } - if(KEY_Down) - { - csel++; - if (csel == MENU_LIST_LEN+moff) - moff++; - if (csel == total) - { - moff = 0; - csel = 0; - } - } - if(KEY_Left) - { - csel = 0; - moff = 0; - } - if(KEY_Right) - { - csel = total -1; - if (total > MENU_LIST_LEN) - moff = total - MENU_LIST_LEN; - } - unsigned char num = getKeynum(); - if (num >= 16 && num <= 25) - { - csel = num - 16; - if (csel >= total) - csel = total-1; - if(csel < moff) - moff = csel; - if (csel >= MENU_LIST_LEN-moff) - moff = csel - MENU_LIST_LEN+1; - if(menu_execentry((MENU_ENTRY*)&menu->entry[csel])) - goto again; - } - - // select new entry (invert) - draw_block (0, MENU_START_Y + ((csel-moff) * MENU_LINE_HEIGHT), - MENU_LINE_WIDTH, MENU_LINE_HEIGHT, LCD_COLOR_B, DRAW_XOR); - - // scroll handle moved - if (total > MENU_LIST_LEN) - draw_block (MENU_LINE_WIDTH+1, MENU_START_Y + 10 + (MENU_SCROLLBAR_HEIGHT/(total-1))*(csel), - 9, MENU_SCROLLBAR_HEIGHT/(total-1), - LCD_COLOR_DG, DRAW_PUT); - } // while (!KEY_Exit) -} // menu_exec -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void init_menu(void) -{ -} -//----------------------------------------------------------------------------- - diff --git a/boop/trunk/gui/menu.h b/boop/trunk/gui/menu.h deleted file mode 100644 index 30f04b6..0000000 --- a/boop/trunk/gui/menu.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - menu.h - menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef MENU_H -#define MENU_H - -#define NONE 0 -#define INTENTRY 1 -#define FUNCENTRY 2 -#define MENUENTRY 3 - -typedef void(*menu_fn)(void); - -typedef struct MENU_ENTRY -{ - menu_fn exec; - void *data; - unsigned char type; - char *name; - char *help; -} MENU_ENTRY; - -typedef struct MENU -{ - unsigned int num_entries; - struct MENU_ENTRY *entry; - char *name; -} MENU; - -void init_menu(void); - -void menu_exec(struct MENU *menu); -int menu_execentry(struct MENU_ENTRY *entry); - -#endif diff --git a/boop/trunk/gui/settingsmenu.c b/boop/trunk/gui/settingsmenu.c deleted file mode 100644 index 5f3f469..0000000 --- a/boop/trunk/gui/settingsmenu.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - settingsmenue.c - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "menu.h" -#include "settingsmenu.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "rtc.h" -#include "ir_selector.h" -#include "backlight.h" -#include "bfs.h" -#include "rf.h" -#include "ir_capture.h" -#include "controls.h" -#include "global.h" - -extern volatile unsigned char bl_val; -extern unsigned int bl_timeout; -extern unsigned char bl_max; -extern unsigned char bl_speed; -unsigned char lcd_contrast; - -const struct MENU_ENTRY settingsMenuEntries[] = -{ - { change_clock, 0, FUNCENTRY, "Clock", "set time/date" }, - { RC_setting, 0, FUNCENTRY, "RC keys", "assign RC keys" }, - { display_setting, 0, FUNCENTRY, "Display", "backlight, contrast" }, - { RF_setting, 0, FUNCENTRY, "RF", "ID, channel" }, - { RAW_learnmenue, 0, FUNCENTRY, "IR learn", "Learn IR commands" }, -}; - -const struct MENU settingsMenu = -{ - 5, (MENU_ENTRY*)&settingsMenuEntries, "Settings" -}; - -const struct settings_ default_settings = -{ - 0x02, // version change this when modifying the struct - 63, // bl_max hardware limit of LCD controller - LCD_CONTRAST, - 2, // bl_speed; - 1000 // bl_timeout -}; - -// change handlers - -void brightness_onchange(FORM* form, CONTROL* control) { - bl_max=((NUMBOX*)control)->value; - setBacklight(bl_max); -} - -void timeout_onchange(FORM* form, CONTROL* control) { - bl_timeout=((NUMBOX*)control)->value * 200; - setBacklight(bl_max); -} - -void contrast_onchange(FORM* form, CONTROL* control) -{ - lcd_contrast = ((NUMBOX*)control)->value; - //~ lcd_set_contrast(0x3A); - lcd_set_contrast(lcd_contrast); -} - -void speed_onchange(FORM* form, CONTROL* control) -{ - bl_speed=((NUMBOX*)control)->value; - //~ setBLSpeed(bl_speed); -} - -// the submenus - -void display_setting(void) { - - const LABEL label1 = {BC_Labelnotab, 0,15,100,10,BOLDFONT,0,"Brightness",0}; - NUMBOX numbox1 = {BC_Numbox, 0,25, 13, 9,SMALLFONT,bl_val,0,63,brightness_onchange,NULL}; - const LABEL label2 = {BC_Labelnotab, 0,37,100,10,BOLDFONT,0,"Contrast",0}; - NUMBOX numbox2 = {BC_Numbox, 0,47, 19, 9,SMALLFONT,lcd_contrast,0,63,contrast_onchange,NULL}; - const LABEL label3 = {BC_Labelnotab, 0,59,100,10,BOLDFONT,0,"Backlight timeout",0}; - NUMBOX numbox3 = {BC_Numbox, 0,69, 19, 9,SMALLFONT,bl_timeout/200,1,200,timeout_onchange,NULL}; - const LABEL label4 = {BC_Labelnotab, 0,81,100,10,BOLDFONT,0,"Backlight fade time",0}; - NUMBOX numbox4 = {BC_Numbox, 0,91, 19, 9,SMALLFONT,bl_speed,1,6,speed_onchange,NULL}; - - CONTROL* controls[8] = { (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&label3, - (CONTROL*)&label4, - (CONTROL*)&numbox1, - (CONTROL*)&numbox2, - (CONTROL*)&numbox3, - (CONTROL*)&numbox4}; - - FORM form = {"Display settings"," ",0,0,0,0,controls,4,8,0,0}; - form_exec(&form); // controls.c - - // grayscale staircase test pattern for calibration - // form_exec->form_draw clears the screen - // either add this as a control or - // clear screen manually before form_exec - //~ draw_block ( 0, 80, 20, 20, LCD_COLOR_B, DRAW_PUT); - //~ draw_block (21, 80, 20, 20, LCD_COLOR_DG, DRAW_PUT); - //~ draw_block (42, 80, 20, 20, LCD_COLOR_LG, DRAW_PUT); -} - -void RF_setting(void) { - struct RFsettings_ RFsettings; - - BFS_LoadFile(BFS_ID_RFsettings, sizeof(struct RFsettings_), (unsigned char*) &RFsettings); - - const LABEL label1 = {BC_Labelnotab, 0,15,100,10,BOLDFONT,0,"Device address",0}; - NUMBOX numbox1 = {BC_Numbox, 0,25, 19, 9,SMALLFONT,RFsettings.address,1,127,NULL,NULL}; - const LABEL label2 = {BC_Labelnotab, 0,37,100,10,BOLDFONT,0,"Channel",0}; - NUMBOX numbox2 = {BC_Numbox, 0,47, 19, 9,SMALLFONT,RFsettings.channel,0,255,NULL,NULL}; - - CONTROL* controls[4] = { (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&numbox1, - (CONTROL*)&numbox2}; - - FORM form = {"RF settings"," ",0,0,0,0,controls,2,4,0,0}; - - form_exec(&form); - - RFsettings.address = numbox1.value; - RFsettings.channel = numbox2.value; - - BFS_SaveFile(BFS_ID_RFsettings, sizeof(struct RFsettings_), (unsigned char*) &RFsettings); - load_RF_setting(); -} - -// learned remotes -void load_RC_setting(void) { - - if(BFS_LoadFile(BFS_ID_remotes, sizeof(struct irDeviceTable_), (unsigned char*) &irDevTab) != sizeof(struct irDeviceTable_)) { - irDevTab = default_irDevTab; - BFS_SaveFile(BFS_ID_remotes, sizeof(struct irDeviceTable_), (unsigned char*) &irDevTab); - draw_string(0, 30, "default RC load", 3, DRAW_PUT); - } -} - -// load values stored in flash to ram -// called by main() for init -void load_setting(void) { - struct settings_ settings; - - BFS_LoadFile(BFS_ID_settings, sizeof(struct settings_), (unsigned char*) &settings); - - // if neccessary, use hard-coded defaults - if(settings.version != default_settings.version) - { - settings = default_settings; - BFS_SaveFile(BFS_ID_settings, sizeof(struct settings_), (unsigned char*) &settings); - draw_string(0, 40, "default settings load", 3, DRAW_PUT); - } - // backlight // TODO: see void initBacklight(void) in backlight.c) - bl_timeout = settings.bl_timeout; - bl_max = settings.bl_max; - setBacklight(bl_max); - bl_speed = settings.bl_speed; - - // LCD contrast - lcd_contrast = settings.lcd_contrast ; - lcd_set_contrast(lcd_contrast); -} - -// called by the parent menu -void enter_settings_menu(void) { - struct settings_ settings; - - // run menu - menu_exec((struct MENU *)&settingsMenu); - - // save changes - settings = default_settings; - settings.bl_timeout = bl_timeout; - settings.bl_max = bl_max; - settings.lcd_contrast = lcd_contrast; - settings.bl_speed = bl_speed; - BFS_SaveFile(BFS_ID_settings, sizeof(struct settings_), (unsigned char*) &settings); -} diff --git a/boop/trunk/gui/settingsmenu.h b/boop/trunk/gui/settingsmenu.h deleted file mode 100644 index fde3564..0000000 --- a/boop/trunk/gui/settingsmenu.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - settingsmenue.h - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef SETTINGSMENU_H -#define SETTINGSMENU_H - -extern const struct MENU settingsMenu; - -struct settings_ { - unsigned char version; - unsigned char bl_max; - unsigned char lcd_contrast; - unsigned char bl_speed; - unsigned int bl_timeout; -}; - -void RF_setting(void); -void display_setting(void); -void load_RC_setting(void); -void load_setting(void); -void enter_settings_menu(void); - -#endif diff --git a/boop/trunk/gui/testmenu.c b/boop/trunk/gui/testmenu.c deleted file mode 100644 index 792d712..0000000 --- a/boop/trunk/gui/testmenu.c +++ /dev/null @@ -1,1247 +0,0 @@ -/* - testmenu.c - testmenu for menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "menu.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "backlight.h" -#include "adc.h" -#include "rf.h" -#include "flash.h" -#include "ir_raw.h" -#include "ir_capture.h" -#include "ir_selector.h" -#include "infrared.h" -#include "sid.h" -#include "timerfuncs.h" -#include "sound.h" -#include "lpc2220.h" -#include "controls.h" -#include "global.h" -#include "cc1100.h" -#include "rf.h" -#include "irq.h" -#include "serial.h" -#include "rtctimer.h" - -#include "icon.h" -#include "iconLeo_gray_128.h" - -#define TRANSPARENT_CROSS 1 // 0/1 -#if TRANSPARENT_CROSS -# include "iconCross_t.h" -# define ICON_CROSS iconCross_t -#else -# include "iconCross.h" -# define ICON_CROSS iconCross -#endif - -#include "iconHourglas.h" -#include "iconHourglas_t.h" - -//#include "sidfiles.h" - -extern volatile unsigned char bat_state; - -unsigned int testdata1, testdata2; - -#define MAX_SOFTMENU 16 - -void test_circle(void) -{ - lcd_fill (LCD_COLOR_W); - draw_disc (20, 20, 18, LCD_COLOR_B, DRAW_PUT); - draw_disc (20, 20, 14, LCD_COLOR_B, DRAW_XOR); - - draw_qdisc (60, 20, 18, 0, LCD_COLOR_B, DRAW_PUT); - draw_qdisc (60, 40, 18, 1, LCD_COLOR_B, DRAW_PUT); - draw_qdisc (60, 60, 18, 2, LCD_COLOR_B, DRAW_PUT); - draw_qdisc (60, 80, 18, 3, LCD_COLOR_B, DRAW_PUT); - - draw_qcircle (100, 20, 18, 0, LCD_COLOR_B, DRAW_PUT); - draw_qcircle (100, 40, 18, 1, LCD_COLOR_B, DRAW_PUT); - draw_qcircle (100, 60, 18, 2, LCD_COLOR_B, DRAW_PUT); - draw_qcircle (100, 80, 18, 3, LCD_COLOR_B, DRAW_PUT); - - - draw_circle (30,120,20, LCD_COLOR_B, DRAW_PUT); - - waitKeyUpDown(); -} - -void test_movearound(void) -{ - int xpos=0; - int ypos=0; - int oldx=0; - int oldy=0; - - lcd_fill (LCD_COLOR_W); - draw_disc (xpos+5, ypos+5, 5, LCD_COLOR_B, DRAW_PUT); - while (!KEY_Exit) - { - waitKeyUpDown(); - oldx=xpos; - oldy=ypos; - if (KEY_Up) - ypos -= 3; - if (KEY_Down) - ypos += 3; - if (KEY_Left) - xpos -= 3; - if (KEY_Right) - xpos += 3; - - if (xpos > 117) - xpos = 117; - if (xpos < 0) - xpos = 0; - if (ypos > 149) - ypos = 149; - if (ypos < 0) - ypos = 0; - - draw_disc (oldx+5, oldy+5, 5, LCD_COLOR_B, DRAW_ERASE); - draw_disc (xpos+5, ypos+5, 5, LCD_COLOR_B, DRAW_PUT); - } -} - - -void test_frame(void) -{ - lcd_fill (LCD_COLOR_W); - - draw_frame (0,0,40,40,4,0, LCD_COLOR_B, DRAW_PUT); - draw_frame (42,0,40,40,3,16, LCD_COLOR_B, DRAW_PUT); - draw_frame (84,0,40,40,7,3, LCD_COLOR_B, DRAW_PUT); - - - draw_frame (0,42,40,40,4,7, LCD_COLOR_B, DRAW_PUT); - draw_frame (42,42,40,40,4,8, LCD_COLOR_B, DRAW_PUT); - draw_frame (84,42,40,40,1,7, LCD_COLOR_B, DRAW_PUT); - - waitKeyUpDown(); -} - -void test_frame2(void) -{ - - unsigned char t, r; - t = 1; - r = 0; -again: - lcd_fill (LCD_COLOR_W); - - draw_string(0, 152, "t:", LCD_COLOR_B, DRAW_PUT); - draw_numU(12,152,t,0,LCD_COLOR_B,DRAW_PUT); - draw_string(64, 152, "r:", LCD_COLOR_B, DRAW_PUT); - draw_numU(76,152,r,0,LCD_COLOR_B,DRAW_PUT); - - draw_frame (0,0,LCD_SIZE_X,128,t,r, LCD_COLOR_B, DRAW_PUT); - - while(!KEY_Exit) - { - waitKeyUpDown(); - if(KEY_Vplus) - { - t++; - if(t>64) - t = 1; - goto again; - } - if(KEY_Vminus) - { - if(t==1) - t = 64; - else - t--; - goto again; - } - if(KEY_Pplus) - { - r++; - if(r>63) - r = 0; - goto again; - } - if(KEY_Pminus) - { - if(r==0) - r = 63; - else - r--; - goto again; - } - } -} - -#define DRAW_FONTS_LINESPACE 1 -#define DRAW_FONTS_XSTART 15 -void draw_fonts () -{ - unsigned short y = 10; - unsigned short h; - - lcd_fill (LCD_COLOR_W); -#if 0 - set_font (SMOOTHFONT); - draw_string (0, y, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (15, y+1, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (30, y+2, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (45, y+3, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (60, y+5, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (75, y+6, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (90, y+7, "ÜJ", LCD_COLOR_B, DRAW_PUT); - draw_string (105, y+8, "ÜJ", LCD_COLOR_B, DRAW_PUT); - y += 8; - y += SMOOTHFONT_HEIGHT + DRAW_FONTS_LINESPACE; -#endif - - set_font (SMALLFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y, DRAW_FONTS_XSTART-1, SMALLFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font(SMALLFONT); - draw_string (DRAW_FONTS_XSTART, y, "Small Font", LCD_COLOR_B, DRAW_PUT); - y += SMALLFONT_HEIGHT + DRAW_FONTS_LINESPACE; - - set_font (DOUBLEFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y, DRAW_FONTS_XSTART-1, DOUBLEFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+1, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font(DOUBLEFONT); - draw_string (DRAW_FONTS_XSTART, y, "Double Font", LCD_COLOR_B, DRAW_PUT); - y += DOUBLEFONT_HEIGHT + DRAW_FONTS_LINESPACE; - - set_font(BOLDFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y, DRAW_FONTS_XSTART-1, BOLDFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+1, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font (BOLDFONT); - draw_string (DRAW_FONTS_XSTART, y, "Bold Font", LCD_COLOR_B, DRAW_PUT); - y += BOLDFONT_HEIGHT + DRAW_FONTS_LINESPACE; - - set_font (BOLDDOUBLEFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y, DRAW_FONTS_XSTART-1, BOLDDOUBLEFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+1, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font(BOLDDOUBLEFONT); - draw_string (DRAW_FONTS_XSTART, y, "B.Double", LCD_COLOR_B, DRAW_PUT); - y += BOLDDOUBLEFONT_HEIGHT + DRAW_FONTS_LINESPACE; - - set_font (SMALLFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y+1, DRAW_FONTS_XSTART-1, SMALLFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+1, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font (SMALLFONT); - draw_string (DRAW_FONTS_XSTART+1, y + 1, "Invers Small Font", LCD_COLOR_B, DRAW_PUT); - draw_block (DRAW_FONTS_XSTART, y, LCD_SIZE_X, SMALLFONT_HEIGHT+2, LCD_COLOR_B, DRAW_XOR); - y += SMALLFONT_HEIGHT + 2 + DRAW_FONTS_LINESPACE; - - set_font (SMOOTHFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y, DRAW_FONTS_XSTART-1, SMOOTHFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+1, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font(SMOOTHFONT); - draw_string (DRAW_FONTS_XSTART, y, "Smooth Font", LCD_COLOR_B, DRAW_PUT); - y += SMOOTHFONT_HEIGHT + DRAW_FONTS_LINESPACE; - - set_font (SMOOTHFONT); - h = get_stringheight ("gÜJ"); - draw_block (0, y+1, DRAW_FONTS_XSTART-1, SMOOTHFONT_HEIGHT, LCD_COLOR_B, DRAW_PUT); - set_font (SMALLFONT); - draw_numU (1, y+2, h, 0, LCD_COLOR_B, DRAW_XOR); - set_font (SMOOTHFONT); - draw_string (DRAW_FONTS_XSTART+1, y + 1, "Invers Smooth", LCD_COLOR_B, DRAW_PUT); - draw_block (DRAW_FONTS_XSTART, y, LCD_SIZE_X, SMOOTHFONT_HEIGHT+2, LCD_COLOR_B, DRAW_XOR); - y += SMOOTHFONT_HEIGHT + 2 + DRAW_FONTS_LINESPACE; - - set_font(BOLDFONT); - waitKeyUpDown(); -} - -void test_logo(void) -{ - lcd_fill (LCD_COLOR_W); - draw_logo(); - waitKeyUpDown(); -} - - - -//----------------------------------------------------------------------------- -#undef ICON_INFO -#define ICON_INFO(i) - -#undef ICON_INFO_ELEMENT -#define ICON_INFO_ELEMENT - -#undef ICON -#define ICON iconElement_t - -#include "iconFr.h" -#include "iconPlay.h" -#include "iconPause.h" -#include "iconStop.h" -#include "iconFf.h" - -static const ICON* const iconList [] = -{ - &iconFr, - &iconPlay, - &iconPause, - &iconStop, - &iconFf -}; - -//----------------------------------------------------------------------------- -#define HOURGLAS_CENTER 120 -void test_DrawIcon (int x, int y, int h, int w) -{ - int i; - int ix; - - lcd_fill (LCD_COLOR_W); - - draw_block (LCD_SIZE_X / 2, LCD_SIZE_Y / 2, - 32, HOURGLAS_CENTER - LCD_SIZE_Y / 2 + 2, - LCD_COLOR_LG, DRAW_NORCU); - draw_block (LCD_SIZE_X / 2, HOURGLAS_CENTER, - 32, LCD_SIZE_Y - HOURGLAS_CENTER, LCD_COLOR_DG, DRAW_NORCU); - - drawIcon (0, 10, &iconLeo_gray_128, LCD_COLOR_B, DRAW_PUT); - - drawIcon (LCD_SIZE_X / 2 - iconHourglas.width / 2, HOURGLAS_CENTER - iconHourglas.height / 2, - &iconHourglas, LCD_COLOR_B, DRAW_PUT); - drawIcon (LCD_SIZE_X / 2 + 32 - iconHourglas_t.width / 2, HOURGLAS_CENTER - iconHourglas.height / 2, - &iconHourglas_t, LCD_COLOR_B, DRAW_ALPHA); - -#if TRANSPARENT_CROSS - drawIcon (x, y, &ICON_CROSS, LCD_COLOR_B, DRAW_ALPHA); -#else - drawIcon (x, y, &ICON_CROSS, LCD_COLOR_B, DRAW_PUT); -#endif - - //------------------------------------------------------- - ix = w; - for (i = 0; i < NUM_OF_ELEMENTS (iconList); i++) - { - drawIconExt (ix, LCD_SIZE_Y-1 - h, - iconList [i]->data, - iconList [i]->width, iconList [i]->height, ICON_GRAY, - LCD_COLOR_B, DRAW_NORCU); - ix += w + iconList [i]->width; - } - //------------------------------------------------------- - draw_numU (0, 0, - x, 0, LCD_COLOR_B, DRAW_NORCU); - draw_numU (30, 0, - y, 0, LCD_COLOR_B, DRAW_NORCU); -} // test_DrawIcon -//----------------------------------------------------------------------------- - - - -//----------------------------------------------------------------------------- -void test_icon () -{ - int i; - int x, y; - int w = 0; - int h = 0; - - set_font (SMALLFONT); - - x = LCD_SIZE_X / 2 - ICON_CROSS.width / 2; - y = LCD_SIZE_Y / 2 - ICON_CROSS.height / 2; - - for (i = 0; i < NUM_OF_ELEMENTS (iconList); i++) - { - w += iconList [i]->width; - h = max (h, iconList [i]->height); - } - w = LCD_SIZE_X - w; - w /= NUM_OF_ELEMENTS (iconList) + 1; - - test_DrawIcon (x, y, h, w); - - //waitKeyUpDown (); - - setBacklight (BL_AUTO); - while (KEY_Exit) {}; - waitKeyUp (); - while (1) - { - if (isKeyPressed ()) - { - setBacklight (BL_AUTO); // pwm value - if (KEY_Exit) - return; - //--------------------------------------- - - if (KEY_Up) - y--; - else if (KEY_Down) - y++; - else if (KEY_Left) - x--; - else if (KEY_Right) - x++; - else if (KEY_OK) - { - x += 10; - y -= 10; - } - else - { - unsigned char num = getKeynum (); - if (num >= 16 && num <= 25) - { - if (num == 25) - num = 0; - else - num -= 15; - - x += num; - y -= num; - } - } - - if (x >= LCD_SIZE_X) - x = 0; - else if (x < 0) - x = LCD_SIZE_X-1 - ICON_CROSS.width; - - if (y >= LCD_SIZE_Y) - y = 0; - else if (y < 0) - y = LCD_SIZE_Y-1 - ICON_CROSS.height; - - test_DrawIcon (x, y, h, w); - - //--------------------------------------- - waitKeyUp (); - } // if (isKeyPressed ()) - } // while (1) -} // test_icon -//----------------------------------------------------------------------------- - - - -void fp1 () -{ - unsigned char x,y; - lcd_fill (LCD_COLOR_W); - set_font(SMALLFONT); - - for(x=0;x<16;x++) - { - for(y=0;y<16;y++) - { - draw_char (x*8, (y*8)+16,x*16+y, LCD_COLOR_B, DRAW_PUT); - } - } - waitKeyUpDown(); -} - -extern volatile unsigned char bl_val; - -void set_bl(void) -{ - lcd_fill (LCD_COLOR_W); - set_font(SMALLFONT); - - draw_string (0, 20, "Set Backlight:", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 30, "Prog/Vol+: brighter", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 40, "Prog/Vol-: darker", LCD_COLOR_B, DRAW_PUT); - draw_numU (0, 64, bl_val, 0, LCD_COLOR_B, DRAW_PUT); - - while(!KEY_Exit) - { - waitKeyUpDown(); - bl_val &= 0x3F; - if(KEY_Pplus || KEY_Pminus || KEY_Vplus || KEY_Vminus) - { - draw_block(0,64,32,8,3,DRAW_ERASE); - if(KEY_Pplus) - bl_val++; - if(KEY_Pminus) - bl_val--; - if(KEY_Vplus) - bl_val+=10; - if(KEY_Vminus) - bl_val-=10; - draw_numU (0, 64, bl_val, 0, LCD_COLOR_B, DRAW_PUT); - } - } - -} - -/* -void softfunc1(void) -{ - set_font(BOLDFONT); -draw_block (0, 80, LCD_SIZE_X, 20, LCD_COLOR_B, DRAW_ERASE); -draw_string (0, 80, "softfunc1 called", LCD_COLOR_B, DRAW_PUT); -while(!KEY_Exit) {}; -} -*/ - -void draw_itile(unsigned char x, unsigned char y, unsigned char type) -{ -again: - if(type < 0xF0) - { - if(type & 0x10) - draw_block(x+1, y+1, 2, 2, 3, DRAW_XOR); - if(type & 0x20) - draw_block(x+5, y+1, 2, 2, 3, DRAW_XOR); - if(type & 0x40) - draw_block(x+1, y+5, 2, 2, 3, DRAW_XOR); - if(type & 0x80) - draw_block(x+5, y+5, 2, 2, 3, DRAW_XOR); - } - - type <<= 4; - - if(type) - { - x += 8; - goto again; - } -} - -const char itilemap[7][7] = -{ - { 0x00, 0x00, 0x00, 0x6C, 0x90, 0x00, 0x00 }, - { 0x00, 0x00, 0x66, 0x6C, 0x99, 0x90, 0x00 }, - { 0x00, 0x06, 0x66, 0x6C, 0x99, 0x99, 0x00 }, - { 0x00, 0x66, 0x66, 0x6C, 0x99, 0x99, 0x90 }, - { 0x00, 0x66, 0x66, 0x6C, 0x99, 0x99, 0x90 }, - { 0x06, 0x66, 0x66, 0x6C, 0x99, 0x99, 0x99 }, - { 0x0A, 0xAA, 0xAA, 0xA0, 0x55, 0x55, 0x55 } -}; - -void illusion(void) -{ - int x,y,z; - - lcd_fill (LCD_COLOR_W); - z = 1; - for(x=0;x<15;x++) - { - for(y=0;y<15;y++) - { - if(z++ & 0x01) - { - draw_block (2+ (x*8), 16+ (y*8), 8, 8, LCD_COLOR_B, DRAW_PUT); - } - } - } - - for(y=0;y<7;y++) - { - for(x=0;x<7;x++) - { - draw_itile(2+(x*16), 24+(y*8), itilemap[y][x]); - } - } - - for(y=0;y<6;y++) - { - for(x=0;x<7;x++) - { - draw_itile(2+(x*16), 80+(y*8), ~itilemap[5-y][x]); - } - } - - - waitKeyUpDown(); -} - -void test_bl(void) -{ - setBacklight(BL_AUTO); -} - -void bat_dbg(void) -{ - bat_state ^= BAT_DEBUG; -} - -void tkey(void) -{ - while(1) - { - waitKeyUpDown(); - setBacklight(BL_AUTO); - lcd_fill (LCD_COLOR_W); - set_font(SMALLFONT); - draw_hexW (0, 16, keys[0], LCD_COLOR_B, DRAW_PUT); - draw_hexW (0, 24, keys[1], LCD_COLOR_B, DRAW_PUT); - } -} - -// plot a graph RSSI/t -void RSSI_monitor(void) { - unsigned char row = 0; - int rssi_dBm; - unsigned char rssi; - volatile unsigned long timer = 0; - unsigned char x; - lcd_fill (LCD_COLOR_W); - - // title - set_font(BOLDFONT); - draw_string (0, 0, "RF test", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - RF_changestate(RFrx); - - // coordinate system - // x (time) - draw_block (19,20,102,1, LCD_COLOR_B, DRAW_PUT); - - // y (RSSI) - draw_block (19,20,1,129, LCD_COLOR_B, DRAW_PUT); // axis - for(x=20;x<150;x+=10) // ticks - draw_pixel (18,x, LCD_COLOR_B, DRAW_PUT); - for(x=20;x<160;x+=20) // value - draw_numU (0, x-3, x-20, 0, LCD_COLOR_B, DRAW_PUT); - draw_string (0,152, "-dBm", LCD_COLOR_B, DRAW_PUT); // label - - - while(KEY_Exit) {}; - while (!KEY_Exit) - { - // wait - while (timer) - { - if(KEY_Exit) - timer = 0; - } - addTimeout(&timer,20); // next sample in n*5 ms (100 ms) - - // read RSSI - VICIntEnClr = INT_EINT0; - rssi = cc1100_read1(RSSI); - VICIntEnable = INT_EINT0; - - // scale - if(rssi & 0x80) - rssi_dBm = (rssi-256)/2-75; - else - rssi_dBm = rssi/2-75; - - if(rssi_dBm < 0) - rssi_dBm = ~rssi_dBm + 1; - else - rssi_dBm = 0; - - // plot - draw_block (row+20,21,1,128, LCD_COLOR_B, DRAW_ERASE); - draw_pixel(row+20, rssi_dBm+30, LCD_COLOR_B, DRAW_PUT); - draw_pixel (row+20,19, LCD_COLOR_B,DRAW_ERASE); - - // next time - row++; - if(row == 100) - row=0; - draw_pixel (row+20, 19, LCD_COLOR_B, DRAW_PUT); - //draw_block (row+20,30,1,100, LCD_COLOR_B, DRAW_PUT); - } - removeTimeout(&timer); - RF_changestate(RFwor); -} - - -// plot incoming radio data in single shot mode -// CC1100 datasheet section 31.1 Asynchronous Operation, p. 57 -// 1 px is 50 ys -void RF_viewer(void) { - unsigned char row = 0; - unsigned char col = 16; - - lcd_fill (LCD_COLOR_W); - set_font(BOLDFONT); - draw_string (0, 0, "RF viewer", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - RFasyncmode(true); - - //cc1100_write1(FREQ2,0x20); - //cc1100_write1(FREQ1,0x29); - //cc1100_write1(FREQ0,0x3E); - - //cc1100_write1(AGCCTRL2,0x07); - //cc1100_write1(AGCCTRL1,0x00); - //cc1100_write1(AGCCTRL0,0x91); - //~ cc1100_write1(AGCCTRL2,0x03); - //~ cc1100_write1(AGCCTRL1,0x00); - //~ cc1100_write1(AGCCTRL0,0x92); - -//~ #define RF2UART - -#ifdef RF2UART - unsigned char bits=0; - unsigned char bitno=7; - - // set uart baudrate - serial_setbrg(230400); // fastest - - // set frequency - //~ cc1100_write1(FREQ2,0x10); - //~ cc1100_write1(FREQ1,0x12); - //~ cc1100_write1(FREQ0,0xF6); - - // set gain // OOK/ASK optima. see TI DN022 - //~ cc1100_write1(AGCCTRL2,0x07); // A - cc1100_write1(AGCCTRL2,0x03); // B - cc1100_write1(AGCCTRL1,0x00); - //~ cc1100_write1(AGCCTRL0,0x92); // A - cc1100_write1(AGCCTRL0,0x91); // B -#endif - - cc1100_strobe(SFRX); - cc1100_strobe(SRX); - - while(KEY_Exit) {}; - while(!KEY_Exit) - { -#ifdef RF2UART - //~ waitus(100); // 1 byte -> 10 bits / 115200 baud = 86,8 ys - waitus(50); // 1 byte -> 10 bits / 230400 baud = 43,4 ys - - if (!(FIOPIN0 & GDO2)) // get rf state as bit - bits |= (1< uart - { - bitno = 7; - serial_putbyte(bits); - bits = 0; - } - else - bitno--; // advance - -#else - waitus(50); - - draw_block(row,col,2,8,3,DRAW_ERASE); - - // plot: get data from CC1100's GDO2 on P0.24 (fast IO) - if((FIOPIN0 & GDO2)) - draw_pixel (row,col+2, LCD_COLOR_B, DRAW_PUT); - else - draw_pixel (row,col, LCD_COLOR_B, DRAW_PUT); - - // advance plot position - row++; - if(row == 127) - { - col +=8; - row=0; - - // screen is full, wait for keypress - if(col >140) - { - wait5ms(); - col = 16; - while(!(keys[0] || keys[1]));// && !(FIOPIN0 & GDO2)); // this seems strange, alternatives: while(!ANYKEY) or isKeyPressed - } - } -#endif - } - RFasyncmode(false); -} - - -void test_RF(void) { - - unsigned char destAddr; - - lcd_fill (LCD_COLOR_W); - destAddr = 0x01; - - set_font(BOLDFONT); - draw_string (0, 0, "RF test", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - draw_block (0,149,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - draw_string (1, 15, "Destination address", LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - draw_string (0, 60, "TV/Power Key:", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 69, "send something", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 86, "OK Key: Ping", LCD_COLOR_B, DRAW_PUT); - - draw_numU (1, 25, destAddr, 0, LCD_COLOR_B, DRAW_PUT); - - while(KEY_Exit) {}; - while(!KEY_Exit) - { - waitKeyUpDown(); - - - draw_numU (1, 25, destAddr, 0, LCD_COLOR_B, DRAW_XOR); - if(KEY_Left) { - destAddr--; - } - if(KEY_Right) { - destAddr++; - } - draw_numU (1, 25, destAddr, 0, LCD_COLOR_B, DRAW_XOR); - - - if(KEY_OK) - { - unsigned char ping; - draw_block (0,40,LCD_SIZE_X,10,3,DRAW_ERASE); - draw_string (0, 40, "send ping", LCD_COLOR_B, DRAW_PUT); - - ping = RF_sendping(destAddr); - - draw_block (0,40,LCD_SIZE_X,10,3,DRAW_ERASE); - if (ping) { - draw_string (0, 40, "ping received", LCD_COLOR_B, DRAW_PUT); - } - else { - draw_string (0, 40, "ping timeout", LCD_COLOR_B, DRAW_PUT); - } - - } - else if(KEY_Power) - { - struct RFendpoint_* cur_ep; - - cur_ep = openEP(0,0, packet_test); - if(cur_ep) { - cur_ep->dest = destAddr; - cur_ep->data[0] = 'P'; - cur_ep->data[1] = 'W'; - cur_ep->data[2] = 0x00; - cur_ep->bufferlen = 3; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce | EPsendwor; - - RF_changestate(RFtx); - } - } - else if(KEY_TV) - { - struct RFendpoint_* cur_ep; - - cur_ep = openEP(0,0, packet_test); - cur_ep->dest = destAddr; - cur_ep->data[0] = 'T'; - cur_ep->data[1] = 'V'; - cur_ep->data[2] = 0x00; - cur_ep->bufferlen = 3; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce | EPsendwor; - - RF_changestate(RFtx); - } - } -} - - -void test_irrec(void) { - - struct RAWcmd_ test_cmd; - - test_cmd.tval = 0; - - lcd_fill (LCD_COLOR_W); - - set_font(BOLDFONT); - draw_string (0, 0, "IR receive test", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - draw_block (0,149,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - draw_string (0, 20, "OK Key:", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 29, "receive IR command", LCD_COLOR_B, DRAW_PUT); - - draw_string (0, 40, "Mute Key:", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 49, "send received command", LCD_COLOR_B, DRAW_PUT); - - while(KEY_Exit) {}; - while(!KEY_Exit) - { - waitKeyUpDown(); - if(KEY_OK) - { - getIR_test(&test_cmd); - } - if(KEY_Mute) - { - RAW_Send((unsigned long)&test_cmd); - while(KEY_Mute) - RAW_Repeat(); - RAW_Stop(); - } - } - setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set); -} - -void erase_flash1(void) -{ int x; - - x = eraseFlash(1); - -} - -void test_sid(void) { - unsigned char temp; - - lcd_fill (LCD_COLOR_W); - - set_font(BOLDFONT); - draw_string (0, 0, "SID", LCD_COLOR_B, DRAW_PUT); - draw_block (0,10,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - draw_block (0,149,LCD_SIZE_X,2, LCD_COLOR_B, DRAW_PUT); - set_font(SMALLFONT); - - draw_string (0, 20, "A B C D", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 29, "set envelope", LCD_COLOR_B, DRAW_PUT); - - draw_string (0, 45, "OK", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 54, "play a song", LCD_COLOR_B, DRAW_PUT); - - draw_string (0, 70, "1-7", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 79, "play a note", LCD_COLOR_B, DRAW_PUT); - - draw_string (0, 95, "color keys", LCD_COLOR_B, DRAW_PUT); - draw_string (0, 104, "set waveform", LCD_COLOR_B, DRAW_PUT); - - sysInfo |= SYS_IR; - SID.noise = 0xaa; - playstate = 0x00; - playtone[0] = 0; - playtone[1] = 0; - playtone[2] = 0; - temp = 0; - PWMPR = 0; - switchSound(SOUND_ON); - SID.flags |= SIDenable; - SIDsetwave(0,TRIANGLE); - SIDsetadsr(0,8,8,10,8); - - while(KEY_Exit) {}; - do { - waitKeyUp(); - if (temp) - { - SID.reg[REG_Control] &= ~GATE; - temp = 0; - } - waitKeyDown(); - if (KEY_1) - { - SIDsetfrq(0,4455); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_2) - { - SIDsetfrq(0,5001); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_3) - { - SIDsetfrq(0,5613); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_4) - { - SIDsetfrq(0,5947); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_5) - { - SIDsetfrq(0,6676); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_6) - { - SIDsetfrq(0,7493); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_7) - { - SIDsetfrq(0,8411); - SID.reg[REG_Control] |= GATE; - temp =1; - } - else if (KEY_A) - { - SIDsetadsr(0,0,10,7,5); - } - else if (KEY_B) - { - SIDsetadsr(0,0,10,0,10); - } - else if (KEY_C) - { - SIDsetadsr(0,8,8,10,6); - } - else if (KEY_D) - { - SIDsetadsr(0,0,0,15,1); - } - else if (KEY_Red) - { - SIDsetwave(0,TRIANGLE); - } - else if (KEY_Green) - { - SIDsetwave(0,SAWTOOTH); - } - else if (KEY_Yellow) - { - SID.reg[REG_PWhi] = 0x08; - SIDsetwave(0,RECTANGLE); - } - else if (KEY_Blue) - { - SIDsetwave(0,NOISE); - } - else if (KEY_OK) - { - if (playstate == 0) - { - playstate = 1; - - SIDsetadsr(1,0,5,0,5); - SIDsetwave(1,SAWTOOTH); - SID.reg[7+REG_PWhi] = 0x06; - tonelen[1] = 0; - playtone[1] = (unsigned char*)&song3[0]; - - SIDsetadsr(2,0,9,0,9); - SIDsetwave(2,RECTANGLE); - SID.reg[14+REG_PWhi] = 0x08; - tonelen[2] = 0; - playtone[2] = (unsigned char*)&song2[0]; - - playtone_cb = addTimerCB(SIDplaytone, 4); - startCB(playtone_cb); - } - } - } while (!KEY_Exit); - sysInfo &= ~SYS_IR; - switchSound(SOUND_OFF); - SID.flags &= ~SIDenable; -} - -void test_click(FORM* form, CONTROL* control) { - unsigned char x; - x=msgbox(45,BC_OKOnly | BC_DefaultButton1,control->caption); - form_draw(form); -} - -void test2_click(FORM* form, CONTROL* control) { - beep(0); -} - -void test3_click(FORM* form, CONTROL* control) { - beep(1); -} - -void test_numbox(FORM* form, CONTROL* control) { - unsigned char x; - x=msgbox(30,BC_OKOnly | BC_DefaultButton1,"numbox click"); - form_draw(form); -} - -void test_numchange(FORM* form, CONTROL* control) { - unsigned short x; - x=((NUMBOX*)control)->value; - if(x==50) { - x=msgbox(30,BC_OKOnly | BC_DefaultButton1,"numbox =50"); - form_draw(form); - } -} - -void test_change(FORM* form, CONTROL* control) { - unsigned short x; - x=msgbox(30,BC_OKOnly | BC_DefaultButton1,"geaendert"); - form_draw(form); -} - -void formload (FORM* form) -{ - unsigned char x; - struct RFendpoint_* cur_ep; - - cur_ep = openEP(&(form->controls[7])->tag1, 1, packet_RFenc); - form->tag = (unsigned long) cur_ep; - if (cur_ep) - { - cur_ep->flags |= EPenabled; - RF.flags &= ~WORenabled; - RF_changestate(RFrx); - } - - x=msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form open"); -} - -void formclose (FORM* form) -{ - unsigned char x; - - if (form->tag) - { - closeEP((struct RFendpoint_*)form->tag); - RF_changestate(RFwor); - } - - x=msgbox(50,BC_OKOnly | BC_DefaultButton1,"Form close"); - -} - -void test_timer (FORM* form) -{ - struct RFendpoint_* cur_ep; - - cur_ep = (struct RFendpoint_*)form->tag; - if (cur_ep->flags & EPnewdata) - { - cur_ep->flags &= ~EPnewdata; - control_draw(form->controls[7], (form->sel == 7)); - } -} - -void test_controls(void) { - - const char* listbox1items[5] = { "Listitem1", - "Listitem2", - "Listitem3", - "Listitem4", - "Listitem555"}; - - char txtbuffer[20]; - const LABEL label1 = {BC_Label,0,15,40,10,SMALLFONT,0,"label1",test_click}; - const LABEL label2 = {BC_Labelnotab,50,15,40,9,BOLDFONT,0,"label2",0}; - const LABEL label3 = {BC_Labelnotab,0,110,40,9,BOLDFONT,0,"Numbox:",0}; - const BUTTON button1 = {BC_Button,0,30,40,15,SMALLFONT,0,"Button1",test_click}; - const BUTTON button2 = {BC_Button,0,50,40,16,SMALLFONT,0,"Button2",test2_click}; - const BUTTON button3 = {BC_Button,0,70,40,16,SMALLFONT,0,"Button3",test3_click}; - const BUTTON button4 = {BC_Button | BC_Disabled,0,90,40,16,SMALLFONT,0,"Button4",test_click}; - NUMBOX numbox1 = {BC_Numbox,0,120,20,9,SMALLFONT,1,1,500,test_numbox,test_numchange}; - TXTBOX txtbox1 = {BC_Txtbox,0,135,120,10,SMALLFONT,20,0,txtbuffer,test_click,test_change}; - DATEBOX datebox1 = {BC_Datebox,50,30,58,9,SMALLFONT,0,{0x01, 0x02, 0x01, 0x08},NULL,test_change}; - TIMEBOX timebox1 = {BC_Timebox,50,50,58,9,SMALLFONT,0,{0x00, 0x00, 0x12, 0x00},NULL,test_change}; - LISTBOX listbox1 = {BC_Listbox,50,70,58,10,SMALLFONT,0,5,(char**)listbox1items,NULL,test_change}; - - CONTROL* controls[12] = { (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&label3, - (CONTROL*)&button1, - (CONTROL*)&button2, - (CONTROL*)&button3, - (CONTROL*)&button4, - (CONTROL*)&numbox1, - (CONTROL*)&txtbox1, - (CONTROL*)&datebox1, - (CONTROL*)&timebox1, - (CONTROL*)&listbox1}; - - FORM form = {"Controls","footer\tTab\tTab",formload,formclose,test_timer,0,controls,3,12,0,10}; - memcpy(txtbuffer,"Textbox",8); - - form_exec(&form); - -} - -/* -struct MENU_ENTRY softMenuEntries[16]; -struct MENU softMenu; -*/ - -const struct MENU_ENTRY testMenuEntries[] = -{ - {RTCtimer_edit, 0, FUNCENTRY, "Timer", "Timer" }, - {test_icon, 0, FUNCENTRY, "Icon Demo", "Draw icons" }, - {test_irrec, 0, FUNCENTRY, "Receive IR", "Receive IR" }, - {test_RF, 0, FUNCENTRY, "RF test", "Test RF" }, - {RSSI_monitor, 0, FUNCENTRY, "RSSI Monitor", "RSSI Monitor" }, - {RF_viewer, 0, FUNCENTRY, "RF viewer", "RF viewer" }, - {test_circle, 0, FUNCENTRY, "Circle", "Draw circles" }, - {test_controls, 0, FUNCENTRY, "Controls", "Control elements" }, - {test_frame, 0, FUNCENTRY, "Frame", "Draw frame" }, - {test_frame2, 0, FUNCENTRY, "Frame2", "Draw frame2" }, - {draw_fonts, 0, FUNCENTRY, "Fonts", "Draw fonts" }, - {test_logo, 0, FUNCENTRY, "Logo", "Draw logo" }, - {fp1, 0, FUNCENTRY, "Charset", "Draw charset" }, - {illusion, 0, FUNCENTRY, "Illusion", "Optical illusion" }, - {test_bl, 0, FUNCENTRY, "Auto backlight", "Test auto backlight" }, - {bat_dbg, 0, FUNCENTRY, "Bat debug", "Show/hide bat values"}, - {tkey, 0, FUNCENTRY, "Keytest", "Test keypad" }, - {erase_flash1, 0, FUNCENTRY, "Erase Flash1", "Erase Flash1" }, - {test_sid, 0, FUNCENTRY, "Sound", "Play music" }, - {test_movearound, 0, FUNCENTRY, "Move", "Slowly move a cursor"}, -// { 0, (void*)&softMenu, MENUENTRY, "Soft-Test", "access soft" } -}; - -const struct MENU testMenu = -{ - NUM_OF_ELEMENTS (testMenuEntries), (MENU_ENTRY*)&testMenuEntries, "Test Menu" -}; - -/* -void testmenu_init(void) -{ - testdata1 = 0; - testdata2 = 0; - - for(i=0;i<16;i++) - { - softMenuEntries[i].exec = 0; - softMenuEntries[i].data = 0; - softMenuEntries[i].type = 0; - softMenuEntries[i].name = 0; - softMenuEntries[i].help = 0; - } - - softMenuEntries[0].exec = softfunc1; - softMenuEntries[0].data = 0; - softMenuEntries[0].type = FUNCENTRY; - softMenuEntries[0].name = "softfunc test"; - softMenuEntries[0].help = "run softfunc test"; - - - softMenu.name = "Soft Menu"; - softMenu.num_entries = 1; - softMenu.entry = softMenuEntries; - -} -*/ - diff --git a/boop/trunk/gui/testmenu.h b/boop/trunk/gui/testmenu.h deleted file mode 100644 index 79f990e..0000000 --- a/boop/trunk/gui/testmenu.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - testmenu.h - testmenu for menuing system - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef TESTMENU_H -#define TESTMENU_H - -extern struct MENU testMenu; -//void testmenu_init(void); -void test_irrec(void); - -#endif diff --git a/boop/trunk/infrared/Make.conf b/boop/trunk/infrared/Make.conf deleted file mode 100644 index 2a1fa32..0000000 --- a/boop/trunk/infrared/Make.conf +++ /dev/null @@ -1,5 +0,0 @@ -THUMBSRCS := infrared.c codes.c encoders.c ir_capture.c ir_selector.c -SRCS := infraredirq.c -THUMBSRCSUNOPT := ir_itt.c ir_nrc17.c \ - ir_raw.c ir_rc5.c ir_rc6.c ir_rca.c ir_rcmm.c ir_rec80.c ir_recs80.c ir_rf.c \ - ir_sirc.c ir_spaceenc.c ir_lirc.c diff --git a/boop/trunk/infrared/codes.c b/boop/trunk/infrared/codes.c deleted file mode 100644 index f30c7ad..0000000 --- a/boop/trunk/infrared/codes.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - codes.c - structs for accessing the infrared-codetables - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "codes.h" -#include "ir_lirc.h" - -const struct TABLES_S ITT = -{ - 4, - { - { - #include "ir_codes/itt/seleco_019" - "Seleco #19" - }, - { - #include "ir_codes/itt/seleco_049" - "Seleco #49" - }, - { - #include "ir_codes/itt/seleco_108" - "Seleco #108" - }, - { - #include "ir_codes/itt/seleco_131" - "Seleco #131" - }, - } -}; - -const struct TABLES_S NRC17 = -{ - 2, - { - { - #include "ir_codes/nrc17/dbox2" - "DBox 2" - }, - { - #include "ir_codes/nrc17/grundig_tp720" - "Grundig TP720" - } - } -}; - - -#define RC5_STD(cmd) 0x1000 | cmd -#define RC5X(cmd) cmd - -const struct TABLES_S RC5 = -{ - 3, - { - { - #include "ir_codes/rc5/tv" - "Generic TV" - }, - { - #include "ir_codes/rc5/HARMONY_655" - "Logitec Harmony" - }, - { - #include "ir_codes/rc5/technisat_satreceiver_103TS103" - "SAT(103TS103)" - } - } -}; - -const struct TABLES_I RC6 = -{ - 3, - { - { - #include "ir_codes/rc6/tv" - "RC6 TV" - }, - { - #include "ir_codes/rc6/dvd" - "RC6 DVD" - }, - { - #include "ir_codes/rc6/ufs922" - "UFS 922" - } - } -}; - -const struct TABLES_C RCA = -{ - 1, - { - { - #include "ir_codes/rca/xbox" - "X-Box" - } - } -}; - -const struct TABLES_I RCMM = -{ - 2, - { - { - #include "ir_codes/rcmm/galaxis" - "Galaxis Sat" - }, - { - #include "ir_codes/rcmm/ufs910" - "UFS 910" - } - } -}; - -const struct TABLES_I REC80 = -{ - 1, - { - { - #include "ir_codes/rec80/rak_sc957wk" - "RAK SC-957-WK" - } - } -}; - -const struct TABLES_S RECS80 = -{ - 2, - { - { - #include "ir_codes/recs80/seleco_020" - "seleco#20" - }, - { - #include "ir_codes/recs80/seleco_157" - "Seleco #157" - } - } -}; - -const struct TABLES_S SIRC = -{ - 3, - { - { - #include "ir_codes/sirc/rm-pp411" - "RM-PP411" - }, - { - #include "ir_codes/sirc/tv" - "Generic TV" - }, - { - #include "ir_codes/sirc/UFD400" - "Katrein UFD400" - } - } -}; - -const struct TABLES_C SPACEENC = -{ - 2, - { - { - #include "ir_codes/spaceenc/schneider_dtv3" - "Schneider DTV3" - }, - { - #include "ir_codes/spaceenc/seleco_027" - "Seleco #27" - } - } -}; - -const struct TABLES_S IRRF = -{ - 2, - { - { - #include "ir_codes/rf/cc1100_a0" - "RF 0" - }, - { - #include "ir_codes/rf/cc1100_a1" - "RF 1" - } - } -}; - -const struct TABLES_N RAW = -{ - 4, - { - { - "RAW Set 1" - }, - { - "RAW Set 2" - }, - { - "RAW Set 3" - }, - { - "RAW Set 4" - } - - } -}; - -const struct TABLES_L LIRC = -{ - 9, - { - { - #include "ir_codes/lirc/ufs922" - "UFS 922" - }, - { - #include "ir_codes/lirc/str_de545" - "STR-DE545" - }, - { - #include "ir_codes/lirc/ufs910" - "UFS 910" - }, - { - #include "ir_codes/lirc/fs20" - "FS20" - }, - { - #include "ir_codes/lirc/hx2262" - "HX2262" - }, - { - #include "ir_codes/lirc/rev008340" - "REV 008340" - }, - { - #include "ir_codes/lirc/olympus_rm-1" - "Olympus RM-1" - }, - { - #include "ir_codes/lirc/apple_remote1" - "Apple Remote 1st gen." - }, - { - #include "ir_codes/lirc/samsung_ue46b6000" - "Samsung TV" - } - } -}; diff --git a/boop/trunk/infrared/codes.h b/boop/trunk/infrared/codes.h deleted file mode 100644 index 8188a03..0000000 --- a/boop/trunk/infrared/codes.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - codes.h - structs for accessing the infrared-codetables - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef CODES_H -#define CODES_H - -typedef struct CODE_TABLE_C -{ - const unsigned char codes[42]; - const char *name; -} CODE_TABLE_C; - -typedef struct CODE_TABLE_S -{ - const unsigned short codes[42]; - const char *name; -} CODE_TABLE_S; - -typedef struct CODE_TABLE_I -{ - const unsigned int codes[42]; - const char *name; -} CODE_TABLE_I; - -typedef struct CODE_TABLE_N -{ - const char *name; -} CODE_TABLE_N; - -typedef struct CODE_TABLE_L -{ - const unsigned long pre_data; // data which the remote sends before actual keycode - const unsigned long post_data; // data which the remote sends after actual keycode - const unsigned long long toggle_bit_mask; // toggle_bit - const unsigned long gap; // time between signals - const unsigned long repeat_gap; // time between two repeat codes - const unsigned char bits; // bits (length of code) - const unsigned char pre_data_bits; // length of pre_data - const unsigned char post_data_bits; // length of post_data - const unsigned char rc6_bit; // doubles signal length of this bit (only used for RC-6) - const unsigned long freq; // modulation frequency - const unsigned short flags; // flags - const unsigned short phead,shead; // header - const unsigned short pthree,sthree; // 3 (only used for RC-MM) - const unsigned short ptwo,stwo; // 2 (only used for RC-MM) - const unsigned short pone,sone; // 1 - const unsigned short pzero,szero; // 0 - const unsigned short plead; // leading pulse - const unsigned short ptrail; // trailing pulse - const unsigned short pfoot,sfoot; // foot - const unsigned short pre_p,pre_s; // signal between pre_data and keycode - const unsigned short post_p, post_s; // signal between keycode and post_code - const unsigned short prepeat,srepeat; // indicate repeating - const unsigned char min_repeat; // code is repeated at least x times code sent once -> min_repeat=0 - const unsigned char duty_cycle; // 0 - - 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 3 of the License, 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, see . -*/ -#include "ir_itt.h" -#include "ir_nrc17.h" -#include "ir_rc5.h" -#include "ir_rc6.h" -#include "ir_rca.h" -#include "ir_rcmm.h" -#include "ir_rec80.h" -#include "ir_recs80.h" -#include "ir_sirc.h" -#include "ir_spaceenc.h" -#include "ir_rf.h" -#include "ir_raw.h" -#include "ir_lirc.h" -#include "encoders.h" -#include "codes.h" - -const struct ENCODERS encoders = -{ - 13, - { - { ITT_Init, (void*)&ITT, 1, "ITT\0" }, - { NRC17_Init, (void*)&NRC17, 1, "NRC17\0" }, - { RC5_Init, (void*)&RC5, 1, "RC-5\0" }, - { RC6_Init, (void*)&RC6, 2, "RC-6\0" }, - { RCA_Init, (void*)&RCA, 0, "RCA\0" }, - { RCMM_Init, (void*)&RCMM, 2, "RC-MM\0" }, - { REC80_Init, (void*)&REC80, 2, "REC-80\0" }, - { RECS80_Init, (void*)&RECS80, 1, "RECS-80\0" }, - { SIRC_Init, (void*)&SIRC, 1, "SIRC\0" }, - { SPACEENC_Init,(void*)&SPACEENC, 0, "SPACEENC\0" }, - { IRRF_Init, (void*)&IRRF, 1, "RF\0" }, - { RAW_Init, (void*)&RAW, 3, "learn" }, - { LIRC_Init, (void*)&LIRC, 4, "LIRC" } - } -}; diff --git a/boop/trunk/infrared/encoders.h b/boop/trunk/infrared/encoders.h deleted file mode 100644 index 194a716..0000000 --- a/boop/trunk/infrared/encoders.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - encoders.h - structs for accessing the infrared-encoders - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef ENCODERS_H -#define ENCODERS_H - -#define ENC_ITT 0 -#define ENC_NRC17 1 -#define ENC_RC5 2 -#define ENC_RCA 3 -#define ENC_RCMM 4 -#define ENC_REC80 5 -#define ENC_RECS80 6 -#define ENC_SIRC 7 -#define ENC_SPACEENC 8 -#define ENC_RF 9 -#define ENC_RAW 10 -#define ENC_LIRC 11 - -typedef void(*cfunc)(unsigned char); - -typedef struct IR_ENCODER -{ - const cfunc init; - const void* data; - const unsigned char type; - const char *name; -} IR_ENCODER; - -typedef struct ENCODERS -{ - const unsigned int num_encoders; - const struct IR_ENCODER encoder[]; -} ENCODERS; - -extern const struct TABLES_S ITT; -extern const struct TABLES_S NRC17; -extern const struct TABLES_S RC5; -extern const struct TABLES_I RC6; -extern const struct TABLES_C RCA; -extern const struct TABLES_I RCMM; -extern const struct TABLES_I REC80; -extern const struct TABLES_S RECS80; -extern const struct TABLES_S SIRC; -extern const struct TABLES_C SPACEENC; -extern const struct TABLES_S IRRF; -extern const struct TABLES_N RAW; -extern const struct TABLES_L LIRC; - -#endif diff --git a/boop/trunk/infrared/infrared.c b/boop/trunk/infrared/infrared.c deleted file mode 100644 index e0ac240..0000000 --- a/boop/trunk/infrared/infrared.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - infrared.c - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "global.h" -#include "infrared.h" -#include "infraredirq.h" -#include "irq.h" -#include "lpc2220.h" -#include "keyboard.h" -#include "encoders.h" -#include "codes.h" -#include "ir_selector.h" - -volatile unsigned char mod_enable; -volatile unsigned char hi_border; -volatile unsigned char lo_border; -volatile unsigned int cycles; -volatile unsigned long keyMap[42]; - -ir_fn irEncoder; -ir_sfn irSend; -ir_fn irRepeat; -ir_fn irStop; - -unsigned char act_encoder, act_set; - -const struct irModule defModule = { defIR, defSender, defRepeater, defStopper, 50, 1, 4 }; -void dummy(void) -{ - irStop = RC_setting; //make compiler happy for select_ir in mainmenu -} - -void initIR(void) -{ -// irStop = select_ir; //make compiler happy for select_ir in mainmenu - setIR(defModule); -} - -void startIrIRQ(void) -{ - - T1TCR = 0x03; - T1TC = 0; - T1PC = 0; - T1PR = 0x00; -// T1PR = 0x01; - T1MCR = 0x03; - - //VICVectAddr1 = (unsigned long)&(irIRQ); - //VICVectCntl1 = VIC_SLOT_EN | INT_SRC_TIMER1; - VICIntSelect |= INT_TIMER1; - VICIntEnable = INT_TIMER1; -} - -void setIR(struct irModule module) -{ - T1TCR = 0x02; - irEncoder = module.encoder; - irSend = module.sender; - irRepeat = module.repeater; - irStop = module.stopper; -// setIRspeed(module); - T1MR0 = module.tval; - hi_border = module.hi_border; - lo_border = module.lo_border; - cycles = 100; - ir.state = 0x00; - ir.actcmd = 0; - ir.cmd = 0; - T1TCR = 0x03; -} -/* Stubs for various interrupts (may be replaced later) */ -/* ---------------------------------------------------- */ - -void __attribute__ ((section(".text.fastcode"))) defIR(void) -{ - return; -} - -void defSender(unsigned long cmd) -{ - return; -} - -void defRepeater(void) -{ - return; -} -void defStopper(void) -{ - return; -} - -void runIR(void) -{ - T1TCR = 0x01; -} - -void stopIR(void) -{ - T1TCR = 0x03; -} - -void copyMapC(unsigned char *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void copyMapPC(unsigned int pre, unsigned char *map) -{ - int x; - for(x=0;x<42;x++) - { - if(map[x] != 0) - keyMap[x] = pre | map[x]; - else - keyMap[x] = 0x00000000; - } -} - -void copyMapS(unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -void copyMapI(unsigned int *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -} - -unsigned long setEncoder( unsigned char x, unsigned char y ) -{ - if(EncIsValid(x,y)) { - act_encoder = x; - act_set = y; - encoders.encoder[act_encoder].init(act_set); - return(1); - } - return(0); -} - -unsigned long getCode(void) { - - int keynum = getKeynum(); - - if (keynum < 42) - return keyMap[keynum]; - else - return 0xFFFFFFFF; -} diff --git a/boop/trunk/infrared/infrared.h b/boop/trunk/infrared/infrared.h deleted file mode 100644 index b10991e..0000000 --- a/boop/trunk/infrared/infrared.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - infrared.h - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef INFRARED_H -#define INFRARED_H - -volatile unsigned char hi_border; -volatile unsigned char lo_border; - -typedef void(*ir_fn)(void); -typedef void(*ir_sfn)(unsigned long cmd); - -typedef struct irModule -{ - ir_fn encoder; - ir_sfn sender; - ir_fn repeater; - ir_fn stopper; - unsigned char tval; - unsigned char hi_border; - unsigned char lo_border; -} irModule; - -struct IR_VARS_ { - union { - struct IR_GENERAL_ { //63 Bytes - unsigned int header_cmd; - unsigned int startstop; - unsigned int bit; - unsigned int header_bit; - unsigned int numbits; - unsigned int wait; - unsigned int pause; - unsigned int leadtime; - unsigned int bittime0; - unsigned int bittime1; - unsigned int togglebit; - unsigned int len; - unsigned int trail; - unsigned int preamble; - unsigned int pre; - unsigned char prebits; - unsigned char waittime; - unsigned char bittime; - } general; - struct IR_LIRC_ { //61 Bytes - unsigned long pre_data; // data which the remote sends before actual keycode - unsigned long actpre_data; - unsigned long post_data; // data which the remote sends after actual keycode - unsigned long actpost_data; - unsigned short flags; // flags - unsigned short phead,shead; // header - unsigned short plead; // leading pulse - unsigned short ptrail; // trailing pulse - unsigned short pfoot,sfoot; // foot - unsigned short pre_p,pre_s; // signal between pre_data and keycode - unsigned short post_p,post_s; // signal between keycode and post_code - unsigned short gap; - unsigned short repeat_gap; - unsigned short prepeat,srepeat; - unsigned short cycles_counter; - unsigned char bits; // bits (length of code) - unsigned char pre_data_bits; // length of pre_data - unsigned char post_data_bits; // length of post_data - unsigned char rc6_bit; // doubles signal length of this bit (only used for RC-6) - unsigned char pthree,sthree; // 3 (only used for RC-MM) - unsigned char ptwo,stwo; // 2 (only used for RC-MM) - unsigned char pone,sone; // 1 - unsigned char pzero,szero; // 0 - unsigned char min_repeat; - unsigned char bit; - unsigned char map; - unsigned char stop; - unsigned char repeats; - } lirc; - }; - unsigned int cmd; - unsigned int actcmd; - unsigned char toggle; - unsigned char state; -} ir; - - -//#define setIRspeed( _m ) { if(sysInfo & 0x80) T1MR0 = _m.tval1; else T1MR0 = _m.tval; } -#define setIRspeed( _m ) { T1MR0 = _m.tval; } - -void __attribute__ ((section(".text.fastcode"))) defIR(void); -void defSender(unsigned long cmd); -void defRepeater(void); -void defStopper(void); - -void initIR(void); -void startIrIRQ(void); -void setIR(struct irModule module); -void runIR(void); -void stopIR(void); - -unsigned long setEncoder( unsigned char _x, unsigned char _y ); - -void copyMapC(unsigned char *map); -void copyMapPC(unsigned int pre, unsigned char *map); -void copyMapS(unsigned short *map); -void copyMapI(unsigned int *map); - -unsigned long getCode(void); - -#endif - diff --git a/boop/trunk/infrared/infrared_encoders.h b/boop/trunk/infrared/infrared_encoders.h deleted file mode 100644 index 54a4ce8..0000000 --- a/boop/trunk/infrared/infrared_encoders.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - infraredirq.h - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef INFRARED_ENCODERS_H -#define INFRARED_ENCODERS_H - -#include "ir_nrc17.h" -#include "ir_itt.h" -#include "ir_rc5.h" -#include "ir_rc6.h" -#include "ir_rca.h" -#include "ir_rcmm.h" -#include "ir_rec80.h" -#include "ir_recs80.h" -#include "ir_sirc.h" -#include "ir_spaceenc.h" - -#endif - diff --git a/boop/trunk/infrared/infraredirq.c b/boop/trunk/infrared/infraredirq.c deleted file mode 100644 index 5fa7314..0000000 --- a/boop/trunk/infrared/infraredirq.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - infraredirq.c - ir interrupt - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "infraredirq.h" -#include "irq.h" -#include "lpc2220.h" -#include "keyboard.h" -#include "rf.h" -#include "cc1100.h" - -static unsigned int c_cnt = 0; -static unsigned int b_len = 0; -extern volatile unsigned char mod_enable; -extern volatile unsigned char hi_border; -extern volatile unsigned char lo_border; -extern volatile unsigned int cycles; - -extern ir_fn irEncoder; - -void __attribute__ ((section(".text.fastcode"))) irIRQ(void) -{ - c_cnt++; - if(c_cnt <= hi_border) - { - FIOSET0 = (mod_enable<<21); - } - else - { - FIOCLR0 = (1<<21); - if(c_cnt >= lo_border) - { - c_cnt = 0; - b_len++; - if(b_len >= cycles) - { - irEncoder(); - b_len = 0; - - if(!hi_border) { //RF mode - if(mod_enable) - FIOCLR0 = GDO0; - else - FIOSET0 = GDO0; - } - } - } - } - - T1IR = 1; -// VICVectAddr = 0; -} diff --git a/boop/trunk/infrared/infraredirq.h b/boop/trunk/infrared/infraredirq.h deleted file mode 100644 index 27f5a48..0000000 --- a/boop/trunk/infrared/infraredirq.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - infraredirq.h - ir carrier generation and encoding core - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef INFRAREDIRQ_H -#define INFRAREDIRQ_H - -void irIRQ (void) __attribute__ ((section(".text.fastcode"))); - -#endif - diff --git a/boop/trunk/infrared/ir_capture.c b/boop/trunk/infrared/ir_capture.c deleted file mode 100644 index 0b07f4a..0000000 --- a/boop/trunk/infrared/ir_capture.c +++ /dev/null @@ -1,710 +0,0 @@ -/* - ir_capture.c - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - - -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "lpc2220.h" -#include "irq.h" -#include "backlight.h" -#include "ir_capture.h" -#include "global.h" -#include "ir_raw.h" -#include "infrared.h" -#include "ir_selector.h" -#include "flash.h" -#include "controls.h" -#include "bfs.h" -#include "serial.h" -#include "codes.h" -#include "encoders.h" - - -const char string_unknown[] = ""; -#define len_string_unknown 12 - -extern volatile unsigned char autorepeat; -extern void setSpeed(unsigned char sp); - - -unsigned long waitIrHi(unsigned short* onpulse, unsigned long* time, unsigned long start) { - - unsigned long lowpulse; - unsigned long l; - unsigned long x; - - *onpulse = 0; - lowpulse = 0; - while (1) { - T0CCR = (1<<9) | (1<<11); - while (!(T0IR)); - T0IR = 0xff; - T0CCR = (1<<9) | (1<<10) | (1<<11); - l = T0CR3; - *time = l-start + lowpulse; - (*onpulse)++; - x = start + *time + 30; - while (!(T0IR)) { - if (T0TC > x) - return (l + lowpulse); - } - T0IR = 0xff; - x = T0CR3; - lowpulse = x-l; - } -} - -unsigned char decodewide(unsigned long value, struct widetable_* wide) { - - unsigned char x; - unsigned long minvalue; - unsigned long maxvalue; - unsigned long dif; - - dif = (value / 10); - - if (dif < 1) - dif = 1; - if (value > 1) - minvalue = value - dif; - else - minvalue = 0; - - maxvalue = value + dif; - - for (x=0;x < (wide->count);x++) { - if ((wide->value[x] >= minvalue) && (wide->value[x] <= maxvalue)) { - return x; - } - } - if (wide->count < 15) { - wide->value[wide->count] = value; - wide->count++; - return (wide->count -1); - } - else { - return 0xff; - } -} - -//--------------------------------------------------------------------------- -// captureIR -//--------------------------------------------------------------------------- -/* Return Values: - 0 = OK - 1 = too manny pulse lengths - 2 = abort - 3 = too long -*/ -unsigned char captureIR(struct ir_raw_* capture) { - - unsigned long hightime, lowtime; - unsigned long T0count; - unsigned short highpulse, lowpulse; - unsigned long T1count; - unsigned long timeout; - unsigned char status; - unsigned char wide; - - while(ANYKEY); - - setSpeed(SPEED_60); - disableIRQ(); - T0MCR = 0x00; - - FIODIR0 &= ~(1<<4); - FIOCLR0 |= (1<<12); - PINSEL1 |= (1<<27); - - T0CCR = (1<<9) | (1<<10) | (1<<11); - - capture->widetable[0].count = 0; - capture->widetable[1].count = 0; - capture->count = 0; - status = 0; - - T0TC = 0; - while (T0TC < 5000); - - T0IR = 0xff; - while (!T0IR && !ANYKEY); - if(!ANYKEY) { - T0TC = 0; - T0IR = 0xff; - T0count = waitIrHi(&highpulse,&hightime,0); - capture->pulsetime = (hightime * 1000) / highpulse; - capture->data[0] = (decodewide(highpulse, &capture->widetable[1]) & 0x0F)<<4; - - while (!(T0IR)); - T0IR = 0xff; - T1count= T0CR3; - while ((capture->count < max_capture_data-1) && !status) { - lowtime = T1count-T0count; - T0count = waitIrHi(&highpulse,&hightime,T1count); - lowpulse = ((lowtime *1000)+(capture->pulsetime / 2)) / capture->pulsetime; - wide = decodewide(lowpulse, &capture->widetable[1]); - if(wide & 0xf0) - status = 2; - capture->data[capture->count] |= wide; - wide = decodewide(highpulse, &capture->widetable[1]); - if(wide & 0xf0) - status = 2; - capture->count++; - capture->data[capture->count] = wide<<4; - timeout = T0count + 500000; - while (!(T0IR) && !status) { - if (T0TC > timeout) - status =1; - } - T0IR = 0xff; - T1count= T0CR3; - } - } - else - status = 3; - if(capture->count == max_capture_data-1) - status = 4; - T0TC = 0; - T0MCR = 0x03; - FIOSET0 |= (1<<12); - T0CCR = 0; - T0IR = 0xff; - enableIRQ(); - setBacklight(BL_AUTO); - setSpeed(SPEED_30); - return status - 1; -} - -# define MAX_messages 25 - -unsigned char compare_message(unsigned char* message1, unsigned char* message2, unsigned char len) { - - unsigned char x; - - for(x=0; x < (len-1); x++) { - if(message1[x] != message2[x]) - return 1; - } - if((message1[len-1] & 0xf0) != (message2[len-1] & 0xf0)) - return 1; - return 0; - -} - -unsigned short get_signalfree(struct ir_raw_* capture,unsigned short signalmin) { - unsigned short signalfree; - unsigned char i; - - signalfree = 32000; - for (i=4; (i < capture->count);i++) { - unsigned short y; - unsigned short sum; - sum = 0; - for (y = i-4; y < i; y++) { - sum += capture->widetable[1].value[(capture->data[y]) & 0x0f]; - } - y = capture->widetable[1].value[(capture->data[i]) & 0x0f]; - if ((sum < y) && (y < signalfree) && (y > signalmin)) - signalfree=y; - } - - return(signalfree); - -} - - -//--------------------------------------------------------------------------- -// analyzeIR -//--------------------------------------------------------------------------- -/* Return Values: - 0 = OK - 1 = too manny messages - 2 = too few messages - 3 = repeat messages not equal - 4 = messages too long - 5 = unknown format -*/ -unsigned char analyzeIR1(struct ir_raw_* capture, struct RAWcmd_* cmd, unsigned char mode) { - - unsigned short signalfree; - unsigned char message[MAX_messages]; - unsigned char messagecount; - unsigned char x; - unsigned char first; - unsigned char middle; - unsigned char last; - - clear_cmd(cmd); - signalfree = get_signalfree(capture,1); - if(mode) - signalfree = get_signalfree(capture,signalfree); - - messagecount = 1; - message[0] = 0; - for(x = 0; (x < capture->count) && (messagecount < MAX_messages); x++) { - if(capture->widetable[1].value[capture->data[x] & 0x0f] >= signalfree) { - if(messagecount < MAX_messages) - message[messagecount++] = x+1; - else - return 1; - } - } - - if(messagecount < 2) - return 2; - - first = compare_message(&capture->data[message[0]], &capture->data[message[1]],message[1] - message[0]); - middle = 0; - for(x=1; x < messagecount-2; x++) { - middle += compare_message(&capture->data[message[x]], &capture->data[message[x+1]],message[x+1] - message[x]); - } - last = compare_message(&capture->data[message[messagecount-2]], &capture->data[message[messagecount-1]],message[messagecount-1] - message[messagecount-2]); - - if((first && last && (messagecount < 4)) || ((first + last) && (messagecount < 3))) - return 2; - - if(middle) - return 3; - - if(first + last == 0) { - for(x=0;x<3;x++) { - cmd->CMDstart[x] = 0; - cmd->CMDlen[x] = message[1]; - } - if(cmd->CMDlen[0] > max_CMD_data) return 4; - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[0]],(unsigned char *)&capture->data[0],cmd->CMDlen[0]); - - } - else if(first + last == 2) { - cmd->CMDstart[0] = 0; - cmd->CMDlen[0] = message[1]; - - cmd->CMDstart[1] = cmd->CMDstart[0] + cmd->CMDlen[0]; - cmd->CMDlen[1] = message[2]-message[1]; - - cmd->CMDstart[2] = cmd->CMDstart[1] + cmd->CMDlen[1]; - cmd->CMDlen[2] = message[messagecount-1]-message[messagecount-2]; - - if(cmd->CMDlen[0]+cmd->CMDlen[1]+cmd->CMDlen[2] > max_CMD_data) return 4; - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[0]],(unsigned char *)&capture->data[0],cmd->CMDlen[0]); - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[1]],(unsigned char *)&capture->data[message[1]],cmd->CMDlen[1]); - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[2]],(unsigned char *)&capture->data[message[messagecount-1]],cmd->CMDlen[2]); - } - else if((first == 1)&& !last) { - cmd->CMDstart[0] = 0; - cmd->CMDlen[0] = message[1]; - - cmd->CMDstart[1] = cmd->CMDstart[0] + cmd->CMDlen[0]; - cmd->CMDlen[1] = message[2]-message[1]; - - cmd->CMDstart[2] = cmd->CMDstart[1]; - cmd->CMDlen[2] = cmd->CMDlen[1]; - - if(cmd->CMDlen[0]+cmd->CMDlen[1] > max_CMD_data) return 4; - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[1]],(unsigned char *)&capture->data[message[1]],cmd->CMDlen[1]); - memcpy((unsigned char *)&cmd->data[cmd->CMDstart[0]],(unsigned char *)&capture->data[0],cmd->CMDlen[0]); - - } - else { - return 5; - } - - cmd->borders = 0x13; - cmd->tval = (15 * capture->pulsetime) / ((cmd->borders & 0x0f) * 1000); - memcpy((unsigned char *)&cmd->pulselen[0],(unsigned char *)&capture->widetable[1].value[0],(capture->widetable[1].count) * sizeof(unsigned short)); - - return 0; -} - -unsigned char analyzeIR(struct ir_raw_* capture, struct RAWcmd_* cmd) { - unsigned char result; - - result = analyzeIR1(capture, cmd,0); - if(result) { - if(!(analyzeIR1(capture, cmd,1))) - return(0); - } - return(result); -} - -void debug_print_capture(struct ir_raw_* capture) { - - unsigned short signalfree; - unsigned char x; - unsigned char ro; - unsigned char co; - - signalfree = get_signalfree(capture,0); - - x= 0; - ro = 0; - co = 0; - while((x <= capture->count) && (ro < 20)) { - draw_hexC(co++ * 14,ro * 8,capture->data[x], 3, DRAW_PUT); - if((capture->widetable[1].value[capture->data[x++] & 0x0f] >= signalfree) || (co > 5)) { - ro++; - co = 0; - } - } - - draw_numU(90,8,capture->pulsetime,0, 3, DRAW_PUT); - - for (x = 0; x < capture->widetable[1].count; x++) { - draw_numU(90,36+(x*8),capture->widetable[1].value[x],0, 3, DRAW_PUT); - } -} - -void debug_print_cmd(struct RAWcmd_* cmd) { - - unsigned char x; - unsigned char ro; - unsigned char co; - - x= 0; - ro = 0; - co = 0; - - while((x < cmd->CMDlen[0]) && (ro < 20)) { - draw_hexC(co++ * 14,ro * 8,cmd->data[cmd->CMDstart[0]+ x++], 3, DRAW_PUT); - if(co > 4) { - ro++; - co = 0; - } - } - x=0; - co = 0; - ro++; - while((x < cmd->CMDlen[1]) && (ro < 20)) { - draw_hexC(co++ * 14,ro * 8,cmd->data[cmd->CMDstart[1]+ x++], 3, DRAW_PUT); - if(co > 4) { - ro++; - co = 0; - } - } - x=0; - co = 0; - ro++; - while((x < cmd->CMDlen[2]) && (ro < 20)) { - draw_hexC(co++ * 14,ro * 8,cmd->data[cmd->CMDstart[2]+ x++], 3, DRAW_PUT); - if(co > 4) { - ro++; - co = 0; - } - } - - draw_numU(90,8,cmd->tval,0, 3, DRAW_PUT); - - for (x = 0; x < 16; x++) { - draw_numU(75,20+(x*8),cmd->pulselen[x],0, 3, DRAW_PUT); - } -} - -void serialsend_ir_cmd(struct RAWcmd_* cmd) { - unsigned short i; - unsigned char *s; - - s=(unsigned char*)cmd; - - for(i=0;iRAWcmd[cmd])); - } - else { - RAW_Send((unsigned long)&(RAWset->RAWcmd[cmd])); - while(ANYKEY) - RAW_Repeat(); - RAW_Stop(); - } - } - } -} - -void RAW_learnset(FORM* form, CONTROL* control) { - RAW_learn((struct RAWset_*)(form->tag)); - form_draw(form); -} - -void RAW_keyerase(FORM* form, CONTROL* control) { - unsigned char x; - - x=msgbox(50,BC_nobuttons,"\nZu loeschende Taste\ndruecken.\n"); - waitKeyDown(); - x=getKeynum(); - if(x>3) { - clear_cmd(&(((struct RAWset_*)(form->tag))->RAWcmd[x-4])); - } - form_draw(form); -} - -void RAW_allkeyserase(FORM* form, CONTROL* control) { - unsigned char x; - - x=msgbox(50,BC_YesNo | BC_DefaultButton2,"Moechten Sie wirklich\nalle Tasten loeschen?\n"); - if(x == BC_Yes) { - for(x=0;x<38;x++) { - clear_cmd(&(((struct RAWset_*)(form->tag))->RAWcmd[x])); - - } - } - form_draw(form); -} - -void RAW_editset(FORM* form, CONTROL* control) { - - struct RAWset_ RAWset; - const BUTTON button1 = {BC_Button,0,15,120,15,SMALLFONT,0,"Anlernen/Testen",RAW_learnset}; - const BUTTON button2 = {BC_Button,0,35,120,15,SMALLFONT,0,"Taste loeschen",RAW_keyerase}; - const BUTTON button3 = {BC_Button,0,55,120,15,SMALLFONT,0,"Alle Tasten loeschen",RAW_allkeyserase}; - const LABEL label1 = {BC_Labelnotab,0,80,60,10,BOLDFONT,0,"Bezeichnung",0}; - TXTBOX txtbox1 = {BC_Txtbox,0,90,120,10,SMALLFONT,20,0,(char*)RAWset.name,NULL,NULL}; - - CONTROL* controls[5] = { (CONTROL*)&button1, - (CONTROL*)&button2, - (CONTROL*)&button3, - (CONTROL*)&label1, - (CONTROL*)&txtbox1}; - - FORM form2 = {"RAW Set bearbeiten",0,0,0,0,0,controls,0,5,0,0}; - unsigned long x; - - x = (unsigned long)BFS_LoadFileAddr(BFS_ID_RAWslot0 + ((LABEL*)control)->tag); - - if(x) - memcpy(&RAWset,(void *)x,sizeof(struct RAWset_)); - else - RAWset.id[0] = 0xff; - - x=memcmp(&RAWset,"RC01",4); - if(x) { - for(x=0;xtag, sizeof(struct RAWset_), (unsigned char*) &RAWset); - } - - if(RAWset.name[0]==0xff) - memcpy(&RAWset.name[0],(char*)string_unknown,len_string_unknown); - - form2.tag =(unsigned long)&RAWset; - - form_exec(&form2); - - if(!memcmp(&RAWset.name[0],string_unknown,len_string_unknown)) - for(x=0;xtag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) { - x=msgbox(50,BC_YesNo | BC_DefaultButton1,"Sollen die Aenderungen\ngespeichert werden?\n"); - if(x == BC_Yes) { - memcpy(&RAWset.id[0],"RC01",4); - BFS_SaveFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset); - if(BFS_CmpFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) { - msgbox(50,BC_OKOnly | BC_DefaultButton1,"Fehler\n"); - } - } - } - - form_draw(form); -} - -void RAW_eraseall(FORM* form, CONTROL* control) { - - unsigned char x; - - x=msgbox(50,BC_YesNo | BC_DefaultButton2,"Moechten Sie wirklich\nalle gespeicherten\nCodes loeschen?\n"); - if(x == BC_Yes) { - for(x=0;x<4;x++) - BFS_DeleteFile(BFS_ID_RAWslot0 + x); - } - form_draw(form); -} -extern const struct TABLES_N RAW; - -void RAW_learnmenue(void) { - - const LABEL label5 = {BC_Labelnotab,0,15,100,10,BOLDFONT,0,"RAW Set bearbeiten:",0}; - const BUTTON button1 = {BC_Button,0,70,80,15,SMALLFONT,0,"Alles loeschen",RAW_eraseall}; - - CONTROL* controls[2 + MAX_slots]; - LABEL l_rawset[MAX_slots]; - controls[0] = (CONTROL*)&label5; - controls[1] = (CONTROL*)&button1; - - FORM form = {"IR-Codes anlernen",0,0,0,0,0,controls,2, 2 + MAX_slots,0,0}; - - int set; - /* load menu entries for four RAW sets from filesystem / default names */ - for (set = 0; set < MAX_slots; set++) { - l_rawset[set] = (LABEL){BC_Label,0,25 + 10*set,50,10,SMALLFONT,set,NULL,RAW_editset}; - struct RAWset_ *rs = (struct RAWset_*)BFS_LoadFileAddr(BFS_ID_RAWslot0 + set); - if(rs && (rs->name[0] != 0xff)) { - l_rawset[set].caption = (char*)rs->name; - } else - l_rawset[set].caption = (char*)RAW.table[set].name; - - controls[2 + set] = (CONTROL*)&l_rawset[set]; - } - - form_exec(&form); - setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set); - -} - diff --git a/boop/trunk/infrared/ir_capture.h b/boop/trunk/infrared/ir_capture.h deleted file mode 100644 index cc9aa60..0000000 --- a/boop/trunk/infrared/ir_capture.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - ir_capture.h - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_CAPTURE_H -#define IR_CAPTURE_H - -#define max_CMD_data 102 - -#define MAX_slots 4 -#define RAWnamelen 20 -struct RAWcmd_ { - unsigned char tval; - unsigned char borders; - unsigned char flags; - unsigned char toggle; - unsigned char CMDstart[3]; - unsigned char CMDlen[3]; - unsigned short pulselen[16]; - unsigned char data[max_CMD_data]; -}; - -struct RAWset_ { - unsigned char id[4]; - unsigned char name[RAWnamelen]; - struct RAWcmd_ RAWcmd[38]; -}; - -struct widetable_ { - unsigned short value[15]; - unsigned char count; -}; - -#define max_capture_data 200 - -struct ir_raw_ { - unsigned long pulsetime; - unsigned char data[max_capture_data]; - struct widetable_ widetable[2]; - unsigned char count; - -}; - -void getIR_test(struct RAWcmd_* cmd); -void RAW_learnmenue(void); -void clear_cmd(struct RAWcmd_* cmd); - -#endif diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_019 b/boop/trunk/infrared/ir_codes/itt/seleco_019 deleted file mode 100644 index ae2cf7c..0000000 --- a/boop/trunk/infrared/ir_codes/itt/seleco_019 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for ITT seleco 019 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x000, // A -> - 0x000, // B -> - 0x000, // C -> - 0x000, // D -> - 0x000, // Betty -> - 0x000, // Exit -> - 0x330, // Up -> Play - 0x340, // Down -> Stop - 0x020, // Left -> Rewind - 0x310, // Right -> Forward - 0x080, // OK -> Enter - 0x2E0, // Vol+ -> Vol+ - 0x2F0, // Vol- -> Vol- - 0x060, // Mute -> Muting - 0x070, // Prog+ -> Prog+ - 0x040, // Prog- -> Prog- - 0x100, // 1 -> 1 - 0x110, // 2 -> 2 - 0x120, // 3 -> 3 - 0x130, // 4 -> 4 - 0x140, // 5 -> 5 - 0x150, // 6 -> 6 - 0x160, // 7 -> 7 - 0x170, // 8 -> 8 - 0x180, // 9 -> 9 - 0x190, // 0 -> 0 - 0x3F0, // -/-- -> A/B - 0x000, // AV -> - 0x1D0, // Menu -> Info - 0x000, // PiP -> - 0x000, // A/B -> - 0x000, // 16:9 -> - 0x1C0, // Info -> VTX1 - 0x1E0, // VTX1 -> VTX2 - 0x3C0, // VTX2 -> VTX3 - 0x020, // VTX3 -> VTX4 - 0x000, // Blue -> - 0x000, // Yello -> - 0x000, // Green -> - 0x1E0, // Red -> Record - 0x000, // TV -> - 0x010 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_049 b/boop/trunk/infrared/ir_codes/itt/seleco_049 deleted file mode 100644 index 584144f..0000000 --- a/boop/trunk/infrared/ir_codes/itt/seleco_049 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for ITT seleco 019 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x000, // A -> - 0x000, // B -> - 0x000, // C -> - 0x000, // D -> - 0x000, // Betty -> - 0x000, // Exit -> - 0x360, // Up -> Play - 0x330, // Down -> Stop - 0x320, // Left -> Rewind - 0x350, // Right -> Forward - 0x050, // OK -> Enter - 0x2E0, // Vol+ -> Vol+ - 0x2F0, // Vol- -> Vol- - 0x060, // Mute -> Muting - 0x0D0, // Prog+ -> Prog+ - 0x0E0, // Prog- -> Prog- - 0x100, // 1 -> 1 - 0x110, // 2 -> 2 - 0x120, // 3 -> 3 - 0x130, // 4 -> 4 - 0x140, // 5 -> 5 - 0x150, // 6 -> 6 - 0x160, // 7 -> 7 - 0x170, // 8 -> 8 - 0x180, // 9 -> 9 - 0x190, // 0 -> 0 - 0x1F0, // -/-- -> A/B - 0x000, // AV -> - 0x3A0, // Menu -> Info - 0x000, // PiP -> - 0x000, // A/B -> - 0x000, // 16:9 -> - 0x1C0, // Info -> VTX1 - 0x1E0, // VTX1 -> VTX2 - 0x3C0, // VTX2 -> VTX3 - 0x020, // VTX3 -> VTX4 - 0x000, // Blue -> - 0x000, // Yello -> - 0x000, // Green -> - 0x1E0, // Red -> Record - 0x000, // TV -> - 0x010 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_108 b/boop/trunk/infrared/ir_codes/itt/seleco_108 deleted file mode 100644 index 883e336..0000000 --- a/boop/trunk/infrared/ir_codes/itt/seleco_108 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for ITT seleco 108 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x000, // A -> - 0x000, // B -> - 0x000, // C -> - 0x000, // D -> - 0x000, // Betty -> - 0x000, // Exit -> - 0x1C0, // Up -> Play - 0x330, // Down -> Stop - 0x210, // Left -> Rewind - 0x1F0, // Right -> Forward - 0x230, // OK -> Enter - 0x2E0, // Vol+ -> Vol+ - 0x2F0, // Vol- -> Vol- - 0x3F0, // Mute -> Muting - 0x070, // Prog+ -> Prog+ - 0x080, // Prog- -> Prog- - 0x100, // 1 -> 1 - 0x110, // 2 -> 2 - 0x120, // 3 -> 3 - 0x130, // 4 -> 4 - 0x140, // 5 -> 5 - 0x150, // 6 -> 6 - 0x160, // 7 -> 7 - 0x170, // 8 -> 8 - 0x180, // 9 -> 9 - 0x190, // 0 -> 0 - 0x1E0, // -/-- -> A/B - 0x000, // AV -> - 0x000, // Menu -> - 0x000, // PiP -> - 0x000, // A/B -> - 0x000, // 16:9 -> - 0x0F0, // Info -> VTX1 - 0x0D0, // VTX1 -> VTX2 - 0x200, // VTX2 -> VTX3 - 0x000, // VTX3 -> VTX4 - 0x000, // Blue -> - 0x000, // Yello -> - 0x000, // Green -> - 0x1D0, // Red -> Pause - 0x000, // TV -> - 0x010 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/itt/seleco_131 b/boop/trunk/infrared/ir_codes/itt/seleco_131 deleted file mode 100644 index 7bd12ee..0000000 --- a/boop/trunk/infrared/ir_codes/itt/seleco_131 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for ITT seleco 131 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x000, // A -> - 0x000, // B -> - 0x000, // C -> - 0x000, // D -> - 0x000, // Betty -> - 0x000, // Exit -> - 0x020, // Up -> Play - 0x300, // Down -> Stop - 0x250, // Left -> Rewind - 0x050, // Right -> Forward - 0x390, // OK -> Enter - 0x2E0, // Vol+ -> Vol+ - 0x2F0, // Vol- -> Vol- - 0x060, // Mute -> Muting - 0x0D0, // Prog+ -> Prog+ - 0x040, // Prog- -> Prog- - 0x100, // 1 -> 1 - 0x110, // 2 -> 2 - 0x120, // 3 -> 3 - 0x130, // 4 -> 4 - 0x140, // 5 -> 5 - 0x150, // 6 -> 6 - 0x160, // 7 -> 7 - 0x170, // 8 -> 8 - 0x180, // 9 -> 9 - 0x190, // 0 -> 0 - 0x000, // -/-- -> - 0x000, // AV -> - 0x390, // Menu -> Info - 0x000, // PiP -> - 0x000, // A/B -> - 0x000, // 16:9 -> - 0x1C0, // Info -> VTX1 - 0x0A0, // VTX1 -> VTX2 - 0x380, // VTX2 -> VTX3 - 0x200, // VTX3 -> VTX4 - 0x000, // Blue -> - 0x000, // Yello -> - 0x000, // Green -> - 0x1D0, // Red -> Pause - 0x000, // TV -> - 0x010 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/lirc/apple_remote1 b/boop/trunk/infrared/ir_codes/lirc/apple_remote1 deleted file mode 100644 index e962faf..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/apple_remote1 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Apple Remote 1st generation (6 buttons) http://lirc.sourceforge.net/remotes/apple/A1156 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 3 of the License, 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, see . */ /*pre_data*/ 0x77E1, /*Apple's ID for NEC code*/ /*post_data*/ 0xC5, /*Remote's ID (which can be changed on the original remote)*/ /*toggle_bit_mask*/ 0x00, /*gap*/ 37600, /*repeat_gap*/ 0, /*bits*/ 8, /*pre_data_bits*/ 16, /*post_data_bits*/ 8, /*rc6_bit*/ 0, /*frequency*/ 38000, /*flags*/ LIRC_SPACE_ENC, /*header*/ 9000,4500, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 560,1690, /*zero*/ 560,560, /*plead*/ 0, /*ptrail*/ 560, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 9000,2250, /*min_repeat*/ 1, /*duty cycle*/ 33, { 0x00, // A -> 0x00, // B -> 0x00, // C -> 0x00, // D -> 0x00, // Betty -> 0x00, // Exit -> 0xD0, // Up -> up, plus 0xB0, // Down -> down, minus 0x10, // Left -> << rev 0xE0, // Right -> >> ffwd 0x20, // OK -> play 0x00, // Vol+ -> 0x00, // Vol- -> 0x40, // Mute -> menu 0x00, // Prog+ -> 0x00, // Prog- -> 0x00, // 1 -> 0x00, // 2 -> 0x00, // 3 -> 0x00, // 4 -> 0x00, // 5 -> 0x00, // 6 -> 0x00, // 7 -> 0x00, // 8 -> 0x00, // 9 -> 0x00, // 0 -> 0x00, // -/-- -> 0x00, // AV -> 0x00, // Menu -> 0x00, // PiP -> 0x00, // A/B -> 0x00, // 16:9 -> 0x00, // Info -> 0x00, // VTX1 -> 0x00, // VTX2 -> 0x00, // VTX3 -> 0x00, // Blue -> 0x00, // Yello -> 0x00, // Green -> 0x00, // Red -> 0x00, // TV -> 0x00 // Power -> }, diff --git a/boop/trunk/infrared/ir_codes/lirc/fs20 b/boop/trunk/infrared/ir_codes/lirc/fs20 deleted file mode 100644 index dcdd03e..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/fs20 +++ /dev/null @@ -1 +0,0 @@ -/* RF codes for FS20 Copyright (C) 2009 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 3 of the License, 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, see . */ /*pre_data*/ calcFS20pre(0x11,0,0x11,0), //Synchr + HC:12121212 /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x00, /*gap*/ 10000, /*repeat_gap*/ 500000, //gap after min_repeats /*bits*/ 27, /*pre_data_bits*/ 32, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 0x0020293E, //868.350174MHz /*flags*/ LIRC_RF, /*header*/ 0,0, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 600,600, /*zero*/ 400,400, /*plead*/ 0, /*ptrail*/ 400, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 2, /*duty cycle*/ 0, { 0x00000, // A -> 0x00000, // B -> 0x00000, // C -> 0x00000, // D -> 0x00000, // Betty -> 0x00000, // Exit -> 0x00000, // Up -> 0x00000, // Down -> 0x00000, // Left -> 0x00000, // Right -> 0x00000, // OK -> 0x00000, // Vol+ -> 0x00000, // Vol- -> 0x00000, // Mute -> 0x00000, // Prog+ -> 0x00000, // Prog- -> calcFS20code(0x01,1,0x00,0,0x29,1), // 1 -> Addr:1112 Cmd:0(Off) calcFS20code(0x01,1,0x12,0,0x3B,1), // 2 -> Addr:1112 Cmd:18(Toggle) calcFS20code(0x01,1,0x11,0,0x3A,0), // 3 -> Addr:1112 Cmd:17(On) 0x00000, // 4 -> 0x00000, // 5 -> 0x00000, // 6 -> 0x00000, // 7 -> 0x00000, // 8 -> 0x00000, // 9 -> 0x00000, // 0 -> 0x00000, // -/-- -> 0x00000, // AV -> 0x00000, // Menu -> 0x00000, // PiP -> 0x00000, // A/B -> 0x00000, // 16:9 -> 0x00000, // Info -> 0x00000, // VTX1 -> 0x00000, // VTX2 -> 0x00000, // VTX3 -> 0x00000, // Blue -> 0x00000, // Yello -> 0x00000, // Green -> 0x00000, // Red -> 0x00000, // TV -> 0x00000 // Power -> Power }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/hx2262 b/boop/trunk/infrared/ir_codes/lirc/hx2262 deleted file mode 100644 index 06e220e..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/hx2262 +++ /dev/null @@ -1 +0,0 @@ -/* RF codes for HX2262 Copyright (C) 2009 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 3 of the License, 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, see . */ //Bit translation: //HX2262 LIRC_RF //0 00 //F (floating) 01 //1 11 /*pre_data*/ 0x00000000, //bit 0-4 = 00000 /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x00, /*gap*/ 11160, /*repeat_gap*/ 11160, //gap after min_repeats /*bits*/ 14, /*pre_data_bits*/ 10, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 0x00101234, //433,919861MHz /*flags*/ LIRC_RF, /*header*/ 0,0, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 1080,360, /*zero*/ 360,1080, /*plead*/ 0, /*ptrail*/ 360, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 10, /*duty cycle*/ 0, { 0x00000, // A -> 0x00000, // B -> 0x00000, // C -> 0x00000, // D -> 0x00000, // Betty -> 0x00000, // Exit -> 0x00000, // Up -> 0x00000, // Down -> 0x00000, // Left -> 0x00000, // Right -> 0x00000, // OK -> 0x00000, // Vol+ -> 0x00000, // Vol- -> 0x00000, // Mute -> 0x00000, // Prog+ -> 0x00000, // Prog- -> 0x00551, // 1 -> bit5-8(Device) 0FFF bit9-11(cmd) F0F ->ON 0x01151, // 2 -> bit5-8(Device) 0FFF bit9-11(cmd) FF0 ->OFF 0x01451, // 3 -> bit5-8(Device) F0FF bit9-11(cmd) F0F ->ON 0x00554, // 4 -> bit5-8(Device) F0FF bit9-11(cmd) FF0 ->OFF 0x01154, // 5 -> bit5-8(Device) FF0F bit9-11(cmd) F0F ->ON 0x01454, // 6 -> bit5-8(Device) FF0F bit9-11(cmd) FF0 ->OFF 0x00000, // 7 -> 0x00000, // 8 -> 0x00000, // 9 -> 0x00000, // 0 -> 0x00000, // -/-- -> 0x00000, // AV -> 0x00000, // Menu -> 0x00000, // PiP -> 0x00000, // A/B -> 0x00000, // 16:9 -> 0x00000, // Info -> 0x00000, // VTX1 -> 0x00000, // VTX2 -> 0x00000, // VTX3 -> 0x00000, // Blue -> 0x00000, // Yello -> 0x00000, // Green -> 0x00000, // Red -> 0x00000, // TV -> 0x00000 // Power -> Power }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 b/boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 deleted file mode 100644 index ab59b3c..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/olympus_rm-1 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Olympus RM-1 (digital camera remote) NEC Code http://lirc.sourceforge.net/remotes/olympus/RM-1 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 3 of the License, 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, see . */ /*pre_data*/ 0x61DC, /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x0000000000000000, /*gap*/ 107013, /*repeat_gap*/ 0, /*bits*/ 16, /*pre_data_bits*/ 16, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 38000, /*flags*/ LIRC_SPACE_ENC | LIRC_CONST_LENGTH, /*header*/ 9000,4500, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 560,1690, /*zero*/ 560,560, /*plead*/ 0, /*ptrail*/ 560, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 9000,2250, /*min_repeat*/ 1, /*duty cycle*/ 33, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0x0000, // Exit -> 0xC03F, // Up -> tele 0x40BF, // Down -> wide 0x20DF, // Left -> - 0xA05F, // Right -> + 0x807F, // OK -> capture 0x0000, // Vol+ -> 0x0000, // Vol- -> 0x0000, // Mute -> 0x0000, // Prog+ -> 0x0000, // Prog- -> 0x0000, // 1 -> 0x0000, // 2 -> 0x0000, // 3 -> 0x0000, // 4 -> 0x0000, // 5 -> 0x0000, // 6 -> 0x0000, // 7 -> 0x0000, // 8 -> 0x0000, // 9 -> 0x0000, // 0 -> 0x0000, // -/-- -> 0x0000, // AV -> 0x0000, // Menu -> 0x0000, // PiP -> 0x0000, // A/B -> 0x0000, // 16:9 -> 0x0000, // Info -> 0x0000, // VTX1 -> 0x0000, // VTX2 -> 0x0000, // VTX3 -> 0x0000, // Blue -> 0x0000, // Yello -> 0x0000, // Green -> 0x0000, // Red -> 0x0000, // TV -> 0x0000 // Power -> }, diff --git a/boop/trunk/infrared/ir_codes/lirc/rev008340 b/boop/trunk/infrared/ir_codes/lirc/rev008340 deleted file mode 100644 index c3a55e3..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/rev008340 +++ /dev/null @@ -1 +0,0 @@ -/* RF codes for REV 008340 remote control HS2260A-R4 based on hx2262 by telekatz 2010-10-04 by eme 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 3 of the License, 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, see . */ // Bit translation: // HX2262 LIRC_RF // 0 00 // F (floating) 01 // 1 11 // "channel" // A: 1FFF -> 11010101 -> 0xD5 // B: F1FF -> 01110101 -> 0x75 // C: FF1F -> 01011101 -> 0x5D // D: FFF1 -> 01010111 -> 0x57 // "device" // 1: 1FF0 -> 11010100 -> 0xD4 // 2: F1F0 -> 01110100 -> 0x74 // 3: FFF1 -> 01010111 -> 0x57 // "action" // 1: 0010 (on/+) -> 00001100 -> 0x0C // 0: 0001 (off/-) -> 00000011 -> 0x03 /*pre_data*/ 0xD5, // A0-A3 /*post_data*/ 0x00, /*toggle_bit_mask*/ 0x00, /*gap*/ 14570, /*repeat_gap*/ 14570, // gap after min_repeats /*bits*/ 16, // data bits /*pre_data_bits*/ 8, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 0x00101234, // 433,919861MHz /*flags*/ LIRC_RF, /*header*/ 0,0, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 1410,470, /*zero*/ 470,1410, /*plead*/ 0, /*ptrail*/ 470, // sync pulse /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 0, /*duty cycle*/ 0, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0x0000, // Exit -> 0x0000, // Up -> 0x0000, // Down -> 0x0000, // Left -> 0x0000, // Right -> 0x0000, // OK -> 0x0000, // Vol+ -> 0x0000, // Vol- -> 0x0000, // Mute -> 0x0000, // Prog+ -> 0x0000, // Prog- -> 0xD40C, // 1 -> 1 on 0xD403, // 2 -> 1 off 0x0000, // 3 -> 0x740C, // 4 -> dim2 + 0x7403, // 5 -> dim2 - 0x0000, // 6 -> 0x570C, // 7 -> dim3 + 0x5703, // 8 -> dim3 - 0x0000, // 9 -> 0x0000, // 0 -> 0x0000, // -/-- -> 0x0000, // AV -> 0x0000, // Menu -> 0x0000, // PiP -> 0x0000, // A/B -> 0x0000, // 16:9 -> 0x0000, // Info -> 0x0000, // VTX1 -> 0x0000, // VTX2 -> 0x0000, // VTX3 -> 0x0000, // Blue -> 0x0000, // Yello -> 0x0000, // Green -> 0x0000, // Red -> 0x0000, // TV -> 0x0000 // Power -> }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 b/boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 deleted file mode 100644 index 508fdcd..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/samsung_ue46b6000 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Samsung UE46B6000 Copyright (C) 2009 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 3 of the License, 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, see . */ /*pre_data*/ 0x0000E0E0, /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x0000000000000000, /*gap*/ 107635, /*repeat_gap*/ 0, /*bits*/ 16, /*pre_data_bits*/ 16, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 36000, /*flags*/ LIRC_CONST_LENGTH, /*header*/ 4498,4450, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 588,1646, /*zero*/ 588,535, /*plead*/ 0, /*ptrail*/ 584, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 1, /*duty cycle*/ 33, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0xB44B, // Exit -> Exit 0x06F9, // Up -> UP 0x8679, // Down -> Down 0xA659, // Left -> Left 0x46B9, // Right -> Right 0x16E9, // OK -> OK 0xE01F, // Vol+ -> Vol+ 0xD02F, // Vol- -> Vol- 0xF00F, // Mute -> Mute 0x48B7, // Prog+ -> Prog+ 0x48B7, // Prog- -> Prog- 0x20DF, // 1 -> 1 0xA05F, // 2 -> 2 0x609F, // 3 -> 3 0x10EF, // 4 -> 4 0x906F, // 5 -> 5 0x50AF, // 6 -> 6 0x30CF, // 7 -> 7 0xB04F, // 8 -> 8 0x708F, // 9 -> 9 0x8877, // 0 -> 0 0xF20D, // -/-- -> Guide 0x807F, // AV -> Source 0x58A7, // Menu -> Menue 0xD22D, // PiP -> Tools 0x1AE5, // A/B -> Return 0x7C83, // 16:9 -> P.Size 0xF807, // Info -> Info 0xD629, // VTX1 -> Ch.List 0x0000, // VTX2 -> 0xC837, // VTX3 -> Pre-CH 0x6897, // Blue -> Blue 0xA857, // Yello -> Yellow 0x28D7, // Green -> Green 0x36C9, // Red -> Red 0xC23D, // TV -> TV/DTV 0x40BF // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/str_de545 b/boop/trunk/infrared/ir_codes/lirc/str_de545 deleted file mode 100644 index ff078e4..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/str_de545 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Kathrein UFS922 Copyright (C) 2009 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 3 of the License, 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, see . */ /*pre_data*/ 0x00000000, /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x0000000000008000, /*gap*/ 45152, /*repeat_gap*/ 0, /*bits*/ 12, /*pre_data_bits*/ 0, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 40000, /*flags*/ LIRC_CONST_LENGTH, /*header*/ 2400,600, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 1200,600, /*zero*/ 600,600, /*plead*/ 0, /*ptrail*/ 0, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 1, /*duty cycle*/ 25, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0x0000, // Exit -> 0x0000, // Up -> 0x0000, // Down -> 0x0000, // Left -> 0x0000, // Right -> 0x0000, // OK -> 0x0481, // Vol+ -> Vol+ 0x0C81, // Vol- -> Vol- 0x0281, // Mute -> Mute 0x0096, // Prog+ -> Tuner Prog+ 0x0896, // Prog- -> Tuner Prog- 0x0561, // 1 -> TV/SAT 0x0441, // 2 -> Video 0x0BE1, // 3 -> DVD 0x0841, // 4 -> Tuner 0x0A41, // 5 -> CD 0x0B81, // 6 -> AUX 0x0961, // 7 -> MD/TAPE 0x04E1, // 8 -> 5.1 0x0000, // 9 -> 0x0000, // 0 -> 0x0000, // -/-- -> 0x0000, // AV -> 0x0000, // Menu -> 0x0000, // PiP -> 0x0000, // A/B -> 0x0000, // 16:9 -> 0x0000, // Info -> 0x0000, // VTX1 -> 0x0000, // VTX2 -> 0x0000, // VTX3 -> 0x0000, // Blue -> 0x0000, // Yello -> 0x0000, // Green -> 0x0000, // Red -> 0x0000, // TV -> 0x0A81 // Power -> Power }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/ufs910 b/boop/trunk/infrared/ir_codes/lirc/ufs910 deleted file mode 100644 index 4b03d1d..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/ufs910 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Kathrein UFS910 Copyright (C) 2009 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 3 of the License, 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, see . */ /*pre_data*/ 0x00229000, /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x0000000000008000, /*gap*/ 99000, /*repeat_gap*/ 0, /*bits*/ 8, /*pre_data_bits*/ 24, /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 36000, /*flags*/ LIRC_RCMM | LIRC_CONST_LENGTH, /*header*/ 417,278, /*three*/ 167,778, /*two*/ 167,611, /*one*/ 167,444, /*zero*/ 167,278, /*plead*/ 0, /*ptrail*/ 167, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 1, /*duty cycle*/ 33, { 0x00, // A -> 0x00, // B -> 0x00, // C -> 0x00, // D -> 0x00, // Betty -> 0x55, // Exit -> Back 0x58, // Up -> Up 0x59, // Down -> Down 0x5A, // Left -> Left 0x5B, // Right -> Right 0x5c, // OK -> OK 0x10, // Vol+ -> Vol+ 0x11, // Vol- -> Vol- 0x0D, // Mute -> Mute 0x1E, // Prog+ -> Prog+ 0x1F, // Prog- -> Prog- 0x01, // 1 -> 1 0x02, // 2 -> 2 0x03, // 3 -> 3 0x04, // 4 -> 4 0x05, // 5 -> 5 0x06, // 6 -> 6 0x07, // 7 -> 7 0x08, // 8 -> 8 0x09, // 9 -> 9 0x100, // 0 -> 0 //eigentlich 0x00 0xCC, // -/-- -> EPG 0x00, // AV -> 0x54, // Menu -> Menue 0x21, // PiP -> Rewind 0x38, // A/B -> Play 0x20, // 16:9 -> Forward 0x0F, // Info -> Info 0x39, // VTX1 -> Pause 0x37, // VTX2 -> Record 0x31, // VTX3 -> Stop 0x70, // Blue -> Blue 0x6F, // Yello -> Yellow 0x6E, // Green -> Green 0x6D, // Red -> Red 0x3C, // TV -> Text 0x0C // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/lirc/ufs922 b/boop/trunk/infrared/ir_codes/lirc/ufs922 deleted file mode 100644 index 45ec946..0000000 --- a/boop/trunk/infrared/ir_codes/lirc/ufs922 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Kathrein UFS922 Copyright (C) 2009 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 3 of the License, 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, see . */ /*pre_data*/ 0x00037FB9, /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x0000000000008000, /*gap*/ 106291, /*repeat_gap*/ 0, /*bits*/ 16, /*pre_data_bits*/ 21, /*post_data_bits*/ 0, /*rc6_bit*/ 5, /*frequency*/ 36000, /*flags*/ LIRC_RC6 | LIRC_CONST_LENGTH, /*header*/ 2676,870, /*three*/ 0,0, /*two*/ 0,0, /*one*/ 454,429, /*zero*/ 454,429, /*plead*/ 0, /*ptrail*/ 0, /*foot*/ 0,0, /*pre*/ 0,0, /*post*/ 0,0, /*repeat*/ 0,0, /*min_repeat*/ 1, /*duty cycle*/ 33, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0xFFAA, // Exit -> Back 0xFFA7, // Up -> Up 0xFFA6, // Down -> Down 0xFFA5, // Left -> Left 0xFFA4, // Right -> Right 0xFFA3, // OK -> OK 0xFFEF, // Vol+ -> Vol+ 0xFFEE, // Vol- -> Vol- 0xFFF2, // Mute -> Mute 0xFFE1, // Prog+ -> Prog+ 0xFFE0, // Prog- -> Prog- 0xFFFE, // 1 -> 1 0xFFFD, // 2 -> 2 0xFFFC, // 3 -> 3 0xFFFB, // 4 -> 4 0xFFFA, // 5 -> 5 0xFFF9, // 6 -> 6 0xFFF8, // 7 -> 7 0xFFF7, // 8 -> 8 0xFFF6, // 9 -> 9 0xFFF5, // 0 -> 0 0xFF33, // -/-- -> EPG 0xFFB9, // AV -> Archiv 0xFFAB, // Menu -> Menue 0xFFDE, // PiP -> Rewind 0xFFC7, // A/B -> Play 0xFFDF, // 16:9 -> Forward 0xFFF0, // Info -> Info 0xFFC6, // VTX1 -> Pause 0xFFC8, // VTX2 -> Record 0xFFCE, // VTX3 -> Stop 0xFF8F, // Blue -> Blue 0xFF90, // Yello -> Yellow 0xFF91, // Green -> Green 0xFF92, // Red -> Red 0xFF2A, // TV -> Media 0xFFF3 // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/nrc17/dbox2 b/boop/trunk/infrared/ir_codes/nrc17/dbox2 deleted file mode 100644 index e6f2c73..0000000 --- a/boop/trunk/infrared/ir_codes/nrc17/dbox2 +++ /dev/null @@ -1,64 +0,0 @@ -/* - NRC17_dbox2.code - infrared codes for the dbox2 in NRC17 coding - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -// codes are: subcode[4]:address[4]:command[8] = 16 bits - -{ - 0x0000, // A - 0x0000, // B - 0x0000, // C - 0x0000, // D - 0x5c20, // Betty -> Home - 0x5c27, // Exit -> dbox - 0x5c0e, // Up -> Up - 0x5c0f, // Down -> Down - 0x5c2f, // Left -> Left - 0x5c2e, // Right -> Right - 0x5c30, // OK -> OK - 0x5c16, // Vol+ -> Vol+ - 0x5c17, // Vol- -> Vol- - 0x5c28, // Mute -> Mute - 0x5c54, // Prog+ -> Next - 0x5c53, // Prog- -> Prev - 0x5c01, // 1 -> 1 - 0x5c02, // 2 -> 2 - 0x5c03, // 3 -> 3 - 0x5c04, // 4 -> 4 - 0x5c05, // 5 -> 5 - 0x5c06, // 6 -> 6 - 0x5c07, // 7 -> 7 - 0x5c08, // 8 -> 8 - 0x5c09, // 9 -> 9 - 0x5c00, // 0 -> 0 - 0x0000, // -/-- - 0x0000, // AV - 0x5c27, // Menu -> dbox - 0x0000, // PiP - 0x0000, // A/B - 0x0000, // 16:9 - 0x5c82, // Info -> Help - 0x0000, // VTX1 - 0x0000, // VTX2 - 0x0000, // VTX3 - 0x5c3b, // Blue -> Blue - 0x5c52, // Yellow -> Yellow - 0x5c55, // Green -> Green - 0x5c2d, // Red -> Red - 0x5c20, // TV -> Home - 0x5c0c // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 b/boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 deleted file mode 100644 index 20ea9ae..0000000 --- a/boop/trunk/infrared/ir_codes/nrc17/grundig_tp720 +++ /dev/null @@ -1,64 +0,0 @@ -/* - infrared codes for the grundig tp720 tv - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -// codes are: command[9] = 9 bits - -{ - 0x0000, // A - 0x0000, // B - 0x0000, // C - 0x0000, // D - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x000C, // Up -> COLOR+ - 0x000D, // Down -> COLOR- - 0x000B, // Left -> BR- - 0x000A, // Right -> BR+ - 0x8000, // OK -> OK - 0x0008, // Vol+ -> V+ - 0x0009, // Vol- -> V- - 0x0001, // Mute -> Mute - 0x002A, // Prog+ -> P+ - 0x002B, // Prog- -> P- - 0x0011, // 1 -> 1 - 0x0012, // 2 -> 2 - 0x0013, // 3 -> 3 - 0x0014, // 4 -> 4 - 0x0015, // 5 -> 5 - 0x0016, // 6 -> 6 - 0x0017, // 7 -> 7 - 0x0018, // 8 -> 8 - 0x0019, // 9 -> 9 - 0x0010, // 0 -> 0 - 0x0000, // -/-- - 0x0000, // AV - 0x001A, // Menu -> PC - 0x0000, // PiP - 0x0000, // A/B - 0x0000, // 16:9 - 0x002D, // Info -> I - 0x0030, // VTX1 -> Teletext - 0x0000, // VTX2 - 0x0000, // VTX3 - 0x002E, // Blue -> Blue - 0x003B, // Yellow -> Yellow - 0x003e, // Green -> Green - 0x003a, // Red -> Red - 0x0007, // TV -> Aux - 0x0002 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/rc5/HARMONY_655 b/boop/trunk/infrared/ir_codes/rc5/HARMONY_655 deleted file mode 100644 index fa174b0..0000000 --- a/boop/trunk/infrared/ir_codes/rc5/HARMONY_655 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for technisat satreceiver - Copyright (C) 2008 p.c.squirrel - - 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 3 of the License, 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, see . -*/ -{ - RC5_STD(0x0000), // A -> - RC5_STD(0x0000), // B -> - RC5_STD(0x0000), // C -> - RC5_STD(0x0000), // D -> - RC5_STD(0x0000), // Betty -> - RC5_STD(0x100B), // Exit -> Zurück - RC5_STD(0x1012), // Up -> - RC5_STD(0x1013), // Down -> - RC5_STD(0x1015), // Left -> - RC5_STD(0x1014), // Right -> - RC5_STD(0x1023), // OK -> - RC5_STD(0x0210), // Vol+ -> Vol+ - RC5_STD(0x0211), // Vol- -> Vol- - RC5_STD(0x020D), // Mute -> Mute - RC5_STD(0x1020), // Prog+ -> Prog+ - RC5_STD(0x1021), // Prog- -> Prog- - RC5_STD(0x0201), // 1 -> 1 - RC5_STD(0x0202), // 2 -> 2 - RC5_STD(0x0203), // 3 -> 3 - RC5_STD(0x0204), // 4 -> 4 - RC5_STD(0x0205), // 5 -> 5 - RC5_STD(0x0206), // 6 -> 6 - RC5_STD(0x0207), // 7 -> 7 - RC5_STD(0x0208), // 8 -> 8 - RC5_STD(0x0209), // 9 -> 9 - RC5_STD(0x1000), // 0 -> 0 - RC5_STD(0x17C0), // -/-- -> AUDIO - RC5_STD(0x0238), // AV -> EXT - RC5_STD(0x100E), // Menu -> - RC5_STD(0x17FB), // PiP -> Full - RC5_STD(0x17FC), // A/B -> GO - RC5_STD(0x1165), // 16:9 -> FR - RC5_STD(0x1166), // Info -> FF - RC5_STD(0x1175), // VTX1 -> Play - RC5_STD(0x17F6), // VTX2 -> Stop - RC5_STD(0x17F7), // VTX3 -> Record - RC5_STD(0x1034), // Blue -> - RC5_STD(0x1032), // Yello -> - RC5_STD(0x1036), // Green -> - RC5_STD(0x1037), // Red -> - RC5_STD(0x1169), // TV -> Pause - RC5_STD(0x020C) // Power -> Standby -}, - diff --git a/boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 b/boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 deleted file mode 100644 index 8cc2205..0000000 --- a/boop/trunk/infrared/ir_codes/rc5/technisat_satreceiver_103TS103 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for technisat satreceiver Copyright (C) 2008 p.c.squirrel 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 3 of the License, 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, see . */ { RC5_STD(0x0000), // A -> RC5_STD(0x0000), // B -> RC5_STD(0x0000), // C -> RC5_STD(0x0000), // D -> RC5_STD(0x0000), // Betty -> RC5_STD(0x0000), // Exit -> RC5_STD(0x0210), // Up -> RC5_STD(0x0211), // Down -> RC5_STD(0x0215), // Left -> RC5_STD(0x0216), // Right -> RC5_STD(0x0217), // OK -> RC5_STD(0x0210), // Vol+ -> Vol+ RC5_STD(0x0211), // Vol- -> Vol- RC5_STD(0x020D), // Mute -> Mute RC5_STD(0x0220), // Prog+ -> Prog+ RC5_STD(0x0221), // Prog- -> Prog- RC5_STD(0x0201), // 1 -> 1 RC5_STD(0x0202), // 2 -> 2 RC5_STD(0x0203), // 3 -> 3 RC5_STD(0x0204), // 4 -> 4 RC5_STD(0x0205), // 5 -> 5 RC5_STD(0x0206), // 6 -> 6 RC5_STD(0x0207), // 7 -> 7 RC5_STD(0x0208), // 8 -> 8 RC5_STD(0x0209), // 9 -> 9 RC5_STD(0x0200), // 0 -> 0 RC5_STD(0x0000), // -/-- -> RC5_STD(0x0238), // AV ->EXT RC5_STD(0x0000), // Menu -> RC5_STD(0x0000), // PiP -> RC5_STD(0x0000), // A/B -> RC5_STD(0x0000), // 16:9 -> RC5_STD(0x0000), // Info -> RC5_STD(0x0000), // VTX1 -> RC5_STD(0x0000), // VTX2 -> RC5_STD(0x0000), // VTX3 -> RC5_STD(0x022E), // Blue -> RC5_STD(0x022D), // Yello -> RC5_STD(0x022C), // Green -> RC5_STD(0x022B), // Red -> RC5_STD(0x0000), // TV -> RC5_STD(0x020C) // Power -> Standby /* SAT1-OPTION 0x000000000000120A SAT1-A/B 0x0000000000001223 SAT1-SFI 0x000000000000122F SAT1-EXIT 0x0000000000001222 SAT1-INFO 0x000000000000020F SAT1-TV/RADIO 0x0000000000000213 SAT1-MENU 0x0000000000000212 SAT1-TV/SAT 0x0000000000000200 SAT1-TXT 0x000000000000123C SAT1-STOP 0x0000000000001229*/ }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rc5/tv b/boop/trunk/infrared/ir_codes/rc5/tv deleted file mode 100644 index 532d2b8..0000000 --- a/boop/trunk/infrared/ir_codes/rc5/tv +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for RC5 tv Copyright (C) 2007 Ch. Klippel 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 3 of the License, 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, see . */ { RC5_STD(0x0000), // A -> RC5_STD(0x0000), // B -> RC5_STD(0x0000), // C -> RC5_STD(0x0000), // D -> RC5_STD(0x0000), // Betty -> RC5_STD(0x0000), // Exit -> RC5_STD(0x0812), // Up -> Brightness+ RC5_STD(0x0813), // Down -> Brightness- RC5_STD(0x0000), // Left -> RC5_STD(0x0000), // Right -> RC5_STD(0x0000), // OK -> RC5_STD(0x0810), // Vol+ -> Vol+ RC5_STD(0x0811), // Vol- -> Vol- RC5_STD(0x080D), // Mute -> Mute RC5_STD(0x0820), // Prog+ -> Prog+ RC5_STD(0x0821), // Prog- -> Prog- RC5_STD(0x0801), // 1 -> 1 RC5_STD(0x0802), // 2 -> 2 RC5_STD(0x0803), // 3 -> 3 RC5_STD(0x0804), // 4 -> 4 RC5_STD(0x0805), // 5 -> 5 RC5_STD(0x0806), // 6 -> 6 RC5_STD(0x0807), // 7 -> 7 RC5_STD(0x0808), // 8 -> 8 RC5_STD(0x0809), // 9 -> 9 RC5_STD(0x0800), // 0 -> 0 RC5_STD(0x080A), // -/-- -> RC5_STD(0x0000), // AV -> RC5_STD(0x0000), // Menu -> RC5_STD(0x0000), // PiP -> RC5_STD(0x0000), // A/B -> RC5_STD(0x0000), // 16:9 -> RC5_STD(0x0000), // Info -> RC5_STD(0x0000), // VTX1 -> RC5_STD(0x0000), // VTX2 -> RC5_STD(0x0000), // VTX3 -> RC5_STD(0x0000), // Blue -> RC5_STD(0x0000), // Yello -> RC5_STD(0x0000), // Green -> RC5_STD(0x0000), // Red -> RC5_STD(0x0000), // TV -> RC5_STD(0x080C) // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rc6/dvd b/boop/trunk/infrared/ir_codes/rc6/dvd deleted file mode 100644 index b351666..0000000 --- a/boop/trunk/infrared/ir_codes/rc6/dvd +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for RC6 DVD Copyright (C) 2008 p.c.squirrel 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 3 of the License, 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, see . */ { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0x0000, // Exit -> 0x0458, // Up -> Brightness+ 0x0459, // Down -> Brightness- 0xFBA5, // Left -> 0x045B, // Right -> 0x045C, // OK -> 0x1810, // Vol+ -> Vol+ 0x1811, // Vol- -> Vol- 0x180D, // Mute -> Mute 0x1820, // Prog+ -> Prog+ 0x1821, // Prog- -> Prog- 0x0401, // 1 -> 1 0x0402, // 2 -> 2 0x0403, // 3 -> 3 0x0404, // 4 -> 4 0x0405, // 5 -> 5 0x0406, // 6 -> 6 0x0407, // 7 -> 7 0x0408, // 8 -> 8 0x0409, // 9 -> 9 0x040A, // 0 -> 0 0x1800, // -/-- -> 0x0000, // AV -> 0x0000, // Menu -> 0x0000, // PiP -> 0x0000, // A/B -> 0x0000, // 16:9 -> 0x0000, // Info -> 0x0000, // VTX1 -> 0x0000, // VTX2 -> 0x0000, // VTX3 -> 0x0000, // Blue -> 0x0000, // Yello -> 0x0000, // Green -> 0x0000, // Red -> 0x0000, // TV -> 0x180C // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rc6/tv b/boop/trunk/infrared/ir_codes/rc6/tv deleted file mode 100644 index 365ee3a..0000000 --- a/boop/trunk/infrared/ir_codes/rc6/tv +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for RC6 TV Copyright (C) 2008 p.c.squirrel 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 3 of the License, 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, see . */ { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0x0000, // Exit -> 0x0012, // Up -> Brightness+ 0x0013, // Down -> Brightness- 0x0000, // Left -> 0x0000, // Right -> 0x0000, // OK -> 0x0010, // Vol+ -> Vol+ 0x0011, // Vol- -> Vol- 0x000D, // Mute -> Mute 0x0020, // Prog+ -> Prog+ 0x0021, // Prog- -> Prog- 0x0001, // 1 -> 1 0x0002, // 2 -> 2 0x0003, // 3 -> 3 0x0004, // 4 -> 4 0x0005, // 5 -> 5 0x0006, // 6 -> 6 0x0007, // 7 -> 7 0x0008, // 8 -> 8 0x0009, // 9 -> 9 0x000A, // 0 -> 0 0x0000, // -/-- -> 0x0000, // AV -> 0x0000, // Menu -> 0x0000, // PiP -> 0x0000, // A/B -> 0x0000, // 16:9 -> 0x0000, // Info -> 0x0000, // VTX1 -> 0x0000, // VTX2 -> 0x0000, // VTX3 -> 0x0000, // Blue -> 0x0000, // Yello -> 0x0000, // Green -> 0x0000, // Red -> 0x0000, // TV -> 0x000C // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rc6/ufs922 b/boop/trunk/infrared/ir_codes/rc6/ufs922 deleted file mode 100644 index ba92abf..0000000 --- a/boop/trunk/infrared/ir_codes/rc6/ufs922 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Kathrein UFS922 Copyright (C) 2009 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 3 of the License, 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, see . */ { 0x00000000, // A -> 0x00000000, // B -> 0x00000000, // C -> 0x00000000, // D -> 0x00000000, // Betty -> 0x80460055, // Exit -> Back 0x80460058, // Up -> Up 0x80460059, // Down -> Down 0x8046005A, // Left -> Left 0x8046005B, // Right -> Right 0x8046005c, // OK -> OK 0x80460010, // Vol+ -> Vol+ 0x80460011, // Vol- -> Vol- 0x8046000D, // Mute -> Mute 0x8046001E, // Prog+ -> Prog+ 0x8046001F, // Prog- -> Prog- 0x80460001, // 1 -> 1 0x80460002, // 2 -> 2 0x80460003, // 3 -> 3 0x80460004, // 4 -> 4 0x80460005, // 5 -> 5 0x80460006, // 6 -> 6 0x80460007, // 7 -> 7 0x80460008, // 8 -> 8 0x80460009, // 9 -> 9 0x80460000, // 0 -> 0 0x804600CC, // -/-- -> EPG 0x80460046, // AV -> Archiv 0x80460054, // Menu -> Menue 0x80460021, // PiP -> Rewind 0x80460038, // A/B -> Play 0x80460020, // 16:9 -> Forward 0x8046000F, // Info -> Info 0x80460039, // VTX1 -> Pause 0x80460037, // VTX2 -> Record 0x80460031, // VTX3 -> Stop 0x80460070, // Blue -> Blue 0x8046006F, // Yello -> Yellow 0x8046006E, // Green -> Green 0x8046006D, // Red -> Red 0x804600D5, // TV -> Media 0x8046000C // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rca/xbox b/boop/trunk/infrared/ir_codes/rca/xbox deleted file mode 100644 index 38679e8..0000000 --- a/boop/trunk/infrared/ir_codes/rca/xbox +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for RCA xbox - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x00, // A -> - 0x00, // B -> - 0x00, // C -> - 0x00, // D -> - 0x00, // Betty -> - 0x27, // Exit -> Back - 0x59, // Up -> Up - 0x58, // Down -> Down - 0x56, // Left -> Left - 0x57, // Right -> Right - 0xF4, // OK -> Select - 0x33, // Vol+ -> - 0x36, // Vol- -> - 0x39, // Mute -> - 0x20, // Prog+ -> Skip+ - 0x22, // Prog- -> Skip- - 0x31, // 1 -> 1 - 0x32, // 2 -> 2 - 0x33, // 3 -> 3 - 0x34, // 4 -> 4 - 0x35, // 5 -> 5 - 0x36, // 6 -> 6 - 0x37, // 7 -> 7 - 0x38, // 8 -> 8 - 0x39, // 9 -> 9 - 0x30, // 0 -> 0 - 0x15, // -/-- -> Play - 0x1F, // AV -> Stop - 0x08, // Menu -> Menu - 0x19, // PiP -> Pause - 0x1C, // A/B -> Forward - 0x1D, // 16:9 -> Reverse - 0x3C, // Info -> Info - 0x1A, // VTX1 -> Title - 0x2A, // VTX2 -> Display - 0x00, // VTX3 -> - 0x00, // Blue -> - 0x00, // Yello -> - 0x00, // Green -> - 0x00, // Red -> - 0x00, // TV -> - 0x30 // Power -> -}, diff --git a/boop/trunk/infrared/ir_codes/rcmm/galaxis b/boop/trunk/infrared/ir_codes/rcmm/galaxis deleted file mode 100644 index 7b7767f..0000000 --- a/boop/trunk/infrared/ir_codes/rcmm/galaxis +++ /dev/null @@ -1,62 +0,0 @@ -/* - rcmm_galaxis.code - infrared codes for the galaxis receiver in RCMM coding - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x0D500800, // A -> - 0x0D500861, // B -> Alt - 0x0D500879, // C -> List - 0x0D50080A, // D -> Back - 0x0D500845, // Betty -> Setup - 0x0D500855, // Exit -> Exit - 0x0D500858, // Up -> Up - 0x0D500859, // Down -> Down - 0x0D50085A, // Left -> Left - 0x0D50085B, // Right -> Right - 0x0D50085C, // OK -> OK - 0x0D500810, // Vol+ -> Vol+ - 0x0D500811, // Vol- -> Vol- - 0x0D50080D, // Mute -> Mute - 0x0D500820, // Prog+ -> Prog+ - 0x0D500821, // Prog- -> Prog- - 0x0D500801, // 1 -> 1 - 0x0D500802, // 2 -> 2 - 0x0D500803, // 3 -> 3 - 0x0D500804, // 4 -> 4 - 0x0D500805, // 5 -> 5 - 0x0D500806, // 6 -> 6 - 0x0D500807, // 7 -> 7 - 0x0D500808, // 8 -> 8 - 0x0D500809, // 9 -> 9 - 0x0D500800, // 0 -> 0 - 0x0D500850, // -/-- -> Audio - 0x0D5008FF, // AV -> VCR - 0x0D500878, // Menu -> Menu - 0x0D500879, // PiP -> List - 0x0D50084E, // A/B -> Language - 0x0D500861, // 16:9 -> Alt - 0x0D50080F, // Info -> Info - 0x0D50083C, // VTX1 -> Text - 0x0D50084B, // VTX2 -> Subtitle - 0x0D5008CC, // VTX3 -> EPG - 0x0D500870, // Blue -> Blue - 0x0D50086F, // Yello -> Yellow - 0x0D50086E, // Green -> Green - 0x0D50086D, // Red -> Red - 0x0D50083F, // TV -> TV - 0x0D50080C // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/rcmm/ufs910 b/boop/trunk/infrared/ir_codes/rcmm/ufs910 deleted file mode 100644 index 0554c3e..0000000 --- a/boop/trunk/infrared/ir_codes/rcmm/ufs910 +++ /dev/null @@ -1 +0,0 @@ -/* infrared codes for Kathrein UFS910 Copyright (C) 2009 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 3 of the License, 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, see . */ { 0x00000000, // A -> 0x00000000, // B -> 0x00000000, // C -> 0x00000000, // D -> 0x00000000, // Betty -> 0x22908055, // Exit -> Back 0x22908058, // Up -> Up 0x22908059, // Down -> Down 0x2290805A, // Left -> Left 0x2290805B, // Right -> Right 0x2290805c, // OK -> OK 0x22908010, // Vol+ -> Vol+ 0x22908011, // Vol- -> Vol- 0x2290800D, // Mute -> Mute 0x2290801E, // Prog+ -> Prog+ 0x2290801F, // Prog- -> Prog- 0x22908001, // 1 -> 1 0x22908002, // 2 -> 2 0x22908003, // 3 -> 3 0x22908004, // 4 -> 4 0x22908005, // 5 -> 5 0x22908006, // 6 -> 6 0x22908007, // 7 -> 7 0x22908008, // 8 -> 8 0x22908009, // 9 -> 9 0x22908000, // 0 -> 0 0x229080CC, // -/-- -> EPG 0x00000000, // AV -> 0x22908054, // Menu -> Menue 0x22908021, // PiP -> Rewind 0x22908038, // A/B -> Play 0x22908020, // 16:9 -> Forward 0x2290800F, // Info -> Info 0x22908039, // VTX1 -> Pause 0x22908037, // VTX2 -> Record 0x22908031, // VTX3 -> Stop 0x22908070, // Blue -> Blue 0x2290806F, // Yello -> Yellow 0x2290806E, // Green -> Green 0x2290806D, // Red -> Red 0x2290803C, // TV -> Text 0x2290800C // Power -> Standby }, \ No newline at end of file diff --git a/boop/trunk/infrared/ir_codes/rec80/rak_sc957wk b/boop/trunk/infrared/ir_codes/rec80/rak_sc957wk deleted file mode 100644 index 2dc8181..0000000 --- a/boop/trunk/infrared/ir_codes/rec80/rak_sc957wk +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for REC80 rak sc957wk - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x80F64A1C, // A -> Subwoofer - 0x8024981C, // B -> Auto Off - 0x802A961C, // C -> Sleep - 0x800EA40A, // D -> Disc - 0x80208A0A, // Betty -> Program - 0x8009A30A, // Exit -> Cancel - 0x80B60A1C, // Up -> Up - 0x80BA061C, // Down -> Down - 0x80F5491C, // Left -> SkipBack/Rewind - 0x80F64A1C, // Right -> SkipForward/FastForward - 0x80000000, // OK -> - 0x80802000, // Vol+ -> Vol+ - 0x80812100, // Vol- -> Vol- - 0x80923200, // Mute -> Muting - 0x80000000, // Prog+ -> - 0x80000000, // Prog- -> - 0x80AC101C, // 1 -> 1 - 0x80AD111C, // 2 -> 2 - 0x80AE121C, // 3 -> 3 - 0x80AF131C, // 4 -> 4 - 0x80A8141C, // 5 -> 5 - 0x80A9151C, // 6 -> 6 - 0x80AA161C, // 7 -> 7 - 0x80AB171C, // 8 -> 8 - 0x80A4181C, // 9 -> 9 - 0x80A5191C, // 0 -> 0 - 0x8038841C, // -/-- -> >10 - 0x80000000, // AV -> - 0x80BC001C, // Menu -> Stop - 0x80ED470A, // PiP -> Repeat - 0x80E74D0A, // A/B -> Random - 0x80813110, // 16:9 -> 3D AI - 0x80000000, // Info -> CD - 0x80000000, // VTX1 -> Tuner - 0x80000000, // VTX2 -> Aux - 0x80338310, // VTX3 -> EQ - 0x80813110, // Blue -> Tape - 0x80349400, // Yello -> CD - 0x8000A404, // Green -> Tuner - 0x803A9A00, // Red -> Aux - 0x80000000, // TV -> - 0x80813D1C // Power -> Standby -}, diff --git a/boop/trunk/infrared/ir_codes/recs80/seleco_020 b/boop/trunk/infrared/ir_codes/recs80/seleco_020 deleted file mode 100644 index d957ed9..0000000 --- a/boop/trunk/infrared/ir_codes/recs80/seleco_020 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for RECS80 seleco 020 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x05DC, // Up -> - 0x05DE, // Down -> - 0x05DA, // Left -> - 0x05DB, // Right -> - 0x05EC, // OK -> Enter - 0x05D0, // Vol+ -> Vol+ - 0x05D1, // Vol- -> Vol- - 0x05E9, // Mute -> Muting - 0x05CA, // Prog+ -> Prog+ - 0x05CB, // Prog- -> Prog- - 0x05C1, // 1 -> 1 - 0x05C2, // 2 -> 2 - 0x05C3, // 3 -> 3 - 0x05C4, // 4 -> 4 - 0x05C5, // 5 -> 5 - 0x05C6, // 6 -> 6 - 0x05C7, // 7 -> 7 - 0x05C8, // 8 -> 8 - 0x05C9, // 9 -> 9 - 0x05C0, // 0 -> 0 - 0x0000, // -/-- -> - 0x0000, // AV -> - 0x0000, // Menu -> - 0x0000, // PiP -> - 0x05EE, // A/B -> A/B - 0x0000, // 16:9 -> - 0x05EE, // Info -> Info - 0x05F6, // VTX1 -> VTX1 - 0x05F0, // VTX2 -> VTX3 - 0x05F7, // VTX3 -> VTX4 - 0x0000, // Blue -> - 0x0000, // Yello -> - 0x0000, // Green -> - 0x0000, // Red -> - 0x0000, // TV -> - 0x05CC // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/recs80/seleco_157 b/boop/trunk/infrared/ir_codes/recs80/seleco_157 deleted file mode 100644 index 70cd77f..0000000 --- a/boop/trunk/infrared/ir_codes/recs80/seleco_157 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for RECS80 seleco 157 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x05DC, // Up -> - 0x05DE, // Down -> - 0x05DA, // Left -> - 0x05DB, // Right -> - 0x05EC, // OK -> Enter - 0x05D0, // Vol+ -> Vol+ - 0x05D1, // Vol- -> Vol- - 0x05E9, // Mute -> Muting - 0x05D2, // Prog+ -> Prog+ - 0x05D3, // Prog- -> Prog- - 0x05C1, // 1 -> 1 - 0x05C2, // 2 -> 2 - 0x05C3, // 3 -> 3 - 0x05C4, // 4 -> 4 - 0x05C5, // 5 -> 5 - 0x05C6, // 6 -> 6 - 0x05C7, // 7 -> 7 - 0x05C8, // 8 -> 8 - 0x05C9, // 9 -> 9 - 0x05C0, // 0 -> 0 - 0x0000, // -/-- -> - 0x0000, // AV -> - 0x0000, // Menu -> - 0x0000, // PiP -> - 0x05CA, // A/B -> A/B - 0x0000, // 16:9 -> - 0x05E8, // Info -> Info - 0x05F3, // VTX1 -> VTX1 - 0x05E5, // VTX2 -> VTX2 - 0x05F6, // VTX3 -> VTX3 - 0x0000, // Blue -> - 0x0000, // Yello -> - 0x0000, // Green -> - 0x0000, // Red -> - 0x0000, // TV -> - 0x05F0 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/rf/cc1100_a0 b/boop/trunk/infrared/ir_codes/rf/cc1100_a0 deleted file mode 100644 index 2e05ed9..0000000 --- a/boop/trunk/infrared/ir_codes/rf/cc1100_a0 +++ /dev/null @@ -1,62 +0,0 @@ -/* - RF codes for cc1100 Adress 0 - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x000b, // Up -> Brightness+ - 0x000c, // Down -> Brightness- - 0x000d, // Left -> Left - 0x000e, // Right -> Right - 0x000f, // OK -> OK - 0x0010, // Vol+ -> Vol+ - 0x0011, // Vol- -> Vol- - 0x0012, // Mute -> Mute - 0x0013, // Prog+ -> Prog+ - 0x0014, // Prog- -> Prog- - 0x0001, // 1 -> 1 - 0x0002, // 2 -> 2 - 0x0003, // 3 -> 3 - 0x0004, // 4 -> 4 - 0x0005, // 5 -> 5 - 0x0006, // 6 -> 6 - 0x0007, // 7 -> 7 - 0x0008, // 8 -> 8 - 0x0009, // 9 -> 9 - 0x000a, // 0 -> 0 - 0x0015, // -/-- -> -/-- - 0x0016, // AV -> AV - 0x0017, // Menu -> Menu - 0x0018, // PiP -> PiP - 0x0019, // A/B -> A/B - 0x001a, // 16:9 -> 16:9 - 0x001b, // Info -> Info - 0x001c, // VTX1 -> VTX1 - 0x001d, // VTX2 -> VTX2 - 0x001e, // VTX3 -> VTX3 - 0x001f, // Blue -> Blue - 0x0020, // Yello -> Yello - 0x0021, // Green -> Green - 0x0022, // Red -> Red - 0x0023, // TV -> TV - 0x0024 // Power -> Standby -}, diff --git a/boop/trunk/infrared/ir_codes/rf/cc1100_a1 b/boop/trunk/infrared/ir_codes/rf/cc1100_a1 deleted file mode 100644 index ec84a50..0000000 --- a/boop/trunk/infrared/ir_codes/rf/cc1100_a1 +++ /dev/null @@ -1,62 +0,0 @@ -/* - RF codes for cc1100 Adress 1 - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x010b, // Up -> Brightness+ - 0x010c, // Down -> Brightness- - 0x010d, // Left -> Left - 0x010e, // Right -> Right - 0x010f, // OK -> OK - 0x0110, // Vol+ -> Vol+ - 0x0111, // Vol- -> Vol- - 0x0112, // Mute -> Mute - 0x0113, // Prog+ -> Prog+ - 0x0114, // Prog- -> Prog- - 0x0101, // 1 -> 1 - 0x0102, // 2 -> 2 - 0x0103, // 3 -> 3 - 0x0104, // 4 -> 4 - 0x0105, // 5 -> 5 - 0x0106, // 6 -> 6 - 0x0107, // 7 -> 7 - 0x0108, // 8 -> 8 - 0x0109, // 9 -> 9 - 0x010a, // 0 -> 0 - 0x0115, // -/-- -> -/-- - 0x0116, // AV -> AV - 0x0117, // Menu -> Menu - 0x0118, // PiP -> PiP - 0x0119, // A/B -> A/B - 0x011a, // 16:9 -> 16:9 - 0x011b, // Info -> Info - 0x011c, // VTX1 -> VTX1 - 0x011d, // VTX2 -> VTX2 - 0x011e, // VTX3 -> VTX3 - 0x011f, // Blue -> Blue - 0x0120, // Yello -> Yello - 0x0121, // Green -> Green - 0x0122, // Red -> Red - 0x0123, // TV -> TV - 0x0124 // Power -> Standby -}, diff --git a/boop/trunk/infrared/ir_codes/sirc/UFD400 b/boop/trunk/infrared/ir_codes/sirc/UFD400 deleted file mode 100644 index 158abcd..0000000 --- a/boop/trunk/infrared/ir_codes/sirc/UFD400 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for SPACEENC seleco 027 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x0000, // A -> - 0x00, // B -> - 0x00, // C -> - 0x00, // D -> - 0x00, // Betty -> - 0x47B8, // Exit -> - 0x0BF4, // Up -> Play - 0x738C, // Down -> Stop - 0x6798, // Left -> Rewind - 0x27D8, // Right -> Forward - 0x3BC4, // OK -> Enter - 0x4BB4, // Vol+ -> Vol+ - 0x2BD4, // Vol- -> Vol- - 0x1BE4, // Mute -> Muting - 0x00, // Prog+ -> Prog+ - 0x00, // Prog- -> Prog- - 0x3FC0, // 1 -> 1 - 0x5FA0, // 2 -> 2 - 0x1FE0, // 3 -> 3 - 0x6F90, // 4 -> 4 - 0x2FD0, // 5 -> 5 - 0x4FB0, // 6 -> 6 - 0x0FF0, // 7 -> 7 - 0x7788, // 8 -> 8 - 0x37C8, // 9 -> 9 - 0x7F80, // 0 -> 0 - 0x00, // -/-- -> - 0x00, // AV -> - 0x00, // Menu -> - 0x00, // PiP -> - 0x26D9, // A/B -> A/B - 0x15EA, // 16:9 -> - 0x659A, // Info -> Info - 0x6798, // VTX1 -> VTX1 - 0x7B84, // VTX2 -> VTX3 - 0x5EA1, // VTX3 -> VTX4 - 0x00, // Blue -> - 0x00, // Yello -> - 0x00, // Green -> - 0x00, // Red -> Pause - 0x07F8, // TV -> - 0x5BA4 // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/sirc/rm-pp411 b/boop/trunk/infrared/ir_codes/sirc/rm-pp411 deleted file mode 100644 index d849442..0000000 --- a/boop/trunk/infrared/ir_codes/sirc/rm-pp411 +++ /dev/null @@ -1,64 +0,0 @@ -/* - Infrared codes for Sony RM-PP411 Receiver AV2 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -// 15 bit commands, msb = 1 - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0xD877, // Betty -> Main Menu - 0x9860, // Exit -> Sleep - 0x0000, // Up -> - 0x0000, // Down -> - 0x0000, // Left -> - 0x0000, // Right -> - 0x0000, // OK -> - 0x9812, // Vol+ -> Master Vol+ - 0x9813, // Vol- -> Master Vol- - 0x9814, // Mute -> Muting - 0xD86E, // Prog+ -> Mode+ - 0xD86F, // Prog- -> Mode- - 0x9822, // 1 -> Video 1 - 0x981E, // 2 -> Video 2 - 0x9842, // 3 -> Video 3 - 0x987D, // 4 -> DVD/LD - 0x9869, // 5 -> MD/Tape - 0x9825, // 6 -> CD/SACD - 0x9821, // 7 -> Tuner - 0x9820, // 8 -> Phono - 0x981D, // 9 -> Aux - 0x9849, // 0 -> Analog Direct - 0xD841, // -/-- -> 2 CH - 0x0000, // AV -> - 0x0000, // Menu -> - 0x0000, // PiP -> - 0x0000, // A/B -> - 0x0000, // 16:9 -> - 0x9853, // Info -> On Screen - 0x9815, // VTX1 -> I/O - 0xD847, // VTX2 -> AUTO Decoding - 0x9817, // VTX3 -> MPX/Dual - 0xD826, // Blue -> Preset - 0xD84A, // Yello -> Test Tone - 0xBCFB, // Green -> Source - 0x9872, // Red -> Multi CH - 0x986A, // TV -> TV/Sat - 0x8237, // Power -> Standby -}, diff --git a/boop/trunk/infrared/ir_codes/sirc/tv b/boop/trunk/infrared/ir_codes/sirc/tv deleted file mode 100644 index 02ab553..0000000 --- a/boop/trunk/infrared/ir_codes/sirc/tv +++ /dev/null @@ -1,64 +0,0 @@ -/* - Infrared codes for Sony TV - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -// 12 bit commands (MSB = 0) - -{ - 0x0000, // A -> - 0x0000, // B -> - 0x0000, // C -> - 0x0000, // D -> - 0x0000, // Betty -> - 0x0000, // Exit -> - 0x0000, // Up -> - 0x0000, // Down -> - 0x0000, // Left -> - 0x0000, // Right -> - 0x0000, // OK -> - 0x0092, // Vol+ -> Vol+ - 0x0093, // Vol- -> Vol- - 0x0094, // Mute -> Mute - 0x0090, // Prog+ -> Prog+ - 0x0091, // Prog- -> Prog- - 0x0080, // 1 -> 1 - 0x0081, // 2 -> 2 - 0x0082, // 3 -> 3 - 0x0083, // 4 -> 4 - 0x0084, // 5 -> 5 - 0x0085, // 6 -> 6 - 0x0086, // 7 -> 7 - 0x0087, // 8 -> 8 - 0x0088, // 9 -> 9 - 0x0089, // 0 -> 0 - 0x009D, // -/-- -> -/-- - 0x00A5, // AV -> Ext - 0x0000, // Menu -> - 0x0000, // PiP -> - 0x0000, // A/B -> - 0x0000, // 16:9 -> - 0x0000, // Info -> - 0x00BF, // VTX1 -> Teletext - 0x0000, // VTX2 -> - 0x0000, // VTX3 -> - 0x0182, // Blue -> Blue - 0x0182, // Yellow -> Yellow - 0x0181, // Green -> Green - 0x0180, // Red -> Red - 0x00B8, // TV -> TV - 0x0095 // Power -> -}, diff --git a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 b/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 deleted file mode 100644 index 488e73d..0000000 --- a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for SPACEENC schneider dtv3 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x00, // A -> - 0x00, // B -> - 0x00, // C -> - 0x00, // D -> - 0x00, // Betty -> - 0x00, // Exit -> - 0x00, // Up -> Chan+ Fast - 0x00, // Down -> Chan- Fast - 0x00, // Left -> Vol- Fast - 0x00, // Right -> Vol+ Fast - 0x00, // OK -> - 0x05, // Vol+ -> Vol+ - 0x06, // Vol- -> Vol- - 0x00, // Mute -> - 0x07, // Prog+ -> Chan+ - 0x08, // Prog- -> Chan-- - 0x00, // 1 -> - 0x00, // 2 -> - 0x00, // 3 -> - 0x00, // 4 -> - 0x00, // 5 -> - 0x00, // 6 -> - 0x00, // 7 -> - 0x00, // 8 -> - 0x00, // 9 -> - 0x00, // 0 -> - 0x00, // -/-- -> - 0x00, // AV -> - 0x00, // Menu -> - 0x00, // PiP -> - 0x00, // A/B -> - 0x00, // 16:9 -> - 0x09, // Info -> White - 0x00, // VTX1 -> - 0x00, // VTX2 -> - 0x00, // VTX3 -> - 0x0A, // Blue -> Blue - 0x0B, // Yello -> Yellow - 0x0C, // Green -> Green - 0x0D, // Red -> Red - 0x00, // TV -> - 0x0E // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra b/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra deleted file mode 100644 index da11f31..0000000 --- a/boop/trunk/infrared/ir_codes/spaceenc/schneider_dtv3_xtra +++ /dev/null @@ -1,55 +0,0 @@ -/* - infrared codes for SPACEENC schneider dtv3 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -const unsigned int dtv3_codes[15] = -{ - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x0000003F, // Vol+ - 0x0008007E, // Vol- - 0x0000207F, // Chan+ - 0x000840FC, // Chan- - 0x90000027, // White - 0x2000004F, // Blue - 0x08000067, // Yellow - 0xC000000F, // Green - 0x8000001F, // Red - 0x30000087 // Power -}; - -const unsigned char dtv3_pre[15] = -{ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xFF, // Vol+ - 0x7F, // Vol- - 0xCF, // Chan+ - 0xCF, // Chan- - 0xFF, // White - 0xFF, // Blue - 0xFF, // Yellow - 0xFF, // Green - 0xFF, // Red - 0xFF // Power -}; diff --git a/boop/trunk/infrared/ir_codes/spaceenc/seleco_027 b/boop/trunk/infrared/ir_codes/spaceenc/seleco_027 deleted file mode 100644 index 08ec25e..0000000 --- a/boop/trunk/infrared/ir_codes/spaceenc/seleco_027 +++ /dev/null @@ -1,62 +0,0 @@ -/* - infrared codes for SPACEENC seleco 027 - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -{ - 0x00, // A -> - 0x00, // B -> - 0x00, // C -> - 0x00, // D -> - 0x00, // Betty -> - 0x00, // Exit -> - 0x1C, // Up -> Play - 0x1E, // Down -> Stop - 0x1A, // Left -> Rewind - 0x1B, // Right -> Forward - 0x07, // OK -> Enter - 0x01, // Vol+ -> Vol+ - 0x02, // Vol- -> Vol- - 0x05, // Mute -> Muting - 0x03, // Prog+ -> Prog+ - 0x04, // Prog- -> Prog- - 0x10, // 1 -> 1 - 0x11, // 2 -> 2 - 0x12, // 3 -> 3 - 0x13, // 4 -> 4 - 0x14, // 5 -> 5 - 0x15, // 6 -> 6 - 0x16, // 7 -> 7 - 0x17, // 8 -> 8 - 0x18, // 9 -> 9 - 0x19, // 0 -> 0 - 0x00, // -/-- -> - 0x00, // AV -> - 0x00, // Menu -> - 0x00, // PiP -> - 0x1F, // A/B -> A/B - 0x00, // 16:9 -> - 0x28, // Info -> Info - 0x3F, // VTX1 -> VTX1 - 0x0B, // VTX2 -> VTX3 - 0x0D, // VTX3 -> VTX4 - 0x00, // Blue -> - 0x00, // Yello -> - 0x00, // Green -> - 0x1D, // Red -> Pause - 0x00, // TV -> - 0x0E // Power -> Power -}, diff --git a/boop/trunk/infrared/ir_itt.c b/boop/trunk/infrared/ir_itt.c deleted file mode 100644 index 6294cc4..0000000 --- a/boop/trunk/infrared/ir_itt.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - ir_itt.c - itt protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_itt.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule ITT_Module = -{ - ITT_Encode, - ITT_Send, - ITT_Repeat, - ITT_Stop, - 103, // carrier - 2, // carrier-on - 3 // carrier-off -}; - -const struct irModule ITT2_Module = -{ - ITT_Encode, - ITT_Send, - ITT_Repeat, - ITT_Stop, - 111, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define ITT_IDLE 0x00 -#define ITT_LEADIN_A 0x01 -#define ITT_LEADIN_B 0x02 -#define ITT_START_A 0x03 -#define ITT_START_B 0x04 -#define ITT_BIT_A 0x05 -#define ITT_BIT_B 0x06 -#define ITT_LEADOUT_A 0x07 -#define ITT_LEADOUT_B 0x08 -#define ITT_STOP 0x09 -#define ITT_WAIT 0x0A - -#define ITT_LEADTIME 13 -#define ITT_BITTIME_0 4 -#define ITT_BITTIME_1 8 -#define ITT_WAITTIME 130 - -#define ITT2_LEADTIME 15 -#define ITT2_BITTIME_0 4 -#define ITT2_BITTIME_1 9 - -void __attribute__ ((section(".text.fastcode"))) ITT_Encode (void) -{ - switch(ir.state) - { - case ITT_IDLE: - mod_enable = 0; - break; - - case ITT_LEADIN_A: - case ITT_START_A: - case ITT_BIT_A: - case ITT_LEADOUT_A: - case ITT_STOP: - cycles = 1; - mod_enable = 1; - ir.state++; - break; - - case ITT_LEADIN_B: - case ITT_LEADOUT_B: - mod_enable = 0; - cycles = ir.general.leadtime; - ir.state++; - break; - - case ITT_START_B: - mod_enable = 0; - cycles = ir.general.bittime0; - ir.state++; - break; - - case ITT_BIT_B: - mod_enable = 0; - if(ir.cmd & 0x01) - cycles = ir.general.bittime1; - else - cycles = ir.general.bittime0; - ir.cmd >>= 1; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - ir.state++; - else - ir.state--; - break; - - case ITT_WAIT: - mod_enable = 0; - cycles = 40; - ir.general.wait++; - if(ir.general.wait >= ITT_WAITTIME) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = ITT_IDLE; - } - break; - } -} - -void ITT_LoadMap(unsigned char map) -{ - switch(map) - { - case 2: - ir.general.leadtime = ITT2_LEADTIME; - ir.general.bittime0 = ITT2_BITTIME_0; - ir.general.bittime1 = ITT2_BITTIME_1; - setIR(ITT2_Module); - break; - default: - ir.general.leadtime = ITT_LEADTIME; - ir.general.bittime0 = ITT_BITTIME_0; - ir.general.bittime1 = ITT_BITTIME_1; - setIR(ITT_Module); - break; - } -} - -void ITT_Init(unsigned char map) -{ - if(map < ITT.num_tables) - { - ir.state = ITT_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.numbits = 0x0A; - ir.general.wait = 0; - copyMapS((unsigned short*)ITT.table[map].codes); - ITT_LoadMap(map); - cycles = 1; - } -} - -void ITT_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - setIRspeed(ITT_Module); - if(ir.actcmd != 0x0000) - { - if(ir.state == ITT_IDLE) - { - ir.cmd = ir.actcmd; - ir.state++; - runIR(); - } - } -} - -void ITT_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - if(ir.state == ITT_IDLE) - { - ir.cmd = ir.actcmd ^ 0x00f; - ir.state++; - runIR(); - } - } -} - -void ITT_Stop(void) -{ -/* -waitend1: - if(ir.state != ITT_IDLE) - goto waitend1; - - ir.state++; -*/ - if(ir.actcmd != 0x00000000) - { -waitend2: - if(ir.state != ITT_IDLE) - goto waitend2; - } - ir.actcmd = 0x0000; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_itt.h b/boop/trunk/infrared/ir_itt.h deleted file mode 100644 index b9faf4f..0000000 --- a/boop/trunk/infrared/ir_itt.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_itt.h - itt protocol ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_ITT_H -#define IR_ITT_H - -void ITT_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void ITT_Init(unsigned char map); -void ITT_Send(unsigned long cmd); -void ITT_Repeat(void); -void ITT_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_lirc.c b/boop/trunk/infrared/ir_lirc.c deleted file mode 100644 index 7e34d60..0000000 --- a/boop/trunk/infrared/ir_lirc.c +++ /dev/null @@ -1,451 +0,0 @@ -/* - ir_lirc.c - lirc ir encoder - Copyright (C) 2009 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_lirc.h" -#include "encoders.h" -#include "codes.h" -#include "fonty.h" -#include "lcd.h" -#include "rf.h" -#include "cc1100.h" - -#include "global.h" - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -/* -#define RAW_IDLE 0x00 -#define RAW_HI 0x01 -#define RAW_LO 0x02 -*/ - -#define LIRC_IDLE 0x00 -#define LIRC_HEAD_P 0x01 -#define LIRC_HEAD_S 0x02 -#define LIRC_LEAD_P 0x03 -#define LIRC_PRE_DAT_P 0x04 -#define LIRC_PRE_DAT_S 0x05 -#define LIRC_PRE_P 0x06 -#define LIRC_PRE_S 0x07 -#define LIRC_DATA_P 0x08 -#define LIRC_DATA_S 0x09 -#define LIRC_POST_P 0x0A -#define LIRC_POST_S 0x0B -#define LIRC_POST_DAT_P 0x0C -#define LIRC_POST_DAT_S 0x0D -#define LIRC_REPEAT_P 0x0E -#define LIRC_REPEAT_S 0x0F -#define LIRC_TRAIL_P 0x10 -#define LIRC_FOOT_S 0x11 -#define LIRC_FOOT_P 0x12 -#define LIRC_GAP 0x13 - -const struct irModule LIRC_Module = -{ - LIRC_Encode, - LIRC_Send, - LIRC_Repeat, - LIRC_Stop, - 136, // carrier - 1, // carrier-on - 3 // carrier-off -}; - - -unsigned char __attribute__ ((section(".text.fastcode"))) send_data (unsigned long data, unsigned char pulse) { - - const unsigned char* bittimes[4] = {&(ir.lirc.pzero), &(ir.lirc.pone), &(ir.lirc.ptwo), &(ir.lirc.pthree)}; - unsigned char notpulse = 1; - - if(pulse) { - pulse = 1; - notpulse = 0; - } - - if(is_rcmm) { - switch(data & 0xC0000000) { - case 0x00000000: - cycles = bittimes[0][notpulse]; - break; - case 0x40000000: - cycles = bittimes[1][notpulse]; - break; - case 0x80000000: - cycles = bittimes[2][notpulse]; - break; - case 0xC0000000: - cycles = bittimes[3][notpulse]; - break; - } - mod_enable = pulse; - if(!pulse) { - ir.lirc.bit +=2; - return(2); - } - return(0); - } - else if(is_biphase) { - if(data & 0x80000000) { - cycles = bittimes[1][pulse]; - mod_enable = notpulse; - } - else { - cycles = bittimes[0][notpulse]; - mod_enable = pulse; - } - if((ir.lirc.bit+1 == ir.lirc.rc6_bit)) - cycles <<= 1; - } - else { - if(data & 0x80000000) { - cycles = bittimes[1][notpulse]; - } - else { - cycles = bittimes[0][notpulse]; - } - mod_enable = pulse; - } - if(!pulse) { - ir.lirc.bit++; - return(1); - } - return(0); -} - -void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { - unsigned short gap; - - ir.lirc.cycles_counter += cycles; - - switch(ir.state) - { - case LIRC_IDLE: - cycles = ir.lirc.pone; - mod_enable = 0; - break; - case LIRC_HEAD_P: - ir.lirc.cycles_counter = 0; - if(has_header && (!ir.lirc.repeats || (!(ir.lirc.flags&LIRC_NO_HEAD_REP) && !has_repeat) || (ir.lirc.flags&LIRC_REPEAT_HEADER))) { // - mod_enable = 1; - cycles = ir.lirc.phead; - ir.state++; - break; - case LIRC_HEAD_S: - mod_enable = 0; - cycles = ir.lirc.shead; - ir.state++; - break; - } - ir.state = LIRC_LEAD_P; - case LIRC_LEAD_P: - if(ir.lirc.plead) { - mod_enable = 1; - cycles = ir.lirc.plead; - ir.state++; - break; - } - ir.state++; - case LIRC_PRE_DAT_P: - if(!has_repeat || !(ir.lirc.repeats)) { - if(ir.lirc.pre_data_bits) { - send_data(ir.lirc.pre_data,1); - ir.state++; - break; - case LIRC_PRE_DAT_S: - ir.lirc.pre_data <<= send_data(ir.lirc.pre_data,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits) - ir.state++; - else - ir.state--; - break; - case LIRC_PRE_P: - if(ir.lirc.pre_p && ir.lirc.pre_s) { - mod_enable = 1; - cycles = ir.lirc.pre_p; - ir.state++; - break; - case LIRC_PRE_S: - mod_enable = 0; - cycles = ir.lirc.pre_s; - ir.state++; - break; - } - } - ir.state = LIRC_DATA_P; - case LIRC_DATA_P: - send_data(ir.cmd,1); - ir.state++; - break; - case LIRC_DATA_S: - ir.cmd <<= send_data(ir.cmd,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits + ir.lirc.bits) - ir.state++; - else - ir.state--; - break; - case LIRC_POST_P: - if(ir.lirc.post_data_bits) { - if(ir.lirc.post_p && ir.lirc.post_s) { - mod_enable = 1; - cycles = ir.lirc.post_p; - ir.state++; - break; - case LIRC_POST_S: - mod_enable = 0; - cycles = ir.lirc.post_s; - ir.state++; - break; - } - ir.state = LIRC_POST_DAT_P; - case LIRC_POST_DAT_P: - send_data(ir.lirc.post_data,1); - ir.state++; - break; - case LIRC_POST_DAT_S: - ir.lirc.post_data <<= send_data(ir.lirc.post_data,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits + ir.lirc.bits +ir.lirc.post_data_bits) - ir.state = LIRC_TRAIL_P; - else - ir.state--; - break; - } - } - ir.state = LIRC_REPEAT_P; - case LIRC_REPEAT_P: - if(has_repeat && ir.lirc.repeats) { - mod_enable = 1; - cycles = ir.lirc.prepeat; - ir.state++; - break; - case LIRC_REPEAT_S: - mod_enable = 0; - cycles = ir.lirc.srepeat; - ir.state++; - break; - } - ir.state = LIRC_TRAIL_P; - case LIRC_TRAIL_P: - if(ir.lirc.ptrail) { - mod_enable = 1; - cycles = ir.lirc.ptrail; - ir.state++; - break; - } - ir.state++; - case LIRC_FOOT_S: - if(has_foot && (!ir.lirc.repeats || !(ir.lirc.flags&LIRC_NO_FOOT_REP)) && (!has_repeat || !ir.lirc.repeats)) { - mod_enable = 0; - cycles = ir.lirc.sfoot; - ir.state++; - break; - case LIRC_FOOT_P: - mod_enable = 1; - cycles = ir.lirc.pfoot; - ir.state++; - break; - } - case LIRC_GAP: - default: - mod_enable = 0; - ir.lirc.bit = 0; - ir.cmd = ir.actcmd; - ir.lirc.pre_data = ir.lirc.actpre_data; - ir.lirc.post_data = ir.lirc.actpost_data; - - if((ir.lirc.repeat_gap && has_repeat && ir.lirc.repeats) | (is_RF && (ir.lirc.repeats >= ir.lirc.min_repeat))) - gap = ir.lirc.repeat_gap; - else - gap = ir.lirc.gap; - - if(is_const && (ir.lirc.cycles_counter < gap)) - cycles = gap - ir.lirc.cycles_counter; - else - cycles = gap; - - if((ir.lirc.repeats >= ir.lirc.min_repeat) && ir.lirc.stop) { - ir.state = LIRC_IDLE; - } - else { - if(ir.lirc.repeats < 0xff) - ir.lirc.repeats++; - ir.state = LIRC_HEAD_P; - } - } -} - -void LIRC_Init(unsigned char map) -{ - unsigned long freq; - struct CODE_TABLE_L *lirctable; - - if(map < LIRC.num_tables) { - - lirctable = (struct CODE_TABLE_L*)&(LIRC.table[map]); - - copyMapI((unsigned int*)LIRC.table[map].codes); - setIR(LIRC_Module); - - if(lirctable->flags&LIRC_RF) { - hi_border = 0; - lo_border = 1; - freq = 20000; - } - else { - freq = lirctable->freq; - if(!freq) - freq = 38000; - - if(lirctable->duty_cycle == 0) { //default 50% - hi_border = 1; - lo_border = 2; - } - else if(lirctable->duty_cycle <= 25) { - hi_border = 1; - lo_border = 4; - } - else if(lirctable->duty_cycle <= 33) { - hi_border = 1; - lo_border = 3; - } - else if(lirctable->duty_cycle <= 50) { - hi_border = 1; - lo_border = 2; - } - else if(lirctable->duty_cycle <= 66) { - hi_border = 2; - lo_border = 3; - } - else { //75% - hi_border = 3; - lo_border = 4; - } - } - - T1MR0 = 15000000 / (freq * lo_border); - - - ir.lirc.phead = (lirctable->phead * freq) / 1000000; - ir.lirc.shead = (lirctable->shead * freq) / 1000000; - - ir.lirc.plead = (lirctable->plead * freq) / 1000000; - - ir.lirc.actpre_data = (lirctable->pre_data)<<(32-lirctable->pre_data_bits); - ir.lirc.pre_data_bits = lirctable->pre_data_bits; - ir.lirc.pre_p = (lirctable->pre_p * freq) / 1000000; - ir.lirc.pre_s = (lirctable->pre_s * freq) / 1000000; - - ir.lirc.post_p = (lirctable->post_p * freq) / 1000000; - ir.lirc.post_s = (lirctable->post_s * freq) / 1000000; - ir.lirc.actpost_data = (lirctable->post_data)<<(32-lirctable->post_data_bits); - ir.lirc.post_data_bits = lirctable->post_data_bits; - - ir.lirc.ptrail = (lirctable->ptrail * freq) / 1000000; - - ir.lirc.pfoot = (lirctable->pfoot * freq) / 1000000; - ir.lirc.sfoot = (lirctable->sfoot * freq) / 1000000; - - ir.lirc.prepeat = (lirctable->prepeat * freq) / 1000000; - ir.lirc.srepeat = (lirctable->srepeat * freq) / 1000000; - - ir.lirc.pzero = (lirctable->pzero * freq) / 1000000; - ir.lirc.szero = (lirctable->szero * freq) / 1000000; - ir.lirc.pone = (lirctable->pone * freq) / 1000000; - ir.lirc.sone = (lirctable->sone * freq) / 1000000; - ir.lirc.ptwo = (lirctable->ptwo * freq) / 1000000; - ir.lirc.stwo = (lirctable->stwo * freq) / 1000000; - ir.lirc.pthree = (lirctable->pthree * freq) / 1000000; - ir.lirc.sthree = (lirctable->sthree * freq) / 1000000; - - ir.lirc.gap = (lirctable->gap * freq) / 1000000; - ir.lirc.repeat_gap = (lirctable->repeat_gap * freq) / 1000000; - - ir.lirc.rc6_bit = lirctable->rc6_bit; - ir.lirc.flags = lirctable->flags; - ir.lirc.bits = lirctable->bits; - ir.lirc.min_repeat = lirctable->min_repeat; - - ir.cmd = 0; - ir.actcmd = 0; - ir.lirc.stop = 0; - ir.state = LIRC_IDLE; - ir.lirc.bit = 0; - ir.lirc.map = map; - - } -} - -void LIRC_Send(unsigned long cmd) -{ - unsigned long togglemask; - if(cmd != 0x0000) { - - ir.lirc.pre_data = ir.lirc.actpre_data; - ir.actcmd = cmd<<(32-ir.lirc.bits); - ir.lirc.post_data = ir.lirc.actpost_data; - ir.lirc.stop = 0; - ir.lirc.repeats = 0; - - if(ir.toggle & 0x01) { - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask) << (32-ir.lirc.post_data_bits); - ir.lirc.post_data ^= togglemask; - - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask>>ir.lirc.post_data_bits) << (32-ir.lirc.bits); - ir.actcmd ^= togglemask; - - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask>>(ir.lirc.post_data_bits + ir.lirc.bits)) << (32-ir.lirc.pre_data_bits); - ir.lirc.pre_data ^= togglemask; - } - - if(ir.state == LIRC_IDLE) { - ir.cmd = ir.actcmd; - ir.lirc.bit = 0; - ir.state++; - if(is_RF) { - RFasyncmode(true); - cc1100_write1(FREQ2,((LIRC.table[ir.lirc.map].freq)>>16) & 0xFF); - cc1100_write1(FREQ1,((LIRC.table[ir.lirc.map].freq)>>8) & 0xFF); - cc1100_write1(FREQ0,(LIRC.table[ir.lirc.map].freq) & 0xFF); - cc1100_strobe(STX); - } - runIR(); - } - } -} - -void LIRC_Repeat(void) { - -} - -void LIRC_Stop(void) -{ - ir.lirc.stop = 1; - if(ir.lirc.bits){ - while(ir.state != LIRC_IDLE); - } - - ir.toggle++; - ir.actcmd = 0x0000; - stopIR(); - if(is_RF) { - RFasyncmode(false); - } -} diff --git a/boop/trunk/infrared/ir_lirc.h b/boop/trunk/infrared/ir_lirc.h deleted file mode 100644 index 2154aa9..0000000 --- a/boop/trunk/infrared/ir_lirc.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - ir_lirc.h - lirc ir encoder - Copyright (C) 2009 - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_LIRC_H -#define IR_LIRC_H - - -#define LIRC_RC5 0x0002 /* IR data follows RC5 protocol */ -#define LIRC_SHIFT_ENC LIRC_RC5 /* IR data is shift encoded (name obsolete) */ -#define LIRC_RC6 0x0004 /* IR data follows RC6 protocol */ -#define LIRC_RCMM 0x0008 /* IR data follows RC-MM protocol */ -#define LIRC_SPACE_ENC 0x0010 /* IR data is space encoded */ -//#define LIRC_SPACE_FIRST 0x0020 /* bits are encoded as space+pulse */ -//#define LIRC_GOLDSTAR 0x0040 /* encoding found on Goldstar remote */ -//#define LIRC_GRUNDIG 0x0080 /* encoding found on Grundig remote */ -//#define LIRC_BO 0x0100 /* encoding found on Bang & Olufsen remote */ -#define LIRC_RF 0x0100 /* RF ASK/OOK modulator */ -//#define LIRC_SERIAL 0x0200 /* serial protocol */ -//#define LIRC_XMP 0x0400 /* XMP protocol */ - -/* additinal flags: can be orred together with protocol flag */ -//#define REVERSE 0x0800 -#define LIRC_NO_HEAD_REP 0x1000 /* no header for key repeats */ -#define LIRC_NO_FOOT_REP 0x2000 /* no foot for key repeats */ -#define LIRC_CONST_LENGTH 0x4000 /* signal length+gap is always constant */ -#define LIRC_REPEAT_HEADER 0x8000 /* header is also sent before repeat code */ - -#define is_rc6 (ir.lirc.flags & LIRC_RC6) -#define is_biphase ((ir.lirc.flags & LIRC_RC5) || is_rc6) -#define is_rcmm (ir.lirc.flags & LIRC_RCMM) -#define is_const (ir.lirc.flags & LIRC_CONST_LENGTH) -#define is_RF (ir.lirc.flags & LIRC_RF) -#define has_header (ir.lirc.phead && ir.lirc.shead) -#define has_foot (ir.lirc.pfoot && ir.lirc.sfoot) -#define has_repeat (ir.lirc.prepeat && ir.lirc.srepeat) - -//FS20 Protocol description see http://fhz4linux.info/tiki-index.php?page=FS20%20Protocol -#define calcFS20pre(HC1,par1,HC2,par2) ((1<<18) | (HC1<<10) | (par1<<9) | (HC2<<1) | par2) -#define calcFS20code(Adr,parAdr,Cmd,parCmd,Chk,parChk) ((Adr<<19) | (parAdr<<18) | (Cmd<<10) | (parCmd<<9) | (Chk<<1) | parChk) - -void LIRC_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void LIRC_Init(unsigned char map); -void LIRC_Send(unsigned long cmd); -void LIRC_Repeat(void); -void LIRC_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_nrc17.c b/boop/trunk/infrared/ir_nrc17.c deleted file mode 100644 index afbe81f..0000000 --- a/boop/trunk/infrared/ir_nrc17.c +++ /dev/null @@ -1,211 +0,0 @@ -/* - ir_nrc17.c - nokia remote control 17 encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_nrc17.h" -#include "encoders.h" -#include "codes.h" - -#define NRC17_IDLE 0x00 -#define NRC17_PRE_A 0x01 -#define NRC17_PRE_B 0x02 -#define NRC17_START_A 0x03 -#define NRC17_START_B 0x04 -#define NRC17_BIT_A 0x05 -#define NRC17_BIT_B 0x06 -#define NRC17_WAIT 0x07 - -#define NRC17_BONTIME 19 -#define NRC17_BOFFTIME 19 -#define NRC17_PTIME 95 -#define NRC17_GTIME 156 -#define NRC17_WTIME 38 - -#define NRC17_STARTSTOP_DBOX2 0xFEFF -#define NRC17_STARTSTOP_TP720 0x01FF - -const struct irModule NRC17_Module = -{ - NRC17_Encode, - NRC17_Send, - NRC17_Repeat, - NRC17_Stop, - 132, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -void __attribute__ ((section(".text.fastcode"))) NRC17_Encode(void) -{ - switch(ir.state) - { - case NRC17_IDLE: - mod_enable = 0; - break; - - case NRC17_PRE_A: - case NRC17_START_A: - cycles = NRC17_BONTIME; // 0.5 ms - mod_enable = 1; - ir.state++; - break; - - case NRC17_PRE_B: - case NRC17_START_B: - if(ir.state == NRC17_PRE_B) - cycles = NRC17_PTIME; // 2,5 ms - else - cycles = NRC17_BOFFTIME; // 0.5 ms - mod_enable = 0; - ir.state++; - break; - - case NRC17_BIT_A: - if(ir.cmd & 0x0001) - mod_enable = 1; - else - mod_enable = 0; - ir.cmd >>= 1; - ir.state++; - break; - - case NRC17_BIT_B: - if(mod_enable == 1) - mod_enable = 0; - else - mod_enable = 1; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - ir.state++; - else - ir.state--; - break; - - case NRC17_WAIT: - mod_enable = 0; - ir.general.wait++; - cycles = NRC17_BONTIME; // 1 ms - if(ir.general.wait >= ir.general.pause) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.general.pause = NRC17_PTIME; - ir.state = NRC17_IDLE; - } - break; - - } -} -/* -void NRC17_CopyMap(unsigned char xtra, unsigned short *map) -{ - int x; - for(x=0;x<42;x++) - { - keyMap[x] = map[x]; - } -}*/ - -void NRC17_LoadMap(unsigned char map) -{ - switch(map) - { - case 1: // tp720 - tv, 9 bit data - ir.general.startstop = NRC17_STARTSTOP_TP720; - ir.general.numbits = 9; - break; - default: // nokia dbox2, 16 bit data - ir.general.startstop = NRC17_STARTSTOP_DBOX2; - ir.general.numbits = 16; - break; - } - -} - -void NRC17_Init(unsigned char map) -{ - if(map < NRC17.num_tables) - { - ir.state = NRC17_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.numbits = 16; - ir.general.wait = 0; - ir.general.pause = NRC17_BONTIME; - copyMapS((unsigned short*)NRC17.table[map].codes); - NRC17_LoadMap(map); - setIR(NRC17_Module); - } -} - -void NRC17_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - if(ir.actcmd != 0x0000) - { - setIRspeed(NRC17_Module); - if(ir.state == NRC17_IDLE) - { - ir.general.pause = NRC17_WTIME; - ir.cmd = ir.general.startstop; - ir.state++; - runIR(); - } - } -} - -void NRC17_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - if(ir.state == NRC17_IDLE) - { - ir.general.pause = NRC17_GTIME; - ir.cmd = ir.actcmd; - ir.state++; - } - } -} - -void NRC17_Stop(void) -{ - if(ir.actcmd != 0x0000) - { -retry: - if(ir.state == NRC17_IDLE) - { - ir.cmd = ir.general.startstop; - ir.state++; - } - else - goto retry; - -waitend: - if(ir.state != NRC17_IDLE) - goto waitend; - } - ir.actcmd = 0x0000; - stopIR(); -} - diff --git a/boop/trunk/infrared/ir_nrc17.h b/boop/trunk/infrared/ir_nrc17.h deleted file mode 100644 index 73cf199..0000000 --- a/boop/trunk/infrared/ir_nrc17.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_nrc17.h - nokia remote control 17 encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_NRC17_H -#define IR_NRC17_H - -void NRC17_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void NRC17_Init(unsigned char map); -void NRC17_Send(unsigned long cmd); -void NRC17_Repeat(void); -void NRC17_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_raw.c b/boop/trunk/infrared/ir_raw.c deleted file mode 100644 index 726ade8..0000000 --- a/boop/trunk/infrared/ir_raw.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - ir_raw.c - raw ir encoder - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_raw.h" -#include "encoders.h" -#include "codes.h" -#include "ir_capture.h" -#include "fonty.h" -#include "lcd.h" - -#include "global.h" -#include "bfs.h" - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -struct RAWcmd_* RAWcmd; - -#define RAW_IDLE 0x00 -#define RAW_HI 0x01 -#define RAW_LO 0x02 - -const struct irModule RAW_Module = -{ - RAW_Encode, - RAW_Send, - RAW_Repeat, - RAW_Stop, - 91, // carrier - 1, // carrier-on - 3, // carrier-off -}; - -void __attribute__ ((section(".text.fastcode"))) RAW_Encode (void) -{ - - switch(ir.state) - { unsigned char* x; - - case RAW_IDLE: - mod_enable = 0; - break; - - case RAW_HI: - mod_enable = 1; - - x=(unsigned char*)&(RAWcmd->pulselen[(RAWcmd->data[RAWcmd->CMDstart[ir.actcmd]+ir.general.bit])>>4]); - cycles = x[0] + (x[1]<<8); - ir.state++; - break; - - case RAW_LO: - mod_enable = 0; - x=(unsigned char*)&(RAWcmd->pulselen[(RAWcmd->data[RAWcmd->CMDstart[ir.actcmd]+ir.general.bit])&0x0f]); - cycles = x[0] + (x[1]<<8); - ir.general.bit++; - if (ir.general.bit >= RAWcmd->CMDlen[ir.actcmd]) { - ir.general.bit = 0; - if (ir.general.trail) { - ir.state = RAW_HI; - ir.actcmd = 1; - } - else - ir.state = RAW_IDLE; - } - else - ir.state--; - break; - - - } -} - -void RAW_Init(unsigned char map) -{ - if(map < RAW.num_tables) - { - struct RAWset_ *RAWset; - unsigned long RAWcmdbase; - - int x; - for(x=0;x<42;x++) { - keyMap[x] = (unsigned long)&ir.cmd; - } - ir.actcmd = 0; - ir.general.bit = 0; - ir.state = RAW_IDLE; - setIR(RAW_Module); - ir.cmd = 0xff; - - RAWcmdbase = (unsigned long)BFS_LoadFileAddr(BFS_ID_RAWslot0 + map); - if(!RAWcmdbase) - return; - - RAWset = (struct RAWset_ *)RAWcmdbase; - - x = memcmp(RAWset,"RC01",4); - if(x == 0) { - for(x=0;x<38;x++) { - keyMap[x+4] = (unsigned long)&RAWset->RAWcmd[x]; - } - } - - } -} - -void RAW_Send(unsigned long cmd) -{ - RAWcmd = (struct RAWcmd_*)cmd; - ir.actcmd = RAWcmd->tval; - if(RAWcmd->tval != 0xff) { - setIR(RAW_Module); - T1MR0 = RAWcmd->tval; - hi_border = (RAWcmd->borders)>>4; - lo_border = (RAWcmd->borders)&0x0f; - ir.actcmd = 0; - ir.general.trail = 0x01; - sysInfo |= SYS_IR; - if(ir.state == RAW_IDLE) - { - ir.general.bit = 0; - ir.state++; - runIR(); - } - } -} - -void RAW_Repeat(void) -{ - -} - -void RAW_Stop(void) -{ - if(RAWcmd->tval != 0xff) { - ir.general.trail = 0; - while(ir.state != RAW_IDLE); - ir.actcmd = 2; - if(RAWcmd->CMDstart[1] != RAWcmd->CMDstart[2]) - ir.state++; - - while(ir.state != RAW_IDLE); - stopIR(); - sysInfo &= ~SYS_IR; - } -} diff --git a/boop/trunk/infrared/ir_raw.h b/boop/trunk/infrared/ir_raw.h deleted file mode 100644 index 35a0ad1..0000000 --- a/boop/trunk/infrared/ir_raw.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_raw.h - raw ir encoder - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RAW_H -#define IR_RAW_H - -void RAW_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RAW_Init(unsigned char map); -void RAW_Send(unsigned long cmd); -void RAW_Repeat(void); -void RAW_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rc5.c b/boop/trunk/infrared/ir_rc5.c deleted file mode 100644 index 8c6c6c1..0000000 --- a/boop/trunk/infrared/ir_rc5.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - ir_rc5.c - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rc5.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule RC5_Module = -{ - RC5_Encode, - RC5_Send, - RC5_Repeat, - RC5_Stop, - 139, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define RC5_IDLE 0x00 -#define RC5_START_A 0x01 -#define RC5_START_B 0x02 -#define RC5_BIT_A 0x03 -#define RC5_BIT_B 0x04 -#define RC5_WAIT 0x05 - - -#define RC5_BITTIME 32 -#define RC5_WAITTIME 100 - -void __attribute__ ((section(".text.fastcode"))) RC5_Encode (void) -{ - switch(ir.state) - { - case RC5_IDLE: - mod_enable = 0; - break; - - case RC5_START_A: - mod_enable = 0; - ir.state++; - break; - - case RC5_START_B: - mod_enable = 1; - ir.state++; - break; - - case RC5_BIT_A: - if(ir.cmd & 0x1000) - mod_enable = 0; - else - mod_enable = 1; - ir.cmd <<= 1; - ir.state++; - break; - - case RC5_BIT_B: - if(mod_enable == 0) - mod_enable = 1; - else - mod_enable = 0; - ir.general.bit++; - if(ir.general.bit == 13) - ir.state++; - else - ir.state--; - break; - - case RC5_WAIT: - mod_enable = 0; - ir.general.wait++; - if(ir.general.wait >= RC5_WAITTIME) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = RC5_IDLE; - } - break; - } -} - -void RC5_Init(unsigned char map) -{ - if(map < RC5.num_tables) - { - ir.state = RC5_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.wait = 0; - copyMapS((unsigned short*)RC5.table[map].codes); - setIR(RC5_Module); - cycles = RC5_BITTIME; - } -} - -void RC5_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - setIRspeed(RC5_Module); - if((ir.actcmd != 0x0000) && (ir.actcmd != 0x1000)) - { - //toggle bit sollte nicht über dir Konfiguration gesetzt werden - if(ir.toggle & 0x01) - ir.actcmd &= 0xF7FF; - else - ir.actcmd |= 0x0800; - RC5_Repeat(); - } -} - -void RC5_Repeat(void) -{ - if((ir.actcmd != 0x0000) && (ir.actcmd != 0x1000)) - { - if(ir.state == RC5_IDLE) - { - ir.cmd = ir.actcmd; - ir.state++; - runIR(); - } - } -} - -void RC5_Stop(void) -{ - if((ir.actcmd != 0x0000) && (ir.actcmd != 0x1000)) - { -waitend: - if(ir.state != RC5_IDLE) - goto waitend; - } - - ir.toggle++; - ir.actcmd = 0x0000; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_rc5.h b/boop/trunk/infrared/ir_rc5.h deleted file mode 100644 index 7f199ff..0000000 --- a/boop/trunk/infrared/ir_rc5.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_rc5.h - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RC5_H -#define IR_RC5_H - -void RC5_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RC5_Init(unsigned char map); -void RC5_Send(unsigned long cmd); -void RC5_Repeat(void); -void RC5_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rc6.c b/boop/trunk/infrared/ir_rc6.c deleted file mode 100644 index d42b43a..0000000 --- a/boop/trunk/infrared/ir_rc6.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - ir_rc6.c - phillips rc6 protocoll encoder - Copyright (C) 2008 p.c.squirrel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rc6.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule RC6_Module = -{ - RC6_Encode, - RC6_Send, - RC6_Repeat, - RC6_Stop, - 136, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define RC6_IDLE 0x00 -#define RC6_LEADER_A 0x01 -#define RC6_LEADER_B 0x02 -#define RC6_HEADER_BIT_A 0x03 -#define RC6_HEADER_BIT_B 0x04 -#define RC6_TRAILER_BIT_A 0x05 -#define RC6_TRAILER_BIT_B 0x06 -#define RC6_BIT_A 0x07 -#define RC6_BIT_B 0x08 -#define RC6_WAIT 0x09 - - -#define RC6_BITTIME 16 -#define RC6_WAITTIME_M0 188 //~80 ms -#define RC6_WAITTIME_M6 155 - -void __attribute__ ((section(".text.fastcode"))) RC6_Encode (void) -{ - cycles = RC6_BITTIME; //? - switch(ir.state) - { - case RC6_IDLE: - mod_enable = 0; - break; - - case RC6_LEADER_A: - mod_enable = 1; - cycles = RC6_BITTIME*6; - ir.state++; - break; - - case RC6_LEADER_B: - mod_enable = 0; - cycles = RC6_BITTIME*2; - ir.state++; - break; - - case RC6_HEADER_BIT_A: - if(ir.general.header_cmd & 0x8) //0b1000 4. bit SB, mb2, mb1, mb0 - mod_enable = 1; - else - mod_enable = 0; - ir.general.header_cmd <<= 1; - cycles = RC6_BITTIME; - ir.state++; - break; - - case RC6_HEADER_BIT_B: - if(mod_enable == 0) - mod_enable = 1; - else - mod_enable = 0; - ir.general.header_bit++; - cycles = RC6_BITTIME; - if(ir.general.header_bit == 4) - ir.state++; - else - ir.state--; - break; - - case RC6_TRAILER_BIT_A: - if(ir.general.trail) - mod_enable = 1; - else - mod_enable = 0; - cycles = RC6_BITTIME*2; - ir.state++; - break; - - case RC6_TRAILER_BIT_B: - if(ir.general.trail) - mod_enable = 0; - else - mod_enable = 1; - cycles = RC6_BITTIME*2; - ir.state++; - break; - - case RC6_BIT_A: - if(ir.cmd & 0x80000000) - mod_enable = 1; - else - mod_enable = 0; - ir.cmd <<= 1; - ir.state++; - break; - - case RC6_BIT_B: - if(mod_enable == 0) - mod_enable = 1; - else - mod_enable = 0; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - ir.state++; - else - ir.state--; - break; - - case RC6_WAIT: - mod_enable = 0; - ir.general.wait++; - if(ir.general.wait >= ir.general.waittime) - { - ir.general.bit = 0; - ir.general.header_bit = 0; - ir.general.wait = 0; - ir.state = RC6_IDLE; - } - break; - } -} - -void RC6_Init(unsigned char map) -{ - if(map < RC6.num_tables) - { - ir.state = RC6_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.wait = 0; - ir.general.bit = 0; - copyMapI((unsigned int*)RC6.table[map].codes); - setIR(RC6_Module); - cycles = RC6_BITTIME; - } -} - -void RC6_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - - setIRspeed(RC6_Module); - -// if(ir.general.toggle & 0x01) - // ir.actcmd &= 0xF7FF; - RC6_Repeat(); -} - -void RC6_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - if(ir.state == RC6_IDLE) - { - ir.cmd = ir.actcmd; - if(ir.cmd > 0xffff) { - if(ir.toggle & 0x01) - ir.cmd &= 0xFFFF7FFF; - else - ir.cmd |= 0x00008000; - ir.general.numbits = 32; - ir.general.header_cmd = 0x0E; //0b1110 ->Mode 6; - ir.general.trail = 0; - ir.general.waittime = RC6_WAITTIME_M6; - } - else { - ir.cmd <<=16; - ir.general.numbits = 16; - ir.general.header_cmd = 0x08; //0b1000 ->Mode 0; - ir.general.trail = ir.toggle & 0x01; - ir.general.waittime = RC6_WAITTIME_M0; - } - ir.general.header_bit = 0; - ir.state++; - runIR(); - } - } -} - -void RC6_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend: - if(ir.state != RC6_IDLE) - goto waitend; - } - - ir.toggle++; - ir.actcmd = 0x0000; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_rc6.h b/boop/trunk/infrared/ir_rc6.h deleted file mode 100644 index 1347e6f..0000000 --- a/boop/trunk/infrared/ir_rc6.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_rc6.h - phillips rc6 protocoll encoder - Copyright (C) 2008 p.c.squirrel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RC6_H -#define IR_RC6_H - -void RC6_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RC6_Init(unsigned char map); -void RC6_Send(unsigned long cmd); -void RC6_Repeat(void); -void RC6_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rca.c b/boop/trunk/infrared/ir_rca.c deleted file mode 100644 index 84e95d5..0000000 --- a/boop/trunk/infrared/ir_rca.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - ir_rca.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rca.h" -#include "encoders.h" -#include "codes.h" -#include "global.h" - -const struct irModule RCA_Module = -{ - RCA_Encode, - RCA_Send, - RCA_Repeat, - RCA_Stop, - 134, // carrier - 1, // carrier-on - 2 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define RCA_IDLE 0x00 -#define RCA_PRE_A 0x01 -#define RCA_PRE_B 0x02 -#define RCA_BIT_A 0x03 -#define RCA_BIT_B 0x04 -#define RCA_IBIT_A 0x05 -#define RCA_IBIT_B 0x06 -#define RCA_STOP 0x07 -#define RCA_WAIT 0x08 - -#define RCA_NUMBITS 12 -#define RCA_BITTIME 28 -#define RCA_BIT0 2*RCA_BITTIME -#define RCA_BIT1 4*RCA_BITTIME -#define RCA_PRETIME 8*RCA_BITTIME -#define RCA_WAITTIME 16 - -void __attribute__ ((section(".text.fastcode"))) RCA_Encode (void) -{ - switch(ir.state) - { - case RCA_IDLE: - mod_enable = 0; - break; - - case RCA_PRE_A: - cycles = RCA_PRETIME; - mod_enable = 1; - ir.state++; - break; - - case RCA_PRE_B: - mod_enable = 0; - ir.cmd = ir.actcmd; - ir.state++; - break; - - case RCA_BIT_A: - case RCA_IBIT_A: - case RCA_STOP: - cycles = RCA_BITTIME; - mod_enable = 1; - ir.state++; - break; - - case RCA_BIT_B: - case RCA_IBIT_B: - mod_enable = 0; - if(ir.cmd & 0x0800) - cycles = RCA_BIT1; - else - cycles = RCA_BIT0; - ir.cmd <<= 1; - ir.general.bit++; - if(ir.general.bit == RCA_NUMBITS) - { - if(ir.state == RCA_BIT_B) - { - ir.cmd = ~ir.actcmd; - ir.general.bit = 0; - } - ir.state++; - } - else - ir.state--; - break; - - case RCA_WAIT: - mod_enable = 0; - cycles = RCA_BITTIME; - ir.general.wait++; - if(ir.general.wait >= RCA_WAITTIME) - { - ir.general.bit = 0; - ir.general.wait = 0; - if (ir.general.trail) - ir.state = RCA_PRE_A; - else - ir.state = RCA_IDLE; - } - break; - } -} - -void RCA_LoadMap(unsigned char map) -{ - switch(map) - { - default: - copyMapPC(0x0500, (unsigned char*)RCA.table[map].codes); - break; - } -} -void RCA_Init(unsigned char map) -{ - if(map < RCA.num_tables) - { - ir.state = RCA_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.wait = 0; - RCA_LoadMap(map); - setIR(RCA_Module); - cycles = RCA_BITTIME; - } -} - -void RCA_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - if(ir.actcmd != 0x0000) { - setIRspeed(RCA_Module); - ir.general.trail = 0x01; - sysInfo |= SYS_IR; - if (ir.state != RCA_IDLE) - while(ir.state != RCA_IDLE); - ir.state = RCA_PRE_A; - runIR(); - } -} - -void RCA_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - - if(ir.state == RCA_IDLE) - { - //ir.state++; - //runIR(); - } - } -} - -void RCA_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { - ir.general.trail = 0; - sysInfo &= ~SYS_IR; -waitend: - if(ir.state != RCA_IDLE) - goto waitend; - } - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_rca.h b/boop/trunk/infrared/ir_rca.h deleted file mode 100644 index 19738c8..0000000 --- a/boop/trunk/infrared/ir_rca.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_rca.h - rca protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RCA_H -#define IR_RCA_H - -void RCA_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RCA_Init(unsigned char map); -void RCA_Send(unsigned long cmd); -void RCA_Repeat(void); -void RCA_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rcmm.c b/boop/trunk/infrared/ir_rcmm.c deleted file mode 100644 index 2424391..0000000 --- a/boop/trunk/infrared/ir_rcmm.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - ir_rcmm.c - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rcmm.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule RCMM_Module = -{ - RCMM_Encode, - RCMM_Send, - RCMM_Repeat, - RCMM_Stop, - 139, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define RCMM_IDLE 0x00 -#define RCMM_HEADER_A 0x01 -#define RCMM_HEADER_B 0x02 -#define RCMM_BIT_A 0x03 -#define RCMM_BIT_B 0x04 -#define RCMM_TRAIL 0x05 -#define RCMM_WAIT 0x06 - -#define RCMM_HEADER_ON 15 -#define RCMM_HEADER_OFF 10 -#define RCMM_BIT_ON 6 -#define RCMM_BIT_00 10 -#define RCMM_BIT_01 16 -#define RCMM_BIT_10 22 -#define RCMM_BIT_11 28 -#define RCMM_PTIME 110; - -const unsigned char ir_times[4] = { RCMM_BIT_00, RCMM_BIT_01, RCMM_BIT_10, RCMM_BIT_11 }; - -void __attribute__ ((section(".text.fastcode"))) RCMM_Encode (void) -{ - switch(ir.state) - { - case RCMM_IDLE: - mod_enable = 0; - break; - - case RCMM_HEADER_A: - case RCMM_BIT_A: - mod_enable = 1; - if(ir.state == RCMM_HEADER_A) - cycles = RCMM_HEADER_ON; - else - cycles = RCMM_BIT_ON; - ir.state++; - break; - - case RCMM_HEADER_B: - mod_enable = 0; - cycles = RCMM_HEADER_OFF; - ir.state++; - break; - - case RCMM_BIT_B: - mod_enable = 0; - cycles = ir_times[(ir.cmd & 0xC0000000) >> 30]; - ir.cmd <<= 2; - ir.general.bit += 2; - if(ir.general.bit == ir.general.len) - ir.state++; - else - ir.state--; - break; - - case RCMM_TRAIL: - if(ir.general.trail) - { - mod_enable = 1; - cycles = RCMM_BIT_ON; - } - else - cycles = 1; - ir.state++; - break; - - case RCMM_WAIT: - mod_enable = 0; - ir.general.wait++; - cycles = RCMM_BIT_ON; // 1 ms - if(ir.general.wait >= ir.general.pause) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.general.pause = RCMM_PTIME; - ir.state = RCMM_IDLE; - } - break; - - - } -} - -void RCMM_LoadMap(unsigned char map) -{ - copyMapI((unsigned int*)RCMM.table[map].codes); - - switch(map) - { - case 1: - ir.general.len = 32; - ir.general.trail = 1; - ir.general.togglebit = 16; - break; - default: - ir.general.len = 32; - ir.general.trail = 1; - ir.general.togglebit = 0; - break; - } -} - -void RCMM_Init(unsigned char map) -{ - if(map < RCMM.num_tables) - { - ir.cmd = 0x00000000; - ir.actcmd = 0x00000000; - ir.state = RCMM_IDLE; - ir.general.bit = 0; - ir.general.wait = 0; - ir.general.pause = RCMM_PTIME; - RCMM_LoadMap(map); - setIR(RCMM_Module); - } -} - -void RCMM_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - if(ir.actcmd != 0x00000000) { - if(ir.general.togglebit) { - if(ir.toggle & 0x01) - ir.actcmd &= ~(1<<(ir.general.togglebit-1)); - else - ir.actcmd |= 1<<(ir.general.togglebit-1); - } - setIRspeed(RCMM_Module); - RCMM_Repeat(); - } -} - -void RCMM_Repeat(void) -{ - if(ir.actcmd != 0x00000000) - { - if(ir.state == RCMM_IDLE) - { - ir.cmd = ir.actcmd; - ir.state++; - runIR(); - } - } -} - -void RCMM_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend: - if(ir.state != RCMM_IDLE) - goto waitend; - } - ir.actcmd = 0x0000; - ir.toggle++; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_rcmm.h b/boop/trunk/infrared/ir_rcmm.h deleted file mode 100644 index b71dec4..0000000 --- a/boop/trunk/infrared/ir_rcmm.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_rcmm.h - phillips rc5 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RCMM_H -#define IR_RCMM_H - -void RCMM_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RCMM_Init(unsigned char map); -void RCMM_Send(unsigned long cmd); -void RCMM_Repeat(void); -void RCMM_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rec80.c b/boop/trunk/infrared/ir_rec80.c deleted file mode 100644 index 6f4f8b1..0000000 --- a/boop/trunk/infrared/ir_rec80.c +++ /dev/null @@ -1,186 +0,0 @@ -/* - ir_rec80.c - nec rec80 and derivates ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rec80.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule REC80_Module = -{ - REC80_Encode, - REC80_Send, - REC80_Repeat, - REC80_Stop, - 151, // carrier - 1, // carrier-on - 3 // carrier-off -}; - - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define REC80_IDLE 0x00 -#define REC80_HEAD_A 0x01 -#define REC80_HEAD_B 0x02 -#define REC80_PRE_A 0x03 -#define REC80_PRE_B 0x04 -#define REC80_BIT_A 0x05 -#define REC80_BIT_B 0x06 -#define REC80_TRAIL 0x07 -#define REC80_WAIT 0x08 - -#define REC80_HEADER_1 128 -#define REC80_HEADER_0 51 -#define REC80_BONTIME 13 -#define REC80_BITTIME_0 13 -#define REC80_BITTIME_1 38 -#define REC80_WAITTIME 187 - -void __attribute__ ((section(".text.fastcode"))) REC80_Encode (void) -{ - switch(ir.state) - { - case REC80_IDLE: - mod_enable = 0; - break; - - case REC80_HEAD_B: - mod_enable = 0; - cycles = REC80_HEADER_0; - ir.cmd = ir.general.preamble; - ir.general.bit = 0; - ir.state++; - break; - - case REC80_HEAD_A: - case REC80_PRE_A: - case REC80_BIT_A: - case REC80_TRAIL: - mod_enable = 1; - if(ir.state == REC80_HEAD_A) - cycles = REC80_HEADER_1; - else - cycles = REC80_BONTIME; - ir.state++; - break; - - case REC80_PRE_B: - case REC80_BIT_B: - mod_enable = 0; - if(ir.cmd & 0x01) - cycles = REC80_BITTIME_1; - else - cycles = REC80_BITTIME_0; - ir.cmd >>= 1; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - { - if(ir.state == REC80_PRE_B) - { - ir.general.bit = 0; - ir.cmd = ir.actcmd; - } - ir.state++; - } - else - ir.state--; - break; - - case REC80_WAIT: - mod_enable = 0; - ir.general.wait++; - cycles = REC80_BONTIME; // 1 ms - if(ir.general.wait >= ir.general.pause) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = REC80_IDLE; - } - break; - } -} - -void REC80_LoadMap(unsigned char map) -{ - switch(map) - { - default: - ir.general.preamble = 0x00A02002; - copyMapI((unsigned int*)REC80.table[map].codes); - break; - } -} - -void REC80_Init(unsigned char map) -{ - if(map < REC80.num_tables) - { - ir.cmd = 0x00000000; - ir.actcmd = 0x00000000; - ir.general.bit = 0; - ir.general.numbits = 24; - ir.general.wait = 0; - ir.general.pause = REC80_WAITTIME; - ir.state = REC80_IDLE; - REC80_LoadMap(map); - setIR(REC80_Module); - } -} - -void REC80_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - - if(ir.actcmd & 0x80000000) - ir.general.numbits = 24; - else - ir.general.numbits = 0; - - ir.actcmd &= 0x0FFFFFFF; - - setIRspeed(REC80_Module); - REC80_Repeat(); -} - -void REC80_Repeat(void) -{ - if(ir.actcmd != 0x00000000) - { - if(ir.state == REC80_IDLE) - { - ir.state++; - runIR(); - } - } -} - -void REC80_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend: - if(ir.state != REC80_IDLE) - goto waitend; - } - ir.actcmd = 0x00000000; - stopIR(); -} diff --git a/boop/trunk/infrared/ir_rec80.h b/boop/trunk/infrared/ir_rec80.h deleted file mode 100644 index 641408e..0000000 --- a/boop/trunk/infrared/ir_rec80.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_rec80.h - nec rec80 and derivates ir encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_REC80_H -#define IR_REC80_H - -void REC80_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void REC80_Init(unsigned char map); -void REC80_Send(unsigned long cmd); -void REC80_Repeat(void); -void REC80_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_recs80.c b/boop/trunk/infrared/ir_recs80.c deleted file mode 100644 index d15dbd1..0000000 --- a/boop/trunk/infrared/ir_recs80.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - ir_recs80.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_recs80.h" -#include "encoders.h" -#include "codes.h" - -const struct irModule RECS80_Module = -{ - RECS80_Encode, - RECS80_Send, - RECS80_Repeat, - RECS80_Stop, - 128, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define RECS80_IDLE 0x00 -#define RECS80_BIT_A 0x01 -#define RECS80_BIT_B 0x02 -#define RECS80_STOP 0x03 -#define RECS80_WAIT 0x04 - -#define RECS80_NUMBITS 11 -#define RECS80_BITTIME 7 -#define RECS80_BIT0 27*RECS80_BITTIME -#define RECS80_BIT1 41*RECS80_BITTIME -#define RECS80_WAITTIME 10 - -void __attribute__ ((section(".text.fastcode"))) RECS80_Encode (void) -{ - switch(ir.state) - { - case RECS80_IDLE: - mod_enable = 0; - break; - - case RECS80_BIT_A: - case RECS80_STOP: - cycles = RECS80_BITTIME; - mod_enable = 1; - ir.state++; - break; - - case RECS80_BIT_B: - mod_enable = 0; - if(ir.cmd & 0x0400) - cycles = RECS80_BIT1; - else - cycles = RECS80_BIT0; - ir.cmd <<= 1; - ir.general.bit++; - if(ir.general.bit == RECS80_NUMBITS) - ir.state++; - else - ir.state--; - break; - - case RECS80_WAIT: - mod_enable = 0; - cycles = RECS80_BIT0; - ir.general.wait++; - if(ir.general.wait >= RECS80_WAITTIME) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = RECS80_IDLE; - } - break; - } -} - -void RECS80_Init(unsigned char map) -{ - if(map < RECS80.num_tables) - { - ir.state = RECS80_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.wait = 0; - ir.toggle = 1; - copyMapS((unsigned short*)RECS80.table[map].codes); - setIR(RECS80_Module); - cycles = RECS80_BITTIME; - } -} - -void RECS80_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - - if(ir.toggle & 0x01) - ir.actcmd |= 0x0200; - setIRspeed(RECS80_Module); - RECS80_Repeat(); -} - -void RECS80_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - if(ir.state == RECS80_IDLE) - { - ir.cmd = ir.actcmd; - ir.state++; - runIR(); - } - } -} - -void RECS80_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend: - if(ir.state != RECS80_IDLE) - goto waitend; - } - ir.toggle++; - stopIR(); -} diff --git a/boop/trunk/infrared/ir_recs80.h b/boop/trunk/infrared/ir_recs80.h deleted file mode 100644 index fbcbe99..0000000 --- a/boop/trunk/infrared/ir_recs80.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_recs80.h - phillips recs80 protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RECS80_H -#define IR_RECS80_H - -void RECS80_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void RECS80_Init(unsigned char map); -void RECS80_Send(unsigned long cmd); -void RECS80_Repeat(void); -void RECS80_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_rf.c b/boop/trunk/infrared/ir_rf.c deleted file mode 100644 index b1dcbe3..0000000 --- a/boop/trunk/infrared/ir_rf.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - ir_rf.c - RF IR encoder - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_rf.h" -#include "encoders.h" -#include "codes.h" -#include "rf.h" - -const struct irModule IRRF_Module = -{ - IRRF_Encode, - IRRF_Send, - IRRF_Repeat, - IRRF_Stop, - 75, // carrier turbo mode - 1, // carrier-on - 4 // carrier-off -}; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define IRRF_IDLE 0x00 -#define IRRF_WAIT 0x01 - -#define IRRF_BITTIME 40 -#define IRRF_WAITTIME 125 - -void __attribute__ ((section(".text.fastcode"))) IRRF_Encode (void) -{ - switch(ir.state) - { - case IRRF_IDLE: - mod_enable = 0; - break; - - case IRRF_WAIT: - mod_enable = 0; - ir.general.wait++; - if(ir.general.wait >= IRRF_WAITTIME) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = IRRF_IDLE; - } - break; - } -} - -void IRRF_Init(unsigned char map) -{ - if(map < IRRF.num_tables) - { - ir.state = IRRF_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.bit = 0x00; - ir.general.wait = 0; - copyMapS((unsigned short*)IRRF.table[map].codes); - setIR(IRRF_Module); - cycles = IRRF_BITTIME; - } -} - -void IRRF_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - ir.general.trail=(unsigned int)openEP(0,0, packet_RFenc); - setIRspeed(IRRF_Module); - - if((ir.toggle & 0x01) &&(ir.actcmd != 0x0000)) - ir.actcmd |= 0x0080; - IRRF_Repeat(); -} - -void IRRF_Repeat(void) -{ - if(ir.actcmd != 0x0000) - { - if(ir.state == IRRF_IDLE) - { - struct RFendpoint_* cur_ep; - cur_ep = (struct RFendpoint_*)ir.general.trail; - if((cur_ep) && !(cur_ep->flags & EPnewdata)) { - cur_ep->dest = (ir.actcmd & 0xff00) >> 8; - cur_ep->data[0] = (ir.actcmd & 0x00ff); - cur_ep->bufferlen = 1; - cur_ep->flags |= EPenabled | EPoutput | EPnewdata; - - RF_changestate(RFtx); - } - ir.state++; - runIR(); - } - } -} - -void IRRF_Stop(void) -{ - if(ir.actcmd != 0x00000000) - while(ir.state != IRRF_IDLE); - - closeEP((struct RFendpoint_*)ir.general.trail); - ir.toggle++; - ir.actcmd = 0x0000; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_rf.h b/boop/trunk/infrared/ir_rf.h deleted file mode 100644 index 2f3c546..0000000 --- a/boop/trunk/infrared/ir_rf.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - iir_rf.h - RF IR encoder - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_RF_H -#define IR_RF_H - -void IRRF_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void IRRF_Init(unsigned char map); -void IRRF_Send(unsigned long cmd); -void IRRF_Repeat(void); -void IRRF_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_selector.c b/boop/trunk/infrared/ir_selector.c deleted file mode 100644 index 385525d..0000000 --- a/boop/trunk/infrared/ir_selector.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - ir_selector.c - select ir encoder & codetable - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "infrared.h" -#include "codes.h" -#include "encoders.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "ir_selector.h" -#include "bfs.h" -#include "ir_capture.h" -#include "controls.h" -#include "global.h" - -extern volatile unsigned char autorepeat; -extern unsigned char act_encoder, act_set; - -const struct irDeviceTable_ default_irDevTab = -{ - 0x04, - 0x00, - { - { 0x01, 0x00 }, - { 0x02, 0x00 }, - { 0xff, 0xff }, - { 0xff, 0xff } - } -}; - -struct irDeviceTable_ irDevTab; - -char* getEncName(unsigned char enc) -{ - return (char*) encoders.encoder[enc].name; -} - -char* getSetName(unsigned char enc, unsigned char set) -{ - struct TABLES_C *ctab; - struct TABLES_S *stab; - struct TABLES_I *itab; - struct TABLES_N *ntab; - struct TABLES_L *ltab; - struct RAWset_ *RAWset; - - if (enc < encoders.num_encoders) { - switch(encoders.encoder[enc].type) - { - case 0: - ctab = (TABLES_C*)encoders.encoder[enc].data; - if (set < ctab->num_tables) - return (char*) ctab->table[set].name; - break; - case 1: - stab = (TABLES_S*)encoders.encoder[enc].data; - if (set < stab->num_tables) - return (char*) stab->table[set].name; - break; - case 2: - itab = (TABLES_I*)encoders.encoder[enc].data; - if (set < itab->num_tables) - return (char*) itab->table[set].name; - break; - case 3: - ntab = (TABLES_N*)encoders.encoder[enc].data; - if (set < ntab->num_tables) { - RAWset = (struct RAWset_*)BFS_LoadFileAddr(BFS_ID_RAWslot0 + set); - if(RAWset && (RAWset->name[0] != 0xff)) { - return (char*) RAWset->name; - } - else - return (char*) ntab->table[set].name; - } - break; - case 4: - ltab = (TABLES_L*)encoders.encoder[enc].data; - if (set < ltab->num_tables) { - return (char*) ltab->table[set].name; - } - break; - } - } - - return "unknown\0"; -} - -unsigned char EncIsValid(unsigned char enc, unsigned char set) -{ - struct TABLES_C *ctab; - - if (!(enc < encoders.num_encoders)) - return 0; - ctab = (TABLES_C*)encoders.encoder[enc].data; - if (!(set < ctab->num_tables)) - return 0; - return 1; -} - -unsigned char listSet(unsigned int enc, unsigned char sset) -{ - unsigned char set; - - if (!(sset < (((TABLES_C*)(encoders.encoder[enc].data))->num_tables))) - sset = 0; - - lcd_fill(0); - set_font(BOLDFONT); - draw_hexC(0,0,((TABLES_C*)(encoders.encoder[enc].data))->num_tables, 3, DRAW_PUT); - draw_string(16, 0, "remotes in", 3, DRAW_PUT); - draw_string(77, 0, (char*) encoders.encoder[enc].name, 3, DRAW_PUT); - draw_block(0,10,128,2,3,DRAW_PUT); - - set_font(SMALLFONT); - - for(set=0;set<((TABLES_C*)(encoders.encoder[enc].data))->num_tables; set++) - { - draw_string(1, 15+(set*9), getSetName(enc, set), 3, DRAW_PUT); - } - - draw_string(0, 120, "\"Left\" to return", 3, DRAW_PUT); - draw_string(0, 130, "\"OK\" to select remote", 3, DRAW_PUT); - - draw_block(0, 14+(sset*9), 128, 9, 3, DRAW_XOR); - - while(!KEY_Left) - { - waitKeyUpDown(); - draw_block(0, 14+(sset*9), 128, 9, 3, DRAW_XOR); - if(KEY_OK) - { - return sset; - } - if(KEY_Up) - { - sset--; - if(sset >= ((TABLES_C*)(encoders.encoder[enc].data))->num_tables) - sset = ((TABLES_C*)(encoders.encoder[enc].data))->num_tables-1; - } - if(KEY_Down) - { - sset++; - if(sset == ((TABLES_C*)(encoders.encoder[enc].data))->num_tables) - sset = 0; - } - draw_block(0, 14+(sset*9), 128, 9, 3, DRAW_XOR); - } - return 0xFF; -} - -#define maxenclist 8 -void select_ir(unsigned char *encoder,unsigned char *set) -{ - static unsigned char enc, senc, cenc, sset; - unsigned char moff; - unsigned char moffold; - - if (*encoder < encoders.num_encoders) - senc = *encoder; - else - senc = 0; - cenc = senc; - sset = *set; - moff = 0; - - if(senc >= maxenclist) - moff = senc - maxenclist +1; - -again: - moffold = encoders.num_encoders; - - set_font(BOLDFONT); - - lcd_fill(0); - draw_string(0, 0, "Encoders: ", 3, DRAW_PUT); - draw_hexC(54,0,encoders.num_encoders,3,DRAW_PUT); - draw_block(0,10,128,2,3,DRAW_PUT); - - set_font(SMALLFONT); - - draw_string(0, 106, "\"OK\" to accept select remote", 3, DRAW_PUT); - draw_string(0, 115, "\"Exit\" to return", 3, DRAW_PUT); - draw_string(0, 124, "\"Right\" to show names for", 3, DRAW_PUT); - draw_string(35, 133, "selected encoder", 3, DRAW_PUT); - set_font(BOLDFONT); - draw_string(0, 142, "Currently Selected:", 3, DRAW_PUT); - draw_string(0, 152, (char*) encoders.encoder[cenc].name, 3, DRAW_PUT); - draw_string(48, 152, getSetName(cenc,sset), 3, DRAW_PUT); - set_font(SMALLFONT); - - while(!KEY_Exit) - { - if(moff!=moffold) { - draw_block(0, 14, 128, 9*maxenclist, 3, DRAW_ERASE); - for(enc=moff;(encnum_tables, 3, DRAW_PUT); - draw_string(15, 15+((enc-moff)*9), "remotes in", 3, DRAW_PUT); - draw_string(65, 15+((enc-moff)*9), (char*) encoders.encoder[enc].name, 3, DRAW_PUT); - } - - if(encoders.num_encoders > moff+maxenclist) { - draw_hline(120,8+9*maxenclist,5,3,DRAW_PUT); - draw_hline(121,9+9*maxenclist,3,3,DRAW_PUT); - draw_hline(122,10+9*maxenclist,1,3,DRAW_PUT); - } - if(moff) { - draw_hline(120,19,5,3,DRAW_PUT); - draw_hline(121,18,3,3,DRAW_PUT); - draw_hline(122,17,1,3,DRAW_PUT); - } - draw_block(0, 14+((senc-moff)*9), 128, 9, 3, DRAW_XOR); - } - moffold = moff; - waitKeyUpDown(); - draw_block(0, 14+((senc-moff)*9), 128, 9, 3, DRAW_XOR); - if(KEY_Right) - { - enc = sset; - sset = listSet(senc,sset); - if(sset != 0xFF) - cenc = senc; - else - sset = enc; - goto again; - } - if(KEY_Up) - { - senc--; - if(senc= encoders.num_encoders) { - if(encoders.num_encoders > maxenclist) - moff = encoders.num_encoders - maxenclist; - senc = encoders.num_encoders-1; - } - } - if(KEY_Down) - { - senc++; - if(senc == maxenclist+moff) - moff++; - if(senc == encoders.num_encoders) { - moff = 0; - senc = 0; - } - } - if(KEY_OK) - { - //setEncoder(cenc, sset); - *encoder = cenc; - *set = sset; - return; - } - draw_block(0, 14+((senc-moff)*9), 128, 9, 3, DRAW_XOR); - } -} - -void remote_click(FORM* form, CONTROL* control) { - unsigned char sel; - - sel = ((LABEL*)control)->tag; - select_ir(&irDevTab.device[sel].encoder, &irDevTab.device[sel].set); - ((LABEL*)control)->caption = getSetName(irDevTab.device[sel].encoder, irDevTab.device[sel].set); - - form_draw(form); -} - -void RC_setting(void) { - unsigned char set; - unsigned char i; - - LABEL label[irDevTab.count]; - LABEL remote[irDevTab.count]; - char caption[irDevTab.count][6]; - - CONTROL* controls[irDevTab.count * 2]; - - for(i=0;i - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_SELECTOR_H -#define IR_SELECTOR_H - -struct irDevice_ { - unsigned char encoder; - unsigned char set; -}; - -struct irDeviceTable_ { - unsigned char count; - unsigned char active; - struct irDevice_ device[4]; -}; - -struct irDeviceTable_ irDevTab; -const struct irDeviceTable_ default_irDevTab; - -char* getSetName(unsigned char enc, unsigned char set); -unsigned char EncIsValid(unsigned char enc, unsigned char set); -void select_ir(unsigned char *encoder,unsigned char *set); -void RC_setting(void); - -#endif diff --git a/boop/trunk/infrared/ir_sirc.c b/boop/trunk/infrared/ir_sirc.c deleted file mode 100644 index 0bcfa8a..0000000 --- a/boop/trunk/infrared/ir_sirc.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - ir_sirc.c - sony sirc protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_sirc.h" -#include "encoders.h" -#include "codes.h" - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define SIRC_IDLE 0x00 -#define SIRC_START_A 0x01 -#define SIRC_START_B 0x02 -#define SIRC_BIT_A 0x03 -#define SIRC_BIT_B 0x04 -#define SIRC_WAIT 0x05 - -#define SIRC_STARTLEN 96 -#define SIRC_BITLEN_0 24 -#define SIRC_BITLEN_1 48 -#define SIRC_BITOFF 24 -#define SIRC_GTIME 45 - -const struct irModule SIRC_Module = -{ - SIRC_Encode, - SIRC_Send, - SIRC_Repeat, - SIRC_Stop, - 122, // carrier - 1, // carrier-on - 3, // carrier-off -}; - -void __attribute__ ((section(".text.fastcode"))) SIRC_Encode (void) -{ - switch(ir.state) - { - case SIRC_IDLE: - mod_enable = 0; - break; - - case SIRC_START_A: - mod_enable = 1; - cycles = SIRC_STARTLEN; - ir.state++; - break; - - case SIRC_START_B: - mod_enable = 0; - cycles = SIRC_BITOFF; - ir.state++; - break; - - case SIRC_BIT_A: - mod_enable = 1; - if(ir.cmd & 0x01) - cycles = SIRC_BITLEN_1; - else - cycles = SIRC_BITLEN_0; - ir.cmd >>= 1; - ir.state++; - break; - - case SIRC_BIT_B: - mod_enable = 0; - cycles = SIRC_BITOFF; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - ir.state++; - else - ir.state--; - break; - - case SIRC_WAIT: - mod_enable = 0; - ir.general.wait++; - cycles = SIRC_BITOFF; // 1 ms - if(ir.general.wait >= ir.general.pause) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = SIRC_IDLE; - } - break; - - } -} - -void SIRC_Init(unsigned char map) -{ - if(map < SIRC.num_tables) - { - ir.cmd = 0x00000000; - ir.actcmd = 0x00000000; - ir.general.bit = 0; - ir.general.numbits = 12; - ir.general.wait = 0; - ir.general.pause = SIRC_GTIME; - ir.state = SIRC_IDLE; - copyMapS((unsigned short*)SIRC.table[map].codes); - setIR(SIRC_Module); - } -} - -void SIRC_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - - if(ir.actcmd & 0x800000) - ir.general.numbits = 20; - else if(ir.actcmd & 0x8000) - ir.general.numbits = 15; - else - ir.general.numbits = 12; - setIRspeed(SIRC_Module); - SIRC_Repeat(); -} - -void SIRC_Repeat(void) -{ - if(ir.actcmd != 0x00000000) - { - if(ir.state == SIRC_IDLE) - { - ir.cmd = ir.actcmd; - ir.state++; - runIR(); - } - } -} - -void SIRC_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend: - if(ir.state != SIRC_IDLE) - goto waitend; - } - ir.actcmd = 0x0000; - stopIR(); -} diff --git a/boop/trunk/infrared/ir_sirc.h b/boop/trunk/infrared/ir_sirc.h deleted file mode 100644 index 358096f..0000000 --- a/boop/trunk/infrared/ir_sirc.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - ir_sirc.h - sony sirc protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_SIRC_H -#define IR_SIRC_H - -void SIRC_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void SIRC_Init(unsigned char map); -void SIRC_Send(unsigned long cmd); -void SIRC_Repeat(void); -void SIRC_Stop(void); - -#endif diff --git a/boop/trunk/infrared/ir_spaceenc.c b/boop/trunk/infrared/ir_spaceenc.c deleted file mode 100644 index d6c0ccc..0000000 --- a/boop/trunk/infrared/ir_spaceenc.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - ir_spaceenc.c - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "infrared.h" -#include "ir_spaceenc.h" -#include "encoders.h" -#include "codes.h" -#include "ir_codes/spaceenc/schneider_dtv3_xtra" - -const struct irModule SPACEENC_Module = -{ - SPACEENC_Encode, - SPACEENC_Send, - SPACEENC_Repeat, - SPACEENC_Stop, - 119, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -const struct irModule SPACEENC2_Module = -{ - SPACEENC_Encode, - SPACEENC2_Send, - SPACEENC2_Repeat, - SPACEENC2_Stop, - 119, // carrier - 1, // carrier-on - 3 // carrier-off -}; - -static unsigned int *ir_codes; -static unsigned char *ir_precodes; - -extern volatile unsigned char mod_enable; -extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; - -#define SPACEENC_IDLE 0x00 -#define SPACEENC_PRE_A 0x01 -#define SPACEENC_PRE_B 0x02 -#define SPACEENC_BIT_A 0x03 -#define SPACEENC_BIT_B 0x04 -#define SPACEENC_STOP 0x05 -#define SPACEENC_WAIT 0x06 - -#define SPACEENC_NUMBITS 6 -#define SPACEENC_BITTIME 20 -#define SPACEENC_BIT0 65 -#define SPACEENC_BIT1 150 -#define SPACEENC_WAITTIME 59 - -#define SPACEENC2_BITTIME 14 -#define SPACEENC2_BIT0 7 -#define SPACEENC2_BIT1 28 -#define SPACEENC2_WAITTIME 170 - -void __attribute__ ((section(".text.fastcode"))) SPACEENC_Encode (void) -{ - switch(ir.state) - { - case SPACEENC_IDLE: - mod_enable = 0; - break; - - case SPACEENC_PRE_A: - case SPACEENC_BIT_A: - cycles = ir.general.bittime; - mod_enable = 1; - ir.state++; - break; - - case SPACEENC_PRE_B: - mod_enable = 0; - if(ir.cmd & 0x01) - cycles = ir.general.bittime1; - else - cycles = ir.general.bittime0; - ir.cmd >>= 1; - ir.general.bit++; - if(ir.general.bit == ir.general.prebits) - { - ir.state = SPACEENC_BIT_A; - ir.general.bit = 0; - ir.cmd = ir_codes[ir.actcmd]; - } - else - { - ir.state--; - } - break; - - case SPACEENC_BIT_B: - mod_enable = 0; - if(ir.cmd & 0x01) - cycles = ir.general.bittime1; - else - cycles = ir.general.bittime0; - ir.cmd >>= 1; - ir.general.bit++; - if(ir.general.bit == ir.general.numbits) - ir.state++; - else - ir.state--; - break; - - case SPACEENC_STOP: - cycles = ir.general.bittime; - mod_enable = 1; - ir.state++; - break; - - case SPACEENC_WAIT: - mod_enable = 0; - ir.general.wait++; - if(ir.general.wait >= ir.general.waittime) - { - ir.general.bit = 0; - ir.general.wait = 0; - ir.state = SPACEENC_IDLE; - } - break; - } -} - -void SPACEENC_LoadMap(unsigned char map) -{ - switch(map) - { - case 1: - ir.general.numbits = SPACEENC_NUMBITS; - ir.general.prebits = 0; - ir.general.pre = 0x00; - ir.general.bittime = SPACEENC_BITTIME; - ir.general.bittime0 = SPACEENC_BIT0; - ir.general.bittime1 = SPACEENC_BIT1; - ir.general.waittime = SPACEENC_WAITTIME; - setIR(SPACEENC_Module); - break; - default: - ir.general.numbits = 32; - ir.general.prebits = 8; - ir.general.bittime = SPACEENC2_BITTIME; - ir.general.bittime0 = SPACEENC2_BIT0; - ir.general.bittime1 = SPACEENC2_BIT1; - ir.general.waittime = SPACEENC2_WAITTIME; - ir_codes = (unsigned int*) dtv3_codes; - ir_precodes = (unsigned char*) dtv3_pre; - setIR(SPACEENC2_Module); - break; - } -} - -void SPACEENC_Init(unsigned char map) -{ - if(map < SPACEENC.num_tables) - { - ir.state = SPACEENC_IDLE; - ir.cmd = 0x0000; - ir.actcmd = 0x0000; - ir.general.wait = 0; - ir.general.bit = 0; - copyMapC((unsigned char*)SPACEENC.table[map].codes); - SPACEENC_LoadMap(map); - cycles = SPACEENC_BITTIME; - } -} - -void SPACEENC_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - setIRspeed(SPACEENC_Module); - SPACEENC_Repeat(); - runIR(); -} - -void SPACEENC_Repeat(void) -{ - if(ir.actcmd != 0x00000000) - { - if(ir.state == SPACEENC_IDLE) - { - ir.cmd = ir.actcmd; - ir.state = SPACEENC_BIT_A; - } - } -} - -void SPACEENC_Stop(void) -{ -waitend1: - while(ir.state != SPACEENC_IDLE) - goto waitend1; - - if(ir.actcmd != 0x00000000) - { - SPACEENC_Repeat(); - -waitend2: - if(ir.state != SPACEENC_IDLE) - goto waitend2; - } - ir.actcmd = 0x00000000; - stopIR(); -} - -void SPACEENC2_Send(unsigned long cmd) -{ - ir.actcmd = cmd; - SPACEENC2_Repeat(); -} - -void SPACEENC2_Repeat(void) -{ - if(ir.actcmd != 0x00000000) - { - if(ir.state == SPACEENC_IDLE) - { - ir.cmd = ir_precodes[ir.actcmd]; - ir.state = SPACEENC_PRE_A; - runIR(); - } - } -} - -void SPACEENC2_Stop(void) -{ - if(ir.actcmd != 0x00000000) - { -waitend2: - if(ir.state != SPACEENC_IDLE) - goto waitend2; - } - ir.actcmd = 0x00000000; - stopIR(); -} - - diff --git a/boop/trunk/infrared/ir_spaceenc.h b/boop/trunk/infrared/ir_spaceenc.h deleted file mode 100644 index 8132701..0000000 --- a/boop/trunk/infrared/ir_spaceenc.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - ir_spaceenc.h - space modulated protocoll encoder - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IR_SPACEENC_H -#define IR_SPACEENC_H - -void SPACEENC_Encode (void) __attribute__ ((section(".text.fastcode"))); - -void SPACEENC_Init(unsigned char map); -void SPACEENC_Send(unsigned long cmd); -void SPACEENC_Repeat(void); -void SPACEENC_Stop(void); -void SPACEENC2_Send(unsigned long cmd); -void SPACEENC2_Repeat(void); -void SPACEENC2_Stop(void); - -#endif diff --git a/boop/trunk/interrupt/Make.conf b/boop/trunk/interrupt/Make.conf deleted file mode 100644 index e7853f8..0000000 --- a/boop/trunk/interrupt/Make.conf +++ /dev/null @@ -1 +0,0 @@ -SRCS := irq.c diff --git a/boop/trunk/interrupt/irq.c b/boop/trunk/interrupt/irq.c deleted file mode 100644 index 9c8f965..0000000 --- a/boop/trunk/interrupt/irq.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - irq.c - irq core functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "irq.h" -#include "soundirq.h" -#include "infraredirq.h" - -#define IRQ_MASK 0x000000C0 - -extern unsigned char bl_val, cmp_val; - -static inline unsigned asm_get_cpsr(void) -{ - unsigned long retval; - asm volatile (" mrs %0, cpsr" : "=r" (retval) : /* no inputs */ ); - return retval; -} - -static inline void asm_set_cpsr(unsigned val) -{ - asm volatile (" msr cpsr, %0" : /* no outputs */ : "r" (val) ); -} - -unsigned enableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr(_cpsr & ~IRQ_MASK); - return _cpsr; -} - -unsigned disableIRQ(void) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr(_cpsr | IRQ_MASK); - return _cpsr; -} - -unsigned restoreIRQ(unsigned oldCPSR) -{ - unsigned _cpsr; - - _cpsr = asm_get_cpsr(); - asm_set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK)); - return _cpsr; -} - - -// handle sound, IR, backlight in timer ISR -// user manual section 5.1, p. 62: -// Fast Interrupt reQuest (FIQ) requests have the highest priority. -// (where's the vector? in lpc2220_rom.ld ?) -void __attribute__ ((section(".text.fastcode"))) FIQ_Routine (void) -{ - while ((PWMIR == 0x01) || (T1IR == 1)) - { - if (PWMIR == 0x01) - soundIRQ(); // sound, backlight - if (T1IR == 1) - irIRQ(); // IR - } -} - - -void SWI_Routine (void) { - while (1) ; -} - - -void UNDEF_Routine (void) { - while (1) ; -} - - diff --git a/boop/trunk/interrupt/irq.h b/boop/trunk/interrupt/irq.h deleted file mode 100644 index 23b898a..0000000 --- a/boop/trunk/interrupt/irq.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - irq.h - irq core functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef IRQ_H -#define IRQ_H - -#define INT_WDT 0x00000001 -#define INT_CORE0 0x00000004 -#define INT_CORE1 0x00000008 -#define INT_TIMER0 0x00000010 -#define INT_TIMER1 0x00000020 -#define INT_UART0 0x00000040 -#define INT_UART1 0x00000080 -#define INT_PWM 0x00000100 -#define INT_I2C 0x00000200 -#define INT_SPI0 0x00000400 -#define INT_SPI1 0x00000800 -#define INT_PLL 0x00001000 -#define INT_RTC 0x00002000 -#define INT_EINT0 0x00004000 -#define INT_EINT1 0x00008000 -#define INT_EINT2 0x00010000 -#define INT_EINT3 0x00020000 -#define INT_ADC 0x00040000 - -#define INT_SRC_WDT 0 -#define INT_SRC_CORE0 2 -#define INT_SRC_CORE1 3 -#define INT_SRC_TIMER0 4 -#define INT_SRC_TIMER1 5 -#define INT_SRC_UART0 6 -#define INT_SRC_UART1 7 -#define INT_SRC_PWM 8 -#define INT_SRC_I2C 9 -#define INT_SRC_SPI0 10 -#define INT_SRC_SPI1 11 -#define INT_SRC_PLL 12 -#define INT_SRC_RTC 13 -#define INT_SRC_EINT0 14 -#define INT_SRC_EINT1 15 -#define INT_SRC_EINT2 16 -#define INT_SRC_EINT3 17 -#define INT_SRC_ADC 18 - -#define VIC_SLOT_EN 0x00000020 - -void __attribute__ ((section(".text.fastcode"))) FIQ_Routine (void); -void SWI_Routine (void) __attribute__ ((interrupt("SWI"))); -void UNDEF_Routine (void) __attribute__ ((interrupt("UNDEF"))); - - -unsigned enableIRQ(void); -unsigned disableIRQ(void); -unsigned restoreIRQ(unsigned oldCPSR); - -#endif diff --git a/boop/trunk/keyboard/Make.conf b/boop/trunk/keyboard/Make.conf deleted file mode 100644 index 42df737..0000000 --- a/boop/trunk/keyboard/Make.conf +++ /dev/null @@ -1,2 +0,0 @@ -THUMBSRCS := keyboard.c -SRCS := keyirq.c diff --git a/boop/trunk/keyboard/keyboard.c b/boop/trunk/keyboard/keyboard.c deleted file mode 100644 index 2be0baa..0000000 --- a/boop/trunk/keyboard/keyboard.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - keyboard.c - button handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "keyboard.h" -#include "keyirq.h" -#include "lpc2220.h" -#include "timerfuncs.h" -#include "backlight.h" -#include "irq.h" - - -void initKeys(void) -{ - keys[0] = 0; - keys[1] = 0; - IOCLR2=((1<<18)|(1<<19)|(1<<20)|(1<<21)|(1<<22)|(1<<23)|(1<<24)); - FIODIR0 &= ~(1<<30); - startCB(addTimerCB(keyScanner, 15)); - - EXTWAKE |= 0x08; - PINSEL1 |= (1<<29); -} - -void waitKeyUp(void) -{ - while((keys[0] != 0) || (keys[1] != 0)) {}; -} - -extern void cpu_idle(); - -void waitKeyDown(void) -{ - while ((keys[0] == 0) && (keys[1] == 0)) - { - cpu_idle(); - }; - setBacklight(BL_AUTO); // pwm value -} - -inline char isKeyPressed (void) -{ - return ((keys[0] != 0) || (keys[1] != 0)); -} - -signed char getNumKeyValue(void) { - signed char x; - - switch (keys[0]) { - case 0x00000002: - x= 7; - break; - case 0x00000008: - x= 4; - break; - case 0x00000020: - x= 1; - break; - case 0x00020000: - x= 0; - break; - case 0x00040000: - x= 9; - break; - case 0x00080000: - x= 8; - break; - case 0x00100000: - x= 6; - break; - default: - x=-1; - } - switch (keys[1]) { - case 0x00000040: - x= 2; - break; - case 0x00000080: - x= 3; - break; - case 0x00040000: - x= 5; - break; - } - return(x); -} - -#define keynum( _X, _Y ) if(_X) return _Y - -unsigned char getKeynum(void) -{ - keynum(KEY_A, 0); - keynum(KEY_B, 1); - keynum(KEY_C, 2); - keynum(KEY_D, 3); - keynum(KEY_Betty, 4); - keynum(KEY_Exit, 5); - keynum(KEY_Up, 6); - keynum(KEY_Down, 7); - keynum(KEY_Left, 8); - keynum(KEY_Right, 9); - keynum(KEY_OK, 10); - keynum(KEY_Vplus, 11); - keynum(KEY_Vminus, 12); - keynum(KEY_Mute, 13); - keynum(KEY_Pplus, 14); - keynum(KEY_Pminus, 15); - keynum(KEY_1, 16); - keynum(KEY_2, 17); - keynum(KEY_3, 18); - keynum(KEY_4, 19); - keynum(KEY_5, 20); - keynum(KEY_6, 21); - keynum(KEY_7, 22); - keynum(KEY_8, 23); - keynum(KEY_9, 24); - keynum(KEY_0, 25); - keynum(KEY_Minus, 26); - keynum(KEY_AV, 27); - keynum(KEY_Menu, 28); - keynum(KEY_PiP, 29); - keynum(KEY_AB, 30); - keynum(KEY_16_9, 31); - keynum(KEY_Info, 32); - keynum(KEY_VTX1, 33); - keynum(KEY_VTX2, 34); - keynum(KEY_VTX3, 35); - keynum(KEY_Blue, 36); - keynum(KEY_Yellow, 37); - keynum(KEY_Green, 38); - keynum(KEY_Red, 39); - keynum(KEY_TV, 40); - keynum(KEY_Power, 41); - return 42; -} - diff --git a/boop/trunk/keyboard/keyboard.h b/boop/trunk/keyboard/keyboard.h deleted file mode 100644 index d589840..0000000 --- a/boop/trunk/keyboard/keyboard.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - keyboard.h - button handling - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef KEYBOARD_H -#define KEYBOARD_H - - -//Uncomment if you have a swisscom Betty -//#define SWISSCOM - -/* -#define KEY_5 (keys[0] & 0x00000001) -#define KEY_6 (keys[0] & 0x00000002) -#define KEY_C (keys[0] & 0x00000004) -#define KEY_B (keys[0] & 0x00000008) -#define KEY_A (keys[0] & 0x00000010) -#define KEY_1 (keys[0] & 0x00000020) -#define KEY_8 (keys[0] & 0x00000040) -#define KEY_9 (keys[0] & 0x00000080) -#define KEY_D (keys[0] & 0x00000100) -#define KEY_Up (keys[0] & 0x00000200) -#define KEY_Betty (keys[0] & 0x00000400) -#define KEY_4 (keys[0] & 0x00000800) -#define KEY_0 (keys[0] & 0x00001000) -#define KEY_AV (keys[0] & 0x00002000) -#define KEY_Right (keys[0] & 0x00004000) -#define KEY_Left (keys[0] & 0x00008000) -#define KEY_Vplus (keys[0] & 0x00010000) -#define KEY_7 (keys[0] & 0x00020000) -#define KEY_AB (keys[0] & 0x00040000) -#define KEY_16_9 (keys[0] & 0x00080000) -#define KEY_Exit (keys[0] & 0x00100000) -#define KEY_OK (keys[0] & 0x00200000) -#define KEY_Vminus (keys[0] & 0x00400000) -#define KEY_Minus (keys[0] & 0x00800000) -#define KEY_VTX2 (keys[0] & 0x01000000) -#define KEY_VTX3 (keys[0] & 0x02000000) -#define KEY_Pplus (keys[0] & 0x04000000) -#define KEY_Down (keys[0] & 0x08000000) -#define KEY_Menu (keys[0] & 0x10000000) -#define KEY_PiP (keys[0] & 0x20000000) - -#define KEY_Yellow (keys[1] & 0x00000001) -#define KEY_Blue (keys[1] & 0x00000002) -#define KEY_Pminus (keys[1] & 0x00000004) -#define KEY_Mute (keys[1] & 0x00000008) -#define KEY_Info (keys[1] & 0x00000010) -#define KEY_VTX1 (keys[1] & 0x00000020) -#define KEY_TV (keys[1] & 0x00000040) -#define KEY_Power (keys[1] & 0x00000080) -#define KEY_3 (keys[1] & 0x00000100) -#define KEY_2 (keys[1] & 0x00000200) -#define KEY_Red (keys[1] & 0x00000400) -#define KEY_Green (keys[1] & 0x00000800) -*/ - -#ifdef SWISSCOM - #define KEY_B (keys[0] & 0x00000001) - #define KEY_C (keys[0] & 0x00000002) - #define KEY_6 (keys[0] & 0x00000004) - #define KEY_5 (keys[0] & 0x00000008) - #define KEY_Up (keys[0] & 0x00000010) - #define KEY_D (keys[0] & 0x00000020) - #define KEY_9 (keys[0] & 0x00000040) - #define KEY_8 (keys[0] & 0x00000080) - #define KEY_Left (keys[0] & 0x00000100) - #define KEY_Right (keys[0] & 0x00000200) - #define KEY_AV (keys[0] & 0x00000400) - #define KEY_0 (keys[0] & 0x00000800) - #define KEY_OK (keys[0] & 0x00001000) - #define KEY_Exit (keys[0] & 0x00002000) - #define KEY_16_9 (keys[0] & 0x00004000) - #define KEY_AB (keys[0] & 0x00008000) - #define KEY_Down (keys[0] & 0x00010000) - #define KEY_Pplus (keys[0] & 0x00020000) - #define KEY_VTX3 (keys[0] & 0x00040000) - #define KEY_VTX2 (keys[0] & 0x00080000) - #define KEY_Mute (keys[0] & 0x00100000) - #define KEY_Pminus (keys[0] & 0x00200000) - #define KEY_Blue (keys[0] & 0x00400000) - #define KEY_Yellow (keys[0] & 0x00800000) - #define KEY_2 (keys[0] & 0x01000000) - #define KEY_3 (keys[0] & 0x02000000) - #define KEY_Power (keys[0] & 0x04000000) - #define KEY_TV (keys[0] & 0x08000000) - - #define KEY_A (keys[1] & 0x00000001) - #define KEY_1 (keys[1] & 0x00000002) - #define KEY_Betty (keys[1] & 0x00000004) - #define KEY_4 (keys[1] & 0x00000008) - #define KEY_Vplus (keys[1] & 0x00000010) - #define KEY_7 (keys[1] & 0x00000020) - #define KEY_Vminus (keys[1] & 0x00000040) - #define KEY_Minus (keys[1] & 0x00000080) - #define KEY_Menu (keys[1] & 0x00000100) - #define KEY_PiP (keys[1] & 0x00000200) - #define KEY_Info (keys[1] & 0x00000400) - #define KEY_VTX1 (keys[1] & 0x00000800) - #define KEY_Red (keys[1] & 0x00001000) - #define KEY_Green (keys[1] & 0x00002000) - -#else - - #define KEY_OK (keys[0] & 0x00000001) - #define KEY_7 (keys[0] & 0x00000002) - #define KEY_Vplus (keys[0] & 0x00000004) - #define KEY_4 (keys[0] & 0x00000008) - #define KEY_Betty (keys[0] & 0x00000010) - #define KEY_1 (keys[0] & 0x00000020) - #define KEY_A (keys[0] & 0x00000040) - #define KEY_Left (keys[0] & 0x00000080) - #define KEY_Exit (keys[0] & 0x00000100) - #define KEY_Up (keys[0] & 0x00000200) - #define KEY_B (keys[0] & 0x00000400) - #define KEY_16_9 (keys[0] & 0x00000800) - #define KEY_AB (keys[0] & 0x00001000) - #define KEY_D (keys[0] & 0x00002000) - #define KEY_Right (keys[0] & 0x00004000) - #define KEY_C (keys[0] & 0x00008000) - #define KEY_AV (keys[0] & 0x00010000) - #define KEY_0 (keys[0] & 0x00020000) - #define KEY_9 (keys[0] & 0x00040000) - #define KEY_8 (keys[0] & 0x00080000) - #define KEY_6 (keys[0] & 0x00100000) - - #define KEY_Green (keys[1] & 0x00000001) - #define KEY_Red (keys[1] & 0x00000002) - #define KEY_VTX1 (keys[1] & 0x00000004) - #define KEY_Info (keys[1] & 0x00000008) - #define KEY_PiP (keys[1] & 0x00000010) - #define KEY_Menu (keys[1] & 0x00000020) - #define KEY_2 (keys[1] & 0x00000040) - #define KEY_3 (keys[1] & 0x00000080) - #define KEY_Mute (keys[1] & 0x00000100) - #define KEY_Pminus (keys[1] & 0x00000200) - #define KEY_Down (keys[1] & 0x00000400) - #define KEY_Pplus (keys[1] & 0x00000800) - #define KEY_Power (keys[1] & 0x00001000) - #define KEY_TV (keys[1] & 0x00002000) - #define KEY_Blue (keys[1] & 0x00004000) - #define KEY_Yellow (keys[1] & 0x00008000) - #define KEY_VTX3 (keys[1] & 0x00010000) - #define KEY_VTX2 (keys[1] & 0x00020000) - #define KEY_5 (keys[1] & 0x00040000) - #define KEY_Minus (keys[1] & 0x00080000) - #define KEY_Vminus (keys[1] & 0x00100000) - -#endif - -#define AUTO_TIMEOUT 5 - -#define KEY_IDLE 0x00 -#define KEY_PRESS 0x01 -#define KEY_HOLD 0x02 -#define KEY_RELEASE 0x03 - -#define FIOPIN0_KBDINT (1<<30) -#define ANYKEY (!(FIOPIN0 & FIOPIN0_KBDINT)) - -#define testLine(_c) \ -{ \ - if(!(_c)) \ - { \ - keys[half] |= keytest; \ - } \ - keytest <<= 1; \ -} - -volatile unsigned int keys[2]; - -void initKeys(void); -void scanKeys(void); -void waitKeyUp(void); -void waitKeyDown(void); -/// Return 1 if any key is pressed. -inline char isKeyPressed (void); -signed char getNumKeyValue(void); -unsigned char getKeynum(void); - -#define waitKeyUpDown() { waitKeyUp(); waitKeyDown(); } - -#endif diff --git a/boop/trunk/keyboard/keyirq.c b/boop/trunk/keyboard/keyirq.c deleted file mode 100644 index 6a11f45..0000000 --- a/boop/trunk/keyboard/keyirq.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - keyirq.c - keyboard scanning interrupt - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "keyboard.h" -#include "keyirq.h" -#include "lpc2220.h" -#include "timerfuncs.h" -#include "global.h" - -static unsigned char scannerTimeout; -static unsigned char repeatTimeout; -static unsigned char fastToggle; -static unsigned char scannerState = 0; - -#define S_IDLE 0x00 -#define S_PRESSED 0x01 -#define S_HOLD 0x02 -#define S_REPEAT 0x03 - -#define S_REPEATDELAY 6 -#define S_REPEATRATE 4 - -#define MASK0 0x18402000 -#define MASK3 0x00300000 - -void __attribute__ ((section(".text.fastcode"))) keyScanner(unsigned int cb) -{ -#ifdef SWISSCOM - static unsigned int IO2_P, IO2_PC, IO2_0, IO2_1; -#else - static unsigned int temp; - - keys[0] = 0; - keys[1] = 0; -#endif - - if(ANYKEY) - { -#ifdef SWISSCOM - IOSET2= (126<<18); - IO2_P = (1<<18); - IO2_0=0; - IO2_1=0; - keys[0]=0; - keys[1]=0; - for(IO2_PC=18;IO2_PC<=24;IO2_PC++) - { - IOCLR2 = IO2_P; - keys[0] |= ((IOPIN1>>16) & 0xF)<>21) & 0x3)<>1; - keys[0] |= (IOPIN3 & MASK3) >> 14; - - IOSET2 = (1<<18); - IOCLR2 = (1<<19); - - keys[0] |= FIOPIN0>> 3; - keys[0] |= (IOPIN3 & MASK3) >> 16; - - IOSET2 = (1<<19); - IOCLR2 = (1<<20); - - keys[0] |= FIOPIN0>> 5; - keys[0] |= (IOPIN3 & MASK3) >> 18; - - IOSET2 = (1<<20); - IOCLR2 = (1<<21); - - keys[0] |= FIOPIN0 >> 13; - keys[0] |= (IOPIN3 & MASK3) << 8; - - keys[0] = ~keys[0]; - keys[0] &= 0x3FEAD7FD; - - IOSET2 = (1<<21); - IOCLR2 = (1<<22); - - keys[1] = FIOPIN0>> 3; - keys[1] |= (IOPIN3 & MASK3) >> 16; - - IOSET2 = (1<<22); - IOCLR2 = (1<<23); - - keys[1] |= FIOPIN0>> 5; - keys[1] |= (IOPIN3 & MASK3) >> 18; - - IOSET2 = (1<<23); - IOCLR2 = (1<<24); - - keys[1] |= FIOPIN0>> 7; - keys[1] |= (IOPIN3 & MASK3) >> 20; - - keys[1] = ~keys[1]; - keys[1] &= 0x3FA857F; - - temp = (keys[0] & 0x3FE80000)>>3; - keys[0] &= 0x0002D7FD; - keys[0] |= temp; - - temp = (keys[0] & 0x07FFD000)>>1; - keys[0] &= 0x000007FD; - keys[0] |= temp; - - temp = keys[0]>>1; - keys[0] &= 0x00000001; - keys[0] |= temp; - - temp = (keys[0] & 0x1FFF000)>>1; - keys[0] &= 0x7FF; - keys[0] |= temp; - - temp = (keys[1] & 0x03FA8000) >> 8; - keys[1] &= 0x0000057F; - keys[1] |= temp; - - temp = keys[0] & 0x00E00000; - keys[0] &= 0x1FFFFF; - keys[1] |= (temp>>3); - - FIOMASK0 &= MASK0; - IOCLR2=((1<<18)|(1<<19)|(1<<20)|(1<<21)|(1<<22)|(1<<23)); -#endif - } - - if((keys[0] == 0) && (keys[1] == 0)) - { - scannerTimeout = 0; - repeatTimeout = S_REPEATDELAY; - scannerState = S_IDLE; - } - else if(scannerState == S_IDLE) - { - scannerState = S_PRESSED; - } - - switch(scannerState) - { - case S_PRESSED: - scannerTimeout++; - if((scannerTimeout > repeatTimeout) && (repeatTimeout != 0) && !(sysInfo & SYS_IR)) - { - repeatTimeout = S_REPEATRATE; - scannerState++; - } - break; - case S_HOLD: - keys[0] = 0; - keys[1] = 0; - scannerState++; - break; - - case S_REPEAT: - scannerTimeout++; - if(scannerTimeout > repeatTimeout) - { - keys[0] = 0; - keys[1] = 0; - scannerTimeout = 0; - fastToggle++; - if((fastToggle > 4) && (repeatTimeout > 1)) - { - repeatTimeout >>= 1; - fastToggle = 0; - } - } - break; - } -} diff --git a/boop/trunk/keyboard/keyirq.h b/boop/trunk/keyboard/keyirq.h deleted file mode 100644 index c510ce1..0000000 --- a/boop/trunk/keyboard/keyirq.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - keyirq.h - keyboard scanning interrupt - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef KEYIRQ_H -#define KEYIRQ_H - -#define AUTO_TIMEOUT 5 - -#define testLine(_c) \ -{ \ - if(!(_c)) \ - { \ - keys[half] |= keytest; \ - } \ - keytest <<= 1; \ -} - -void __attribute__ ((section(".text.fastcode"))) keyScanner (unsigned int cb); - -#endif diff --git a/boop/trunk/lpc2220.h b/boop/trunk/lpc2220.h deleted file mode 100644 index 36693c3..0000000 --- a/boop/trunk/lpc2220.h +++ /dev/null @@ -1,290 +0,0 @@ -/* - lpc2220.h - register definitions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef LPC2220_H -#define LPC2220_H - -/* External Memory Controller (EMC) */ -#define BCFG0 (*((volatile unsigned long *) 0xFFE00000)) -#define BCFG1 (*((volatile unsigned long *) 0xFFE00004)) -#define BCFG2 (*((volatile unsigned long *) 0xFFE00008)) -#define BCFG3 (*((volatile unsigned long *) 0xFFE0000C)) - -/* Vectored Interrupt Controller (VIC) */ -#define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000)) -#define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004)) -#define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008)) -#define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C)) -#define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010)) -#define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014)) -#define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018)) -#define VICSoftIntClr (*((volatile unsigned long *) 0xFFFFF01C)) -#define VICProtection (*((volatile unsigned long *) 0xFFFFF020)) -#define VICVectAddr (*((volatile unsigned long *) 0xFFFFF030)) -#define VICDefVectAddr (*((volatile unsigned long *) 0xFFFFF034)) -#define VICVectAddr0 (*((volatile unsigned long *) 0xFFFFF100)) -#define VICVectAddr1 (*((volatile unsigned long *) 0xFFFFF104)) -#define VICVectAddr2 (*((volatile unsigned long *) 0xFFFFF108)) -#define VICVectAddr3 (*((volatile unsigned long *) 0xFFFFF10C)) -#define VICVectAddr4 (*((volatile unsigned long *) 0xFFFFF110)) -#define VICVectAddr5 (*((volatile unsigned long *) 0xFFFFF114)) -#define VICVectAddr6 (*((volatile unsigned long *) 0xFFFFF118)) -#define VICVectAddr7 (*((volatile unsigned long *) 0xFFFFF11C)) -#define VICVectAddr8 (*((volatile unsigned long *) 0xFFFFF120)) -#define VICVectAddr9 (*((volatile unsigned long *) 0xFFFFF124)) -#define VICVectAddr10 (*((volatile unsigned long *) 0xFFFFF128)) -#define VICVectAddr11 (*((volatile unsigned long *) 0xFFFFF12C)) -#define VICVectAddr12 (*((volatile unsigned long *) 0xFFFFF130)) -#define VICVectAddr13 (*((volatile unsigned long *) 0xFFFFF134)) -#define VICVectAddr14 (*((volatile unsigned long *) 0xFFFFF138)) -#define VICVectAddr15 (*((volatile unsigned long *) 0xFFFFF13C)) -#define VICVectCntl0 (*((volatile unsigned long *) 0xFFFFF200)) -#define VICVectCntl1 (*((volatile unsigned long *) 0xFFFFF204)) -#define VICVectCntl2 (*((volatile unsigned long *) 0xFFFFF208)) -#define VICVectCntl3 (*((volatile unsigned long *) 0xFFFFF20C)) -#define VICVectCntl4 (*((volatile unsigned long *) 0xFFFFF210)) -#define VICVectCntl5 (*((volatile unsigned long *) 0xFFFFF214)) -#define VICVectCntl6 (*((volatile unsigned long *) 0xFFFFF218)) -#define VICVectCntl7 (*((volatile unsigned long *) 0xFFFFF21C)) -#define VICVectCntl8 (*((volatile unsigned long *) 0xFFFFF220)) -#define VICVectCntl9 (*((volatile unsigned long *) 0xFFFFF224)) -#define VICVectCntl10 (*((volatile unsigned long *) 0xFFFFF228)) -#define VICVectCntl11 (*((volatile unsigned long *) 0xFFFFF22C)) -#define VICVectCntl12 (*((volatile unsigned long *) 0xFFFFF230)) -#define VICVectCntl13 (*((volatile unsigned long *) 0xFFFFF234)) -#define VICVectCntl14 (*((volatile unsigned long *) 0xFFFFF238)) -#define VICVectCntl15 (*((volatile unsigned long *) 0xFFFFF23C)) - -#define SCS (*((volatile unsigned char *) 0xE01FC1A0)) -#define FIOPIN0 (*((volatile unsigned long *) 0x3FFFC014)) -#define FIOSET0 (*((volatile unsigned long *) 0x3FFFC018)) -#define FIODIR0 (*((volatile unsigned long *) 0x3FFFC000)) -#define FIOCLR0 (*((volatile unsigned long *) 0x3FFFC01C)) -#define FIOMASK0 (*((volatile unsigned long *) 0x3FFFC010)) - -/* Pin Connect Block */ -#define PINSEL0 (*((volatile unsigned long *) 0xE002C000)) -#define PINSEL1 (*((volatile unsigned long *) 0xE002C004)) -#define PINSEL2 (*((volatile unsigned long *) 0xE002C014)) - -/* General Purpose Input/Output (GPIO) */ -#define IOPIN0 (*((volatile unsigned long *) 0xE0028000)) -#define IOSET0 (*((volatile unsigned long *) 0xE0028004)) -#define IODIR0 (*((volatile unsigned long *) 0xE0028008)) -#define IOCLR0 (*((volatile unsigned long *) 0xE002800C)) -#define IOPIN1 (*((volatile unsigned long *) 0xE0028010)) -#define IOSET1 (*((volatile unsigned long *) 0xE0028014)) -#define IODIR1 (*((volatile unsigned long *) 0xE0028018)) -#define IOCLR1 (*((volatile unsigned long *) 0xE002801C)) -#define IOPIN2 (*((volatile unsigned long *) 0xE0028020)) -#define IOSET2 (*((volatile unsigned long *) 0xE0028024)) -#define IODIR2 (*((volatile unsigned long *) 0xE0028028)) -#define IOCLR2 (*((volatile unsigned long *) 0xE002802C)) -#define IOPIN3 (*((volatile unsigned long *) 0xE0028030)) -#define IOSET3 (*((volatile unsigned long *) 0xE0028034)) -#define IODIR3 (*((volatile unsigned long *) 0xE0028038)) -#define IOCLR3 (*((volatile unsigned long *) 0xE002803C)) - -/* Phase Locked Loop (PLL) */ -#define PLLCON (*((volatile unsigned char *) 0xE01FC080)) -#define PLLCFG (*((volatile unsigned char *) 0xE01FC084)) -#define PLLSTAT (*((volatile unsigned short*) 0xE01FC088)) -#define PLLFEED (*((volatile unsigned char *) 0xE01FC08C)) - -/* VPB Divider */ -#define VPBDIV (*((volatile unsigned char *) 0xE01FC100)) - -/* Power Control */ -#define PCON (*((volatile unsigned char *) 0xE01FC0C0)) -#define PCONP (*((volatile unsigned long *) 0xE01FC0C4)) - -/* External Interrupts */ -#define EXTINT (*((volatile unsigned char *) 0xE01FC140)) -#define EXTWAKE (*((volatile unsigned char *) 0xE01FC144)) -#define EXTMODE (*((volatile unsigned char *) 0xE01FC148)) -#define EXTPOLAR (*((volatile unsigned char *) 0xE01FC14C)) - -/* Timer 0 */ -#define T0IR (*((volatile unsigned long *) 0xE0004000)) -#define T0TCR (*((volatile unsigned long *) 0xE0004004)) -#define T0TC (*((volatile unsigned long *) 0xE0004008)) -#define T0PR (*((volatile unsigned long *) 0xE000400C)) -#define T0PC (*((volatile unsigned long *) 0xE0004010)) -#define T0MCR (*((volatile unsigned long *) 0xE0004014)) -#define T0MR0 (*((volatile unsigned long *) 0xE0004018)) -#define T0MR1 (*((volatile unsigned long *) 0xE000401C)) -#define T0MR2 (*((volatile unsigned long *) 0xE0004020)) -#define T0MR3 (*((volatile unsigned long *) 0xE0004024)) -#define T0CCR (*((volatile unsigned long *) 0xE0004028)) -#define T0CR0 (*((volatile unsigned long *) 0xE000402C)) -#define T0CR1 (*((volatile unsigned long *) 0xE0004030)) -#define T0CR2 (*((volatile unsigned long *) 0xE0004034)) -#define T0CR3 (*((volatile unsigned long *) 0xE0004038)) -#define T0EMR (*((volatile unsigned long *) 0xE000403C)) - -/* Timer 1 */ -#define T1IR (*((volatile unsigned long *) 0xE0008000)) -#define T1TCR (*((volatile unsigned long *) 0xE0008004)) -#define T1TC (*((volatile unsigned long *) 0xE0008008)) -#define T1PR (*((volatile unsigned long *) 0xE000800C)) -#define T1PC (*((volatile unsigned long *) 0xE0008010)) -#define T1MCR (*((volatile unsigned long *) 0xE0008014)) -#define T1MR0 (*((volatile unsigned long *) 0xE0008018)) -#define T1MR1 (*((volatile unsigned long *) 0xE000801C)) -#define T1MR2 (*((volatile unsigned long *) 0xE0008020)) -#define T1MR3 (*((volatile unsigned long *) 0xE0008024)) -#define T1CCR (*((volatile unsigned long *) 0xE0008028)) -#define T1CR0 (*((volatile unsigned long *) 0xE000802C)) -#define T1CR1 (*((volatile unsigned long *) 0xE0008030)) -#define T1CR2 (*((volatile unsigned long *) 0xE0008034)) -#define T1CR3 (*((volatile unsigned long *) 0xE0008038)) -#define T1EMR (*((volatile unsigned long *) 0xE000803C)) - -/* Pulse Width Modulator (PWM) */ -#define PWMIR (*((volatile unsigned long *) 0xE0014000)) -#define PWMTCR (*((volatile unsigned long *) 0xE0014004)) -#define PWMTC (*((volatile unsigned long *) 0xE0014008)) -#define PWMPR (*((volatile unsigned long *) 0xE001400C)) -#define PWMPC (*((volatile unsigned long *) 0xE0014010)) -#define PWMMCR (*((volatile unsigned long *) 0xE0014014)) -#define PWMMR0 (*((volatile unsigned long *) 0xE0014018)) -#define PWMMR1 (*((volatile unsigned long *) 0xE001401C)) -#define PWMMR2 (*((volatile unsigned long *) 0xE0014020)) -#define PWMMR3 (*((volatile unsigned long *) 0xE0014024)) -#define PWMMR4 (*((volatile unsigned long *) 0xE0014040)) -#define PWMMR5 (*((volatile unsigned long *) 0xE0014044)) -#define PWMMR6 (*((volatile unsigned long *) 0xE0014048)) -#define PWMCCR (*((volatile unsigned long *) 0xE0014028)) -#define PWMCR0 (*((volatile unsigned long *) 0xE001402C)) -#define PWMCR1 (*((volatile unsigned long *) 0xE0014030)) -#define PWMCR2 (*((volatile unsigned long *) 0xE0014034)) -#define PWMCR3 (*((volatile unsigned long *) 0xE0014038)) -#define PWMEMR (*((volatile unsigned long *) 0xE001403C)) -#define PWMPCR (*((volatile unsigned long *) 0xE001404C)) -#define PWMLER (*((volatile unsigned long *) 0xE0014050)) - -/* Universal Asynchronous Receiver Transmitter 0 (UART0) */ -#define U0RBR (*((volatile unsigned char *) 0xE000C000)) -#define U0THR (*((volatile unsigned char *) 0xE000C000)) -#define U0IER (*((volatile unsigned char *) 0xE000C004)) -#define U0IIR (*((volatile unsigned char *) 0xE000C008)) -#define U0FCR (*((volatile unsigned char *) 0xE000C008)) -#define U0LCR (*((volatile unsigned char *) 0xE000C00C)) -#define U0MCR (*((volatile unsigned char *) 0xE000C010)) -#define U0LSR (*((volatile unsigned char *) 0xE000C014)) -#define U0MSR (*((volatile unsigned char *) 0xE000C018)) -#define U0SCR (*((volatile unsigned char *) 0xE000C01C)) -#define U0FDR (*((volatile unsigned char *) 0xE000C028)) -#define U0DLL (*((volatile unsigned char *) 0xE000C000)) -#define U0DLM (*((volatile unsigned char *) 0xE000C004)) - -/* Universal Asynchronous Receiver Transmitter 1 (UART1) */ -#define U1RBR (*((volatile unsigned char *) 0xE0010000)) -#define U1THR (*((volatile unsigned char *) 0xE0010000)) -#define U1IER (*((volatile unsigned char *) 0xE0010004)) -#define U1IIR (*((volatile unsigned char *) 0xE0010008)) -#define U1FCR (*((volatile unsigned char *) 0xE0010008)) -#define U1LCR (*((volatile unsigned char *) 0xE001000C)) -#define U1MCR (*((volatile unsigned char *) 0xE0010010)) -#define U1LSR (*((volatile unsigned char *) 0xE0010014)) -#define U1MSR (*((volatile unsigned char *) 0xE0010018)) -#define U1SCR (*((volatile unsigned char *) 0xE001001C)) -#define U1DLL (*((volatile unsigned char *) 0xE0010000)) -#define U1DLM (*((volatile unsigned char *) 0xE0010004)) - -/* I2C Interface */ -#define I2CONSET (*((volatile unsigned char *) 0xE001C000)) -#define I2STAT (*((volatile unsigned char *) 0xE001C004)) -#define I2DAT (*((volatile unsigned char *) 0xE001C008)) -#define I2ADR (*((volatile unsigned char *) 0xE001C00C)) -#define I2SCLH (*((volatile unsigned short*) 0xE001C010)) -#define I2SCLL (*((volatile unsigned short*) 0xE001C014)) -#define I2CONCLR (*((volatile unsigned char *) 0xE001C018)) - -/* SPI0 (Serial Peripheral Interface 0) */ -#define S0SPCR (*((volatile unsigned char *) 0xE0020000)) -#define S0SPSR (*((volatile unsigned char *) 0xE0020004)) -#define S0SPDR (*((volatile unsigned char *) 0xE0020008)) -#define S0SPCCR (*((volatile unsigned char *) 0xE002000C)) -#define S0SPTCR (*((volatile unsigned char *) 0xE0020010)) -#define S0SPTSR (*((volatile unsigned char *) 0xE0020014)) -#define S0SPTOR (*((volatile unsigned char *) 0xE0020018)) -#define S0SPINT (*((volatile unsigned char *) 0xE002001C)) - -/* SPI1 (Serial Peripheral Interface 1) */ -#define S1SPCR (*((volatile unsigned char *) 0xE0030000)) -#define S1SPSR (*((volatile unsigned char *) 0xE0030004)) -#define S1SPDR (*((volatile unsigned char *) 0xE0030008)) -#define S1SPCCR (*((volatile unsigned char *) 0xE003000C)) -#define S1SPTCR (*((volatile unsigned char *) 0xE0030010)) -#define S1SPTSR (*((volatile unsigned char *) 0xE0030014)) -#define S1SPTOR (*((volatile unsigned char *) 0xE0030018)) -#define S1SPINT (*((volatile unsigned char *) 0xE003001C)) - -/* Real Time Clock */ -#define ILR (*((volatile unsigned char *) 0xE0024000)) -#define CTC (*((volatile unsigned short*) 0xE0024004)) -#define CCR (*((volatile unsigned char *) 0xE0024008)) -#define CIIR (*((volatile unsigned char *) 0xE002400C)) -#define AMR (*((volatile unsigned char *) 0xE0024010)) -#define CTIME0 (*((volatile unsigned long *) 0xE0024014)) -#define CTIME1 (*((volatile unsigned long *) 0xE0024018)) -#define CTIME2 (*((volatile unsigned long *) 0xE002401C)) -#define SEC (*((volatile unsigned char *) 0xE0024020)) -#define MIN (*((volatile unsigned char *) 0xE0024024)) -#define HOUR (*((volatile unsigned char *) 0xE0024028)) -#define DOM (*((volatile unsigned char *) 0xE002402C)) -#define DOW (*((volatile unsigned char *) 0xE0024030)) -#define DOY (*((volatile unsigned short*) 0xE0024034)) -#define MONTH (*((volatile unsigned char *) 0xE0024038)) -#define YEAR (*((volatile unsigned short*) 0xE002403C)) -#define ALSEC (*((volatile unsigned char *) 0xE0024060)) -#define ALMIN (*((volatile unsigned char *) 0xE0024064)) -#define ALHOUR (*((volatile unsigned char *) 0xE0024068)) -#define ALDOM (*((volatile unsigned char *) 0xE002406C)) -#define ALDOW (*((volatile unsigned char *) 0xE0024070)) -#define ALDOY (*((volatile unsigned short*) 0xE0024074)) -#define ALMON (*((volatile unsigned char *) 0xE0024078)) -#define ALYEAR (*((volatile unsigned short*) 0xE002407C)) -#define PREINT (*((volatile unsigned short*) 0xE0024080)) -#define PREFRAC (*((volatile unsigned short*) 0xE0024084)) - -/* A/D Converter */ -#define ADCR (*((volatile unsigned long *) 0xE0034000)) -#define ADDR (*((volatile unsigned long *) 0xE0034004)) -#define ADINTEN (*((volatile unsigned long *) 0xE003400C)) -#define ADSTAT (*((volatile unsigned long *) 0xE0034030)) - -/* Watchdog */ -#define WDMOD (*((volatile unsigned char *) 0xE0000000)) -#define WDTC (*((volatile unsigned long *) 0xE0000004)) -#define WDFEED (*((volatile unsigned char *) 0xE0000008)) -#define WDTV (*((volatile unsigned long *) 0xE000000C)) - -/* Memory Mapping control register */ -#define MEMMAP (*((volatile unsigned long *) 0xE01FC040)) - -/* SSP control register */ -#define SSPCR0 (*((volatile unsigned long *) 0xE005C000)) -#define SSPCR1 (*((volatile unsigned char *) 0xE005C004)) -#define SSPDR (*((volatile unsigned char *) 0xE005C008)) -#define SSPSR (*((volatile unsigned char *) 0xE005C00C)) -#define SSPCPSR (*((volatile unsigned char *) 0xE005C010)) - - -#endif /* __ASM_ARCH_HARDWARE_H */ diff --git a/boop/trunk/lpc2220_rom.ld b/boop/trunk/lpc2220_rom.ld deleted file mode 100644 index f7470bf..0000000 --- a/boop/trunk/lpc2220_rom.ld +++ /dev/null @@ -1,144 +0,0 @@ -/* - lpc2220.ld - linker script, flash based - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -/* identify the Entry Point */ - -ENTRY(_startup) - -/* specify the LPC2106 memory areas */ - -MEMORY -{ - ram : ORIGIN = 0x40000000, LENGTH = 64K-0x400 /* free RAM area */ - flash : ORIGIN = 0x80000000, LENGTH = 1M /* FLASH ROM */ -} - -/* define a global symbol _stack_end */ - -/* _stack_end = 0x4000F9DC; */ -_stack_end = 0x40010000; - -/* now define the output sections */ - -SECTIONS -{ - . = 0; /* set location counter to address zero */ - - startup : - { - *(.startup) - } >flash /* the startup code goes into FLASH */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .text : /* collect all sections that should go into FLASH after startup */ - { - *(.text) /* all .text sections (code) */ - *(.rodata) /* all .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* all .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* all .glue_7 sections (no idea what these are) */ - *(.glue_7t) /* all .glue_7t sections (no idea what these are) */ - _etext = .; /* define a global symbol _etext just after the last code byte */ - } >flash /* put all the above into FLASH */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - __exidx_start = .; - PROVIDE(__exidx_start = __exidx_start); - - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*); - } > flash AT > flash /* index entries for section unwinding */ - - . = ALIGN(4); - __exidx_end = .; - PROVIDE(__exidx_end = __exidx_end); - - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .fastcode : - { - __fastcode_load = LOADADDR(.fastcode); - __fastcode_start = .; - /* functions with __attribute__ ((section (".text.fastcode")))*/ - *(.text.fastcode) - *(.text.ramvectors) - *(.text.do_vic) - *(.text.do_fiq) - *(.text.timerIRQ) - *(.text.soundIRQ) - *(.text.FIQ_Routine) - *(.text.keyScanner) - *(.text.adcIRQ) - *(.text.irIRQ) - *(.text.defIR) - *(.text.NRC17_Encode) - *(.text.ITT_Encode) - *(.text.RC5_Encode) - *(.text.RCA_Encode) - *(.text.RCMM_Encode) - *(.text.REC80_Encode) - *(.text.RECS80_Encode) - *(.text.SIRC_Encode) - *(.text.SPACEENC_Encode) - *(.text.cc1100IRQ) - *(.text._evaluate) - *(.text._push_state) - *(.text._mcpy) - *(.text._do_rcu) - *(.text._do_rcuS) - *(.text._draw_block) - *(.text._draw_hline) - *(.text._draw_vline) - - . = ALIGN (4); - __fastcode_end = .; - } >ram AT>flash - - - .data : /* collect all initialized .data sections that go into RAM */ - { - _data = .; /* create a global symbol marking the start of the .data section */ - *(.data) /* all .data sections */ - _edata = .; /* define a global symbol marking the end of the .data section */ - } >ram AT >flash /* put all the above into RAM (but load the LMA copy into FLASH) */ - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - - .bss : /* collect all uninitialized .bss sections that go into RAM */ - { - _bss_start = .; /* define a global symbol marking the start of the .bss section */ - *(.bss) /* all .bss sections */ - } >ram /* put all the above in RAM (it will be cleared in the startup code */ - - . = ALIGN(4); /* advance location counter to the next 32-bit boundary */ - _bss_end = . ; /* define a global symbol marking the end of the .bss section */ -} -end = .; /* define a global symbol marking the end of application RAM */ - -PROVIDE( MEMMAP = 0xE01FC040 ); -PROVIDE( BCFG0 = 0xFFE00000 ); -PROVIDE( BCFG1 = 0xFFE00004 ); -PROVIDE( BCFG2 = 0xFFE00008 ); -PROVIDE( PINSEL0 = 0xE002C000 ); -PROVIDE( PINSEL1 = 0xE002C004 ); -PROVIDE( PINSEL2 = 0xE002C014 ); -PROVIDE( IO0PIN = 0xE0028000 ); -PROVIDE( IO0DIR = 0xE0028008 ); -PROVIDE( IO2SET = 0xE0028024 ); -PROVIDE( SCS = 0xE01FC1A0 ); -PROVIDE( FIODIR0 = 0x3FFFC000 ); -PROVIDE( VICVectAddr = 0xFFFFF030 ); diff --git a/boop/trunk/main.c b/boop/trunk/main.c deleted file mode 100644 index 5f8fba8..0000000 --- a/boop/trunk/main.c +++ /dev/null @@ -1,417 +0,0 @@ -/* - main.c - main program routines - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -//typedef volatile unsigned int *reg32_t; - -#include "lpc2220.h" - - -#include "lcd.h" -#include "irq.h" -#include "keyboard.h" -#include "lcd.h" -#include "fonty.h" -#include "sid.h" -#include "sound.h" -//#include "sounds.h" -//#include "sound3.h" -#include "infrared.h" -#include "codes.h" -#include "encoders.h" -#include "ir_selector.h" -#include "serial.h" -#include "flash.h" -#include "rf.h" -#include "menu.h" -#include "testmenu.h" -#include "mainmenu.h" -#include "timerfuncs.h" -#define __MAIN_C__ -#include "global.h" -#include "adc.h" -#include "backlight.h" -#include "rtc.h" -#include "i2c.h" -#include "bfs.h" -#include "settingsmenu.h" -#include "ir_raw.h" -#include "ir_capture.h" -#include "controls.h" -#include "buffer.h" - -unsigned char sysInfo; - -extern volatile char timeout; - -extern ir_sfn irSend; -extern ir_fn irRepeat; -extern ir_fn irStop; - -const char hval[16] = "0123456789ABCDEF"; - -unsigned int oldkeys[2]; -unsigned int key_state; - -extern unsigned char act_encoder, act_set; - -extern unsigned char bl_val; - - -// betty runs on 10 MHz * 1/4 on reset -// this enables the PLL clock generation and sets the prescaler -void setSpeed(unsigned char sp) -{ - disableIRQ(); - switch(sp) - { - case SPEED_60: // turbo speed (60 mhz) - BCFG0 = 0x100005EF; - PLLCFG = 0x45; // 0100.0101 = PSEL=10=4 MSEL=00101=6 = 240mhz Fcco - PLLFEED = 0xAA; - PLLFEED = 0x55; - - VPBDIV = 0x00; - - BCFG0 = 0x100004A0; - BCFG2 = 0x100004A0; - BCFG1 = 0x00000C21; - sysInfo |= SYS_TURBO; - break; - - case SPEED_30: // normal speed (30 mhz) - default: - BCFG0 = 0x100005EF; - PLLCFG = 0x42; // 0100.0010 = PSEL=10=4 MSEL=00010=3 - PLLFEED = 0xAA; - PLLFEED = 0x55; - - VPBDIV = 0x02; - - BCFG0 = 0x10000420; - BCFG2 = 0x10000420; - BCFG1 = 0x00000400; - sysInfo &= ~SYS_TURBO; - break; - } - enableIRQ(); -} - -/* -// draw "emitting waves" symbol -// used when a button is pressed -void draw_ir (unsigned char x, unsigned char y, unsigned char m) -{ - //~ 0 1: ##### - //~ 1 2: # # - //~ 2 4: ### - //~ 3 8: # # - //~ 4 1: - //~ 5 2: ### - //~ 6 4: ##### - - draw_hline(x+1,y,5,3,m); // 0 - - draw_pixel(x ,y+1,3,m); // 1 - draw_pixel(x+6,y+1,3,m); // 1 - - draw_hline(x+2,y+2,3,3,m); // 2 - - draw_pixel(x+1,y+3,3,m); // 3 - draw_pixel(x+5,y+3,3,m); // 3 - - draw_hline(x+2,y+5,3,3,m); // 5 - - draw_hline(x+1,y+6,5,3,m); // 6 - - draw_symbol(x,y,7,(unsigned char*)symIR,LCD_COLOR_B,m); - -}*/ - - - -// shows current IR set on top of main screen -void drawSet (void) -{ - set_font(SMALLFONT); - draw_block (0, 0, 99, 9, LCD_COLOR_B, DRAW_ERASE); - draw_string (0,0,getSetName (irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set), LCD_COLOR_B, DRAW_PUT); -} - - -// -void drawMainscreen (void) -{ - //~ set_font(SMALLFONT); // done in drawSet() - - lcd_fill(0); - draw_logo(); - - // top bar - drawSet(); - -/* is updated in main loop - // time -#if FF_LARGE_IDLE_CLOCK - printTime (6,20, (struct time_ *)&rtc.time, 1); -#else - printTime (86,152, (struct time_ *)&rtc.time, 0); - printDate(0,152,(struct date_ *)&rtc.date,0); -#endif -*/ - showBat(0xff); // battery indicator - redraw_symbols(); // -} - - -//unsigned char i; - -/** let the LPC2200 sleep until the next IRQ - * - * This function tries to enter the sleep mode and stays - * there until the next interrupt wakes up the CPU. - * If that is not possible, the function returns immediately. - */ -extern unsigned char sact; -void cpu_idle () -{ - /* fall through if a key was pressed */ - if (ANYKEY) - return; - - //fall through if UART0 Scratch pad register is not empty - //OpenOCD can set this register with "mwb 0xE000C01C 0x01" to disable idle and power down mode - if(U0SCR) - return; - - /* only idle mode instead of power down when: - * * backlight on - * * IR transmission - * * RF is activated - * * sound is playing - * * I2C access - * * SYS_NOPDOWN in sysInfo is set - */ - if (bl_val != 0 || key_state != KEY_IDLE || - (RF.state > RFidle) || - (SID.flags & SIDenable) || sact || i2ccurrentjob || (sysInfo & SYS_NOPDOWN)) - { - if(sysInfo & SYS_NOIDLE) - return; - /* WARNING: no code reuse here: - * PCON = causes timing problems */ - EXTINT = 0x08; - PCON = PCON_IDLE; - PLLFEED = 0xAA; - PLLFEED = 0x55; - } - else - { - refresh_symbols(0xff); - EXTINT = 0x08; - sysInfo |= SYS_NOIDLE; - PCON = PCON_PDOWN; - PLLFEED = 0xAA; - PLLFEED = 0x55; - } -} // cpu_idle - -int main(void) -{ - sysInfo = SYS_NOIDLE; - - SCS |= 0x01; - FIODIR0 |= ((1<<21) | (1<<11) | (1<<6) | (1<<23) | (1<<19) | (1<<17)); - FIODIR0 |= (1<<12); - FIOSET0 |= (1<<12); - FIOCLR0 |= (1<<4); - - setSpeed(SPEED_30); - - lcd_init(0); - serial_init(); - - startTimerIRQ(); - startADC(); - - initKeys(); - - initSound(); - startSoundIRQ(); - - initIR(); - startIrIRQ(); - - RF_init(); - load_RF_setting(); - startRFIRQ(); - RF_changestate(RFwor); - - initI2C(); - initRTC(); - startRtcIRQ(); - - enableIRQ(); - - //testmenu_init(); - init_menu(); - - initBacklight(); - - oldkeys[0] = keys[0]; - oldkeys[1] = keys[0]; - - key_state = KEY_IDLE; - - set_font(BOLDFONT); - - BFS_Mount(); // flash file system - load_RC_setting(); // learned remote codes - load_setting(); // display settings - - - // recorded raw IR commands - { - struct RAWset_ RAWset; - unsigned char x; - unsigned long RAWcmdbase; - - RAWcmdbase = FLASH1_BASE +(secaddr[0]<<1); // data address - x=memcmp((void*)RAWcmdbase,"RC01",4); // check ID - - if(!x) // - { - memcpy(&RAWset,(void *)RAWcmdbase,sizeof(struct RAWset_)); - RAWset.name[7] = 0; - BFS_SaveFile(BFS_ID_RAWslot0, sizeof(struct RAWset_), (unsigned char*) &RAWset); - eraseSector(1,0); - } - } - - setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set); - - drawMainscreen(); - ask_for_time(0); - -/* - playSound((unsigned char*)sound1_data, sound1_len); - waitSound(); - playSound((unsigned char*)sound2_data, sound2_len); -*/ - - // main loop - while (1) - { - // detect keyboard action (keyboard matrix scanned by interrupt) - if(keys[0] != oldkeys[0] || keys[1] != oldkeys[1]) - { - oldkeys[0] = keys[0]; - oldkeys[1] = keys[1]; - sysInfo |= SYS_KEY; - } - - // determine keyboard actions on main screen - switch(key_state) - { - case KEY_IDLE: - if(sysInfo & SYS_KEY) - { - sysInfo &= ~SYS_KEY; - if(KEY_Betty) - { - setBacklight(BL_AUTO); // activate backlight - menu_exec(&mainMenu); // select menu - setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set); - drawMainscreen(); // draw new menu - while(KEY_Exit); // block until - } - //~ else if(KEY_2) - //~ { - //setSpeed(SPEED_30); - //~ } - //~ else if(KEY_3) - //~ { - //setSpeed(SPEED_60); - //~ } - else if(KEY_A || KEY_B || KEY_C || KEY_D) - { - // select encoder - unsigned char x; - //playSound((unsigned char*)sound3_data, sound3_len); - x=0; - if (KEY_B) x=1; - if (KEY_C) x=2; - if (KEY_D) x=3; - - if (setEncoder(irDevTab.device[x].encoder, irDevTab.device[x].set)) { - setBacklight(BL_AUTO); - irDevTab.active = x; - //~ drawMainscreen(); - drawSet(); - } - } - - // (last-minute detection of regular key?) - if((keys[0] != 0) || (keys[1] != 0)) - key_state = KEY_PRESS; - } - break; - - case KEY_PRESS: - irSend(getCode()); - key_state = KEY_HOLD; - if(!(T1TCR & 0x02)) - draw_symbol(90,0,7,(unsigned char*)symIR,LCD_COLOR_B,DRAW_PUT); -// autorepeat = 0; - break; - - case KEY_HOLD: -// if(autorepeat >= AUTO_TIMEOUT) - irRepeat(); - //draw_ir(90, 0, DRAW_XOR); - if(keys[0] == 0 && keys[1] == 0) - key_state = KEY_RELEASE; - - break; - - case KEY_RELEASE: - if(!(T1TCR & 0x02)) - draw_symbol(90,0,7,(unsigned char*)symIR,LCD_COLOR_B,DRAW_ERASE); - irStop(); - key_state = KEY_IDLE; - break; - } - - cpu_idle(); // let the LPC2200 sleep until the next IRQ - - // display time - if (timeInfo & TIMECHANGED) - { -#if FF_LARGE_IDLE_CLOCK - // time large, no date - printTime( 6, 20, (struct time_ *)&rtc.time, 1); -#else - // time and date small - printTime( 86, 152, (struct time_ *)&rtc.time, 0); - printDate( 0, 152, (struct date_ *)&rtc.date, 0); -#endif - timeInfo &= ~TIMECHANGED; // clear update flag - } - - } // while (1) - return 0; // never returns -} // main diff --git a/boop/trunk/rtc/Make.conf b/boop/trunk/rtc/Make.conf deleted file mode 100644 index 8293f8f..0000000 --- a/boop/trunk/rtc/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := rtc.c i2c.c rtctimer.c diff --git a/boop/trunk/rtc/i2c.c b/boop/trunk/rtc/i2c.c deleted file mode 100644 index 3aa1edd..0000000 --- a/boop/trunk/rtc/i2c.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - i2c.c - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "i2c.h" -#include "irq.h" -#include "rtc.h" -#include "global.h" - -volatile struct i2cjob_* volatile i2ccurrentjob; - -unsigned char i2c_jobexec(struct i2cjob_* job) { - - VICVectCntl3 &= ~VIC_SLOT_EN; - while(i2ccurrentjob); - i2ccurrentjob = job; - I2CONSET = STA; - while(i2ccurrentjob); - VICVectCntl3 |= VIC_SLOT_EN; - return 1; -} - -void i2cIRQ(void) { - unsigned char state; - - state = I2STAT; - i2ccurrentjob->buffer; - - switch(state) { - case 0x08: //A START condition has been transmitted - I2DAT = RTCslaveaddr | I2C_write; - I2CONSET = AA; - I2CONCLR = SI | STA; - i2ccurrentjob->pos = 0; - break; - case 0x18: //SLA+W has been transmitted; ACK has been received. - I2DAT = i2ccurrentjob->byteaddr; - I2CONSET = AA; - I2CONCLR = SI; - break; - case 0x28: //Data byte in I2DAT has been transmitted; ACK has been received. - switch(i2ccurrentjob->action) { - case I2C_read: - I2CONSET = STA; - I2CONCLR = AA | SI; - break; - case I2C_write: - if(i2ccurrentjob->len > i2ccurrentjob->pos) { - I2DAT = i2ccurrentjob->buffer[i2ccurrentjob->pos++]; - I2CONSET = AA; - I2CONCLR = SI; - } - else - i2ccurrentjob->action = I2C_done; - break; - default: - i2ccurrentjob->action = I2C_error; - } - break; - case 0x10: //A repeated START condition has been transmitted - I2DAT = RTCslaveaddr | I2C_read; - I2CONSET = AA; - I2CONCLR = SI | STA; - break; - case 0x40: //SLA+R has been transmitted; ACK has been received. - I2CONSET = AA; - I2CONCLR = SI; - break; - case 0x50: //Data byte has been received; ACK has been returned. - i2ccurrentjob->buffer[i2ccurrentjob->pos++] = I2DAT; - if(i2ccurrentjob->len > i2ccurrentjob->pos+1) - I2CONSET = AA; - else - I2CONCLR = AA; - I2CONCLR = SI; - break; - case 0x58: //Data byte has been received; NOT ACK has been returned. - i2ccurrentjob->buffer[i2ccurrentjob->pos] = I2DAT; - i2ccurrentjob->action = I2C_done; - break; - case 0x20: //SLA+W has been transmitted; NOT ACK has been received. - case 0x30: //Data byte in I2DAT has been transmitted; NOT ACK has been received. - if(i2ccurrentjob->pos) - i2ccurrentjob->pos--; - default: - i2ccurrentjob->action = I2C_error; - break; - } - - if((i2ccurrentjob->action == I2C_done) || (i2ccurrentjob->action == I2C_error)) { - I2CONSET = STO; - I2CONCLR = SI; - if(i2ccurrentjob->onfinish) { - struct i2cjob_* job; - job = (struct i2cjob_*)i2ccurrentjob; - i2ccurrentjob = 0; - job->onfinish(job); - } - else - i2ccurrentjob = 0; - } -} - -void initI2C(void) { - PINSEL0 |= (1<<4) | (1<<6); - I2SCLL = 19; - I2SCLH = 19; - - I2CONSET = I2EN; - i2ccurrentjob = 0; - - VICVectAddr4 = (unsigned long)&(i2cIRQ); - VICVectCntl4 = VIC_SLOT_EN | INT_SRC_I2C; - VICIntEnable = INT_I2C; -} - diff --git a/boop/trunk/rtc/i2c.h b/boop/trunk/rtc/i2c.h deleted file mode 100644 index 82f6932..0000000 --- a/boop/trunk/rtc/i2c.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - i2c.h - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef I2C_H -#define I2C_H - -#define AA 0x04 -#define SI 0x08 -#define STO 0x10 -#define STA 0x20 -#define I2EN 0x40 - -extern struct i2cjob_ dummyjob; - -typedef void(*i2c_fn)(struct i2cjob_*); - -struct i2cjob_ { - unsigned char* buffer; - i2c_fn onfinish; - unsigned char len; - unsigned char pos; - unsigned char byteaddr; - unsigned char action; -}; - -#define I2C_write 0 -#define I2C_read 1 -#define I2C_done 2 -#define I2C_error 3 - -volatile struct i2cjob_* volatile i2ccurrentjob; - -unsigned char i2c_jobexec(struct i2cjob_* job); -void initI2C(void); - -#endif diff --git a/boop/trunk/rtc/rtc.c b/boop/trunk/rtc/rtc.c deleted file mode 100644 index d176f96..0000000 --- a/boop/trunk/rtc/rtc.c +++ /dev/null @@ -1,432 +0,0 @@ -/* - rtc.c - - real-time clock PCF8563 by NXP Semiconductors - I2C Bus - Interrupt - - display date / time - set date / time - date calculations - settings menu - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "rtc.h" -#include "i2c.h" -#include "lcd.h" -#include "fonty.h" -#include "drawDigit.h" -#include "irq.h" -#include "adc.h" -#include "keyboard.h" -#include "rf.h" -#include "global.h" -#include "rtc.h" -#include "controls.h" -#include "timerfuncs.h" - -const unsigned long default_time[1] = {0x00000000}; -const unsigned char default_date[4] = {0x01, 0x02, 0x01, 0x08}; -const unsigned char months[36] = "JANFEBMRZAPRMAIJUNJULAUGSEPOKTNOVDEZ"; -const unsigned char days[14] = "SOMODIMIDOFRSA"; - -void initRTC (void) -{ - struct i2cjob_ job; - unsigned char buffer[4]; - - job.buffer = buffer; - job.onfinish = 0; - - //init rtc - job.len = 2; - job.byteaddr = RTCREG_CONTROL_STATUS_1; - job.buffer[0] = 0x08; - job.buffer[1] = 0x01; - do { - job.action = I2C_write; - i2c_jobexec(&job); - } while(!(job.action == I2C_done)); - - //init rtc alarm - job.len = 4; - job.byteaddr = RTCREG_MINUTE_ALARM;; - job.buffer[0] = (1<<7); - job.buffer[1] = (1<<7); - job.buffer[2] = (1<<7); - job.buffer[3] = (1<<7); - job.action = I2C_write; - i2c_jobexec(&job); - - //init rtc timer - job.len = 2; - job.byteaddr = RTCREG_TIMER_CONTROL; - job.buffer[0] = 0x82; - job.buffer[1] = 0x01; - job.action = I2C_write; - i2c_jobexec(&job); - - timeInfo =0; - - setTimeDate((struct time_*) default_time,(struct date_*) default_date); -} - -unsigned char getTimeDate (struct time_* t, struct date_ *d) -{ - struct i2cjob_ job; - unsigned char buffer[7]; - - job.buffer = buffer; - job.onfinish = 0; - job.len = 7; - job.byteaddr = RTCREG_SECOND; - job.action = I2C_read; - i2c_jobexec(&job); - - t->second = buffer[0] & 0x7F; - t->minute = buffer[1] & 0x7F; - t->hour = buffer[2] & 0x3F; - d->day = buffer[3] & 0x3F; - d->weekday = buffer[4] & 0x07; - d->month = buffer[5] & 0x1F; - d->year = buffer[6]; - - return buffer[0] & 0x80; /// \return VL - clock integrity. 0 is good. -} - -void setTimeDate (struct time_ *t, struct date_ *d) -{ - struct i2cjob_ job; - unsigned char buffer[7]; - - job.buffer = buffer; - job.onfinish = 0; - memcpy(job.buffer,(unsigned char *)t,3); - memcpy(job.buffer+3,(unsigned char *)d,4); - job.len = 7; - job.byteaddr = RTCREG_SECOND; - job.action = I2C_write; - i2c_jobexec(&job); - -} - -void printTime (unsigned char x, unsigned char y, struct time_* t, unsigned char format) -{ - if (format) - { - // 00:00 - unsigned char w = 25; - unsigned char h = 45; - - drawDigit (x+0, y, w, h, (t->hour >> 4) & 0x0F, 5, LCD_COLOR_B, DRAW_PUT); - drawDigit (x+w+2, y, w, h, t->hour & 0x0F, 5, LCD_COLOR_B, DRAW_PUT); - drawDigit (x+2*w +15, y, w, h, (t->minute >> 4) & 0x0F, 5, LCD_COLOR_B, DRAW_PUT); - drawDigit (x+3*w+2+15, y, w, h, t->minute & 0x0F, 5, LCD_COLOR_B, DRAW_PUT); - - draw_char (x+2*w+10, y+h/2, ':', LCD_COLOR_B, DRAW_PUT); - } - else - { - unsigned char f = activefont; - - set_font (SMALLFONT); - draw_block (x,y,42,7,LCD_COLOR_B,DRAW_ERASE); - draw_hexC (x+30,y,t->second, LCD_COLOR_B, DRAW_PUT); - draw_hexC (x+15,y,t->minute, LCD_COLOR_B, DRAW_PUT); - draw_hexC (x+0,y,t->hour, LCD_COLOR_B, DRAW_PUT); - draw_char (x+12,y,':', LCD_COLOR_B, DRAW_PUT); - draw_char (x+27,y,':', LCD_COLOR_B, DRAW_PUT); - set_font (f); - } -} - - -void printDate (unsigned char x, unsigned char y, struct date_* d, unsigned char format) -{ - unsigned char f; - char s[16]; - - f=activefont; - set_font(SMALLFONT); - - switch(format) { - case 1: - draw_block (x,y,80,7,LCD_COLOR_B,DRAW_ERASE); - s[ 0] = days[d->weekday * 2]; - s[ 1] = days[(d->weekday * 2) + 1]; - s[ 2] = ','; - s[ 3] = ' '; - s[ 4] = ((d->day & 0xf0)>>4) + 0x30; - s[ 5] = ((d->day & 0x0f)) + 0x30; - s[ 6] = '.'; - s[ 7] = ' '; - s[ 8] = months[(d->month - 1) * 3]; - s[ 9] = months[((d->month - 1) * 3)+1]; - s[10] = months[((d->month - 1) * 3)+2]; - s[11] = ' '; - s[12] = '2'; - s[13] = '0'; - s[14] = ((d->year & 0xf0)>>4) + 0x30; - s[15] = ((d->year & 0x0f)) + 0x30; - s[16] = 0; - draw_string (x, y, s, LCD_COLOR_B, DRAW_PUT); - break; - default: - draw_block(x,y,57,7,3,DRAW_ERASE); - draw_char (x+0,y,days[d->weekday * 2], LCD_COLOR_B, DRAW_PUT); - draw_char (x+6,y,days[ (d->weekday * 2) + 1], LCD_COLOR_B, DRAW_PUT); - draw_hexC (x+15,y,d->day, LCD_COLOR_B, DRAW_PUT); - draw_char (x+27,y,'.', LCD_COLOR_B, DRAW_PUT); - draw_hexC (x+30,y,d->month, LCD_COLOR_B, DRAW_PUT); - draw_char (x+42,y,'.', LCD_COLOR_B, DRAW_PUT); - draw_hexC (x+45,y,d->year, LCD_COLOR_B, DRAW_PUT); - } - - set_font(f); -} - -void rtcIRQreenable (struct i2cjob_* job) -{ - EXTINT |= (1<<2); - VICIntEnable = INT_EINT2; -} - -void rtcAckIRQ (struct i2cjob_* job) -{ - if (timeInfo & SETNEWTIME) { - rtcbuffer[1] = rtc.time.second; - rtcbuffer[2] = rtc.time.minute; - rtcbuffer[3] = rtc.time.hour; - rtcbuffer[4] = rtc.date.day; - rtcbuffer[5] = rtc.date.weekday; - rtcbuffer[6] = rtc.date.month; - rtcbuffer[7] = rtc.date.year; - i2cintjob.len = 8; - timeInfo &= ~SETNEWTIME; - timeInfo |= TIME_ACCURATE; // doesn't mean it's accurate, just that it was set - } - else { - rtc.time.second = job->buffer[1] & 0x7F; - rtc.time.minute = job->buffer[2] & 0x7F; - rtc.time.hour = job->buffer[3] & 0x3F; - rtc.date.day = job->buffer[4] & 0x3F; - rtc.date.weekday = job->buffer[5] & 0x07; - rtc.date.month = job->buffer[6] & 0x1F; - rtc.date.year = job->buffer[7]; - i2cintjob.len = 1; - } - - if(job->buffer[0] & ALARM_FLAG) - timeInfo |= ALARM_PENDING; - - timeInfo |= TIMECHANGED; - T0overflow = 0; - - i2cintjob.byteaddr = RTCREG_CONTROL_STATUS_2; - i2cintjob.buffer = rtcbuffer; - i2cintjob.buffer[0] = 0x01 | (timeInfo & ALARM_ENABLED); - i2cintjob.onfinish = rtcIRQreenable; - i2cintjob.action = I2C_write; - i2ccurrentjob = &i2cintjob; - I2CONSET = STA; - -} - -void rtcIRQ (void) -{ - EXTINT = (1<<2); - - i2cintjob.buffer = rtcbuffer; - i2cintjob.onfinish = rtcAckIRQ; - i2cintjob.len = 8; - i2cintjob.byteaddr = RTCREG_CONTROL_STATUS_2; - i2cintjob.action = I2C_read; - i2ccurrentjob = &i2cintjob; - I2CONSET = STA; - - if (!(PLLSTAT & (1<<8))) { - if ((rtc.time.second & 0x0f) == 9) - calcBat(0xff); - if ((rtc.time.second & 0x0f) == 0) - showBat(0xff); - } - - VICSoftIntClr = INT_EINT2; - VICIntEnClr = INT_EINT2; -} - -void startRtcIRQ (void) -{ - PINSEL0 |= (1<<31); - EXTWAKE |= (1<<2); - EXTINT |= (1<<2); - - VICVectAddr3 = (unsigned long)&(rtcIRQ); - VICVectCntl3 = VIC_SLOT_EN | INT_SRC_EINT2; - VICIntEnable = INT_EINT2; -} - -void calcBCD (unsigned char* value, char a, char max, char min) -{ - signed char x; - unsigned char y; - - x = (((*value & 0xf0)>>4) * 10 + (*value & 0x0f)) + a; - if (x > max) - x -= (1 + max - min); - if (x < min) - x += (1 + max - min); - y = x % 10; - y |= ((x-y) / 10)<<4; - *value = y; -} - -unsigned char checkBCD (unsigned char value, char max, char min) -{ - signed char x; - unsigned char y; - - x = (((value & 0xf0)>>4) * 10 + (value & 0x0f)); - if (x > max) - x = max; - if (x < min) - x = min; - y = x % 10; - y |= ((x-y) / 10)<<4; - return(y); -} - -void send_time (unsigned char dest, unsigned char wor) -{ - struct RFendpoint_* cur_ep; - - cur_ep = openEP((unsigned char*)&rtc,0, packet_time); - if (cur_ep) - { - cur_ep->dest = dest; - cur_ep->bufferlen = 7; - - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce; - if(wor) - cur_ep->flags |= EPsendwor; - RF_changestate(RFtx); - } -} - -void ask_for_time (unsigned char dest) -{ - struct RFendpoint_* cur_ep; - - cur_ep = openEP(0,0, packet_time); - if(cur_ep) - { - cur_ep->dest = dest; - cur_ep->data[0] = 0xFF; - cur_ep->bufferlen = 1; - - cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce | EPsendwor; - - RF_changestate(RFtx); - RF_timed_rx(400); - } -} - -void settime_click (FORM* form, CONTROL* control) -{ - VICIntEnClr = INT_EINT2; - rtc.date = ((DATEBOX*)(form->controls[0]))->date; - rtc.time = ((TIMEBOX*)(form->controls[1]))->time; - send_time(0,1); - setTimeDate((struct time_ *)&rtc.time, (struct date_ *)&rtc.date); - timeInfo |= TIME_ACCURATE; - VICIntEnable = INT_EINT2; - - form->flags |= BC_Form_exit; -} - - -// Settings > Clock menu -// -void change_clock (void) -{ - const LABEL label1 = {BC_Labelnotab,0,15,100,10,BOLDFONT,0,"Datum",0}; - DATEBOX datebox1 = {BC_Datebox,0,25,58,9,SMALLFONT,0,{0x00,0x00,0x00,0x00},NULL,NULL}; - const LABEL label2 = {BC_Labelnotab,0,37,100,10,BOLDFONT,0,"Uhrzeit",0}; - TIMEBOX timebox1 = {BC_Timebox,0,47,43,9,SMALLFONT,0,{0x00,0x00,0x00,0x00},NULL,NULL}; - const BUTTON button1 = {BC_Button,0,63,50,15,SMALLFONT,0,"Speichern",settime_click}; - - timebox1.time = rtc.time; - datebox1.date = rtc.date; - - CONTROL* controls[5] = { (CONTROL*)&datebox1, - (CONTROL*)&timebox1, - (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&button1}; - - FORM form = {"Datum & Uhrzeit"," ",0,0,0,0,controls,0,5,0,0}; - - form_exec(&form); -} - -/* Globale zur Verfügung stehenden Variablen: -//Variablen für die Zeit: -u08 dayofweek = 1, day = 1, month = 1; -u16 year = 2004; -u08 isschaltjahr; -*/ - -unsigned char isschaltjahr(unsigned int year) { - - if ( (((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0) ) - return 1; - else - return 0; -} - -void calcweekday(struct date_* d) { - - unsigned int tagdesjahres; - unsigned int jahrdiff; - unsigned int tempwochentag; - unsigned char day; - unsigned char month; - unsigned char year; - - day = (d->day >> 4)*10 + (d->day & 0x0f); - month = (d->month >> 4)*10 + (d->month & 0x0f); - year = 2000+(d->year >> 4)*10 + (d->year & 0x0f); - - tagdesjahres = 31*(month-1); - if (month > 2) tagdesjahres = tagdesjahres -3 +isschaltjahr(year); - if (month > 4) tagdesjahres--; - if (month > 6) tagdesjahres--; - if (month > 9) tagdesjahres--; - if (month > 11) tagdesjahres--; - tagdesjahres += day; - - jahrdiff = year -2000; - tempwochentag = jahrdiff + (jahrdiff-1) / 4 - (jahrdiff-1) / 100 + (jahrdiff-1) / 400 + tagdesjahres; - if (jahrdiff > 0) - tempwochentag++; - tempwochentag = (tempwochentag % 7)+3; - if (tempwochentag > 6) - tempwochentag -= 7; - d->weekday = tempwochentag; -} diff --git a/boop/trunk/rtc/rtc.h b/boop/trunk/rtc/rtc.h deleted file mode 100644 index 81a520e..0000000 --- a/boop/trunk/rtc/rtc.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - rtc.h - - Copyright (C) 2008 - - 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 3 of the License, 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, see . -*/ - -#ifndef RTC_H -#define RTC_H - -#include "i2c.h" - -#define RTCslaveaddr 0xA2 - -//PCF8563 registers -#define RTCREG_CONTROL_STATUS_1 0x00 -#define RTCREG_CONTROL_STATUS_2 0x01 -#define RTCREG_SECOND 0x02 -#define RTCREG_MINUTES 0x03 -#define RTCREG_HOURS 0x04 -#define RTCREG_DAYS 0x05 -#define RTCREG_WEEKDAYS 0x06 -#define RTCREG_MONTHS_CENTURY 0x07 -#define RTCREG_YEARS 0x08 -#define RTCREG_MINUTE_ALARM 0x09 -#define RTCREG_HOUR_ALARM 0x0A -#define RTCREG_DAY_ALARM 0x0B -#define RTCREG_WEEKDAY_ALARM 0x0C -#define RTCREG_CLKOUT_CONTROL 0x0D -#define RTCREG_TIMER_CONTROL 0x0E -#define RTCREG_TIMER 0x0F - -//RTCREG_CONTROL_STATUS_2 -#define TIMER_INT_EN (1<<0) -#define ALARM_INT_EN (1<<1) -#define TIMER_FLAG (1<<2) -#define ALARM_FLAG (1<<3) - -struct time_ -{ - unsigned char second; - unsigned char minute; - unsigned char hour; - unsigned char tag; -}; - -struct date_ -{ - unsigned char day; - unsigned char weekday; - unsigned char month; - unsigned char year; -}; - -struct rtc_ -{ - struct date_ date; - struct time_ time; -}; - -volatile struct rtc_ rtc; - -volatile unsigned char timeInfo; -#define TIMECHANGED (1<<0) -#define ALARM_ENABLED (1<<1) -#define SETNEWTIME (1<<2) -#define TIME_ACCURATE (1<<3) -#define ALARM_PENDING (1<<3) - - -struct i2cjob_ i2cintjob; -unsigned char rtcbuffer[8]; - -const unsigned char days[14]; - -void initRTC(void); -unsigned char getTimeDate(struct time_* t, struct date_ *d); -void setTimeDate(struct time_* t, struct date_ *d); -void printTime (unsigned char x, unsigned char y, struct time_* t, unsigned char format); -void printDate(unsigned char x, unsigned char y, struct date_* d, unsigned char format); -void rtcIRQ (void); -void startRtcIRQ(void); -void change_clock(void); -void calcweekday(struct date_* d); - -/// Send the time via RF packet @see RF_PACKET_TIME to dest -void send_time(unsigned char dest, unsigned char wor); - -/// Request to receive time via RF packet @see RF_PACKET_TIME from dest -void ask_for_time(unsigned char dest); - -void calcBCD(unsigned char* value, char a, char max, char min); -unsigned char checkBCD(unsigned char value, char max, char min); - -#endif diff --git a/boop/trunk/rtc/rtctimer.c b/boop/trunk/rtc/rtctimer.c deleted file mode 100644 index 1944f90..0000000 --- a/boop/trunk/rtc/rtctimer.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - rtctimer.c - real-time clock timer - Copyright (C) 2010 - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "rtc.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" -#include "global.h" -#include "controls.h" -#include "sid.h" - -void initRTCtimer (void) { - -} - - -void RTCtimer_timer (FORM* form) -{ - ((TIMEBOX*)(form->controls[0]))->time = rtc.time; - control_draw(form->controls[0],0); //redraw timebox1 - if(timeInfo & ALARM_PENDING) { - form->tag=9; - timeInfo &= ~ALARM_PENDING; - } - if(form->tag) { - if(form->tag & 0x01) beep(1); - form->tag--; - } -} - -void RTCsave_click(FORM* form, CONTROL* control) { - struct i2cjob_ job; - unsigned char buffer[4]; - - buffer[0] = ((TIMEBOX*)(form->controls[8]))->time.minute; - buffer[1] = ((TIMEBOX*)(form->controls[8]))->time.hour | (1<<7); - buffer[2] = (1<<7); - buffer[3] = (1<<7); - - job.buffer = buffer; - job.onfinish = 0; - job.len = 4; - job.byteaddr = RTCREG_MINUTE_ALARM; - job.action = I2C_write; - i2c_jobexec(&job); - - timeInfo |= ALARM_ENABLED; -} - -void RTCtimer_edit(void) { - - const char* listbox1items[] = {"Alarm","Tastendruck","Makro","Funktion"}; - const char* listbox2items[] = {"Stunde","Tag","Monat"}; - - TIMEBOX timebox1 = {BC_Timebox | BC_NoTabStop,85,151,43,8,SMALLFONT,0,{0x00,0x00,0x00,0x00},NULL,NULL}; - timebox1.time = rtc.time; - - const LABEL label1 = {BC_Labelnotab,0,20,70,9,BOLDFONT,0,"Timer",0}; - const LABEL label2 = {BC_Labelnotab,0,32,70,9,BOLDFONT,0,"Typ",0}; - const LABEL label3 = {BC_Labelnotab,0,44,70,9,BOLDFONT,0,"Wiederholung",0}; - const LABEL label4 = {BC_Labelnotab,0,56,70,9,BOLDFONT,0,"Alarmzeit",0}; - - NUMBOX numbox1 = {BC_Numbox,76,20,20,9,SMALLFONT,1,1,1,NULL,NULL}; - LISTBOX listbox1 = {BC_Listbox,76,32,50,10,SMALLFONT,0,1,(char**)listbox1items,NULL,NULL}; - LISTBOX listbox2 = {BC_Listbox,76,44,50,10,SMALLFONT,0,1,(char**)listbox2items,NULL,NULL}; - TIMEBOX timebox2 = {BC_Timebox,76,56,43,8,SMALLFONT,0,{0x00,0x00,0x00,0x00},NULL,NULL}; - - const BUTTON button1 = {BC_Button,0,80,60,15,SMALLFONT,0,"Speichern",RTCsave_click}; - - CONTROL* controls[] = { (CONTROL*)&timebox1, - (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&label3, - (CONTROL*)&label4, - (CONTROL*)&numbox1, - (CONTROL*)&listbox1, - (CONTROL*)&listbox2, - (CONTROL*)&timebox2, - (CONTROL*)&button1}; - - timebox2.time = rtc.time; - - FORM form = {"Timer bearbeiten","",NULL,NULL,RTCtimer_timer,0,controls,0,NUM_OF_ELEMENTS(controls),0,200}; - form_exec(&form); - - timeInfo &= ~ALARM_ENABLED; -} diff --git a/boop/trunk/rtc/rtctimer.h b/boop/trunk/rtc/rtctimer.h deleted file mode 100644 index 6bc0018..0000000 --- a/boop/trunk/rtc/rtctimer.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - rtctimer.h - real-time clock timer - Copyright (C) 2010 - - 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 3 of the License, 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, see . -*/ - -#ifndef RTCTIMER_H -#define RTCTIMER_H - -struct RTCtimer_ { - unsigned char flags; - unsigned char minute; - unsigned char hour; - unsigned char day; - unsigned char month; - unsigned char repeat; //!< repeat alarm: Bit0=So...Bit6=Sa - unsigned char arg[4]; //!< argument for timer execution -}; -#endif - -//RTCtimer_ flags -#define RTCTIMER_TYPEMASK 0x07 -#define RTCTIMER_ALARM 0x00 -#define RTCTIMER_KEY 0x01 -#define RTCTIMER_MACRO 0x02 -#define RTCTIMER_FUNCTION 0x03 -#define RTCTIMER_OBSOLETE (1<<6) -#define RTCTIMER_SLOTFREE (1<<7) - -void RTCtimer_edit(void); diff --git a/boop/trunk/serial/Make.conf b/boop/trunk/serial/Make.conf deleted file mode 100644 index e36a9e2..0000000 --- a/boop/trunk/serial/Make.conf +++ /dev/null @@ -1,2 +0,0 @@ -THUMBSRCS := serial.c redirector.c -SRCS := serirq.c diff --git a/boop/trunk/serial/redirector.c b/boop/trunk/serial/redirector.c deleted file mode 100644 index df263bd..0000000 --- a/boop/trunk/serial/redirector.c +++ /dev/null @@ -1,306 +0,0 @@ -/* - redirector.h - serial port redirector - Copyright (C) 2009 Telekatz - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "redirector.h" -#include "serial.h" -#include "buffer.h" -#include "global.h" -#include "controls.h" -#include "fonty.h" -#include "rf.h" -#include "timerfuncs.h" - -#define redirectorbuffersize 200 - -extern unsigned int is_drawing; - -struct redirector_ { - struct cBuffer_ incbuffer; - struct cBuffer_ outcbuffer; - struct RFendpoint_* dataout_ep; - struct RFendpoint_* datain_ep; - struct RFendpoint_* cmdout_ep; - struct RFendpoint_* cmdin_ep; - unsigned long lastlen; - unsigned char timeoutcnt; - unsigned char inbuffer[redirectorbuffersize]; - unsigned char outbuffer[redirectorbuffersize]; - unsigned char status; -}; - -const unsigned int listbrg[8] = { 1200,2400,4800,9600,14400,19200,28800,38400}; - -void redirector_start(FORM* form, struct redirector_* redirectorvars) { - - redirectorvars->dataout_ep->dest = ((NUMBOX*)(form->controls[3]))->value; - redirectorvars->lastlen = 0; - redirectorvars->timeoutcnt = 0; - - cBufferFlush(&redirectorvars->incbuffer); - cBufferFlush(&redirectorvars->outcbuffer); - uart0_incbuffer = &redirectorvars->incbuffer; - uart0_outcbuffer = &redirectorvars->outcbuffer; - - redirectorvars->dataout_ep->flags |= EPenabled; - redirectorvars->datain_ep->flags |= EPenabled; - - U0FCR |= (1<<7); // trigger level 1 - serial_setbrg (listbrg[((LISTBOX*)(form->controls[2]))->listindex]); - sysInfo |= SYS_NOPDOWN; - - form->controls[2]->type |= BC_NoTabStop; - form->controls[3]->type |= BC_NoTabStop; - form->controls[5]->type |= BC_Disabled; - form->controls[6]->type &= ~BC_Disabled; - form->sel = 6; - form->flags |= BC_Form_redraw; - -} - -void redirector_start_click(FORM* form, CONTROL* control) { - - volatile unsigned long timeout; - - struct redirector_* redirectorvars; - redirectorvars = (struct redirector_*)form->tag; - - RF_changestate(RFrx); - - redirectorvars->cmdout_ep->dest = ((NUMBOX*)(form->controls[3]))->value; - redirectorvars->cmdout_ep->data[0] = redir_SET; - redirectorvars->cmdout_ep->data[1] = ((LISTBOX*)(form->controls[2]))->listindex; - redirectorvars->cmdout_ep->bufferlen = 2; - redirectorvars->cmdout_ep->flags |= EPnewdata | EPsendwor; - redirectorvars->cmdin_ep->flags &= ~EPnewdata; - - RF_changestate(RFtx); - - addTimeout(&timeout, 200); - while(timeout && !(redirectorvars->cmdin_ep->flags & EPnewdata)); - removeTimeout(&timeout); - - if(!timeout) { - msgbox(30,BC_OKOnly | BC_DefaultButton1,"Fehler:\nZiel antwortet nicht"); - form_draw(form); - RF_changestate(RFwor); - return; - } - - redirectorvars->cmdout_ep->data[0] = redir_START; - redirectorvars->cmdout_ep->bufferlen = 1; - redirectorvars->cmdout_ep->flags |= EPnewdata; - redirectorvars->cmdin_ep->flags &= ~EPnewdata; - - RF_changestate(RFtx); - - addTimeout(&timeout, 200); - while(timeout && !(redirectorvars->cmdin_ep->flags & EPnewdata)); - removeTimeout(&timeout); - - if(!timeout) { - msgbox(30,BC_OKOnly | BC_DefaultButton1,"Fehler:\nZiel antwortet nicht"); - form->flags |= BC_Form_redraw; - RF_changestate(RFwor); - return; - } - - redirector_start(form, redirectorvars); - -} - - -void redirector_stop_click(FORM* form, CONTROL* control) { - - struct redirector_* redirectorvars; - redirectorvars = (struct redirector_*)form->tag; - - redirectorvars->cmdout_ep->dest = ((NUMBOX*)(form->controls[3]))->value; - redirectorvars->cmdout_ep->data[0] = redir_STOP; - redirectorvars->cmdout_ep->bufferlen = 1; - redirectorvars->cmdout_ep->flags |= EPnewdata; - - RF_changestate(RFtx); - - redirectorvars->dataout_ep->flags &= ~EPenabled; - redirectorvars->datain_ep->flags &= ~EPenabled; - - U0FCR &= ~((1<<6) | (1<<7)); // trigger level 0 - uart0_incbuffer = 0; - uart0_outcbuffer = 0; - serial_setbrg (DEFAULTBRG); - sysInfo &= ~SYS_NOPDOWN; - RF_changestate(RFwor); - - form->controls[2]->type &= ~BC_NoTabStop; - form->controls[3]->type &= ~BC_NoTabStop; - form->controls[5]->type &= ~BC_Disabled; - form->controls[6]->type |= BC_Disabled; - form->sel = 5; - form->flags |= BC_Form_redraw; - -} - -#define sendcount 59 -void redirector_timer(FORM* form) { - struct redirector_* redirectorvars; - redirectorvars = (struct redirector_*)form->tag; - - //((NUMBOX*)(form->controls[4]))->value = redirectorvars->outcbuffer.len; - //control_draw(form->controls[4],0); - - if(redirectorvars->incbuffer.len == redirectorvars->lastlen) { - if(redirectorvars->timeoutcnt) - redirectorvars->timeoutcnt--; - } - else { - redirectorvars->timeoutcnt = 2; - } - redirectorvars->lastlen = redirectorvars->incbuffer.len; - - - if(redirectorvars->dataout_ep && redirectorvars->incbuffer.len && !(redirectorvars->dataout_ep->flags & EPnewdata) && - ((redirectorvars->incbuffer.len >= sendcount) | !(redirectorvars->timeoutcnt))) { - - if(redirectorvars->incbuffer.len >= sendcount) - redirectorvars->dataout_ep->bufferlen = sendcount; - else - redirectorvars->dataout_ep->bufferlen = redirectorvars->incbuffer.len; - - redirectorvars->dataout_ep->flags |= EPnewdata; - RF_changestate(RFtx); - } - - if(redirectorvars->outcbuffer.len) { - if(!(U0IER & IER_THRE)) { - U0IER |= IER_THRE; - U0THR = cBufferGet(uart0_outcbuffer); - (((NUMBOX*)(form->controls[4]))->value)++; - control_draw(form->controls[4],0); - } - } - - if(redirectorvars->cmdin_ep->flags & EPnewdata) { - unsigned char ACK = 0; - switch (redirectorvars->cmdin_ep->data[0]) { - case redir_ACK: - break; - case redir_SET: - if (redirectorvars->cmdin_ep->bufferlen > 1) { - if(redirectorvars->cmdin_ep->data[1] <= baud_38400) { - ((LISTBOX*)(form->controls[2]))->listindex = redirectorvars->cmdin_ep->data[1]; - form->flags |= BC_Form_redraw; - } - ACK = 1; - } - break; - case redir_START: - ((NUMBOX*)(form->controls[3]))->value = redirectorvars->cmdin_ep->dest; - form->flags |= BC_Form_redraw; - /*redir_dest = RXframe->srcAddr; - setbaud(redir_baud); - redirector = 1; - ACK = 1;*/ - break; - case redir_STOP: - /*redirector = 0; - setbaud(baud_default); - ACK = 1;*/ - break; - case redir_PING: - ACK = 1; - break; - } - - redirectorvars->cmdin_ep->flags &= ~EPnewdata; - - if(ACK) { - redirectorvars->cmdout_ep->data[0] = redir_ACK; - redirectorvars->cmdout_ep->dest = redirectorvars->cmdin_ep->dest; - redirectorvars->cmdout_ep->bufferlen = 1; - redirectorvars->cmdout_ep->flags |= EPnewdata; - RF_changestate(RFtx); - } - } -} - - -void redirector_test(FORM* form, CONTROL* control) { - - if(uart0_incbuffer) { - cBufferAdd(uart0_incbuffer,'a'); - cBufferAdd(uart0_incbuffer,'b'); - cBufferAdd(uart0_incbuffer,'c'); - } -} - - -// menu (Tool>Redirector) -void uarto_redirector(void) { - - struct redirector_ redirectorvars; - - cBufferInit(&redirectorvars.incbuffer, redirectorvars.inbuffer, redirectorbuffersize); - cBufferInit(&redirectorvars.outcbuffer, redirectorvars.outbuffer, redirectorbuffersize); - - const char* listbox1items[8] = {"1200","2400","4800","9600","14400","19200","28800","38400"}; - - const LABEL label1 = {BC_Labelnotab,0,20,70,9,BOLDFONT,0,"Baud",0}; - const LABEL label2 = {BC_Labelnotab,0,32,70,9,BOLDFONT,0,"Zieladresse",0}; - LISTBOX listbox1 = {BC_Listbox,78,20,40,10,SMALLFONT,5,8,(char**)listbox1items,NULL,NULL}; - NUMBOX numbox1 = {BC_Numbox,78,32,20,9,SMALLFONT,1,0,255,NULL,NULL}; - NUMBOX numbox2 = {BC_Numbox | BC_NoTabStop,0,100,20,9,SMALLFONT,redirectorvars.outcbuffer.len,0,redirectorbuffersize,NULL,NULL}; - BUTTON button1 = {BC_Button,10,120,48,15,SMALLFONT,0,"Start",redirector_start_click}; - BUTTON button2 = {BC_Button | BC_Disabled,70,120,48,15,SMALLFONT,0,"Stop",redirector_stop_click}; - const BUTTON button3 = {BC_Button, 0,50,48,15,SMALLFONT,0,"test",redirector_test}; - - CONTROL* controls[8] = { (CONTROL*)&label1, - (CONTROL*)&label2, - (CONTROL*)&listbox1, - (CONTROL*)&numbox1, - (CONTROL*)&numbox2, - (CONTROL*)&button1, - (CONTROL*)&button2, - (CONTROL*)&button3}; - - FORM form = {"Com redirector","",NULL,NULL,redirector_timer,(unsigned long)&redirectorvars,controls,2,8,0,2}; - - redirectorvars.dataout_ep = openEP(&redirectorvars.incbuffer, 0, packet_redirDAT); - redirectorvars.datain_ep = openEP(&redirectorvars.outcbuffer, 0, packet_redirDAT); - redirectorvars.cmdout_ep = openEP(0, 0, packet_redirCMD); - redirectorvars.cmdin_ep = openEP(0, 0, packet_redirCMD); - - if(redirectorvars.dataout_ep && redirectorvars.datain_ep && redirectorvars.cmdout_ep && redirectorvars.cmdin_ep) { - redirectorvars.dataout_ep->flags |= EPoutput | EPtypecbuffer; - redirectorvars.datain_ep->flags |= EPinput | EPtypecbuffer; - redirectorvars.cmdout_ep->flags |= EPoutput | EPtypedata | EPenabled; - redirectorvars.cmdin_ep->flags |= EPinput | EPtypedata | EPenabled; - form_exec(&form); - } - else { - msgbox(30,BC_OKOnly | BC_DefaultButton1,"Fehler:\nKein freier RF Endpoint\nverfuegbar.\n"); - } - - redirector_stop_click(&form,form.controls[6]); - - closeEP(redirectorvars.datain_ep); - closeEP(redirectorvars.dataout_ep); - closeEP(redirectorvars.cmdin_ep); - closeEP(redirectorvars.cmdout_ep); - -} diff --git a/boop/trunk/serial/redirector.h b/boop/trunk/serial/redirector.h deleted file mode 100644 index 428fbe8..0000000 --- a/boop/trunk/serial/redirector.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - redirector.h - serial port redirector - Copyright (C) 2009 Telekatz - - 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 3 of the License, 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, see . -*/ - -#ifndef REDIRECTOR_H -#define REDIRECTOR_H - -#define redir_ACK 0 -#define redir_SET 1 -#define redir_START 2 -#define redir_STOP 3 -#define redir_PING 4 - -#define baud_1200 0 -#define baud_2400 1 -#define baud_4800 2 -#define baud_9600 3 -#define baud_14400 4 -#define baud_19200 5 -#define baud_28800 6 -#define baud_38400 7 -#define baud_57600 8 -#define baud_115200 9 - -void uarto_redirector(void); - -#endif diff --git a/boop/trunk/serial/serial.c b/boop/trunk/serial/serial.c deleted file mode 100644 index de8dc65..0000000 --- a/boop/trunk/serial/serial.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - * minor changes (c) 2007 ch.klippel - * - * (C) Copyright 2004 - * DAVE Srl - * http://www.dave-tech.it - * http://www.wawnet.biz - * mailto:info@wawnet.biz - * - * (C) Copyright 2002-2004 - * Wolfgang Denk, DENX Software Engineering, - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Marius Groeger - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH - * Alex Zuepke - * - * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) - * - * 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 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - - -#include "lpc2220.h" -#include "serial.h" -#include "irq.h" -#include "backlight.h" -#include "buffer.h" - -extern const char hval[16]; - -extern void uart0_irq(void); - -/* flush serial input queue. returns 0 on success or negative error - * number otherwise - */ -int serial_flush_input(void) -{ - volatile unsigned int tmp; - - /* keep on reading as long as the receiver is not empty */ - while(RX_DATA(U0LSR)) { - tmp = GET_CHAR(U0RBR); - } - - return 0; -} - - -/* flush output queue. returns 0 on success or negative error number - * otherwise - */ -int serial_flush_output(void) -{ - /* wait until the transmitter is no longer busy */ - while(TX_READY(U0LSR)==0) { - } - - return 0; -} - - -void serial_setbrg (unsigned int baudrate) -{ - - /* get correct divisor */ - /*for PCLK 15 Mhz */ - U0LCR = 0x83; - - switch(baudrate) { - - case 75: - U0DLL = 5; - U0DLM = 195; - U0FDR = (1 << 4) + 3; - break; - - case 150: - U0DLL = 5; - U0DLM = 195; - U0FDR = (1 << 4) + 1; - break; - - case 300: - U0DLL = 5; - U0DLM = 195; - U0FDR = (1 << 4) + 0; - break; - - case 600: - U0DLL = 2; - U0DLM = 78; - U0FDR = (4 << 4) + 1; - break; - - case 1200: - U0DLL = 1; - U0DLM = 39; - U0FDR = (4 << 4) + 1; - break; - - case 2400: - U0DLL = 186; - U0DLM = 0; - U0FDR = (10 << 4) + 11; - break; - - case 4800: - U0DLL = 93; - U0DLM = 0; - U0FDR = (10 << 4) + 11; - break; - - case 9600: - U0DLL = 71; - U0DLM = 0; - U0FDR = (8 << 4) + 3; - break; - - case 14400: - U0DLL = 31; - U0DLM = 0; - U0FDR = (10 << 4) + 11; - break; - - case 19200: - U0DLL = 38; - U0DLM = 0; - U0FDR = (14 << 4) + 4; - break; - - case 28800: - U0DLL = 24; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - - case 38400: - U0DLL = 19; - U0DLM = 0; - U0FDR = (14 << 4) + 4; - break; - - case 57600: - U0DLL = 12; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - - case 115200: - U0DLL = 6; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - - case 230400: - U0DLL = 3; - U0DLM = 0; - U0FDR = (14 << 4) + 5; - break; - } - U0LCR = 0x03; - - serial_flush_output(); - serial_flush_input(); -} - - -/* - * Initialise the serial port with the given baudrate. The settings - * are always 8 data bits, no parity, 1 stop bit, no start bits. - * - */ -int serial_init (void) -{ -// PINSEL0=0x05; // pin select -> tx, rx - serial_setbrg (DEFAULTBRG); -// serial_setbrg (57600); - U0FCR = 0x07; // enable fifo - uart0_incbuffer = 0; - uart0_outcbuffer = 0; - - // enable IRQ5 for UART0 - VICVectAddr5 = (unsigned long)&(uart0_irq); - VICVectCntl5 = VIC_SLOT_EN | INT_SRC_UART0; - VICIntEnable = INT_UART0; - U0IER = IER_RBR | IER_RXLS; - return (0); -} - - -/* - * Output a single byte to the serial port. - */ -void serial_putc (const char c) -{ - // proper CRLF transmission - if (c == '\n') - serial_putc('\r'); - - /* wait for room in the transmit FIFO */ - while(TX_READY(U0LSR)==0); - - PUT_CHAR(U0THR,c); -} - -void serial_putbyte (const char c) -{ - /* wait for room in the transmit FIFO */ - while(TX_READY(U0LSR)==0); - - PUT_CHAR(U0THR,c); -} -/* - * Read a single byte from the serial port. Returns 1 on success, 0 - * otherwise. When the function is succesfull, the character read is - * written into its argument c. - */ -int serial_tstc (void) -{ - return (RX_DATA(U0LSR)); -} - -/* - * Read a single byte from the serial port. Returns 1 on success, 0 - * otherwise. When the function is succesfull, the character read is - * written into its argument c. - */ -int serial_getc (void) -{ - int rv; - - for(;;) { - rv = serial_tstc(); - - if(rv > 0) - return (GET_CHAR(U0RBR)); - } -} - -void -serial_puts (const char *s) -{ - while (*s != 0) { - serial_putc (*s++); - } -} - -void putHexC(const unsigned char v) -{ - serial_putc(hval[v>>4]); - serial_putc(hval[v & 0x0F]); -} - -void putHexS(const unsigned short v) -{ - putHexC(v >> 8); - putHexC(v & 0xFF); -} - -void putHexW(const unsigned long v) -{ - putHexS(v >> 16); - putHexS(v & 0xFFFF); -} - -void serial_interactive(void) { - int ch = serial_getc(); - switch (ch) { - case '.': - serial_puts("Betty Boop ("__DATE__ " " __TIME__ ")\n"); - break; - case '0': - setBacklight(0x00); // pwm value - break; - case '1': - setBacklight(0x1F); // pwm value - break; - case '2': - setBacklight(0x3F); // pwm value - break; - default: - serial_putc(ch); - } -} diff --git a/boop/trunk/serial/serial.h b/boop/trunk/serial/serial.h deleted file mode 100644 index 292174f..0000000 --- a/boop/trunk/serial/serial.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - serial.h - serial port functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef BOOP_SERIAL_H -#define BOOP_SERIAL_H - -#define USRRxData (1 << 0) -#define USRTxHoldEmpty (1 << 6) - -#define IER_RBR 1 -#define IER_THRE 2 -#define IER_RXLS 4 - -#define IIR_RLS 0x06 -#define IIR_RDA 0x04 -#define IIR_CTI 0x0c -#define IIR_THRE 0x02 - -#define GET_CHAR(p) p -#define PUT_CHAR(p,c) (p= (unsigned )(c)) -#define TX_READY(s) ((s) & USRTxHoldEmpty) -#define RX_DATA(s) ((s) & USRRxData) - -#define DEFAULTBRG 115200 - -struct cBuffer_* uart0_incbuffer; -struct cBuffer_* uart0_outcbuffer; - -int serial_flush_input(void); -int serial_flush_output(void); -void serial_setbrg (unsigned int baudrate); -int serial_init (void); -void serial_putc (const char c); -void serial_putbyte (const char c); -int serial_tstc (void); -int serial_getc (void); -void serial_puts (const char *s); - -void putHexC(const unsigned char v); -void putHexS(const unsigned short v); -void putHexW(const unsigned long v); - -void serial_interactive(void); - -#endif /* BOOP_SERIAL_H */ diff --git a/boop/trunk/serial/serirq.c b/boop/trunk/serial/serirq.c deleted file mode 100644 index 8216acb..0000000 --- a/boop/trunk/serial/serirq.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - serirq.c - serial interrupr - Copyright (C) 2009 - - 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 3 of the License, 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, see . -*/ - -#include "backlight.h" -#include "lpc2220.h" -#include "serial.h" -#include "buffer.h" - -//volatile int uart0_active = 0; - -void uart0_irq(void) { - char st = U0IIR & 0x0f; - - // IRQ only valid when IIR_bit_0 == 0 - if (st & 1) - return; - - switch (st) { - case IIR_RLS: // Receive Line Status - putHexW(U0LSR); - serial_puts(" RLS?!\n"); - - break; - case IIR_RDA: // Receive Data Available - case IIR_CTI: // Character Time-out indication - if(uart0_incbuffer) { - while(U0LSR & (1 << 0)) { - cBufferAdd(uart0_incbuffer,U0RBR); - } - } - else { - setBacklight(BL_AUTO); - serial_interactive(); - } - break; - case IIR_THRE: - if(uart0_outcbuffer) { - if(uart0_outcbuffer->len) { - unsigned char x = 14; - while(x-- && uart0_outcbuffer->len) { - U0THR = cBufferGet(uart0_outcbuffer); - } - } - else { - U0IER &= ~IER_THRE; - } - } - else { - serial_puts("THRE?!\n"); - } - - } - -} - - diff --git a/boop/trunk/sound3.h b/boop/trunk/sound3.h deleted file mode 100644 index 01655d7..0000000 --- a/boop/trunk/sound3.h +++ /dev/null @@ -1,1571 +0,0 @@ -#define sound3_len 25060 -const unsigned char sound3_data[] = { -0x80,0x80,0x80,0x80, -0x7F,0x7F,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80, -0x7F,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81, -0x81,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x80, -0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x80, -0x80,0x80,0x80,0x80,0x81,0x81,0x82,0x81,0x81,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F, -0x7F,0x80,0x80,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7F,0x7F,0x7F,0x80,0x81,0x81, -0x81,0x81,0x80,0x7F,0x7F,0x7E,0x7E,0x7F,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81, -0x81,0x81,0x81,0x81,0x80,0x80,0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x81,0x81,0x80, -0x80,0x80,0x81,0x82,0x82,0x83,0x82,0x82,0x81,0x80,0x80,0x80,0x7F,0x7F,0x7F,0x7F, -0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x80,0x7F,0x7F,0x7F,0x80,0x80,0x81,0x81,0x81,0x81, -0x81,0x80,0x80,0x7F,0x7E,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x7F,0x7C,0x77,0x71,0x67, -0x5F,0x58,0x55,0x55,0x58,0x5B,0x5D,0x5D,0x5B,0x58,0x54,0x4D,0x42,0x38,0x3F,0x56, -0x6D,0x81,0x94,0xA6,0xB7,0xC1,0xC8,0xD0,0xDA,0xE3,0xE8,0xEA,0xE6,0xDE,0xD3,0xC5, -0xB7,0xAA,0x9F,0x9A,0x99,0x97,0x95,0x96,0x96,0x95,0x92,0x8F,0x8D,0x8E,0x8E,0x90, -0x8F,0x87,0x80,0x79,0x70,0x68,0x62,0x65,0x6B,0x6F,0x73,0x76,0x76,0x77,0x7B,0x7D, -0x77,0x72,0x6C,0x68,0x6B,0x72,0x7F,0x8A,0x8E,0x8C,0x83,0x6E,0x59,0x48,0x38,0x30, -0x2C,0x2B,0x2E,0x39,0x47,0x4E,0x54,0x5C,0x60,0x5E,0x58,0x56,0x5A,0x67,0x78,0x8D, -0xA2,0xB6,0xC1,0xC3,0xC0,0xBB,0xB2,0xAA,0xA1,0x93,0x89,0x85,0x83,0x80,0x81,0x84, -0x82,0x7D,0x72,0x63,0x55,0x48,0x40,0x3F,0x48,0x55,0x63,0x76,0x89,0x95,0x91,0x90, -0x89,0x83,0x7E,0x7B,0x7A,0x75,0x70,0x67,0x6D,0x75,0x7F,0x93,0xAB,0xB9,0xB6,0xAE, -0x9B,0x90,0x7B,0x6B,0x66,0x5F,0x5E,0x6A,0x76,0x7D,0x7F,0x82,0x85,0x7D,0x78,0x77, -0x82,0x89,0x99,0xAB,0xC3,0xC5,0xB3,0xA6,0xA0,0x93,0x85,0x8C,0x97,0x9F,0x9B,0x8A, -0x71,0x5C,0x53,0x57,0x62,0x77,0x88,0x9A,0xA6,0xAC,0xB0,0xB5,0xC5,0xD1,0xD6,0xCF, -0xCE,0xCE,0xC4,0xAE,0x97,0x81,0x71,0x65,0x5F,0x5D,0x5C,0x57,0x43,0x35,0x2C,0x27, -0x29,0x32,0x45,0x59,0x6B,0x76,0x75,0x74,0x78,0x7D,0x7D,0x77,0x71,0x73,0x78,0x70, -0x6A,0x63,0x55,0x4F,0x51,0x5B,0x57,0x54,0x60,0x6F,0x7A,0x8C,0xAB,0xCB,0xE5,0xEE, -0xD6,0xAD,0x84,0x6D,0x6F,0x7B,0x86,0x82,0x78,0x6C,0x5C,0x50,0x4E,0x53,0x59,0x6D, -0x74,0x7F,0x89,0x85,0x90,0x9F,0xB9,0xCA,0xCF,0xD3,0xD8,0xE1,0xE1,0xD2,0xB0,0x86, -0x6B,0x74,0x86,0x88,0x84,0x86,0x88,0x85,0x8C,0x98,0x97,0x95,0x93,0x92,0x8E,0x86, -0x87,0x8C,0x8D,0x8B,0x7E,0x6A,0x53,0x40,0x3C,0x3D,0x3C,0x48,0x5E,0x6F,0x7B,0x88, -0x8F,0x88,0x81,0x82,0x7D,0x72,0x6C,0x68,0x64,0x5B,0x56,0x5B,0x62,0x6A,0x6A,0x6F, -0x73,0x73,0x70,0x69,0x5F,0x5F,0x5C,0x54,0x57,0x5F,0x6B,0x77,0x86,0xA3,0xC9,0xDD, -0xD5,0xC9,0xC1,0xBA,0xB7,0xB6,0xB3,0xAA,0xA0,0x96,0x94,0x93,0x90,0x8A,0x87,0x7D, -0x71,0x67,0x5B,0x55,0x55,0x59,0x5B,0x5B,0x59,0x5F,0x79,0x8F,0x9B,0x9B,0x8F,0x86, -0x7E,0x7E,0x84,0x84,0x74,0x6B,0x6C,0x67,0x5D,0x54,0x51,0x5E,0x6E,0x6C,0x63,0x60, -0x67,0x73,0x7F,0x79,0x64,0x58,0x62,0x77,0x78,0x6B,0x63,0x5E,0x5C,0x5E,0x57,0x4F, -0x55,0x60,0x65,0x69,0x65,0x5D,0x60,0x6B,0x73,0x71,0x76,0x7F,0x8C,0x95,0x96,0x93, -0xA3,0xBE,0xC5,0xC4,0xCA,0xD6,0xD5,0xBC,0xAA,0x9F,0x97,0x9A,0xA4,0xA5,0xA6,0xAB, -0xAC,0xB1,0xB5,0xAC,0x9E,0x91,0x86,0x7E,0x83,0x8D,0x99,0xA7,0xAA,0xA4,0xA2,0x9E, -0x9D,0x9A,0x91,0x89,0x85,0x7B,0x73,0x79,0x83,0x81,0x72,0x68,0x62,0x5A,0x52,0x5A, -0x6E,0x86,0x98,0xA0,0xA3,0x9F,0x95,0x87,0x79,0x73,0x6D,0x68,0x66,0x68,0x69,0x6A, -0x6A,0x6D,0x6E,0x6C,0x6E,0x69,0x5F,0x59,0x5C,0x62,0x67,0x6B,0x6C,0x6C,0x6F,0x79, -0x80,0x7C,0x73,0x6D,0x68,0x68,0x6A,0x76,0x8C,0xA5,0xB6,0xBD,0xBD,0xB3,0xAB,0xAB, -0xAE,0xAF,0xB2,0xB3,0xA4,0x97,0x8D,0x81,0x76,0x69,0x62,0x63,0x60,0x58,0x4B,0x3B, -0x31,0x37,0x45,0x4E,0x56,0x5F,0x72,0x86,0x90,0x95,0x90,0x84,0x89,0x93,0x9B,0xA1, -0xA3,0xAA,0xA7,0xA0,0x96,0x96,0x97,0x91,0x96,0x99,0x99,0x95,0x8F,0x8C,0x89,0x8E, -0x94,0x8B,0x79,0x64,0x4B,0x37,0x2F,0x33,0x40,0x50,0x5E,0x69,0x63,0x57,0x53,0x50, -0x46,0x41,0x46,0x56,0x68,0x77,0x85,0x8F,0x92,0x9A,0xA2,0xA8,0xAC,0xB0,0xB1,0xB0, -0xB1,0xB7,0xB5,0xB0,0xAC,0xA5,0xA7,0xA8,0x9F,0x93,0x8A,0x87,0x8B,0x8A,0x85,0x7B, -0x6E,0x61,0x56,0x52,0x59,0x62,0x65,0x6B,0x77,0x81,0x7F,0x75,0x75,0x7E,0x86,0x8B, -0x8E,0x96,0x9E,0x9B,0x94,0x8F,0x89,0x92,0xA3,0xAE,0xB3,0xAD,0xA1,0x94,0x87,0x7B, -0x74,0x70,0x6C,0x69,0x61,0x55,0x48,0x47,0x52,0x63,0x71,0x73,0x75,0x77,0x7E,0x84, -0x7A,0x6E,0x70,0x77,0x7E,0x7C,0x79,0x7C,0x7C,0x79,0x75,0x70,0x71,0x76,0x7E,0x81, -0x84,0x85,0x7D,0x73,0x6F,0x75,0x81,0x84,0x88,0x88,0x7E,0x68,0x50,0x4F,0x60,0x72, -0x7D,0x84,0x80,0x6F,0x59,0x49,0x44,0x46,0x57,0x74,0x8B,0x91,0x8B,0x8A,0x8C,0x8B, -0x86,0x83,0x84,0x84,0x89,0x90,0x98,0xAA,0xBF,0xC9,0xCB,0xD1,0xCE,0xBD,0xAF,0xAC, -0xA8,0x9C,0x91,0x8A,0x88,0x8E,0x91,0x91,0x96,0xA2,0xAF,0xB3,0xAE,0x9D,0x86,0x73, -0x6C,0x6D,0x74,0x7F,0x7E,0x78,0x7E,0x89,0x8C,0x85,0x84,0x89,0x8B,0x8C,0x8A,0x81, -0x7D,0x85,0x8F,0x8E,0x87,0x8A,0x99,0xA7,0xAF,0xA9,0xA0,0x93,0x87,0x7D,0x76,0x76, -0x79,0x7E,0x7D,0x73,0x6B,0x67,0x6C,0x75,0x76,0x78,0x7A,0x7D,0x81,0x78,0x6B,0x66, -0x65,0x63,0x66,0x6B,0x6A,0x61,0x56,0x51,0x54,0x5F,0x69,0x75,0x82,0x8B,0x90,0x8C, -0x85,0x80,0x85,0x8C,0x8D,0x88,0x7B,0x67,0x57,0x4A,0x44,0x49,0x52,0x5A,0x65,0x6F, -0x70,0x71,0x6D,0x63,0x52,0x4A,0x45,0x42,0x49,0x55,0x66,0x75,0x7C,0x7D,0x78,0x73, -0x72,0x75,0x72,0x65,0x5F,0x64,0x71,0x7F,0x89,0x96,0xA6,0xB3,0xB4,0xB0,0xA9,0xA3, -0x9A,0x96,0x9A,0xA0,0xAB,0xB7,0xC0,0xC0,0xB9,0xA6,0x8E,0x7C,0x7A,0x7E,0x7C,0x79, -0x7A,0x79,0x75,0x71,0x78,0x83,0x87,0x86,0x7B,0x6B,0x67,0x6B,0x7A,0x91,0xA2,0xA7, -0xA9,0xAD,0xB0,0xB0,0xAE,0xA4,0x92,0x85,0x80,0x7F,0x7D,0x78,0x73,0x7F,0x98,0xA7, -0xA1,0x91,0x86,0x81,0x7B,0x6F,0x62,0x57,0x55,0x56,0x55,0x51,0x58,0x68,0x78,0x80, -0x80,0x7D,0x7B,0x80,0x89,0x92,0x8F,0x83,0x77,0x6F,0x6A,0x67,0x67,0x6C,0x6F,0x72, -0x73,0x73,0x78,0x80,0x82,0x7F,0x7A,0x7A,0x7F,0x86,0x92,0xA8,0xBD,0xC7,0xC7,0xC5, -0xC6,0xCB,0xC8,0xB8,0xA1,0x85,0x72,0x6C,0x6B,0x68,0x66,0x74,0x8E,0x9F,0xA5,0x9D, -0x88,0x6E,0x57,0x4E,0x51,0x5B,0x65,0x71,0x7B,0x80,0x76,0x65,0x5D,0x5D,0x61,0x5D, -0x52,0x4C,0x46,0x3C,0x3C,0x44,0x52,0x67,0x80,0x8F,0x90,0x87,0x80,0x7D,0x7A,0x7C, -0x81,0x83,0x7D,0x72,0x67,0x64,0x69,0x73,0x82,0x91,0xA1,0xAA,0xA4,0x91,0x7D,0x70, -0x69,0x6C,0x73,0x79,0x87,0x98,0xA6,0xB0,0xBB,0xD0,0xDE,0xDC,0xD8,0xD8,0xD1,0xBE, -0xA9,0x9E,0xA3,0xAE,0xAE,0xA2,0x8E,0x7B,0x74,0x78,0x7D,0x80,0x85,0x8A,0x8B,0x87, -0x7F,0x7E,0x83,0x87,0x83,0x76,0x6A,0x65,0x67,0x73,0x86,0x96,0x9F,0x9B,0x8C,0x7F, -0x75,0x6C,0x64,0x59,0x50,0x51,0x5A,0x64,0x68,0x66,0x68,0x74,0x84,0x8C,0x88,0x86, -0x86,0x7D,0x6D,0x64,0x5A,0x46,0x33,0x31,0x3B,0x41,0x3F,0x3A,0x3C,0x43,0x4F,0x5B, -0x61,0x61,0x69,0x74,0x78,0x7A,0x7A,0x7C,0x7F,0x7E,0x7E,0x83,0x8B,0x94,0x9B,0x9D, -0x92,0x88,0x89,0x89,0x80,0x76,0x74,0x7A,0x7E,0x80,0x83,0x88,0x8B,0x8F,0x98,0xA3, -0xAC,0xB0,0xA9,0x9D,0x97,0x99,0x96,0x8A,0x7A,0x78,0x7D,0x7D,0x77,0x73,0x7F,0x94, -0xA8,0xB1,0xAE,0xA9,0xA6,0x9D,0x8B,0x7D,0x72,0x6F,0x75,0x80,0x8B,0x90,0x90,0x84, -0x72,0x6B,0x74,0x79,0x76,0x7B,0x7D,0x72,0x6C,0x74,0x81,0x8A,0x8C,0x84,0x71,0x5F, -0x56,0x58,0x5C,0x59,0x51,0x4D,0x51,0x5F,0x6A,0x6B,0x73,0x86,0x93,0x98,0x98,0x96, -0x90,0x89,0x8B,0x9B,0xAC,0xB3,0xB5,0xB6,0xB9,0xB6,0xAE,0xA5,0x9F,0x9C,0xA0,0xA9, -0xAB,0xA4,0x9A,0x97,0x97,0x96,0x93,0x8F,0x88,0x7A,0x6D,0x65,0x68,0x74,0x7B,0x7D, -0x7A,0x76,0x78,0x83,0x92,0x9A,0x97,0x90,0x8B,0x8F,0x92,0x89,0x7D,0x79,0x77,0x6F, -0x65,0x5D,0x5E,0x6C,0x80,0x88,0x85,0x83,0x82,0x81,0x7C,0x77,0x74,0x77,0x7C,0x7F, -0x81,0x82,0x83,0x7C,0x6B,0x5B,0x56,0x5C,0x5F,0x5C,0x57,0x54,0x53,0x50,0x51,0x5D, -0x71,0x7D,0x83,0x87,0x86,0x84,0x85,0x8C,0x9B,0xA7,0xA2,0x92,0x88,0x88,0x8C,0x96, -0xA1,0xA3,0x98,0x89,0x7F,0x78,0x70,0x6C,0x72,0x7B,0x7A,0x73,0x6E,0x6E,0x74,0x78, -0x7A,0x7D,0x81,0x81,0x74,0x63,0x59,0x5B,0x65,0x6D,0x72,0x75,0x77,0x7A,0x81,0x83, -0x86,0x8C,0x84,0x76,0x6D,0x70,0x7C,0x88,0x8A,0x86,0x87,0x8D,0x8A,0x8A,0x96,0xA0, -0x98,0x8A,0x88,0x94,0x9F,0x9F,0x99,0x8E,0x84,0x81,0x7C,0x7B,0x80,0x82,0x7F,0x7A, -0x75,0x72,0x77,0x84,0x92,0x9B,0x9C,0x93,0x85,0x7A,0x78,0x84,0x94,0x9C,0x9A,0x8E, -0x84,0x87,0x8C,0x87,0x76,0x62,0x4E,0x41,0x43,0x56,0x6D,0x75,0x73,0x6F,0x76,0x84, -0x8C,0x8C,0x8B,0x87,0x81,0x7B,0x79,0x7E,0x7F,0x7B,0x74,0x74,0x7E,0x8B,0x92,0x93, -0x83,0x6F,0x67,0x65,0x61,0x5C,0x5A,0x5C,0x62,0x68,0x6B,0x6F,0x6D,0x63,0x5F,0x68, -0x74,0x7B,0x7D,0x7C,0x87,0x9C,0xAA,0xAA,0x9F,0x99,0xA3,0xA8,0xA5,0xA5,0xA3,0xA0, -0xA0,0x9E,0x9F,0xA7,0xA9,0xA4,0x9A,0x90,0x8D,0x8E,0x8A,0x85,0x81,0x7D,0x7A,0x76, -0x76,0x7C,0x86,0x8C,0x89,0x85,0x7E,0x76,0x70,0x6B,0x6B,0x71,0x74,0x6E,0x66,0x69, -0x79,0x8D,0x9B,0xA1,0x9D,0x96,0x93,0x92,0x8F,0x8E,0x8E,0x8C,0x86,0x81,0x83,0x85, -0x80,0x7B,0x7E,0x82,0x80,0x7F,0x81,0x81,0x7C,0x7D,0x7E,0x79,0x7A,0x7B,0x74,0x6D, -0x6B,0x73,0x80,0x92,0x9A,0x90,0x89,0x89,0x85,0x79,0x67,0x5B,0x63,0x75,0x7F,0x7B, -0x72,0x6E,0x76,0x80,0x88,0x8C,0x91,0x97,0x97,0x97,0x99,0x93,0x83,0x74,0x71,0x70, -0x6D,0x66,0x62,0x64,0x70,0x84,0x98,0xA2,0xA0,0x9C,0x97,0x91,0x8B,0x84,0x7E,0x7A, -0x72,0x67,0x65,0x76,0x8B,0x8F,0x87,0x82,0x86,0x8B,0x86,0x75,0x66,0x6A,0x75,0x7D, -0x83,0x85,0x85,0x89,0x90,0x90,0x85,0x74,0x62,0x50,0x42,0x46,0x5D,0x6D,0x6E,0x72, -0x81,0x8F,0x91,0x8B,0x84,0x7E,0x76,0x7A,0x8A,0x92,0x8C,0x87,0x8B,0x8F,0x8B,0x80, -0x75,0x6D,0x61,0x54,0x4D,0x53,0x5C,0x5D,0x55,0x46,0x40,0x4B,0x5B,0x67,0x6E,0x70, -0x6F,0x72,0x7C,0x85,0x81,0x75,0x70,0x77,0x86,0x91,0x93,0x96,0x9A,0x9D,0xA4,0xAE, -0xB8,0xB3,0xA2,0x94,0x8C,0x82,0x7C,0x81,0x8E,0x9A,0x9B,0x9B,0xA6,0xB0,0xAE,0x9E, -0x8D,0x85,0x7D,0x71,0x76,0x8E,0xA1,0xA5,0x9F,0x99,0x91,0x86,0x86,0x89,0x88,0x77, -0x64,0x61,0x6D,0x7C,0x87,0x8D,0x8A,0x80,0x76,0x70,0x74,0x83,0x8D,0x89,0x7E,0x7C, -0x79,0x73,0x75,0x7F,0x7D,0x6C,0x5C,0x63,0x79,0x81,0x7E,0x7B,0x73,0x6E,0x69,0x60, -0x60,0x6A,0x70,0x77,0x84,0x94,0x9C,0x95,0x8C,0x87,0x85,0x8D,0x91,0x8F,0x8E,0x8C, -0x8D,0x93,0x9F,0xAC,0xB1,0xA5,0x91,0x87,0x88,0x89,0x87,0x82,0x7B,0x7B,0x80,0x85, -0x92,0xA7,0xB1,0xAF,0xAB,0xA5,0xA0,0x99,0x88,0x72,0x60,0x52,0x52,0x64,0x7B,0x8B, -0x97,0x9D,0x97,0x82,0x6E,0x6A,0x73,0x74,0x69,0x62,0x65,0x68,0x63,0x62,0x6E,0x82, -0x95,0x90,0x7E,0x78,0x80,0x80,0x6D,0x5F,0x65,0x77,0x83,0x84,0x8B,0x95,0x98,0x9E, -0xA6,0x9F,0x90,0x8E,0x89,0x75,0x61,0x55,0x53,0x56,0x5B,0x63,0x6D,0x7B,0x7E,0x73, -0x66,0x5D,0x58,0x55,0x55,0x56,0x50,0x4D,0x5E,0x7B,0x96,0xA8,0xA8,0x99,0x88,0x7B, -0x79,0x84,0x8A,0x8C,0x94,0x9B,0x93,0x86,0x85,0x8A,0x93,0x95,0x85,0x73,0x6B,0x66, -0x64,0x69,0x69,0x6A,0x71,0x71,0x73,0x7E,0x8D,0x98,0x94,0x8A,0x8E,0x9A,0x9C,0x94, -0x90,0x8C,0x87,0x82,0x7C,0x77,0x79,0x85,0x99,0xA2,0x97,0x8A,0x83,0x82,0x89,0x89, -0x81,0x84,0x90,0x8E,0x82,0x7F,0x81,0x78,0x68,0x5E,0x5F,0x5D,0x5A,0x5E,0x5C,0x56, -0x51,0x56,0x62,0x74,0x83,0x85,0x87,0x8B,0x8C,0x8E,0x94,0x95,0x8C,0x88,0x94,0xAC, -0xBC,0xBC,0xBC,0xBE,0xB5,0xAB,0x9F,0x91,0x84,0x7B,0x70,0x6F,0x78,0x7E,0x79,0x78, -0x78,0x69,0x59,0x51,0x45,0x3A,0x33,0x31,0x36,0x3E,0x47,0x53,0x62,0x69,0x68,0x67, -0x6F,0x7E,0x88,0x8E,0x92,0x9A,0xA9,0xB9,0xBE,0xBF,0xC1,0xBF,0xBB,0xB0,0xA1,0x9A, -0x9E,0xA5,0xA8,0xA9,0xA4,0x99,0x8B,0x7F,0x78,0x6A,0x5F,0x60,0x61,0x62,0x6A,0x6E, -0x6D,0x70,0x76,0x7C,0x81,0x91,0x9D,0x9A,0x92,0x86,0x80,0x82,0x87,0x8A,0x94,0xA4, -0xAD,0xAD,0xA7,0xA7,0xAF,0xAC,0xA4,0x97,0x82,0x7F,0x8C,0x98,0xA3,0xA2,0x8D,0x7A, -0x75,0x70,0x66,0x60,0x63,0x65,0x64,0x61,0x63,0x65,0x63,0x5E,0x58,0x58,0x5A,0x56, -0x58,0x67,0x78,0x81,0x7D,0x7F,0x8B,0x91,0x8B,0x83,0x83,0x84,0x82,0x85,0x8E,0x91, -0x8A,0x85,0x7B,0x6B,0x6F,0x81,0x95,0xA5,0xA8,0x9B,0x93,0x97,0x96,0x8F,0x91,0x97, -0x8F,0x75,0x5A,0x58,0x65,0x71,0x79,0x80,0x82,0x7D,0x78,0x75,0x70,0x69,0x62,0x61, -0x64,0x62,0x64,0x6F,0x80,0x8F,0x9D,0xAD,0xB5,0xAE,0x98,0x7D,0x73,0x72,0x70,0x6C, -0x69,0x6C,0x6F,0x6E,0x6C,0x6B,0x68,0x69,0x69,0x64,0x5B,0x4E,0x46,0x47,0x54,0x63, -0x6D,0x6F,0x71,0x72,0x70,0x74,0x77,0x75,0x71,0x68,0x65,0x73,0x89,0x96,0x9B,0xA0, -0xA8,0xA8,0xA8,0xAA,0xA9,0xA2,0x99,0x90,0x8D,0x8D,0x8E,0x8E,0x90,0x89,0x7D,0x75, -0x6C,0x6F,0x7B,0x7B,0x73,0x73,0x77,0x7B,0x78,0x6F,0x6A,0x6A,0x67,0x6D,0x7B,0x7A, -0x7B,0x84,0x89,0x86,0x80,0x85,0x8B,0x87,0x83,0x7F,0x7C,0x87,0x96,0xA8,0xBF,0xC7, -0xBD,0xBD,0xCB,0xC6,0xAE,0x93,0x82,0x78,0x73,0x75,0x7D,0x86,0x82,0x70,0x5D,0x60, -0x73,0x81,0x85,0x82,0x73,0x66,0x6C,0x7F,0x8D,0x8C,0x82,0x76,0x69,0x60,0x5E,0x5E, -0x60,0x63,0x69,0x77,0x83,0x87,0x95,0x9D,0x9C,0xA3,0xA5,0x9A,0x93,0x99,0x9D,0x9E, -0x9E,0x9E,0x9D,0x95,0x8A,0x7A,0x72,0x77,0x7B,0x84,0x95,0x92,0x83,0x81,0x87,0x8B, -0x88,0x7E,0x74,0x69,0x5B,0x5D,0x6A,0x6E,0x6C,0x69,0x69,0x6C,0x6F,0x72,0x6E,0x64, -0x66,0x73,0x89,0xA0,0xAF,0xB9,0xC1,0xB4,0x9D,0x95,0x96,0x8B,0x84,0x83,0x73,0x59, -0x54,0x6E,0x8D,0x9C,0x95,0x7D,0x69,0x69,0x73,0x6A,0x5F,0x6A,0x79,0x7F,0x7B,0x7B, -0x7F,0x87,0x88,0x83,0x7C,0x74,0x6D,0x71,0x78,0x7B,0x78,0x7D,0x89,0x8F,0x8A,0x7A, -0x70,0x6B,0x6A,0x73,0x7A,0x7A,0x81,0x8D,0x8F,0x91,0x94,0x90,0x88,0x7D,0x73,0x72, -0x74,0x7A,0x82,0x81,0x82,0x89,0x89,0x80,0x79,0x71,0x6D,0x74,0x84,0x8D,0x85,0x74, -0x6C,0x68,0x65,0x63,0x5D,0x5B,0x64,0x66,0x5F,0x67,0x78,0x8A,0x9A,0xA2,0x9E,0x92, -0x8B,0x8E,0x96,0x99,0xA0,0xAE,0xB0,0xA5,0x91,0x84,0x77,0x67,0x5F,0x60,0x5F,0x58, -0x4A,0x41,0x4B,0x55,0x65,0x7B,0x7E,0x7E,0x84,0x8B,0x89,0x82,0x7C,0x78,0x79,0x7D, -0x80,0x86,0x89,0x8C,0x90,0x8D,0x89,0x8E,0x95,0x92,0x8B,0x86,0x8B,0x96,0x99,0x97, -0x93,0x93,0x9A,0xA3,0x9E,0x87,0x73,0x67,0x6A,0x6B,0x66,0x64,0x65,0x6B,0x74,0x7A, -0x78,0x72,0x6B,0x68,0x6E,0x75,0x72,0x69,0x6C,0x7D,0x83,0x79,0x6D,0x72,0x7F,0x85, -0x8E,0x9A,0xA6,0xAF,0xAE,0xA8,0xA1,0x97,0x91,0x9A,0xA5,0xA3,0x9E,0x9D,0x9B,0x96, -0x8D,0x87,0x8C,0x8F,0x7E,0x6C,0x6E,0x74,0x81,0x94,0x9D,0x93,0x83,0x7E,0x86,0x8D, -0x86,0x7A,0x73,0x6F,0x69,0x65,0x63,0x62,0x64,0x67,0x67,0x6D,0x79,0x7D,0x7B,0x81, -0x8D,0x96,0x9B,0xA1,0xA2,0xA0,0x9F,0xA7,0xB0,0xAF,0xA8,0x9D,0x95,0x8F,0x8D,0x8B, -0x8A,0x8F,0x92,0x83,0x6F,0x6B,0x73,0x77,0x77,0x71,0x65,0x57,0x4F,0x54,0x5B,0x5E, -0x5F,0x5A,0x59,0x62,0x6E,0x7A,0x7F,0x83,0x86,0x83,0x82,0x7A,0x6D,0x6D,0x7A,0x8F, -0xA5,0xB6,0xAF,0x97,0x8D,0x93,0x9B,0xA6,0x9E,0x88,0x7E,0x79,0x70,0x68,0x66,0x70, -0x84,0x99,0xA1,0x9A,0x90,0x87,0x7A,0x69,0x56,0x43,0x34,0x31,0x3C,0x4F,0x64,0x76, -0x7E,0x82,0x86,0x87,0x85,0x81,0x78,0x74,0x80,0x91,0x95,0x9A,0xA5,0xA1,0x92,0x87, -0x8C,0x94,0x8D,0x89,0x8B,0x88,0x84,0x7D,0x71,0x6A,0x5D,0x58,0x60,0x67,0x6D,0x73, -0x79,0x81,0x82,0x7C,0x71,0x6A,0x67,0x64,0x62,0x67,0x74,0x84,0x8F,0x96,0xA0,0xA9, -0xAF,0xB1,0xB4,0xB1,0x9D,0x8D,0x88,0x8A,0x8E,0x91,0x98,0xA2,0x9F,0x92,0x86,0x72, -0x60,0x56,0x48,0x3E,0x3C,0x3A,0x3B,0x3E,0x47,0x55,0x61,0x6D,0x74,0x7A,0x79,0x73, -0x78,0x83,0x80,0x6C,0x66,0x76,0x8C,0x9A,0xA6,0xB1,0xB4,0xB3,0xAA,0x9B,0x91,0x8D, -0x90,0x91,0x95,0xA0,0xAA,0xB7,0xBC,0xB5,0xA5,0x8D,0x72,0x61,0x62,0x64,0x61,0x63, -0x69,0x6C,0x6D,0x6D,0x73,0x74,0x6B,0x64,0x5E,0x57,0x5C,0x6B,0x79,0x86,0x92,0x9D, -0x99,0x92,0x9A,0xA5,0xAF,0xAB,0xA4,0xA5,0x9D,0x8E,0x88,0x92,0xA0,0x98,0x86,0x89, -0x95,0xA3,0xB4,0xB7,0xAA,0x9D,0x90,0x83,0x7C,0x74,0x64,0x54,0x5D,0x69,0x61,0x51, -0x4F,0x54,0x55,0x57,0x60,0x62,0x5E,0x63,0x6D,0x74,0x7A,0x7F,0x83,0x8B,0x9D,0xB2, -0xBD,0xBE,0xB9,0xB3,0xAA,0x9B,0x8F,0x8E,0x98,0x92,0x85,0x87,0x93,0xAA,0xB5,0xB8, -0xB5,0x9E,0x7F,0x70,0x6F,0x68,0x57,0x4A,0x4E,0x59,0x61,0x6C,0x74,0x74,0x6F,0x62, -0x5E,0x61,0x5D,0x56,0x58,0x6C,0x87,0x8F,0x90,0x91,0x89,0x83,0x8D,0x90,0x86,0x83, -0x8D,0x9A,0x8C,0x6C,0x60,0x75,0x92,0x98,0x90,0x89,0x78,0x6C,0x72,0x78,0x76,0x72, -0x65,0x5A,0x57,0x58,0x5B,0x67,0x72,0x6D,0x61,0x63,0x6D,0x71,0x6B,0x65,0x6E,0x79, -0x76,0x73,0x7A,0x84,0x88,0x83,0x8A,0x9D,0xAB,0xA6,0x8C,0x7D,0x87,0x91,0x95,0xA0, -0xA9,0xA1,0x96,0x8D,0x8F,0xA0,0xAC,0xA3,0x8A,0x73,0x6F,0x74,0x70,0x5B,0x49,0x49, -0x60,0x79,0x84,0x7D,0x73,0x78,0x7B,0x81,0x87,0x78,0x66,0x67,0x6D,0x6D,0x71,0x7E, -0x86,0x8B,0x95,0xA5,0xAD,0xAF,0xA8,0x99,0x8D,0x83,0x80,0x83,0x7E,0x7C,0x7E,0x7B, -0x75,0x71,0x71,0x71,0x69,0x62,0x6B,0x76,0x79,0x72,0x6A,0x74,0x7B,0x79,0x7B,0x85, -0x99,0xA3,0xA0,0x99,0x8F,0x8C,0x8A,0x89,0x87,0x7D,0x78,0x7F,0x88,0x95,0x9E,0x9A, -0x91,0x91,0x95,0x99,0x91,0x82,0x86,0x82,0x76,0x76,0x81,0x8A,0x87,0x7B,0x7C,0x7B, -0x6B,0x65,0x6F,0x72,0x77,0x7F,0x6C,0x54,0x5C,0x78,0x81,0x76,0x76,0x79,0x71,0x6A, -0x6D,0x79,0x81,0x77,0x75,0x8C,0x9B,0x99,0x9D,0xA7,0xA8,0xA4,0xA0,0xA1,0x9E,0x8B, -0x6F,0x63,0x6C,0x74,0x77,0x72,0x66,0x67,0x6E,0x73,0x7A,0x80,0x81,0x75,0x71,0x85, -0x88,0x77,0x73,0x7E,0x82,0x82,0x83,0x7E,0x8C,0x9D,0x9A,0xA2,0xA6,0x9D,0x96,0x90, -0x8B,0x8B,0x92,0x91,0x8F,0x9C,0xA6,0xAA,0xAB,0xA8,0x9F,0x93,0x83,0x70,0x64,0x60, -0x65,0x74,0x81,0x80,0x7C,0x7D,0x7B,0x80,0x7C,0x78,0x82,0x89,0x80,0x6B,0x62,0x72, -0x7E,0x82,0x83,0x7B,0x6E,0x6E,0x77,0x83,0x8A,0x8E,0x87,0x79,0x7C,0x89,0x89,0x83, -0x79,0x6C,0x61,0x64,0x72,0x7E,0x8C,0x92,0x82,0x6A,0x5F,0x64,0x6C,0x70,0x64,0x57, -0x63,0x76,0x85,0x91,0x93,0x7F,0x70,0x75,0x78,0x7C,0x81,0x7D,0x7C,0x80,0x7F,0x90, -0xA3,0xA0,0x98,0x99,0x95,0x86,0x7F,0x77,0x69,0x5F,0x61,0x69,0x6F,0x72,0x75,0x7A, -0x7E,0x74,0x69,0x6A,0x6B,0x70,0x7E,0x82,0x73,0x6F,0x84,0x9D,0xAA,0xAD,0xAA,0xA0, -0x96,0x88,0x75,0x6C,0x6A,0x5D,0x5B,0x64,0x72,0x7D,0x7F,0x78,0x75,0x77,0x70,0x68, -0x6D,0x73,0x73,0x73,0x70,0x79,0x81,0x7F,0x7E,0x88,0x91,0x89,0x7C,0x87,0x91,0x82, -0x74,0x7D,0x8D,0x92,0x8B,0x94,0x9E,0x9D,0x9B,0x9B,0xAC,0xB0,0x90,0x7A,0x86,0x8B, -0x84,0x7C,0x65,0x54,0x57,0x62,0x70,0x7D,0x81,0x78,0x72,0x6C,0x6B,0x6E,0x71,0x75, -0x76,0x6C,0x69,0x72,0x7A,0x8C,0xA0,0xAF,0xAF,0x9A,0x8F,0x89,0x7F,0x7A,0x7F,0x84, -0x83,0x82,0x80,0x80,0x8C,0xA3,0xB9,0xC5,0xC2,0xAE,0xA3,0xA5,0x99,0x8C,0x8F,0x8B, -0x8C,0x98,0x97,0x8B,0x86,0x81,0x6D,0x68,0x6F,0x72,0x6E,0x62,0x60,0x6E,0x74,0x7B, -0x84,0x7E,0x7B,0x89,0x97,0x96,0x90,0x87,0x84,0x89,0x83,0x7B,0x7A,0x71,0x74,0x7E, -0x7F,0x86,0x90,0x9B,0x9D,0x8F,0x8B,0x8E,0x94,0x92,0x7F,0x72,0x72,0x75,0x6F,0x6B, -0x77,0x7B,0x64,0x57,0x62,0x60,0x57,0x52,0x53,0x60,0x5D,0x51,0x59,0x60,0x5D,0x70, -0x80,0x7C,0x72,0x74,0x6E,0x5D,0x64,0x6E,0x70,0x81,0x93,0x97,0x93,0x96,0xA1,0xA9, -0xAB,0xA5,0xAB,0xAF,0x9E,0x96,0x93,0x86,0x7E,0x82,0x87,0x84,0x7C,0x7F,0x80,0x81, -0x86,0x82,0x76,0x77,0x7E,0x7B,0x73,0x71,0x70,0x72,0x7A,0x7C,0x8B,0x9A,0x9B,0x92, -0x86,0x86,0x8C,0x8C,0x8B,0x8E,0x91,0x90,0x99,0xA0,0x92,0x7C,0x81,0x93,0x95,0x88, -0x7A,0x7A,0x7A,0x73,0x6A,0x66,0x68,0x6C,0x72,0x6C,0x67,0x6B,0x71,0x86,0x98,0x87, -0x6B,0x6F,0x85,0x8C,0x87,0x76,0x66,0x6D,0x6D,0x6A,0x7A,0x82,0x7D,0x79,0x74,0x6C, -0x69,0x69,0x6D,0x75,0x7D,0x7B,0x78,0x82,0x86,0x7F,0x80,0x8A,0x86,0x7B,0x7F,0x84, -0x7A,0x72,0x72,0x73,0x71,0x6E,0x62,0x51,0x4E,0x54,0x66,0x75,0x72,0x6E,0x70,0x6D, -0x77,0x8F,0x92,0x8A,0x9A,0xA8,0xA3,0xAB,0xB7,0xB6,0xAC,0xA1,0x99,0x9D,0xA8,0xA2, -0x8E,0x84,0x87,0x89,0x7F,0x72,0x62,0x5F,0x71,0x81,0x7F,0x7A,0x7B,0x7D,0x81,0x82, -0x89,0x93,0x9C,0x9A,0x89,0x7B,0x7F,0x89,0x90,0x85,0x75,0x7F,0x8A,0x8E,0x87,0x85, -0x8E,0x84,0x76,0x78,0x81,0x87,0x85,0x88,0x86,0x75,0x67,0x63,0x71,0x83,0x85,0x82, -0x8D,0x8F,0x82,0x85,0x8A,0x7B,0x6E,0x70,0x78,0x7D,0x75,0x67,0x6C,0x7A,0x89,0x95, -0x87,0x6F,0x65,0x6F,0x80,0x8F,0x8D,0x84,0x84,0x88,0x8D,0x91,0x93,0x98,0xA0,0xA8, -0xAA,0x9F,0x97,0x8E,0x78,0x72,0x7D,0x78,0x75,0x7D,0x85,0x7F,0x7D,0x8A,0x7E,0x6E, -0x7A,0x87,0x88,0x82,0x7E,0x85,0x8E,0x90,0x8D,0x91,0x99,0xA1,0xA0,0x96,0x9A,0x99, -0x8E,0x7F,0x76,0x77,0x6C,0x67,0x6F,0x77,0x7D,0x7B,0x74,0x78,0x70,0x66,0x6E,0x7D, -0x85,0x7A,0x67,0x67,0x79,0x86,0x88,0x85,0x80,0x7F,0x75,0x6C,0x6F,0x73,0x79,0x76, -0x67,0x67,0x73,0x7A,0x69,0x58,0x65,0x75,0x7E,0x8B,0x86,0x7C,0x82,0x86,0x83,0x7C, -0x7B,0x7B,0x7D,0x81,0x7F,0x6D,0x5A,0x5D,0x63,0x62,0x60,0x60,0x5B,0x5F,0x74,0x87, -0x9B,0x99,0x86,0x8C,0xAD,0xB1,0x9F,0x97,0x8B,0x80,0x85,0x8A,0x89,0x7F,0x7D,0x7E, -0x79,0x7B,0x71,0x5C,0x62,0x73,0x71,0x69,0x76,0x89,0x86,0x7A,0x73,0x76,0x79,0x74, -0x78,0x86,0x91,0x85,0x6A,0x67,0x76,0x85,0x8C,0x91,0x97,0x91,0x91,0x95,0x95,0xA0, -0x9F,0x99,0x9F,0xA2,0xA2,0x9B,0x9A,0x9C,0x94,0x82,0x70,0x74,0x7A,0x72,0x69,0x70, -0x7C,0x78,0x80,0x89,0x7D,0x73,0x76,0x79,0x74,0x66,0x60,0x6B,0x79,0x7F,0x84,0x8D, -0x97,0x9C,0x9B,0x8A,0x79,0x77,0x71,0x6B,0x6F,0x7C,0x88,0x8E,0xA2,0xB4,0xAE,0x9E, -0x8D,0x82,0x7F,0x7B,0x80,0x7F,0x7F,0x80,0x7D,0x84,0x85,0x79,0x71,0x68,0x63,0x5F, -0x57,0x4C,0x4D,0x5C,0x63,0x68,0x69,0x69,0x73,0x78,0x7E,0x8C,0x92,0x98,0x99,0x99, -0x9E,0xA7,0xB0,0xA9,0xA6,0xAA,0xA9,0xAF,0xAD,0xA2,0x97,0x8C,0x81,0x77,0x78,0x75, -0x6D,0x6D,0x74,0x7C,0x84,0x8B,0x83,0x72,0x76,0x85,0x86,0x79,0x70,0x70,0x70,0x77, -0x7E,0x81,0x88,0x8D,0x87,0x83,0x83,0x84,0x8E,0x99,0x9A,0x97,0x8B,0x81,0x86,0x8F, -0x8E,0x88,0x92,0x9E,0xA4,0x99,0x81,0x7D,0x7B,0x67,0x53,0x50,0x53,0x55,0x5B,0x5F, -0x5E,0x5E,0x5F,0x63,0x68,0x6A,0x60,0x62,0x77,0x77,0x6B,0x74,0x84,0x8F,0x93,0x97, -0x96,0x8A,0x7A,0x80,0x9A,0xA2,0x99,0x98,0x9C,0x8E,0x81,0x85,0x8D,0x97,0x9E,0x9F, -0x8E,0x7E,0x76,0x70,0x78,0x8B,0x8F,0x80,0x75,0x67,0x56,0x4E,0x4A,0x54,0x65,0x6D, -0x74,0x77,0x6E,0x68,0x7C,0x98,0xA3,0xA4,0xA3,0x95,0x86,0x87,0x91,0x9F,0xA6,0x95, -0x78,0x6E,0x71,0x71,0x71,0x70,0x6E,0x6C,0x6F,0x76,0x84,0x96,0x8E,0x84,0x84,0x7E, -0x7A,0x71,0x64,0x6A,0x73,0x77,0x7D,0x87,0x92,0x8A,0x6F,0x61,0x66,0x73,0x75,0x6B, -0x64,0x6C,0x77,0x7E,0x78,0x73,0x7D,0x84,0x89,0x8A,0x89,0x88,0x84,0x7B,0x7A,0x7F, -0x86,0x8F,0x9A,0x9B,0x8A,0x74,0x79,0x8F,0x97,0x91,0x80,0x73,0x6F,0x72,0x75,0x77, -0x81,0x84,0x7F,0x7B,0x76,0x78,0x8D,0xA3,0xA0,0x94,0x8B,0x80,0x76,0x67,0x5F,0x5C, -0x63,0x6E,0x6F,0x7A,0x91,0x9A,0x95,0x96,0xA2,0xAE,0x9C,0x8B,0x9D,0xA2,0x96,0x8F, -0x8C,0x8F,0x84,0x7F,0x81,0x75,0x66,0x5E,0x63,0x68,0x66,0x68,0x70,0x7E,0x84,0x7E, -0x77,0x75,0x82,0x88,0x94,0xAB,0xAE,0xA4,0x9A,0x91,0x88,0x84,0x89,0x91,0x8C,0x88, -0x8B,0x88,0x81,0x85,0x9A,0xA3,0x98,0x8B,0x82,0x92,0xAB,0xA9,0x95,0x87,0x74,0x65, -0x6A,0x76,0x7B,0x7E,0x7B,0x7B,0x79,0x7F,0x83,0x80,0x7A,0x67,0x63,0x66,0x67,0x7B, -0x7D,0x72,0x78,0x88,0x8D,0x7B,0x76,0x7F,0x7E,0x76,0x75,0x7A,0x86,0x91,0x94,0x8F, -0x87,0x87,0x8A,0x88,0x82,0x7E,0x7D,0x76,0x70,0x73,0x80,0x80,0x78,0x67,0x56,0x68, -0x82,0x88,0x7A,0x6F,0x72,0x7A,0x86,0x88,0x82,0x7C,0x7E,0x7A,0x6A,0x56,0x54,0x65, -0x74,0x8C,0x96,0x8A,0x87,0x93,0x9E,0x9F,0x9D,0x9B,0x94,0x8D,0x8F,0x87,0x78,0x6C, -0x6A,0x71,0x7D,0x84,0x86,0x82,0x6E,0x63,0x6C,0x7A,0x7A,0x6A,0x6D,0x83,0x86,0x79, -0x6F,0x75,0x86,0x96,0x9D,0x96,0x83,0x75,0x6D,0x65,0x62,0x69,0x75,0x81,0x8E,0x94, -0x8A,0x77,0x79,0x7F,0x76,0x71,0x70,0x7B,0x89,0x8D,0x8B,0x81,0x7C,0x7E,0x74,0x5F, -0x55,0x51,0x58,0x67,0x6D,0x71,0x72,0x7B,0x8B,0x93,0x8F,0x81,0x80,0x8E,0x87,0x7F, -0x81,0x85,0x8E,0x9B,0xB0,0xAC,0x94,0x93,0x99,0x8E,0x75,0x64,0x5C,0x57,0x57,0x61, -0x70,0x77,0x7D,0x87,0x8D,0x89,0x83,0x91,0xA1,0x97,0x8B,0x91,0x9B,0x98,0x9E,0xA4, -0xA5,0xA8,0x9D,0x84,0x70,0x6B,0x76,0x7C,0x89,0x97,0x95,0x92,0x8C,0x93,0x94,0x76, -0x6A,0x71,0x75,0x71,0x6B,0x69,0x6E,0x80,0x95,0x8B,0x72,0x71,0x7A,0x83,0x8B,0x91, -0x9C,0x9D,0x8B,0x86,0x8F,0x88,0x77,0x74,0x78,0x84,0x8F,0x8E,0x8B,0x96,0x9D,0x9D, -0x9C,0x96,0x98,0x92,0x82,0x6F,0x61,0x59,0x53,0x5E,0x69,0x62,0x60,0x67,0x6E,0x6F, -0x67,0x66,0x65,0x63,0x6A,0x6E,0x76,0x80,0x8A,0x93,0x9A,0x98,0x96,0x9C,0x99,0x91, -0x8C,0x83,0x80,0x81,0x81,0x81,0x8A,0x93,0x8F,0x87,0x84,0x78,0x77,0x85,0x91,0x99, -0x99,0x8E,0x77,0x62,0x55,0x57,0x74,0x82,0x72,0x6D,0x70,0x73,0x80,0x8C,0x8D,0x93, -0x93,0x88,0x7D,0x7C,0x87,0x99,0x9C,0x93,0x91,0x91,0x92,0x9D,0xAE,0xAD,0x9B,0x8B, -0x7C,0x71,0x6A,0x62,0x69,0x6E,0x77,0x80,0x87,0x8D,0x80,0x70,0x6B,0x6D,0x76,0x7C, -0x7B,0x78,0x73,0x6F,0x66,0x5E,0x5E,0x5E,0x62,0x67,0x65,0x5D,0x62,0x75,0x7E,0x7D, -0x76,0x76,0x7F,0x82,0x8A,0x92,0xA3,0xAE,0xAB,0xA4,0x94,0x91,0x96,0x83,0x6F,0x72, -0x7D,0x83,0x8D,0x90,0x7B,0x66,0x60,0x5B,0x62,0x78,0x7A,0x6F,0x66,0x61,0x6F,0x89, -0x8C,0x84,0x7D,0x68,0x58,0x5F,0x63,0x68,0x74,0x84,0x93,0x9B,0x92,0x88,0x8F,0x9F, -0x9E,0x97,0x95,0x97,0x8C,0x7E,0x79,0x85,0x8A,0x80,0x87,0x93,0x8F,0x89,0x83,0x76, -0x6A,0x63,0x5E,0x54,0x52,0x5F,0x6E,0x80,0x83,0x8A,0x99,0x95,0x8C,0x8D,0x89,0x85, -0x83,0x7E,0x88,0x91,0x92,0x9E,0x9B,0x93,0x95,0x8D,0x85,0x7D,0x7D,0x82,0x7D,0x7B, -0x6E,0x5E,0x6C,0x79,0x81,0x8C,0x89,0x75,0x6F,0x87,0x96,0x91,0x99,0x95,0x87,0x80, -0x75,0x6C,0x6B,0x6B,0x68,0x6A,0x71,0x78,0x78,0x77,0x79,0x7E,0x8B,0x94,0x98,0x91, -0x89,0x82,0x89,0xA3,0xAF,0xAF,0xAF,0xAB,0xA1,0x8F,0x7D,0x81,0x84,0x81,0x7B,0x82, -0x7F,0x77,0x78,0x84,0x84,0x79,0x63,0x5F,0x74,0x72,0x72,0x82,0x92,0x94,0x91,0x8E, -0x88,0x8A,0x94,0x8C,0x83,0x8C,0x93,0x99,0x9F,0x98,0x8D,0x91,0x99,0x9E,0x93,0x7D, -0x72,0x7E,0x87,0x7C,0x7B,0x7B,0x82,0x85,0x79,0x68,0x66,0x68,0x6D,0x70,0x73,0x7A, -0x71,0x67,0x65,0x6D,0x6B,0x65,0x6E,0x7C,0x7F,0x82,0x6F,0x5E,0x69,0x7C,0x84,0x7A, -0x7F,0x7E,0x76,0x7A,0x8C,0x97,0x89,0x66,0x61,0x71,0x79,0x84,0x86,0x81,0x7A,0x7E, -0x78,0x6B,0x6C,0x79,0x80,0x87,0x87,0x85,0x8F,0x93,0x83,0x81,0x83,0x82,0x84,0x76, -0x6C,0x6C,0x69,0x65,0x68,0x66,0x6D,0x7B,0x84,0x82,0x80,0x7F,0x80,0x87,0x7F,0x76, -0x79,0x86,0x8E,0x81,0x75,0x7C,0x8B,0x95,0x88,0x79,0x85,0x92,0x8D,0x8E,0x91,0x8B, -0x9D,0xA9,0xA5,0xAE,0xAE,0xA2,0x9B,0x98,0x8D,0x7E,0x79,0x73,0x6D,0x68,0x61,0x71, -0x80,0x75,0x59,0x4E,0x51,0x50,0x56,0x65,0x71,0x79,0x6E,0x65,0x7D,0x89,0x85,0x86, -0x87,0x92,0x9D,0xA4,0x99,0x7B,0x63,0x66,0x7C,0x88,0x87,0x83,0x80,0x7F,0x83,0x88, -0x81,0x78,0x6F,0x6D,0x69,0x60,0x74,0x88,0x8F,0x91,0x97,0x9D,0x9C,0x90,0x94,0x91, -0x7E,0x6E,0x74,0x80,0x7B,0x78,0x78,0x84,0x8A,0x88,0x8B,0x93,0x91,0x90,0x97,0x9A, -0x9D,0xA2,0xA5,0x94,0x83,0x85,0x91,0x8F,0x8D,0x8E,0x92,0x91,0x83,0x73,0x70,0x74, -0x76,0x76,0x76,0x6B,0x66,0x68,0x69,0x83,0x8C,0x8B,0x8A,0x7B,0x78,0x85,0x84,0x79, -0x68,0x6B,0x7D,0x84,0x8E,0x8B,0x86,0x8C,0x98,0xA3,0xA0,0x94,0x8B,0x72,0x6D,0x75, -0x72,0x79,0x8A,0x8E,0x82,0x70,0x6B,0x6F,0x79,0x70,0x66,0x72,0x7B,0x81,0x81,0x8C, -0x8E,0x80,0x72,0x6E,0x75,0x7C,0x81,0x7A,0x70,0x7A,0x84,0x86,0x7F,0x80,0x89,0x87, -0x81,0x79,0x7E,0x89,0x8D,0x85,0x7B,0x78,0x7B,0x78,0x75,0x78,0x7F,0x8A,0x8A,0x81, -0x7D,0x81,0x8C,0x82,0x74,0x78,0x81,0x86,0x89,0x84,0x85,0x83,0x67,0x53,0x61,0x75, -0x71,0x6A,0x6A,0x71,0x85,0x8C,0x92,0x9A,0x9F,0xA0,0x9D,0x9C,0x9B,0xA0,0xA3,0x9D, -0x97,0x8C,0x81,0x7E,0x7F,0x73,0x66,0x64,0x6C,0x6C,0x74,0x8A,0x93,0x8A,0x76,0x76, -0x83,0x75,0x6C,0x81,0x8A,0x84,0x86,0x93,0x9E,0x9D,0x99,0x8E,0x82,0x7A,0x6D,0x69, -0x68,0x61,0x57,0x57,0x5A,0x6A,0x7B,0x7B,0x7C,0x83,0x8A,0x87,0x80,0x7C,0x72,0x6D, -0x6E,0x70,0x7B,0x86,0x8C,0x90,0x83,0x67,0x68,0x74,0x6C,0x63,0x61,0x61,0x77,0x82, -0x78,0x76,0x74,0x79,0x7D,0x73,0x7D,0x8F,0x93,0x8B,0x71,0x5F,0x6E,0x84,0x94,0x9B, -0x95,0x7F,0x6A,0x68,0x7B,0x90,0x96,0x96,0xA2,0xA9,0xA6,0x96,0x92,0x9D,0x92,0x8B, -0x90,0x91,0x88,0x7E,0x7C,0x87,0x90,0x87,0x7F,0x7D,0x77,0x75,0x79,0x67,0x65,0x76, -0x7D,0x79,0x81,0x92,0x9C,0xA0,0xA0,0x98,0x8A,0x80,0x73,0x77,0x7B,0x75,0x7E,0x95, -0x97,0x88,0x83,0x8E,0x85,0x73,0x73,0x7B,0x85,0x7D,0x65,0x5B,0x78,0x94,0x9A,0x98, -0x94,0x8D,0x89,0x88,0x80,0x7B,0x72,0x66,0x66,0x7D,0x89,0x77,0x71,0x6D,0x75,0x8C, -0x8D,0x8A,0x8D,0x92,0x94,0x94,0x94,0x94,0x98,0x96,0x88,0x78,0x79,0x72,0x67,0x69, -0x65,0x6B,0x7D,0x80,0x71,0x72,0x74,0x6D,0x6D,0x7A,0x7C,0x7B,0x80,0x7F,0x82,0x93, -0xA7,0xA5,0xA4,0xB0,0xB1,0x9A,0x83,0x79,0x72,0x6F,0x73,0x74,0x79,0x84,0x87,0x7F, -0x7C,0x82,0x82,0x85,0x8D,0x94,0x87,0x78,0x73,0x73,0x72,0x78,0x85,0x93,0xAE,0xBC, -0xA8,0x87,0x7B,0x7E,0x6C,0x60,0x64,0x58,0x4A,0x60,0x7B,0x7B,0x7A,0x78,0x6E,0x6F, -0x82,0x85,0x7D,0x6F,0x55,0x5B,0x76,0x81,0x70,0x60,0x62,0x61,0x6A,0x76,0x7B,0x88, -0x8A,0x7C,0x71,0x6D,0x8C,0xAC,0x9F,0x84,0x85,0x95,0x8D,0x8D,0x98,0x96,0x8D,0x7C, -0x6A,0x5A,0x53,0x57,0x61,0x67,0x5E,0x5D,0x6A,0x7C,0x86,0x88,0x86,0x88,0x8B,0x86, -0x8B,0x9A,0x8F,0x7A,0x72,0x78,0x7F,0x80,0x7E,0x7D,0x8D,0x9E,0x9A,0x8E,0x80,0x7B, -0x7E,0x81,0x8B,0x92,0x95,0x92,0x87,0x83,0x81,0x84,0x8A,0x8F,0x8C,0x74,0x67,0x77, -0x80,0x87,0x96,0xAA,0xB3,0x9F,0x8B,0x7E,0x77,0x71,0x7B,0x85,0x80,0x7E,0x8C,0xA4, -0xAF,0xA9,0xA5,0xA0,0x90,0x76,0x69,0x75,0x7C,0x7D,0x78,0x6B,0x76,0x89,0x98,0x99, -0x87,0x79,0x72,0x72,0x6D,0x6A,0x6C,0x61,0x6C,0x7F,0x81,0x79,0x73,0x73,0x6E,0x63, -0x59,0x52,0x5E,0x77,0x77,0x6A,0x63,0x75,0x89,0x8E,0x8F,0x8A,0x83,0x79,0x83,0x93, -0x93,0x82,0x76,0x81,0x8F,0x99,0x94,0x75,0x62,0x6B,0x81,0x94,0x89,0x80,0x87,0x80, -0x78,0x7D,0x7A,0x7C,0x83,0x7C,0x6B,0x61,0x6A,0x7A,0x83,0x87,0x8B,0xA1,0xA8,0x98, -0x8D,0x89,0x84,0x7C,0x6D,0x6A,0x7A,0x86,0x92,0xA9,0xAA,0x8E,0x7E,0x95,0xA2,0x89, -0x79,0x79,0x82,0x90,0x8F,0x7F,0x7F,0x8E,0x9C,0xA6,0x99,0x85,0x84,0x7F,0x77,0x79, -0x79,0x71,0x66,0x62,0x68,0x70,0x76,0x71,0x6D,0x78,0x85,0x91,0x95,0x93,0x8D,0x8E, -0x98,0x8D,0x7A,0x7D,0x95,0x97,0x85,0x7F,0x82,0x7E,0x72,0x6D,0x7C,0x7E,0x6F,0x67, -0x63,0x67,0x71,0x7D,0x80,0x7A,0x85,0x9A,0xA6,0xA8,0x9D,0x87,0x81,0x85,0x80,0x71, -0x63,0x5D,0x5D,0x69,0x78,0x79,0x6C,0x71,0x78,0x76,0x7B,0x74,0x6C,0x74,0x8A,0x97, -0x8B,0x82,0x88,0x8F,0x91,0x88,0x86,0x88,0x7C,0x6A,0x6A,0x70,0x75,0x6B,0x70,0x82, -0x82,0x7D,0x81,0x81,0x7D,0x88,0x8D,0x8A,0x7E,0x70,0x75,0x7B,0x7F,0x7D,0x71,0x6D, -0x73,0x7A,0x8B,0x8F,0x82,0x8C,0xA5,0xAB,0xA9,0xA8,0x99,0x81,0x76,0x7A,0x7A,0x72, -0x70,0x76,0x7E,0x82,0x6F,0x61,0x68,0x6F,0x67,0x59,0x5A,0x53,0x4A,0x56,0x6B,0x6B, -0x68,0x7E,0x93,0x92,0x8E,0x90,0x8D,0x8C,0x8C,0x7F,0x7C,0x8F,0x8E,0x7D,0x7F,0x91, -0xA5,0xA7,0xA4,0x90,0x7C,0x7B,0x6B,0x61,0x6F,0x84,0x8C,0x82,0x76,0x7C,0x8B,0x94, -0x90,0x89,0x85,0x7C,0x76,0x78,0x84,0x82,0x77,0x7C,0x7F,0x74,0x69,0x75,0x84,0x81, -0x81,0x8E,0x9D,0xA5,0xA5,0xA7,0xA5,0x9B,0x93,0x90,0x97,0xA1,0x98,0x90,0x95,0x97, -0x91,0x86,0x7C,0x82,0x7D,0x68,0x60,0x61,0x6E,0x78,0x75,0x79,0x7F,0x82,0x8D,0x8E, -0x7E,0x75,0x86,0x96,0x97,0x8B,0x7E,0x85,0x87,0x86,0x8F,0x9B,0x95,0x84,0x7D,0x7F, -0x7C,0x70,0x73,0x82,0x81,0x7E,0x82,0x8A,0x92,0x98,0x9B,0x95,0x87,0x7F,0x80,0x7B, -0x79,0x78,0x67,0x5E,0x5C,0x67,0x7F,0x8A,0x75,0x56,0x57,0x61,0x61,0x5E,0x6D,0x77, -0x68,0x71,0x8C,0x93,0x8F,0x8A,0x90,0xA2,0x9C,0x78,0x62,0x5D,0x5C,0x62,0x6C,0x6E, -0x6E,0x71,0x7E,0x8E,0x96,0x9A,0x90,0x8B,0x8E,0x8D,0x87,0x78,0x6B,0x6E,0x87,0x9A, -0x9C,0x8E,0x7B,0x7D,0x81,0x70,0x5A,0x4D,0x48,0x59,0x66,0x64,0x74,0x8B,0x8B,0x87, -0x88,0x87,0x91,0x97,0x91,0x8E,0x8F,0x8E,0x8C,0x89,0x8A,0x90,0xA2,0xAC,0x9C,0x81, -0x7C,0x85,0x8B,0x93,0x93,0x88,0x7E,0x70,0x73,0x7C,0x74,0x73,0x78,0x7F,0x81,0x7A, -0x76,0x7A,0x7F,0x83,0x85,0x77,0x6E,0x69,0x64,0x6E,0x79,0x81,0x8A,0x94,0x8F,0x8A, -0x8D,0x94,0x96,0x98,0x90,0x79,0x70,0x7F,0x92,0x9F,0x96,0x88,0x7E,0x7F,0x7F,0x76, -0x6F,0x69,0x68,0x6B,0x6D,0x67,0x62,0x72,0x8B,0x8D,0x77,0x6C,0x7D,0x86,0x82,0x72, -0x63,0x66,0x6D,0x71,0x7D,0x8F,0x9D,0x98,0x8A,0x86,0x87,0x86,0x84,0x7D,0x7D,0x7D, -0x79,0x7D,0x89,0x8E,0x88,0x8E,0x9D,0xA3,0x97,0x83,0x6E,0x62,0x6A,0x73,0x73,0x6D, -0x68,0x66,0x5C,0x5A,0x68,0x76,0x80,0x85,0x7E,0x7C,0x7C,0x7D,0x88,0x95,0x8D,0x84, -0x7D,0x7D,0x9C,0xB8,0xB8,0xAB,0xA6,0xA3,0x92,0x8A,0x85,0x7A,0x69,0x51,0x52,0x6E, -0x84,0x8F,0x92,0x90,0x95,0x9F,0xA1,0x93,0x7B,0x6B,0x7D,0x97,0x87,0x6B,0x6E,0x73, -0x73,0x70,0x74,0x71,0x6C,0x71,0x70,0x72,0x76,0x85,0x97,0x8A,0x7D,0x88,0x90,0x92, -0x98,0x9F,0x9E,0x91,0x89,0x85,0x82,0x7F,0x7C,0x8B,0x8D,0x84,0x7D,0x7F,0x7F,0x80, -0x8D,0x96,0x8E,0x80,0x7B,0x76,0x6E,0x73,0x77,0x7A,0x76,0x6A,0x64,0x5F,0x68,0x78, -0x80,0x78,0x7A,0x88,0x93,0xA9,0xAD,0x91,0x74,0x78,0x87,0x8A,0x82,0x75,0x76,0x83, -0x84,0x7B,0x75,0x7A,0x7A,0x7A,0x79,0x79,0x76,0x6C,0x6C,0x78,0x7C,0x7E,0x88,0x8D, -0x8D,0x89,0x7E,0x79,0x77,0x7A,0x84,0x8B,0x92,0x89,0x8A,0x9A,0x95,0x89,0x89,0x90, -0x8D,0x80,0x7E,0x92,0x98,0x85,0x76,0x72,0x6E,0x70,0x77,0x7C,0x78,0x72,0x69,0x5B, -0x5E,0x70,0x7D,0x7C,0x80,0x79,0x6D,0x74,0x78,0x75,0x75,0x7A,0x77,0x65,0x5B,0x5E, -0x6B,0x6F,0x61,0x63,0x79,0x89,0x8D,0x84,0x83,0x88,0x85,0x8C,0x93,0x89,0x85,0x8B, -0x8F,0x86,0x74,0x76,0x77,0x6C,0x68,0x6E,0x73,0x78,0x7B,0x7F,0x76,0x6E,0x77,0x81, -0x88,0x8C,0x8D,0x8E,0x92,0x91,0x93,0x9F,0x9F,0x8E,0x75,0x72,0x77,0x7A,0x7E,0x80, -0x8E,0x93,0x93,0x94,0x93,0x90,0x8B,0x88,0x86,0x88,0x8C,0x8E,0x8C,0x8C,0x96,0x95, -0x89,0x87,0x80,0x6E,0x6D,0x72,0x6B,0x70,0x79,0x83,0x91,0x86,0x78,0x83,0x8E,0x8A, -0x86,0x92,0x9A,0x8F,0x8E,0x90,0x84,0x81,0x78,0x65,0x65,0x78,0x84,0x93,0x94,0x89, -0x92,0x91,0x7E,0x7B,0x87,0x88,0x87,0x87,0x7C,0x6E,0x73,0x7B,0x83,0x83,0x74,0x73, -0x7F,0x80,0x77,0x78,0x80,0x8B,0x8A,0x77,0x6A,0x6C,0x7B,0x81,0x87,0x96,0x9C,0x99, -0x98,0x98,0x91,0x88,0x78,0x6C,0x67,0x63,0x66,0x6E,0x79,0x87,0x90,0x8A,0x85,0x85, -0x83,0x76,0x6D,0x61,0x5C,0x68,0x83,0x9B,0x95,0x85,0x7E,0x88,0x90,0x84,0x6E,0x6D, -0x71,0x75,0x75,0x73,0x7E,0x8D,0x99,0x9C,0x99,0x9B,0x99,0x95,0x8F,0x81,0x75,0x79, -0x7F,0x78,0x67,0x59,0x5A,0x67,0x7A,0x77,0x70,0x7D,0x85,0x83,0x86,0x85,0x80,0x7B, -0x75,0x70,0x75,0x7E,0x86,0x92,0x94,0x8D,0x83,0x7B,0x83,0x8D,0x86,0x72,0x76,0x87, -0x90,0x9E,0x9D,0x91,0x8C,0x83,0x7E,0x75,0x6B,0x62,0x52,0x53,0x63,0x64,0x5D,0x5F, -0x5B,0x58,0x68,0x79,0x7E,0x86,0x91,0x8E,0x83,0x8A,0x9A,0xA4,0xA0,0x95,0x87,0x86, -0x8E,0x95,0x92,0x7D,0x7B,0x89,0x86,0x76,0x6E,0x77,0x8C,0x8B,0x82,0x87,0x82,0x7D, -0x7D,0x7D,0x7C,0x6F,0x70,0x82,0x81,0x76,0x6F,0x71,0x75,0x78,0x78,0x78,0x82,0x88, -0x8D,0x8F,0x93,0x97,0x8C,0x86,0x8D,0x8C,0x8F,0x94,0x92,0x8E,0x8F,0x99,0xA9,0xA5, -0x8F,0x77,0x64,0x67,0x70,0x72,0x69,0x6A,0x73,0x74,0x74,0x81,0x8E,0x88,0x7F,0x7D, -0x79,0x75,0x76,0x79,0x79,0x79,0x7D,0x84,0x8F,0x8C,0x88,0x8C,0x87,0x7B,0x7A,0x7E, -0x7E,0x7D,0x79,0x81,0x93,0x91,0x83,0x87,0x8C,0x81,0x71,0x7E,0x87,0x72,0x5E,0x60, -0x6E,0x77,0x76,0x7B,0x7F,0x77,0x6F,0x75,0x86,0x90,0x90,0x7E,0x66,0x66,0x70,0x7E, -0x88,0x82,0x80,0x87,0x96,0x96,0x8D,0x8B,0x92,0x95,0x91,0x96,0x91,0x85,0x76,0x6F, -0x76,0x7E,0x84,0x86,0x85,0x85,0x87,0x8A,0x8C,0x88,0x85,0x80,0x78,0x76,0x78,0x7B, -0x76,0x6E,0x73,0x7E,0x90,0x8D,0x78,0x70,0x77,0x7F,0x7F,0x80,0x81,0x88,0x92,0x8D, -0x95,0xAD,0xAD,0x9D,0x9D,0x9D,0x95,0x95,0x8A,0x76,0x71,0x79,0x82,0x84,0x82,0x81, -0x75,0x6C,0x70,0x6E,0x70,0x7C,0x8B,0x86,0x71,0x6C,0x73,0x81,0x8B,0x7F,0x7A,0x83, -0x8E,0x96,0x8D,0x7F,0x79,0x79,0x81,0x7E,0x76,0x7A,0x78,0x78,0x81,0x8C,0x92,0x83, -0x78,0x7C,0x79,0x70,0x74,0x84,0x8C,0x7D,0x76,0x7C,0x7E,0x72,0x6D,0x76,0x71,0x66, -0x6D,0x71,0x75,0x76,0x6B,0x6B,0x70,0x6C,0x67,0x70,0x7E,0x8A,0x95,0x94,0x7E,0x79, -0x83,0x83,0x7D,0x7D,0x81,0x7D,0x82,0x89,0x85,0x8A,0x8B,0x7B,0x7B,0x7F,0x6F,0x74, -0x7A,0x74,0x80,0x92,0x8E,0x80,0x85,0x8F,0x8F,0x8D,0x82,0x73,0x71,0x79,0x77,0x70, -0x71,0x7A,0x76,0x76,0x82,0x7F,0x6F,0x62,0x62,0x71,0x77,0x7B,0x82,0x7C,0x78,0x7F, -0x88,0x8D,0x8A,0x7A,0x73,0x89,0x98,0x8F,0x8F,0x96,0x98,0x91,0x87,0x88,0x8B,0x8B, -0x88,0x7D,0x79,0x7C,0x77,0x7E,0x8E,0x86,0x76,0x77,0x7F,0x86,0x8E,0x93,0x99,0x8D, -0x75,0x6F,0x75,0x71,0x6F,0x75,0x7B,0x80,0x8F,0x91,0x80,0x70,0x7A,0x81,0x85,0x93, -0x9E,0x94,0x87,0x82,0x8E,0xA4,0xA7,0x9E,0x94,0x7E,0x77,0x80,0x71,0x75,0x80,0x86, -0x90,0x92,0x91,0x8F,0x8F,0x90,0x83,0x82,0x91,0x90,0x97,0x87,0x6B,0x6D,0x74,0x6E, -0x65,0x75,0x8C,0x92,0x94,0x83,0x79,0x80,0x7B,0x79,0x75,0x72,0x6B,0x66,0x6F,0x81, -0x91,0x9B,0x9C,0x9C,0x90,0x78,0x7E,0x7E,0x7D,0x75,0x75,0x77,0x64,0x65,0x7C,0x91, -0x9C,0x98,0x85,0x7A,0x6A,0x61,0x69,0x77,0x6F,0x61,0x6D,0x89,0x8D,0x84,0x7B,0x85, -0x96,0x8C,0x84,0x81,0x7B,0x70,0x6A,0x73,0x7A,0x78,0x72,0x6D,0x73,0x74,0x69,0x6A, -0x6E,0x66,0x64,0x79,0x83,0x88,0x8E,0x88,0x7B,0x7D,0x87,0x8F,0x88,0x7C,0x77,0x74, -0x72,0x6C,0x69,0x72,0x81,0x7E,0x73,0x6B,0x6F,0x7B,0x8D,0x9B,0x9C,0x9D,0x92,0x86, -0x86,0x8C,0x8D,0x97,0x9D,0x94,0x84,0x8A,0x8F,0x87,0x7B,0x7C,0x8B,0x92,0x81,0x6D, -0x74,0x85,0x8D,0x85,0x7C,0x86,0x94,0x9D,0x96,0x87,0x85,0x7A,0x6E,0x70,0x77,0x72, -0x68,0x7A,0x89,0x83,0x7F,0x83,0x8D,0x84,0x7B,0x8D,0x94,0x91,0x94,0x98,0x8B,0x81, -0x87,0x89,0x7E,0x76,0x75,0x74,0x74,0x6C,0x66,0x6F,0x7A,0x79,0x74,0x73,0x72,0x6D, -0x68,0x6C,0x7C,0x8D,0x99,0x9A,0x8F,0x8B,0x94,0x8D,0x77,0x74,0x7A,0x7B,0x7B,0x77, -0x74,0x6E,0x65,0x6F,0x81,0x87,0x82,0x7D,0x73,0x6F,0x6B,0x6F,0x7B,0x7C,0x7B,0x8F, -0x99,0x91,0x8F,0x94,0x8D,0x7A,0x74,0x81,0x88,0x87,0x86,0x8A,0x8A,0x8C,0x9A,0xA1, -0x8A,0x7C,0x7F,0x75,0x6E,0x6B,0x66,0x71,0x7F,0x79,0x71,0x7D,0x82,0x77,0x6D,0x71, -0x72,0x62,0x64,0x7B,0x86,0x81,0x81,0x83,0x80,0x7B,0x76,0x80,0x84,0x84,0x8F,0x9F, -0xA6,0xA5,0x9D,0x8D,0x8A,0x91,0x90,0x87,0x6F,0x62,0x76,0x8A,0x88,0x78,0x73,0x7E, -0x7D,0x7B,0x75,0x67,0x6B,0x7D,0x80,0x7A,0x83,0x90,0x93,0x97,0x9A,0x9A,0x92,0x84, -0x7F,0x79,0x7F,0x8C,0x8A,0x83,0x7E,0x7C,0x80,0x91,0x9F,0x9D,0x9B,0x9E,0x99,0x89, -0x7F,0x81,0x8A,0x8E,0x90,0x8F,0x89,0x8C,0x88,0x7E,0x7C,0x70,0x63,0x6A,0x74,0x6B, -0x68,0x6E,0x6F,0x67,0x67,0x78,0x84,0x80,0x83,0x8B,0x8F,0x91,0x94,0x99,0x9A,0x98, -0x93,0x83,0x73,0x6E,0x77,0x7B,0x77,0x76,0x7A,0x7E,0x80,0x84,0x84,0x82,0x7F,0x71, -0x68,0x72,0x7B,0x7B,0x79,0x78,0x7D,0x85,0x7F,0x74,0x70,0x64,0x56,0x57,0x62,0x65, -0x66,0x72,0x7F,0x84,0x86,0x82,0x85,0x8D,0x8A,0x80,0x7D,0x82,0x82,0x7E,0x83,0x88, -0x89,0x92,0x94,0x8B,0x7A,0x69,0x6A,0x7A,0x7D,0x71,0x76,0x81,0x7C,0x6E,0x65,0x70, -0x76,0x70,0x71,0x68,0x62,0x6B,0x76,0x80,0x86,0x85,0x89,0x8F,0x8D,0x83,0x8B,0x9C, -0xA2,0x9C,0x8E,0x88,0x82,0x84,0x89,0x93,0x9D,0x9B,0x95,0x94,0x90,0x87,0x86,0x82, -0x75,0x7B,0x78,0x73,0x73,0x67,0x64,0x70,0x78,0x78,0x7A,0x87,0x8A,0x84,0x8A,0x96, -0x98,0x95,0x98,0x97,0x84,0x77,0x7F,0x84,0x79,0x76,0x71,0x77,0x8A,0x91,0x8E,0x8C, -0x94,0x8F,0x7B,0x75,0x75,0x83,0x86,0x74,0x77,0x8C,0x90,0x8C,0x91,0x91,0x8F,0x90, -0x81,0x72,0x72,0x6F,0x6B,0x70,0x6A,0x63,0x73,0x83,0x7C,0x72,0x7A,0x82,0x7E,0x73, -0x6B,0x70,0x76,0x7E,0x87,0x8A,0x8A,0x89,0x8E,0x8F,0x90,0x98,0x91,0x7D,0x7B,0x8E, -0x99,0x95,0x8E,0x8B,0x92,0x90,0x7F,0x71,0x71,0x7D,0x7E,0x77,0x7D,0x8D,0x9A,0xA4, -0x9A,0x84,0x7E,0x83,0x80,0x75,0x68,0x60,0x60,0x67,0x70,0x70,0x6E,0x6C,0x73,0x7A, -0x7A,0x7C,0x88,0x9B,0x9A,0x8A,0x84,0x81,0x86,0x8C,0x86,0x87,0x8E,0x83,0x77,0x78, -0x75,0x6F,0x70,0x7F,0x7C,0x72,0x74,0x79,0x75,0x65,0x6E,0x80,0x82,0x82,0x75,0x6C, -0x71,0x70,0x6F,0x72,0x7B,0x82,0x7F,0x78,0x6F,0x72,0x83,0x88,0x83,0x84,0x89,0x86, -0x81,0x8A,0x8E,0x8B,0x88,0x8B,0x9B,0x9E,0x8D,0x83,0x82,0x86,0x81,0x70,0x6F,0x88, -0x8F,0x82,0x7A,0x77,0x81,0x91,0x94,0x91,0x8C,0x81,0x82,0x85,0x80,0x83,0x94,0x95, -0x87,0x83,0x8D,0x92,0x8D,0x87,0x7C,0x74,0x6C,0x6A,0x6E,0x75,0x73,0x82,0x93,0x8E, -0x8A,0x90,0x8E,0x88,0x87,0x81,0x84,0x8B,0x89,0x89,0x83,0x77,0x73,0x71,0x79,0x86, -0x8E,0x87,0x76,0x6E,0x6C,0x71,0x78,0x75,0x71,0x6E,0x63,0x68,0x7C,0x82,0x82,0x85, -0x88,0x82,0x82,0x83,0x77,0x67,0x60,0x5C,0x6C,0x7B,0x71,0x72,0x7A,0x7B,0x7E,0x84, -0x82,0x83,0x86,0x81,0x7B,0x79,0x83,0x93,0x9C,0x9D,0x91,0x86,0x89,0x8F,0x8C,0x7F, -0x71,0x6B,0x69,0x6C,0x6E,0x6F,0x75,0x6C,0x5D,0x62,0x7A,0x89,0x7C,0x71,0x87,0x9A, -0x9B,0x9C,0x9B,0x97,0x93,0x8D,0x87,0x87,0x8B,0x84,0x77,0x76,0x78,0x81,0x86,0x87, -0x86,0x7F,0x75,0x76,0x8A,0x9F,0xA0,0x92,0x87,0x8C,0x8F,0x88,0x87,0x8F,0x8F,0x8D, -0x8C,0x7C,0x6D,0x70,0x74,0x75,0x75,0x7A,0x89,0x90,0x86,0x7A,0x72,0x73,0x70,0x70, -0x73,0x7D,0x8A,0x92,0x99,0xA5,0xAC,0xA5,0x90,0x85,0x81,0x74,0x60,0x50,0x57,0x6A, -0x78,0x7E,0x89,0x8F,0x8F,0x8B,0x82,0x83,0x80,0x72,0x68,0x69,0x71,0x77,0x76,0x75, -0x7D,0x87,0x88,0x7A,0x75,0x7F,0x84,0x84,0x85,0x85,0x8B,0x96,0x97,0x86,0x7E,0x89, -0x97,0x99,0x8F,0x82,0x79,0x84,0x91,0x8B,0x7D,0x79,0x7A,0x74,0x6E,0x77,0x7D,0x73, -0x73,0x7E,0x88,0x8D,0x90,0x8C,0x7B,0x72,0x78,0x80,0x7E,0x7F,0x7E,0x79,0x7E,0x81, -0x80,0x7D,0x7B,0x84,0x98,0x9E,0x8D,0x7B,0x78,0x79,0x74,0x73,0x7D,0x88,0x83,0x77, -0x74,0x7A,0x89,0x8B,0x8A,0x8A,0x7D,0x74,0x78,0x7B,0x7D,0x7D,0x73,0x6C,0x71,0x75, -0x76,0x78,0x7E,0x7C,0x73,0x7A,0x7E,0x75,0x6E,0x70,0x7C,0x8A,0x8E,0x8B,0x81,0x7E, -0x76,0x7B,0x8C,0x8F,0x84,0x74,0x6D,0x72,0x79,0x7E,0x80,0x7E,0x85,0x8A,0x81,0x6F, -0x68,0x71,0x73,0x63,0x64,0x78,0x90,0x98,0x8F,0x83,0x81,0x8C,0x85,0x72,0x6C,0x68, -0x6A,0x76,0x80,0x85,0x86,0x85,0x86,0x85,0x84,0x91,0x93,0x7C,0x6E,0x73,0x78,0x79, -0x8C,0x94,0x8F,0x97,0xA2,0x9E,0x94,0x96,0x94,0x89,0x81,0x80,0x7D,0x89,0x93,0x8B, -0x80,0x7C,0x7E,0x7E,0x82,0x80,0x7E,0x81,0x80,0x76,0x66,0x70,0x86,0x7D,0x6B,0x70, -0x83,0x92,0x98,0x95,0x8E,0x91,0x91,0x92,0x95,0x96,0x8D,0x84,0x84,0x86,0x86,0x90, -0x9C,0x92,0x8B,0x93,0x89,0x75,0x6B,0x6B,0x6B,0x69,0x74,0x77,0x69,0x6C,0x79,0x76, -0x79,0x82,0x8A,0x88,0x76,0x62,0x61,0x6D,0x71,0x78,0x85,0x8F,0x8A,0x77,0x7A,0x8B, -0x87,0x81,0x7F,0x7E,0x7D,0x7F,0x7E,0x7D,0x80,0x83,0x8B,0x85,0x75,0x77,0x7A,0x75, -0x7D,0x8E,0x94,0x8A,0x78,0x75,0x7E,0x83,0x84,0x71,0x64,0x6F,0x76,0x7C,0x8B,0x8A, -0x7E,0x88,0x91,0x82,0x76,0x78,0x79,0x74,0x76,0x78,0x79,0x85,0x8E,0x82,0x83,0x90, -0x83,0x6C,0x6D,0x78,0x78,0x7A,0x83,0x87,0x8E,0x93,0x97,0x91,0x84,0x94,0x9F,0x94, -0x82,0x78,0x7A,0x7A,0x7E,0x8B,0x93,0x8D,0x8D,0x90,0x82,0x74,0x77,0x7E,0x7F,0x78, -0x6C,0x72,0x84,0x7E,0x6C,0x69,0x7D,0x8B,0x80,0x74,0x71,0x82,0x8B,0x83,0x72,0x72, -0x88,0x9E,0xA4,0x97,0x86,0x7E,0x7D,0x77,0x72,0x74,0x76,0x78,0x79,0x7D,0x8D,0x8D, -0x8D,0x89,0x7C,0x7B,0x79,0x6D,0x73,0x7F,0x85,0x82,0x77,0x75,0x79,0x7B,0x7A,0x7D, -0x85,0x85,0x85,0x8D,0x8A,0x79,0x66,0x69,0x73,0x75,0x7A,0x88,0x94,0x8D,0x84,0x92, -0x98,0x8C,0x7C,0x7D,0x83,0x78,0x71,0x74,0x7F,0x87,0x93,0x91,0x86,0x7C,0x76,0x7F, -0x7F,0x77,0x70,0x67,0x68,0x72,0x74,0x73,0x70,0x84,0x92,0x7D,0x6E,0x7B,0x85,0x87, -0x87,0x88,0x8A,0x8B,0x8F,0x92,0x8F,0x89,0x86,0x87,0x8B,0x8B,0x97,0xA3,0x99,0x83, -0x78,0x78,0x79,0x71,0x64,0x5E,0x67,0x72,0x6E,0x6D,0x75,0x72,0x6F,0x7B,0x7A,0x6D, -0x6A,0x68,0x71,0x80,0x8C,0x90,0x91,0x94,0x92,0x8B,0x8F,0x8B,0x7E,0x7F,0x79,0x6F, -0x6F,0x7E,0x8B,0x8C,0x8D,0x93,0x8E,0x86,0x7E,0x80,0x8A,0x86,0x76,0x71,0x7D,0x7D, -0x7B,0x80,0x7E,0x7F,0x7E,0x7D,0x77,0x73,0x7C,0x7C,0x7A,0x86,0x91,0x9D,0x9D,0x98, -0x97,0x98,0x9B,0x97,0x8E,0x83,0x80,0x87,0x94,0x92,0x85,0x82,0x86,0x88,0x87,0x7E, -0x7A,0x7B,0x78,0x7D,0x88,0x86,0x86,0x90,0x97,0x8B,0x7E,0x74,0x6C,0x6B,0x70,0x7C, -0x81,0x7B,0x79,0x7D,0x7C,0x86,0x8C,0x81,0x7D,0x85,0x84,0x8F,0xA0,0x96,0x91,0x96, -0x94,0x88,0x7F,0x71,0x5E,0x56,0x5D,0x69,0x67,0x68,0x77,0x89,0x91,0x85,0x71,0x6A, -0x67,0x5B,0x60,0x6F,0x7C,0x88,0x90,0x9A,0x96,0x7D,0x6E,0x76,0x7C,0x75,0x6D,0x72, -0x7B,0x7D,0x7D,0x86,0x90,0x88,0x81,0x85,0x86,0x78,0x6A,0x61,0x5E,0x60,0x6A,0x7B, -0x8C,0x90,0x89,0x85,0x85,0x80,0x79,0x72,0x71,0x7B,0x79,0x6D,0x6C,0x74,0x7D,0x90, -0x9E,0x9F,0x9A,0x8E,0x7F,0x77,0x80,0x85,0x82,0x82,0x89,0x83,0x78,0x7A,0x83,0x80, -0x7F,0x87,0x83,0x7A,0x77,0x77,0x7A,0x82,0x89,0x88,0x7E,0x7D,0x86,0x8B,0x81,0x7E, -0x86,0x87,0x7C,0x76,0x7D,0x8A,0x94,0x99,0x94,0x85,0x82,0x87,0x8E,0x93,0x90,0x85, -0x88,0x8D,0x8C,0x8C,0x85,0x82,0x86,0x82,0x80,0x80,0x83,0x83,0x82,0x82,0x78,0x72, -0x75,0x80,0x8B,0x92,0x8B,0x7C,0x75,0x79,0x78,0x73,0x73,0x73,0x75,0x79,0x7F,0x81, -0x82,0x81,0x87,0x91,0x90,0x79,0x6E,0x6A,0x67,0x70,0x7A,0x84,0x89,0x8A,0x89,0x86, -0x82,0x7D,0x6F,0x67,0x6F,0x6F,0x70,0x7C,0x82,0x86,0x8F,0x97,0x9D,0x94,0x86,0x85, -0x85,0x82,0x7E,0x7B,0x84,0x86,0x81,0x75,0x75,0x81,0x7F,0x71,0x79,0x87,0x7E,0x7C, -0x83,0x88,0x83,0x82,0x83,0x80,0x7A,0x6F,0x6C,0x78,0x83,0x80,0x7C,0x81,0x87,0x89, -0x7F,0x6F,0x76,0x7E,0x7E,0x7D,0x83,0x81,0x7A,0x86,0x93,0x9D,0x97,0x85,0x7A,0x78, -0x7B,0x86,0x88,0x82,0x84,0x89,0x8C,0x86,0x82,0x7F,0x7D,0x87,0x8D,0x83,0x75,0x79, -0x84,0x87,0x85,0x6F,0x69,0x73,0x79,0x7A,0x79,0x79,0x72,0x6C,0x75,0x82,0x85,0x8B, -0x90,0x92,0x98,0x9E,0x9A,0x96,0x8C,0x7C,0x75,0x7B,0x7B,0x82,0x87,0x7C,0x79,0x7C, -0x7D,0x7B,0x7C,0x79,0x71,0x6D,0x6A,0x6D,0x78,0x8D,0x9E,0x9D,0x92,0x85,0x74,0x6F, -0x70,0x73,0x78,0x7A,0x7C,0x8B,0x8F,0x87,0x7B,0x7E,0x7E,0x7A,0x82,0x84,0x7D,0x7B, -0x81,0x88,0x8B,0x85,0x7D,0x73,0x6C,0x63,0x5F,0x6B,0x79,0x83,0x89,0x8B,0x86,0x81, -0x8A,0x93,0x8F,0x83,0x77,0x7A,0x82,0x88,0x8C,0x86,0x80,0x7E,0x83,0x8C,0x8D,0x8B, -0x8E,0x86,0x77,0x75,0x7A,0x79,0x76,0x7B,0x7D,0x7D,0x80,0x84,0x83,0x78,0x73,0x79, -0x74,0x6B,0x69,0x7A,0x86,0x83,0x81,0x83,0x93,0x91,0x7B,0x7A,0x85,0x8D,0x87,0x7D, -0x82,0x82,0x73,0x6A,0x7C,0x8D,0x8D,0x83,0x7B,0x7D,0x80,0x83,0x7E,0x7F,0x86,0x7E, -0x79,0x7C,0x7D,0x7B,0x79,0x7B,0x83,0x87,0x7F,0x7C,0x70,0x66,0x75,0x7A,0x6B,0x68, -0x77,0x85,0x86,0x86,0x8C,0x91,0x8A,0x88,0x92,0x92,0x88,0x85,0x7C,0x70,0x71,0x84, -0x8F,0x8F,0x95,0x8B,0x82,0x89,0x96,0x94,0x91,0x91,0x8A,0x77,0x69,0x6A,0x74,0x88, -0x91,0x87,0x7F,0x7F,0x83,0x80,0x7D,0x7F,0x83,0x8A,0x87,0x7B,0x7C,0x7F,0x76,0x83, -0x94,0x96,0x91,0x8E,0x89,0x82,0x81,0x8C,0x8D,0x86,0x85,0x81,0x85,0x90,0x98,0x96, -0x8D,0x89,0x80,0x77,0x72,0x6D,0x6A,0x5C,0x58,0x65,0x73,0x7C,0x7F,0x80,0x81,0x82, -0x79,0x69,0x70,0x87,0x8A,0x88,0x84,0x7C,0x7D,0x8D,0x99,0x90,0x81,0x70,0x69,0x75, -0x7F,0x7F,0x78,0x7A,0x89,0x8C,0x84,0x7D,0x7A,0x74,0x75,0x7C,0x81,0x82,0x7C,0x75, -0x73,0x71,0x6F,0x73,0x71,0x6C,0x66,0x67,0x69,0x66,0x6F,0x81,0x8C,0x87,0x7E,0x82, -0x8C,0x94,0x98,0x8B,0x84,0x8D,0x8C,0x7F,0x82,0x8A,0x8D,0x8E,0x8F,0x99,0x95,0x84, -0x81,0x89,0x89,0x7C,0x6E,0x6D,0x6F,0x7C,0x89,0x7E,0x73,0x6E,0x6A,0x77,0x87,0x89, -0x83,0x89,0x97,0x9A,0x92,0x90,0x8F,0x85,0x7B,0x76,0x75,0x7B,0x81,0x83,0x7E,0x80, -0x80,0x83,0x87,0x8A,0x8D,0x8E,0x82,0x71,0x6E,0x74,0x7A,0x7B,0x76,0x7A,0x85,0x81, -0x6F,0x69,0x6B,0x70,0x79,0x76,0x6D,0x69,0x74,0x83,0x89,0x80,0x82,0x8B,0x8C,0x88, -0x7F,0x83,0x91,0x8F,0x8B,0x8F,0x8A,0x7A,0x77,0x81,0x7D,0x77,0x7E,0x86,0x89,0x7C, -0x71,0x7C,0x86,0x84,0x7F,0x79,0x74,0x75,0x76,0x79,0x79,0x7A,0x7E,0x7E,0x88,0x8C, -0x87,0x8E,0x8E,0x85,0x81,0x85,0x8C,0x8B,0x88,0x8F,0x99,0x96,0x91,0x94,0x9C,0x94, -0x87,0x85,0x84,0x7E,0x76,0x70,0x6F,0x72,0x74,0x70,0x79,0x8B,0x8C,0x83,0x85,0x8A, -0x83,0x78,0x73,0x78,0x7C,0x7B,0x7D,0x82,0x86,0x8B,0x8F,0x94,0x93,0x8D,0x86,0x85, -0x86,0x7E,0x73,0x6B,0x75,0x87,0x83,0x77,0x7C,0x86,0x87,0x78,0x71,0x7B,0x7B,0x79, -0x7A,0x75,0x77,0x72,0x6C,0x6B,0x71,0x7A,0x79,0x7C,0x7D,0x78,0x79,0x76,0x73,0x73, -0x75,0x78,0x75,0x77,0x7D,0x7D,0x83,0x88,0x92,0x95,0x8C,0x88,0x8A,0x8C,0x8B,0x83, -0x82,0x86,0x82,0x7B,0x78,0x7B,0x7E,0x82,0x7E,0x7A,0x7D,0x7C,0x74,0x71,0x70,0x71, -0x80,0x88,0x76,0x76,0x93,0x94,0x83,0x7D,0x81,0x80,0x7F,0x80,0x81,0x89,0x91,0x91, -0x94,0x9B,0x97,0x8D,0x8D,0x82,0x70,0x78,0x8A,0x86,0x79,0x78,0x7E,0x86,0x83,0x7F, -0x80,0x88,0x87,0x7F,0x7E,0x87,0x8B,0x7D,0x6F,0x78,0x8D,0x90,0x87,0x82,0x85,0x85, -0x79,0x77,0x80,0x87,0x8D,0x86,0x74,0x77,0x89,0x8E,0x87,0x81,0x7A,0x7D,0x8A,0x8E, -0x82,0x7D,0x7D,0x74,0x6C,0x6D,0x74,0x73,0x6F,0x6B,0x73,0x72,0x68,0x72,0x7C,0x77, -0x72,0x7F,0x8F,0x8F,0x77,0x68,0x71,0x7E,0x7B,0x7D,0x82,0x82,0x7D,0x83,0x8B,0x90, -0x8B,0x83,0x84,0x84,0x87,0x79,0x67,0x6E,0x7B,0x7F,0x7A,0x78,0x81,0x86,0x83,0x7A, -0x73,0x7D,0x88,0x85,0x7E,0x81,0x89,0x8C,0x90,0x92,0x84,0x7E,0x85,0x87,0x81,0x7C, -0x7C,0x74,0x6E,0x6F,0x74,0x88,0x97,0x8E,0x80,0x7D,0x85,0x89,0x81,0x7B,0x81,0x87, -0x86,0x8B,0x99,0x9F,0x93,0x88,0x87,0x86,0x82,0x8A,0x8D,0x7E,0x7B,0x81,0x88,0x8E, -0x83,0x74,0x7A,0x7A,0x71,0x6F,0x74,0x77,0x7A,0x7D,0x7F,0x7F,0x79,0x73,0x76,0x7C, -0x76,0x75,0x82,0x94,0x95,0x8D,0x8D,0x82,0x78,0x75,0x7D,0x8B,0x8D,0x88,0x8A,0x92, -0x9E,0x97,0x7A,0x71,0x7B,0x82,0x83,0x7E,0x7E,0x79,0x78,0x7A,0x7A,0x7E,0x7F,0x74, -0x76,0x80,0x87,0x8E,0x8A,0x7D,0x7A,0x77,0x76,0x73,0x67,0x6B,0x77,0x7E,0x81,0x81, -0x83,0x8B,0x8D,0x81,0x75,0x78,0x7F,0x7E,0x82,0x84,0x86,0x91,0x95,0x8B,0x88,0x8D, -0x92,0x86,0x74,0x73,0x77,0x7B,0x83,0x81,0x72,0x6E,0x7A,0x80,0x7E,0x75,0x7A,0x80, -0x79,0x7D,0x7E,0x77,0x77,0x78,0x7F,0x7C,0x78,0x83,0x91,0x91,0x92,0x93,0x91,0x8B, -0x7E,0x7A,0x77,0x71,0x78,0x7E,0x81,0x88,0x85,0x7A,0x7E,0x83,0x73,0x6B,0x70,0x71, -0x73,0x7D,0x7E,0x7B,0x7B,0x74,0x6E,0x71,0x79,0x7E,0x80,0x81,0x7D,0x77,0x7E,0x7D, -0x81,0x8A,0x82,0x7A,0x83,0x87,0x7F,0x81,0x81,0x7C,0x7B,0x81,0x8B,0x90,0x8D,0x83, -0x7A,0x79,0x7A,0x82,0x90,0x92,0x8F,0x95,0x97,0x8A,0x77,0x6E,0x72,0x73,0x76,0x77, -0x7D,0x83,0x81,0x82,0x7F,0x83,0x8A,0x85,0x85,0x84,0x7F,0x7F,0x88,0x8F,0x8A,0x8E, -0x8D,0x89,0x8F,0x8D,0x89,0x94,0x92,0x89,0x8F,0x98,0x92,0x89,0x88,0x8A,0x84,0x7B, -0x78,0x73,0x78,0x7E,0x7A,0x76,0x75,0x79,0x71,0x6B,0x6E,0x6C,0x75,0x7F,0x7A,0x7D, -0x86,0x83,0x80,0x7F,0x79,0x76,0x74,0x74,0x74,0x7C,0x83,0x7C,0x7A,0x83,0x8B,0x82, -0x78,0x7B,0x87,0x8E,0x88,0x81,0x84,0x8B,0x87,0x7E,0x79,0x7E,0x7F,0x7D,0x7C,0x7D, -0x88,0x8A,0x7D,0x7C,0x7C,0x69,0x66,0x76,0x78,0x71,0x76,0x88,0x93,0x87,0x7D,0x82, -0x81,0x7A,0x7F,0x87,0x81,0x6B,0x66,0x7E,0x95,0x8F,0x79,0x6B,0x6F,0x72,0x69,0x6E, -0x84,0x8F,0x8C,0x8A,0x93,0x98,0x90,0x8A,0x84,0x7F,0x7B,0x7C,0x82,0x82,0x7D,0x7B, -0x7F,0x86,0x8D,0x8E,0x87,0x81,0x7D,0x7C,0x7A,0x83,0x8E,0x92,0x8E,0x89,0x87,0x86, -0x85,0x86,0x8A,0x8B,0x84,0x7D,0x80,0x7E,0x72,0x66,0x68,0x76,0x7D,0x81,0x8D,0x98, -0x96,0x87,0x83,0x8B,0x8D,0x8E,0x91,0x8E,0x86,0x7C,0x7C,0x86,0x87,0x82,0x81,0x82, -0x8B,0x8C,0x81,0x7E,0x7E,0x7A,0x70,0x6B,0x6B,0x72,0x78,0x75,0x75,0x76,0x71,0x66, -0x62,0x6B,0x79,0x81,0x83,0x7F,0x7A,0x7F,0x86,0x82,0x82,0x8C,0x8F,0x88,0x82,0x82, -0x83,0x82,0x7F,0x81,0x7C,0x75,0x80,0x8A,0x90,0x8E,0x7D,0x6F,0x67,0x6D,0x7A,0x7F, -0x7C,0x7E,0x86,0x7F,0x74,0x77,0x81,0x7B,0x69,0x6A,0x75,0x79,0x78,0x74,0x73,0x7F, -0x91,0x94,0x88,0x7C,0x74,0x76,0x78,0x78,0x7D,0x88,0x8C,0x8C,0x8D,0x93,0x9D,0x97, -0x8A,0x83,0x85,0x85,0x80,0x85,0x8C,0x8D,0x90,0x8C,0x84,0x7D,0x77,0x75,0x72,0x70, -0x70,0x71,0x76,0x8A,0x8F,0x82,0x7B,0x74,0x71,0x77,0x82,0x82,0x80,0x85,0x8D,0x91, -0x8A,0x82,0x89,0x98,0x99,0x90,0x8C,0x8F,0x97,0x8F,0x7D,0x7D,0x7F,0x7B,0x70,0x68, -0x6F,0x7A,0x81,0x87,0x86,0x85,0x7E,0x77,0x72,0x70,0x6E,0x6D,0x74,0x79,0x81,0x8C, -0x8E,0x88,0x86,0x8A,0x85,0x7B,0x74,0x74,0x7B,0x84,0x8C,0x88,0x86,0x8C,0x90,0x92, -0x8C,0x88,0x85,0x85,0x8D,0x89,0x76,0x71,0x79,0x78,0x73,0x75,0x7F,0x86,0x86,0x88, -0x80,0x73,0x69,0x65,0x6B,0x73,0x73,0x72,0x75,0x75,0x73,0x76,0x85,0x92,0x8B,0x7C, -0x7A,0x82,0x83,0x7E,0x80,0x86,0x88,0x8C,0x8F,0x8D,0x87,0x80,0x80,0x85,0x89,0x8E, -0x96,0x98,0x8E,0x83,0x7C,0x80,0x89,0x88,0x81,0x7E,0x7D,0x76,0x6B,0x6D,0x76,0x75, -0x75,0x75,0x77,0x7A,0x77,0x72,0x79,0x7D,0x71,0x70,0x81,0x8C,0x85,0x7E,0x7D,0x7F, -0x80,0x83,0x87,0x85,0x83,0x87,0x95,0xA1,0x9E,0x90,0x84,0x89,0x8D,0x8C,0x8C,0x8A, -0x8C,0x8B,0x86,0x7E,0x74,0x6B,0x67,0x6A,0x6D,0x70,0x75,0x74,0x75,0x7D,0x75,0x66, -0x67,0x71,0x6C,0x66,0x73,0x84,0x88,0x8A,0x8B,0x89,0x8F,0x8E,0x7F,0x76,0x74,0x7B, -0x8C,0x92,0x94,0x95,0x92,0x96,0x98,0x96,0x8C,0x86,0x81,0x78,0x72,0x6D,0x72,0x7F, -0x81,0x83,0x84,0x81,0x81,0x84,0x85,0x7D,0x72,0x71,0x73,0x73,0x76,0x79,0x77,0x71, -0x7B,0x89,0x82,0x7C,0x7D,0x79,0x80,0x81,0x7D,0x82,0x91,0x9A,0x97,0x94,0x9B,0x9D, -0x9C,0x8D,0x83,0x8A,0x7D,0x73,0x79,0x83,0x83,0x7E,0x81,0x7D,0x79,0x7C,0x73,0x71, -0x76,0x6C,0x63,0x69,0x6D,0x6C,0x76,0x7F,0x7E,0x79,0x7C,0x75,0x73,0x70,0x6D,0x79, -0x85,0x7B,0x72,0x7D,0x91,0x95,0x90,0x8A,0x89,0x95,0x8E,0x89,0x96,0x93,0x89,0x8D, -0x91,0x88,0x83,0x84,0x7F,0x7F,0x7E,0x75,0x79,0x89,0x8A,0x84,0x78,0x6E,0x6C,0x69, -0x61,0x57,0x61,0x6D,0x73,0x82,0x89,0x85,0x86,0x89,0x8E,0x8C,0x89,0x8B,0x88,0x8F, -0x93,0x94,0x9A,0x93,0x83,0x85,0x8A,0x8C,0x87,0x86,0x7D,0x7F,0x8F,0x90,0x92,0x9B, -0x94,0x87,0x82,0x83,0x83,0x84,0x85,0x79,0x7A,0x77,0x6D,0x70,0x77,0x74,0x6F,0x6F, -0x72,0x75,0x7D,0x7E,0x81,0x93,0x84,0x74,0x7A,0x7F,0x7F,0x80,0x7E,0x82,0x85,0x85, -0x7F,0x7E,0x86,0x81,0x81,0x7F,0x7F,0x86,0x8C,0x89,0x7F,0x7A,0x79,0x75,0x76,0x76, -0x76,0x77,0x73,0x70,0x60,0x63,0x72,0x73,0x6C,0x68,0x6A,0x71,0x78,0x81,0x87,0x83, -0x7E,0x88,0x8C,0x85,0x84,0x8A,0x87,0x7F,0x83,0x8D,0x93,0x90,0x94,0x92,0x85,0x82, -0x8A,0x93,0x90,0x82,0x7F,0x7B,0x79,0x81,0x7E,0x7D,0x7F,0x84,0x83,0x7F,0x86,0x7D, -0x6F,0x72,0x77,0x81,0x88,0x84,0x83,0x87,0x8A,0x7F,0x7A,0x7C,0x7D,0x83,0x83,0x6F, -0x6F,0x7E,0x91,0x94,0x89,0x8E,0x94,0x92,0x86,0x85,0x91,0x88,0x77,0x7B,0x83,0x84, -0x77,0x7A,0x80,0x7A,0x74,0x79,0x7E,0x77,0x6F,0x74,0x72,0x6D,0x77,0x7F,0x84,0x87, -0x86,0x85,0x83,0x7C,0x77,0x7C,0x82,0x7E,0x7A,0x79,0x83,0x8C,0x8C,0x8A,0x7F,0x76, -0x76,0x7C,0x80,0x7F,0x7D,0x81,0x82,0x83,0x83,0x85,0x86,0x7E,0x7B,0x82,0x79,0x79, -0x83,0x82,0x7B,0x78,0x7D,0x82,0x84,0x78,0x6E,0x6E,0x79,0x7B,0x77,0x71,0x72,0x82, -0x8F,0x88,0x7F,0x81,0x8D,0x90,0x8D,0x80,0x75,0x82,0x87,0x7B,0x72,0x7C,0x85,0x89, -0x8A,0x88,0x82,0x87,0x89,0x81,0x7E,0x84,0x8A,0x8E,0x93,0x90,0x91,0x91,0x85,0x83, -0x8A,0x89,0x8F,0x8F,0x81,0x7B,0x83,0x89,0x86,0x7A,0x70,0x6B,0x6A,0x6C,0x6E,0x7C, -0x87,0x89,0x84,0x81,0x84,0x84,0x81,0x81,0x84,0x8D,0x8E,0x87,0x7E,0x7A,0x82,0x8F, -0x90,0x82,0x79,0x7F,0x86,0x82,0x7D,0x84,0x8F,0x8F,0x8C,0x8B,0x8B,0x7D,0x75,0x72, -0x6A,0x66,0x61,0x5C,0x5B,0x5E,0x5F,0x69,0x77,0x7B,0x79,0x7A,0x79,0x7E,0x86,0x86, -0x85,0x8A,0x90,0x94,0x97,0x9B,0x99,0x91,0x85,0x83,0x8C,0x88,0x79,0x71,0x74,0x72, -0x6E,0x77,0x83,0x82,0x81,0x81,0x80,0x82,0x7C,0x7B,0x7D,0x74,0x75,0x7C,0x7D,0x80, -0x7A,0x74,0x7E,0x8A,0x87,0x7E,0x7E,0x85,0x85,0x81,0x82,0x86,0x81,0x7C,0x79,0x79, -0x7C,0x79,0x80,0x8B,0x8A,0x84,0x86,0x8F,0x94,0x91,0x90,0x90,0x90,0x8D,0x86,0x80, -0x7C,0x80,0x84,0x82,0x84,0x81,0x7D,0x75,0x6B,0x6D,0x69,0x6B,0x75,0x77,0x74,0x77, -0x82,0x89,0x82,0x7C,0x7D,0x88,0x91,0x8C,0x78,0x6D,0x71,0x75,0x79,0x7E,0x7E,0x7B, -0x7E,0x80,0x7F,0x85,0x8F,0x9B,0x9E,0x91,0x86,0x8C,0x93,0x88,0x7B,0x74,0x7A,0x83, -0x83,0x7F,0x7E,0x7E,0x80,0x79,0x71,0x75,0x7F,0x79,0x6F,0x73,0x7A,0x7B,0x7E,0x85, -0x84,0x7F,0x7D,0x79,0x79,0x82,0x85,0x86,0x8F,0x95,0x90,0x8D,0x96,0x92,0x83,0x7E, -0x72,0x6E,0x7C,0x82,0x84,0x8D,0x92,0x8F,0x8B,0x88,0x7B,0x73,0x77,0x71,0x62,0x64, -0x72,0x71,0x6F,0x73,0x7A,0x79,0x78,0x77,0x7C,0x86,0x8A,0x87,0x81,0x7E,0x85,0x89, -0x8A,0x8C,0x90,0x91,0x8D,0x85,0x83,0x87,0x8C,0x8B,0x8A,0x85,0x78,0x71,0x71,0x75, -0x7A,0x7F,0x84,0x81,0x7F,0x82,0x83,0x80,0x79,0x7B,0x83,0x79,0x6F,0x6F,0x76,0x7E, -0x82,0x7D,0x70,0x69,0x75,0x83,0x8C,0x8B,0x84,0x8B,0x93,0x91,0x83,0x78,0x7D,0x85, -0x91,0x9A,0x92,0x8D,0x91,0x94,0x97,0x96,0x8D,0x7C,0x69,0x6D,0x7E,0x84,0x89,0x8F, -0x8A,0x7F,0x7B,0x7A,0x7A,0x76,0x6B,0x5F,0x5C,0x60,0x6E,0x7C,0x7C,0x77,0x78,0x7E, -0x81,0x83,0x83,0x7C,0x80,0x8F,0x8F,0x88,0x8F,0x9A,0xA0,0xA0,0x96,0x87,0x7E,0x7E, -0x7A,0x7A,0x84,0x83,0x7D,0x84,0x84,0x76,0x6F,0x80,0x90,0x89,0x76,0x6D,0x70,0x72, -0x70,0x75,0x7A,0x77,0x6C,0x6A,0x71,0x73,0x75,0x79,0x80,0x86,0x85,0x8A,0x89,0x85, -0x87,0x86,0x84,0x8D,0x92,0x81,0x6E,0x70,0x80,0x8A,0x85,0x7C,0x74,0x74,0x77,0x75, -0x77,0x7F,0x7B,0x77,0x7A,0x77,0x76,0x84,0x91,0x93,0x7E,0x6C,0x74,0x80,0x7E,0x7C, -0x7E,0x7B,0x6E,0x6A,0x74,0x7A,0x84,0x8B,0x8C,0x86,0x80,0x8D,0x94,0x8C,0x8A,0x89, -0x7F,0x78,0x7F,0x8D,0x90,0x84,0x74,0x73,0x7B,0x82,0x87,0x8A,0x8E,0x8B,0x90,0x98, -0x94,0x88,0x85,0x87,0x83,0x7C,0x79,0x81,0x83,0x7A,0x75,0x7A,0x82,0x7D,0x7B,0x75, -0x69,0x6A,0x73,0x7E,0x8B,0x8F,0x93,0x93,0x8F,0x88,0x84,0x89,0x8A,0x87,0x7F,0x7A, -0x88,0x94,0x90,0x88,0x7F,0x7C,0x7D,0x7E,0x84,0x84,0x80,0x7C,0x82,0x8A,0x85,0x84, -0x88,0x82,0x7B,0x82,0x89,0x83,0x7F,0x81,0x7B,0x73,0x78,0x7D,0x78,0x6D,0x6C,0x76, -0x7E,0x82,0x7C,0x72,0x73,0x76,0x74,0x74,0x7B,0x81,0x7E,0x82,0x8D,0x89,0x83,0x82, -0x84,0x85,0x7D,0x76,0x6F,0x6E,0x7C,0x82,0x81,0x82,0x82,0x80,0x7C,0x7F,0x87,0x87, -0x81,0x7B,0x76,0x7A,0x83,0x85,0x85,0x82,0x81,0x82,0x83,0x82,0x80,0x85,0x8B,0x8B, -0x82,0x76,0x71,0x6D,0x72,0x75,0x73,0x79,0x84,0x87,0x85,0x7B,0x76,0x7C,0x84,0x89, -0x82,0x78,0x77,0x75,0x76,0x83,0x88,0x82,0x83,0x84,0x83,0x87,0x8C,0x8A,0x84,0x79, -0x75,0x81,0x84,0x80,0x85,0x8D,0x8E,0x8E,0x8C,0x85,0x7F,0x82,0x85,0x87,0x86,0x7C, -0x7D,0x83,0x82,0x82,0x7E,0x78,0x76,0x7B,0x7F,0x80,0x8A,0x93,0x8D,0x82,0x7E,0x85, -0x93,0x98,0x8F,0x8F,0x8C,0x8B,0x8C,0x89,0x83,0x78,0x79,0x7A,0x71,0x6B,0x6E,0x77, -0x78,0x7B,0x88,0x8A,0x82,0x7B,0x79,0x7B,0x7B,0x78,0x7D,0x80,0x7C,0x75,0x72,0x75, -0x7B,0x87,0x86,0x7C,0x7B,0x7D,0x79,0x79,0x82,0x82,0x75,0x72,0x7D,0x91,0xA1,0xA2, -0x95,0x84,0x79,0x78,0x77,0x70,0x6A,0x66,0x66,0x69,0x69,0x6A,0x76,0x80,0x77,0x6F, -0x73,0x71,0x71,0x77,0x7F,0x86,0x88,0x83,0x83,0x86,0x89,0x8C,0x87,0x8A,0x8B,0x88, -0x7F,0x78,0x81,0x8D,0x8C,0x84,0x83,0x87,0x89,0x88,0x8C,0x92,0x92,0x8B,0x84,0x80, -0x82,0x81,0x7D,0x76,0x77,0x78,0x70,0x70,0x7D,0x8A,0x89,0x89,0x86,0x7A,0x75,0x7A, -0x7D,0x7D,0x7F,0x87,0x8E,0x83,0x78,0x7E,0x8B,0x99,0x9F,0x99,0x92,0x8C,0x82,0x7C, -0x7F,0x82,0x80,0x80,0x85,0x8C,0x8A,0x87,0x8F,0x8A,0x7B,0x70,0x6D,0x6D,0x72,0x75, -0x76,0x7B,0x82,0x85,0x82,0x7F,0x82,0x85,0x87,0x7A,0x68,0x6C,0x7D,0x81,0x7D,0x80, -0x85,0x86,0x84,0x7B,0x78,0x7C,0x7A,0x79,0x81,0x89,0x91,0x93,0x92,0x92,0x8F,0x8D, -0x8D,0x8D,0x88,0x80,0x78,0x7B,0x88,0x85,0x7B,0x71,0x6B,0x71,0x7A,0x78,0x6A,0x62, -0x66,0x6C,0x73,0x81,0x87,0x86,0x86,0x7F,0x7A,0x7A,0x7D,0x83,0x87,0x88,0x88,0x8A, -0x93,0x9A,0x94,0x86,0x7F,0x80,0x81,0x83,0x83,0x7C,0x77,0x78,0x7B,0x80,0x8B,0x91, -0x8A,0x7F,0x6D,0x60,0x65,0x72,0x6F,0x6C,0x70,0x74,0x7C,0x7F,0x81,0x80,0x7B,0x74, -0x70,0x72,0x72,0x6E,0x74,0x79,0x79,0x84,0x94,0x98,0x95,0x95,0x95,0x93,0x90,0x8A, -0x88,0x8C,0x89,0x81,0x7D,0x79,0x79,0x85,0x8C,0x84,0x79,0x76,0x7B,0x82,0x85,0x7F, -0x76,0x73,0x71,0x72,0x7B,0x82,0x7B,0x71,0x78,0x7D,0x78,0x73,0x72,0x7B,0x7E,0x7D, -0x82,0x83,0x82,0x8A,0x8F,0x92,0x95,0x96,0x97,0x96,0x9A,0x9D,0x96,0x8A,0x7F,0x76, -0x78,0x84,0x88,0x84,0x80,0x80,0x83,0x85,0x7D,0x74,0x71,0x75,0x76,0x77,0x7F,0x83, -0x86,0x8D,0x8F,0x8C,0x89,0x84,0x7F,0x7F,0x7B,0x7B,0x83,0x88,0x87,0x88,0x8A,0x86, -0x7A,0x6C,0x70,0x81,0x91,0x8B,0x77,0x78,0x87,0x8E,0x89,0x78,0x6A,0x65,0x6A,0x73, -0x78,0x79,0x78,0x7B,0x78,0x71,0x77,0x84,0x84,0x7A,0x72,0x6E,0x70,0x78,0x79,0x79, -0x81,0x8D,0x94,0x92,0x8D,0x8C,0x8D,0x8A,0x85,0x7F,0x78,0x77,0x7C,0x7C,0x71,0x6B, -0x73,0x7F,0x87,0x85,0x81,0x84,0x88,0x7D,0x72,0x71,0x71,0x71,0x71,0x7A,0x83,0x83, -0x8A,0x90,0x91,0x8E,0x88,0x87,0x92,0x93,0x80,0x78,0x84,0x85,0x7F,0x7E,0x82,0x86, -0x8B,0x8A,0x81,0x82,0x87,0x8A,0x8C,0x89,0x85,0x83,0x82,0x82,0x7E,0x7C,0x7C,0x80, -0x76,0x70,0x7C,0x86,0x7E,0x71,0x6E,0x72,0x7A,0x7C,0x80,0x95,0x9F,0x92,0x84,0x84, -0x8B,0x8E,0x8A,0x7F,0x7B,0x7E,0x7F,0x7C,0x7D,0x81,0x86,0x87,0x80,0x7A,0x76,0x70, -0x6E,0x72,0x75,0x7B,0x80,0x82,0x7B,0x7A,0x81,0x7D,0x73,0x70,0x78,0x7A,0x73,0x74, -0x81,0x90,0x97,0x8D,0x87,0x88,0x85,0x86,0x88,0x81,0x7F,0x82,0x82,0x88,0x8C,0x86, -0x81,0x84,0x85,0x85,0x79,0x6D,0x70,0x78,0x78,0x71,0x6F,0x76,0x7B,0x7B,0x73,0x70, -0x7B,0x7A,0x79,0x81,0x84,0x84,0x8C,0x91,0x8A,0x83,0x89,0x8D,0x84,0x7F,0x85,0x8C, -0x8F,0x88,0x83,0x88,0x8D,0x86,0x83,0x8C,0x89,0x80,0x7A,0x76,0x75,0x7F,0x86,0x7A, -0x75,0x7F,0x7F,0x80,0x84,0x82,0x7A,0x77,0x74,0x73,0x75,0x74,0x73,0x75,0x7B,0x7B, -0x81,0x84,0x85,0x8A,0x89,0x84,0x7A,0x6E,0x73,0x80,0x88,0x8B,0x91,0x95,0x8B,0x88, -0x89,0x81,0x7E,0x7E,0x7D,0x7D,0x7C,0x7E,0x78,0x77,0x75,0x74,0x7A,0x77,0x74,0x78, -0x77,0x77,0x7D,0x85,0x88,0x85,0x83,0x80,0x80,0x7E,0x7C,0x86,0x8E,0x8A,0x85,0x82, -0x84,0x7A,0x71,0x70,0x72,0x7D,0x87,0x8F,0x94,0x8F,0x84,0x85,0x8D,0x91,0x90,0x91, -0x8C,0x83,0x87,0x87,0x83,0x89,0x88,0x82,0x7F,0x7A,0x7B,0x7A,0x75,0x75,0x7F,0x83, -0x7F,0x78,0x6E,0x5F,0x63,0x76,0x7B,0x7F,0x80,0x81,0x7F,0x85,0x8B,0x8D,0x92,0x8A, -0x7E,0x82,0x84,0x7F,0x84,0x8B,0x8B,0x8A,0x8F,0x8E,0x89,0x85,0x83,0x8A,0x90,0x7C, -0x69,0x76,0x84,0x7E,0x7C,0x7E,0x7C,0x81,0x80,0x7A,0x79,0x77,0x75,0x7B,0x7F,0x7C, -0x75,0x73,0x72,0x73,0x73,0x76,0x77,0x7D,0x86,0x84,0x86,0x88,0x85,0x84,0x7B,0x77, -0x7D,0x7E,0x81,0x84,0x84,0x88,0x91,0x97,0x95,0x91,0x8C,0x85,0x7E,0x7A,0x78,0x7A, -0x82,0x87,0x7F,0x79,0x7D,0x77,0x6D,0x73,0x7D,0x86,0x85,0x7E,0x7D,0x78,0x6E,0x67, -0x69,0x76,0x81,0x86,0x85,0x84,0x8D,0x90,0x84,0x7F,0x7E,0x7B,0x7C,0x7D,0x7F,0x83, -0x85,0x85,0x86,0x85,0x82,0x7C,0x75,0x71,0x70,0x70,0x7C,0x8B,0x8D,0x86,0x7B,0x79, -0x7E,0x75,0x72,0x7F,0x83,0x79,0x79,0x82,0x83,0x80,0x83,0x81,0x7F,0x7E,0x7B,0x83, -0x94,0x95,0x8A,0x8C,0x91,0x8C,0x8C,0x8E,0x8B,0x8B,0x8A,0x79,0x77,0x81,0x80,0x7F, -0x7D,0x78,0x75,0x74,0x76,0x7A,0x7E,0x7D,0x77,0x7B,0x84,0x87,0x88,0x85,0x7F,0x7A, -0x74,0x79,0x83,0x8A,0x87,0x85,0x86,0x7E,0x78,0x77,0x79,0x7F,0x89,0x8B,0x89,0x8B, -0x8D,0x8E,0x91,0x91,0x86,0x7D,0x7E,0x7F,0x82,0x88,0x8B,0x85,0x7F,0x7E,0x80,0x81, -0x77,0x71,0x6E,0x6D,0x77,0x80,0x7D,0x7B,0x81,0x82,0x83,0x86,0x84,0x7B,0x76,0x7F, -0x86,0x88,0x86,0x84,0x89,0x8B,0x7F,0x73,0x76,0x81,0x8B,0x8A,0x7F,0x79,0x7F,0x80, -0x78,0x77,0x7C,0x81,0x81,0x81,0x83,0x83,0x81,0x7F,0x7D,0x75,0x70,0x77,0x74,0x68, -0x6D,0x78,0x78,0x75,0x77,0x7D,0x84,0x81,0x76,0x76,0x7C,0x79,0x78,0x86,0x95,0x9B, -0x99,0x8F,0x82,0x7A,0x78,0x6D,0x64,0x70,0x7C,0x7C,0x7F,0x87,0x8B,0x8A,0x89,0x8E, -0x8D,0x89,0x82,0x7A,0x79,0x87,0x91,0x8B,0x86,0x86,0x86,0x85,0x81,0x75,0x79,0x8C, -0x87,0x78,0x78,0x7C,0x7B,0x77,0x73,0x78,0x7E,0x77,0x72,0x7E,0x8F,0x8E,0x89,0x8B, -0x8C,0x8A,0x85,0x85,0x85,0x86,0x8C,0x91,0x93,0x92,0x8D,0x87,0x81,0x7C,0x7F,0x78, -0x73,0x78,0x7A,0x7D,0x82,0x8B,0x8F,0x8D,0x8A,0x8B,0x8C,0x85,0x82,0x86,0x84,0x7A, -0x7D,0x83,0x86,0x7B,0x6A,0x62,0x5E,0x5E,0x60,0x68,0x74,0x78,0x79,0x7E,0x81,0x83, -0x89,0x8F,0x94,0x95,0x95,0x93,0x92,0x97,0x8B,0x7C,0x7D,0x80,0x82,0x80,0x7F,0x80, -0x85,0x84,0x7F,0x80,0x83,0x79,0x71,0x72,0x73,0x73,0x75,0x83,0x8B,0x7A,0x6E,0x6F, -0x6D,0x62,0x5F,0x6B,0x74,0x6E,0x6E,0x78,0x81,0x7F,0x73,0x76,0x83,0x87,0x87,0x88, -0x95,0x9A,0x96,0x91,0x95,0xA2,0x9A,0x87,0x7A,0x78,0x7A,0x7D,0x7E,0x83,0x8C,0x8E, -0x87,0x7A,0x76,0x6E,0x64,0x68,0x70,0x71,0x6D,0x72,0x7A,0x82,0x88,0x85,0x7D,0x79, -0x75,0x71,0x6F,0x73,0x7A,0x7F,0x8C,0x98,0x9A,0x99,0x97,0x91,0x8B,0x85,0x83,0x88, -0x91,0x8F,0x86,0x87,0x8D,0x8D,0x8C,0x8C,0x86,0x81,0x83,0x82,0x7A,0x76,0x72,0x6E, -0x6D,0x6D,0x70,0x74,0x76,0x76,0x77,0x7B,0x85,0x8B,0x8E,0x91,0x8A,0x83,0x7E,0x82, -0x94,0x9A,0x8E,0x88,0x92,0x97,0x8B,0x8A,0x97,0x9B,0x8E,0x82,0x80,0x7E,0x7A,0x7D, -0x78,0x7A,0x84,0x85,0x80,0x7E,0x7D,0x7D,0x7D,0x7E,0x7C,0x72,0x69,0x67,0x6A,0x70, -0x77,0x7D,0x7C,0x7A,0x7F,0x89,0x87,0x7A,0x77,0x7E,0x7E,0x80,0x82,0x86,0x8B,0x8D, -0x90,0x91,0x8E,0x8D,0x87,0x84,0x81,0x7D,0x75,0x6C,0x71,0x7A,0x7D,0x7C,0x77,0x71, -0x6A,0x65,0x63,0x69,0x73,0x7C,0x7E,0x76,0x71,0x78,0x79,0x79,0x81,0x86,0x84,0x83, -0x7D,0x73,0x75,0x85,0x8D,0x84,0x7C,0x7B,0x7F,0x80,0x80,0x80,0x86,0x8E,0x8D,0x8D, -0x8F,0x88,0x7E,0x7D,0x83,0x8B,0x8A,0x7F,0x79,0x78,0x76,0x75,0x79,0x7B,0x73,0x6C, -0x6E,0x7A,0x85,0x8B,0x8B,0x85,0x84,0x88,0x89,0x8A,0x8D,0x85,0x7F,0x7D,0x83,0x88, -0x83,0x7F,0x87,0x90,0x8E,0x88,0x86,0x8B,0x93,0x91,0x87,0x7F,0x81,0x88,0x8A,0x89, -0x85,0x81,0x7C,0x79,0x77,0x7B,0x82,0x88,0x8B,0x87,0x7F,0x78,0x76,0x79,0x7D,0x7D, -0x80,0x83,0x82,0x7E,0x7B,0x7C,0x83,0x83,0x81,0x81,0x80,0x80,0x84,0x81,0x77,0x79, -0x7D,0x7F,0x81,0x80,0x84,0x86,0x81,0x81,0x80,0x81,0x7A,0x69,0x68,0x7A,0x8F,0x97, -0x90,0x8A,0x87,0x86,0x81,0x7B,0x78,0x6C,0x6D,0x7C,0x80,0x79,0x7A,0x86,0x8A,0x7F, -0x76,0x7A,0x7B,0x6E,0x64,0x74,0x86,0x85,0x80,0x83,0x88,0x8A,0x86,0x7A,0x6F,0x74, -0x7E,0x85,0x8A,0x8B,0x85,0x80,0x81,0x84,0x8A,0x84,0x7F,0x81,0x80,0x76,0x73,0x7E, -0x89,0x8C,0x87,0x7F,0x82,0x88,0x84,0x7B,0x78,0x7B,0x7B,0x78,0x77,0x74,0x73,0x75, -0x74,0x72,0x75,0x79,0x7D,0x80,0x7E,0x7C,0x83,0x8E,0x93,0x96,0x92,0x92,0x94,0x8C, -0x89,0x8A,0x88,0x81,0x7C,0x80,0x8B,0x87,0x7C,0x78,0x77,0x73,0x74,0x7F,0x80,0x79, -0x76,0x74,0x77,0x80,0x84,0x84,0x83,0x7E,0x73,0x70,0x79,0x80,0x81,0x7F,0x84,0x8B, -0x82,0x76,0x7B,0x8C,0x94,0x8C,0x86,0x82,0x84,0x87,0x8B,0x93,0x91,0x8A,0x88,0x88, -0x86,0x84,0x83,0x85,0x7F,0x76,0x76,0x7D,0x84,0x89,0x84,0x85,0x88,0x83,0x83,0x88, -0x87,0x7D,0x7A,0x7C,0x7B,0x75,0x75,0x7D,0x83,0x83,0x7F,0x86,0x8C,0x84,0x79,0x7A, -0x84,0x87,0x89,0x8C,0x86,0x7A,0x72,0x73,0x79,0x82,0x83,0x7F,0x81,0x80,0x7B,0x78, -0x79,0x7A,0x74,0x6E,0x71,0x71,0x6A,0x64,0x69,0x7A,0x86,0x81,0x76,0x73,0x7A,0x7E, -0x76,0x73,0x7A,0x85,0x87,0x89,0x8D,0x87,0x7E,0x80,0x7D,0x7B,0x85,0x89,0x8A,0x88, -0x84,0x80,0x7E,0x88,0x86,0x7A,0x80,0x88,0x86,0x80,0x7E,0x84,0x84,0x7D,0x74,0x73, -0x76,0x71,0x68,0x6A,0x7B,0x87,0x89,0x83,0x7F,0x7F,0x82,0x83,0x82,0x84,0x85,0x7E, -0x77,0x7B,0x88,0x92,0xA1,0xA4,0x98,0x90,0x90,0x89,0x80,0x7C,0x7B,0x7C,0x82,0x85, -0x83,0x87,0x88,0x84,0x7E,0x7B,0x7E,0x7D,0x79,0x79,0x79,0x82,0x8F,0x90,0x8A,0x83, -0x7D,0x80,0x82,0x77,0x6D,0x6F,0x76,0x7B,0x80,0x82,0x84,0x89,0x87,0x7D,0x83,0x8C, -0x8A,0x7E,0x74,0x73,0x7D,0x87,0x86,0x80,0x83,0x87,0x89,0x87,0x87,0x85,0x7E,0x79, -0x79,0x7A,0x7E,0x82,0x7D,0x76,0x78,0x84,0x8E,0x90,0x83,0x7A,0x7C,0x7D,0x76,0x7D, -0x86,0x82,0x79,0x78,0x76,0x73,0x77,0x79,0x7D,0x80,0x82,0x86,0x90,0x95,0x94,0x89, -0x7E,0x78,0x79,0x7C,0x7B,0x80,0x83,0x87,0x87,0x84,0x83,0x81,0x77,0x77,0x83,0x84, -0x79,0x78,0x7D,0x7E,0x84,0x8D,0x89,0x82,0x81,0x7F,0x7F,0x7E,0x7E,0x7B,0x75,0x6C, -0x70,0x78,0x78,0x70,0x6B,0x74,0x7E,0x7D,0x79,0x7C,0x81,0x8D,0x92,0x8E,0x8A,0x88, -0x82,0x7A,0x76,0x7C,0x83,0x81,0x7E,0x84,0x90,0x91,0x8E,0x8B,0x81,0x76,0x6D,0x73, -0x7D,0x7C,0x7A,0x75,0x74,0x77,0x77,0x7E,0x84,0x81,0x79,0x6D,0x68,0x67,0x6A,0x7F, -0x8B,0x84,0x80,0x84,0x85,0x8A,0x92,0x90,0x88,0x89,0x85,0x7B,0x77,0x7D,0x85,0x88, -0x8B,0x8B,0x85,0x85,0x7B,0x7E,0x98,0xA0,0x98,0x99,0x9A,0x8D,0x80,0x83,0x86,0x7F, -0x77,0x71,0x75,0x79,0x74,0x6C,0x65,0x6B,0x77,0x7A,0x7E,0x7E,0x7B,0x7B,0x7D,0x81, -0x84,0x89,0x8A,0x85,0x8A,0x90,0x86,0x82,0x89,0x83,0x7C,0x84,0x8B,0x89,0x8E,0x91, -0x8F,0x8E,0x8E,0x90,0x91,0x86,0x76,0x72,0x76,0x78,0x77,0x7F,0x87,0x89,0x80,0x75, -0x75,0x7A,0x7B,0x74,0x74,0x76,0x76,0x72,0x71,0x76,0x7B,0x7C,0x7B,0x7B,0x7D,0x78, -0x73,0x79,0x84,0x8A,0x87,0x85,0x82,0x80,0x86,0x8C,0x89,0x85,0x7F,0x7D,0x84,0x89, -0x86,0x85,0x83,0x7C,0x7B,0x80,0x7A,0x6D,0x67,0x6C,0x77,0x7D,0x7F,0x83,0x80,0x79, -0x7A,0x7A,0x7C,0x79,0x76,0x77,0x78,0x81,0x87,0x87,0x8A,0x92,0x94,0x8D,0x89,0x84, -0x7A,0x79,0x7C,0x7E,0x83,0x85,0x8A,0x91,0x8B,0x82,0x7F,0x82,0x82,0x7D,0x79,0x73, -0x72,0x77,0x7A,0x79,0x79,0x7E,0x80,0x7E,0x7A,0x71,0x76,0x83,0x85,0x80,0x7D,0x7F, -0x84,0x82,0x81,0x8C,0x98,0x98,0x89,0x7F,0x7D,0x85,0x8D,0x89,0x84,0x85,0x88,0x85, -0x7E,0x78,0x7C,0x83,0x7E,0x7A,0x88,0x93,0x8C,0x85,0x84,0x7E,0x81,0x82,0x7B,0x79, -0x75,0x72,0x78,0x7D,0x79,0x79,0x84,0x87,0x7C,0x79,0x84,0x85,0x85,0x82,0x7D,0x82, -0x85,0x86,0x8A,0x8D,0x8C,0x87,0x84,0x82,0x7A,0x7A,0x7C,0x80,0x83,0x88,0x8D,0x97, -0x97,0x8A,0x84,0x89,0x84,0x7A,0x75,0x73,0x77,0x75,0x6C,0x6D,0x78,0x7B,0x73,0x71, -0x7B,0x81,0x7D,0x75,0x6F,0x73,0x79,0x74,0x74,0x7C,0x7D,0x7E,0x8A,0x95,0x94,0x92, -0x8D,0x87,0x84,0x7C,0x78,0x7F,0x83,0x80,0x7A,0x7E,0x85,0x82,0x7C,0x7B,0x80,0x81, -0x7C,0x75,0x75,0x79,0x72,0x68,0x68,0x6C,0x6F,0x72,0x76,0x7F,0x84,0x85,0x83,0x7B, -0x79,0x78,0x78,0x7D,0x7F,0x7E,0x81,0x89,0x94,0x92,0x84,0x7F,0x80,0x7E,0x7A,0x7C, -0x81,0x84,0x81,0x79,0x79,0x88,0x93,0x90,0x8A,0x8F,0x95,0x8F,0x86,0x84,0x88,0x89, -0x85,0x80,0x7A,0x7A,0x7C,0x7D,0x7C,0x75,0x7A,0x85,0x85,0x7D,0x75,0x71,0x79,0x82, -0x82,0x85,0x8C,0x91,0x8C,0x88,0x89,0x8D,0x92,0x8F,0x89,0x84,0x7C,0x7B,0x86,0x8D, -0x8A,0x8A,0x8C,0x88,0x83,0x7E,0x7E,0x83,0x86,0x85,0x88,0x89,0x81,0x7B,0x7D,0x7D, -0x78,0x75,0x73,0x73,0x74,0x6E,0x6E,0x7C,0x86,0x86,0x82,0x7E,0x7F,0x80,0x7C,0x7D, -0x89,0x8C,0x88,0x89,0x8D,0x8A,0x86,0x89,0x8B,0x83,0x78,0x7C,0x81,0x7C,0x76,0x76, -0x7F,0x89,0x8A,0x88,0x85,0x83,0x7A,0x72,0x70,0x6F,0x6E,0x70,0x76,0x75,0x73,0x70, -0x6F,0x77,0x81,0x7D,0x78,0x7C,0x7F,0x7C,0x78,0x7A,0x82,0x87,0x8A,0x89,0x86,0x7D, -0x76,0x7D,0x86,0x85,0x7F,0x7B,0x76,0x76,0x75,0x75,0x7B,0x86,0x89,0x86,0x83,0x80, -0x7D,0x7B,0x7A,0x74,0x6D,0x6E,0x79,0x7E,0x7D,0x7C,0x82,0x86,0x8A,0x8A,0x88,0x87, -0x83,0x7D,0x7E,0x81,0x7F,0x77,0x70,0x77,0x82,0x88,0x85,0x81,0x84,0x8B,0x8D,0x87, -0x86,0x89,0x87,0x86,0x8A,0x8E,0x91,0x8F,0x8D,0x89,0x89,0x8B,0x86,0x81,0x75,0x68, -0x6A,0x72,0x77,0x7D,0x83,0x83,0x7B,0x76,0x79,0x82,0x89,0x88,0x89,0x8E,0x90,0x8B, -0x86,0x85,0x84,0x80,0x83,0x88,0x85,0x7E,0x7C,0x84,0x8B,0x8D,0x8B,0x8C,0x8E,0x8A, -0x80,0x7F,0x82,0x81,0x7E,0x7C,0x82,0x89,0x89,0x84,0x85,0x88,0x85,0x80,0x7C,0x74, -0x6D,0x6C,0x73,0x7D,0x81,0x7C,0x7A,0x7E,0x7D,0x76,0x77,0x79,0x77,0x78,0x79,0x81, -0x8A,0x8E,0x8F,0x8C,0x8C,0x8B,0x82,0x75,0x6E,0x6D,0x75,0x7B,0x7D,0x7E,0x80,0x83, -0x84,0x81,0x7C,0x7C,0x81,0x88,0x89,0x80,0x73,0x70,0x6E,0x6C,0x72,0x78,0x77,0x73, -0x74,0x74,0x71,0x6F,0x70,0x78,0x7F,0x85,0x85,0x82,0x80,0x7C,0x7E,0x86,0x88,0x86, -0x85,0x85,0x84,0x7F,0x7E,0x80,0x7E,0x7E,0x80,0x7C,0x78,0x7B,0x80,0x85,0x92,0x9C, -0x97,0x91,0x92,0x87,0x79,0x74,0x74,0x76,0x73,0x71,0x75,0x80,0x8A,0x8B,0x86,0x85, -0x84,0x7A,0x71,0x74,0x7A,0x7B,0x7D,0x83,0x8F,0x9B,0x9D,0x96,0x8D,0x83,0x7F,0x7D, -0x7D,0x84,0x88,0x87,0x86,0x86,0x8F,0x9D,0xA0,0x99,0x8D,0x7E,0x74,0x76,0x78,0x78, -0x7D,0x7F,0x7F,0x81,0x7F,0x76,0x76,0x7F,0x7D,0x78,0x7D,0x81,0x81,0x81,0x86,0x8B, -0x8A,0x86,0x82,0x79,0x72,0x73,0x76,0x7A,0x80,0x8A,0x91,0x92,0x8E,0x88,0x84,0x83, -0x82,0x81,0x85,0x87,0x81,0x77,0x76,0x7B,0x7F,0x7C,0x75,0x6E,0x68,0x6A,0x6C,0x6C, -0x6B,0x6C,0x72,0x78,0x7E,0x80,0x7F,0x83,0x83,0x7B,0x7A,0x7F,0x86,0x87,0x88,0x8E, -0x94,0x97,0x95,0x92,0x92,0x88,0x79,0x6F,0x6F,0x74,0x6E,0x71,0x7E,0x7D,0x7A,0x7E, -0x81,0x80,0x77,0x70,0x6B,0x6A,0x6E,0x6E,0x76,0x82,0x86,0x8A,0x8E,0x88,0x7F,0x7E, -0x83,0x81,0x7B,0x79,0x7F,0x82,0x7F,0x7A,0x77,0x7D,0x88,0x8A,0x8A,0x8D,0x8E,0x8B, -0x8B,0x8E,0x91,0x8A,0x7D,0x79,0x76,0x75,0x74,0x73,0x7D,0x86,0x86,0x83,0x7F,0x7B, -0x79,0x77,0x75,0x78,0x81,0x86,0x88,0x8D,0x8C,0x85,0x84,0x85,0x85,0x80,0x79,0x7A, -0x7B,0x7D,0x80,0x84,0x8B,0x8C,0x85,0x83,0x8D,0x94,0x90,0x8E,0x8C,0x85,0x82,0x82, -0x82,0x84,0x82,0x80,0x81,0x81,0x78,0x74,0x78,0x7F,0x84,0x85,0x82,0x80,0x7F,0x7F, -0x80,0x7E,0x7B,0x7B,0x7E,0x7E,0x7F,0x82,0x85,0x89,0x8B,0x88,0x85,0x86,0x89,0x8B, -0x85,0x80,0x7F,0x86,0x8F,0x95,0x96,0x93,0x87,0x80,0x7F,0x7D,0x76,0x72,0x6B,0x67, -0x69,0x6B,0x6E,0x72,0x75,0x76,0x7C,0x83,0x80,0x76,0x74,0x74,0x7A,0x82,0x81,0x7F, -0x82,0x82,0x7C,0x81,0x8F,0x8E,0x82,0x7B,0x75,0x71,0x74,0x7D,0x84,0x87,0x84,0x81, -0x81,0x7D,0x71,0x6F,0x74,0x77,0x77,0x73,0x75,0x82,0x83,0x7A,0x74,0x79,0x7E,0x7B, -0x7C,0x7E,0x84,0x8B,0x87,0x84,0x86,0x8B,0x87,0x7E,0x80,0x80,0x7B,0x7B,0x7B,0x80, -0x8A,0x8C,0x89,0x87,0x88,0x86,0x7D,0x7B,0x7F,0x84,0x83,0x85,0x8B,0x8B,0x8E,0x91, -0x88,0x77,0x6F,0x74,0x76,0x72,0x76,0x80,0x89,0x8F,0x89,0x7F,0x7C,0x7C,0x7E,0x7D, -0x7E,0x7E,0x79,0x77,0x78,0x7E,0x88,0x8C,0x8C,0x8C,0x8E,0x8D,0x83,0x7C,0x81,0x87, -0x89,0x82,0x80,0x7F,0x81,0x8C,0x91,0x8E,0x8A,0x8E,0x88,0x7C,0x74,0x73,0x75,0x76, -0x77,0x7C,0x80,0x7F,0x7D,0x80,0x82,0x7D,0x7A,0x83,0x85,0x7D,0x80,0x84,0x84,0x81, -0x83,0x85,0x88,0x83,0x78,0x78,0x7F,0x82,0x83,0x80,0x7D,0x83,0x83,0x7C,0x76,0x79, -0x81,0x8A,0x87,0x7C,0x7C,0x8A,0x8D,0x8A,0x86,0x7D,0x78,0x7A,0x74,0x6B,0x6A,0x70, -0x78,0x7A,0x7C,0x7C,0x88,0x8E,0x87,0x85,0x89,0x85,0x85,0x86,0x82,0x7D,0x80,0x7F, -0x7D,0x83,0x82,0x7B,0x7F,0x7C,0x74,0x75,0x76,0x75,0x70,0x74,0x79,0x79,0x7A,0x7B, -0x83,0x8F,0x8D,0x87,0x89,0x88,0x83,0x7C,0x77,0x76,0x7D,0x81,0x80,0x7C,0x7F,0x7F, -0x7E,0x7E,0x81,0x7F,0x7B,0x7C,0x7A,0x75,0x76,0x7D,0x83,0x85,0x82,0x87,0x8A,0x8A, -0x85,0x7F,0x7A,0x82,0x84,0x7F,0x7C,0x7E,0x85,0x82,0x82,0x7C,0x7B,0x7A,0x75,0x71, -0x7A,0x81,0x8B,0x8F,0x8D,0x83,0x7B,0x7D,0x7F,0x7D,0x81,0x88,0x8B,0x8A,0x88,0x8B, -0x88,0x89,0x80,0x83,0x8F,0x95,0x8D,0x85,0x80,0x82,0x87,0x8D,0x8F,0x87,0x7F,0x73, -0x72,0x73,0x76,0x81,0x8E,0x8B,0x82,0x75,0x75,0x78,0x7C,0x7F,0x7E,0x86,0x8B,0x85, -0x83,0x82,0x80,0x83,0x84,0x85,0x7F,0x82,0x7E,0x7D,0x84,0x84,0x80,0x87,0x8A,0x87, -0x84,0x8A,0x8E,0x82,0x7A,0x76,0x75,0x70,0x65,0x67,0x78,0x82,0x8A,0x88,0x85,0x80, -0x81,0x80,0x7A,0x7B,0x7D,0x7A,0x7C,0x78,0x72,0x78,0x7C,0x7C,0x78,0x7C,0x7A,0x75, -0x76,0x74,0x74,0x81,0x82,0x87,0x92,0x97,0x97,0x8D,0x82,0x78,0x7C,0x87,0x8B,0x88, -0x82,0x78,0x77,0x78,0x7C,0x7D,0x76,0x72,0x70,0x73,0x77,0x70,0x70,0x75,0x7A,0x85, -0x8A,0x8D,0x87,0x81,0x7C,0x78,0x73,0x74,0x75,0x78,0x79,0x7B,0x80,0x87,0x8F,0x8E, -0x88,0x8C,0x8E,0x85,0x80,0x7F,0x84,0x82,0x81,0x83,0x84,0x85,0x80,0x7A,0x7D,0x80, -0x7C,0x76,0x79,0x7E,0x7D,0x7D,0x7F,0x80,0x83,0x87,0x83,0x83,0x85,0x80,0x7B,0x7D, -0x84,0x8A,0x89,0x83,0x81,0x7F,0x7F,0x84,0x89,0x89,0x89,0x89,0x87,0x82,0x80,0x7D, -0x81,0x85,0x80,0x7B,0x7E,0x7E,0x81,0x87,0x86,0x83,0x81,0x81,0x82,0x80,0x7D,0x7E, -0x82,0x87,0x8A,0x89,0x87,0x85,0x81,0x84,0x89,0x8B,0x8B,0x8A,0x85,0x80,0x7E,0x7F, -0x81,0x7F,0x7B,0x76,0x7B,0x85,0x88,0x84,0x85,0x88,0x8D,0x8A,0x86,0x89,0x8A,0x81, -0x76,0x72,0x73,0x72,0x6B,0x6D,0x7A,0x82,0x81,0x7D,0x7C,0x7F,0x7D,0x74,0x70,0x71, -0x74,0x7D,0x88,0x8C,0x8A,0x86,0x87,0x8B,0x89,0x81,0x78,0x75,0x71,0x69,0x69,0x77, -0x82,0x85,0x87,0x88,0x86,0x86,0x7F,0x74,0x73,0x7A,0x7A,0x71,0x6F,0x70,0x72,0x7C, -0x83,0x81,0x7B,0x76,0x70,0x6D,0x71,0x73,0x78,0x80,0x84,0x87,0x8B,0x8F,0x8D,0x84, -0x7E,0x7F,0x82,0x80,0x7A,0x77,0x7E,0x87,0x89,0x88,0x87,0x81,0x79,0x79,0x7F,0x81, -0x7F,0x87,0x8F,0x90,0x8D,0x88,0x86,0x85,0x85,0x8A,0x8E,0x85,0x7C,0x79,0x7E,0x85, -0x84,0x7E,0x7F,0x85,0x85,0x82,0x7F,0x80,0x85,0x8B,0x8C,0x8D,0x8C,0x85,0x7F,0x7F, -0x80,0x7F,0x7B,0x7B,0x7E,0x7F,0x7E,0x7F,0x83,0x83,0x84,0x86,0x87,0x85,0x81,0x7E, -0x7B,0x7A,0x7D,0x84,0x8D,0x8F,0x8D,0x8F,0x90,0x8C,0x84,0x7E,0x7F,0x7F,0x7B,0x7A, -0x7F,0x81,0x81,0x82,0x84,0x81,0x78,0x71,0x70,0x6F,0x6A,0x6B,0x73,0x79,0x7B,0x7B, -0x7A,0x7B,0x7F,0x86,0x88,0x88,0x8D,0x8C,0x86,0x82,0x84,0x88,0x8C,0x8E,0x88,0x80, -0x77,0x76,0x7C,0x7C,0x79,0x78,0x7C,0x80,0x7C,0x7C,0x82,0x83,0x80,0x79,0x78,0x79, -0x77,0x79,0x7D,0x82,0x84,0x7F,0x79,0x75,0x70,0x6A,0x65,0x67,0x6E,0x73,0x7B,0x80, -0x80,0x7F,0x7E,0x82,0x87,0x8C,0x91,0x91,0x8C,0x84,0x85,0x88,0x87,0x86,0x86,0x86, -0x85,0x7E,0x7E,0x80,0x83,0x84,0x7E,0x77,0x73,0x70,0x70,0x73,0x75,0x79,0x7E,0x83, -0x89,0x89,0x88,0x82,0x76,0x70,0x74,0x79,0x7D,0x83,0x89,0x8D,0x93,0x94,0x8F,0x90, -0x8D,0x87,0x81,0x80,0x83,0x87,0x8D,0x8F,0x8A,0x88,0x87,0x89,0x87,0x81,0x7B,0x75, -0x71,0x6E,0x6F,0x76,0x79,0x7E,0x87,0x8A,0x87,0x86,0x86,0x83,0x7C,0x7A,0x7C,0x7F, -0x81,0x83,0x85,0x87,0x8B,0x91,0x94,0x97,0x96,0x91,0x88,0x7F,0x7E,0x87,0x91,0x92, -0x8D,0x8B,0x8A,0x83,0x7F,0x79,0x74,0x6F,0x67,0x63,0x6B,0x76,0x7C,0x81,0x84,0x81, -0x81,0x86,0x85,0x7E,0x75,0x71,0x73,0x77,0x78,0x7B,0x81,0x85,0x84,0x82,0x82,0x85, -0x84,0x7F,0x7D,0x7E,0x7F,0x7C,0x7D,0x86,0x8B,0x89,0x86,0x82,0x80,0x7C,0x7A,0x7B, -0x77,0x6E,0x68,0x6A,0x6F,0x6F,0x6D,0x6C,0x6E,0x71,0x73,0x78,0x7B,0x7E,0x7F,0x7D, -0x81,0x80,0x7A,0x77,0x78,0x78,0x76,0x7A,0x82,0x8C,0x90,0x89,0x80,0x81,0x80,0x83, -0x86,0x85,0x8C,0x92,0x8F,0x8A,0x8B,0x8E,0x8A,0x86,0x83,0x7D,0x79,0x76,0x71,0x71, -0x74,0x7A,0x81,0x80,0x7D,0x78,0x75,0x7A,0x7E,0x84,0x84,0x82,0x82,0x85,0x86,0x84, -0x83,0x86,0x88,0x90,0x90,0x8E,0x91,0x92,0x8D,0x8C,0x91,0x95,0x8E,0x88,0x83,0x84, -0x8A,0x88,0x7D,0x75,0x76,0x7C,0x7B,0x7A,0x7E,0x82,0x8C,0x8E,0x85,0x7B,0x76,0x7E, -0x83,0x7C,0x7A,0x7F,0x85,0x86,0x7E,0x7C,0x80,0x83,0x7F,0x7F,0x80,0x7C,0x77,0x7A, -0x7B,0x81,0x87,0x8B,0x89,0x82,0x81,0x82,0x85,0x85,0x7F,0x7D,0x81,0x89,0x89,0x7A, -0x73,0x76,0x76,0x75,0x73,0x77,0x81,0x80,0x7B,0x76,0x77,0x7C,0x80,0x84,0x81,0x7D, -0x81,0x84,0x87,0x86,0x83,0x83,0x7A,0x74,0x75,0x7A,0x7B,0x76,0x7A,0x82,0x86,0x80, -0x77,0x78,0x7E,0x7F,0x7A,0x71,0x73,0x7D,0x85,0x87,0x89,0x8F,0x90,0x8A,0x82,0x7E, -0x79,0x75,0x74,0x78,0x78,0x78,0x7C,0x82,0x83,0x7D,0x7B,0x81,0x85,0x7F,0x78,0x75, -0x77,0x7B,0x7D,0x7C,0x83,0x8D,0x8C,0x84,0x7D,0x7E,0x81,0x83,0x84,0x80,0x7C,0x7C, -0x7C,0x80,0x84,0x87,0x8A,0x8B,0x81,0x79,0x7E,0x85,0x88,0x84,0x7A,0x7B,0x87,0x8B, -0x85,0x80,0x81,0x82,0x82,0x7F,0x7E,0x7F,0x80,0x7E,0x7E,0x7F,0x7F,0x7E,0x7D,0x79, -0x73,0x73,0x79,0x7B,0x7F,0x86,0x8E,0x93,0x94,0x92,0x8F,0x8A,0x80,0x78,0x78,0x81, -0x89,0x8F,0x92,0x94,0x95,0x92,0x8E,0x89,0x84,0x7B,0x77,0x7A,0x7B,0x79,0x7B,0x87, -0x8E,0x85,0x7A,0x7A,0x81,0x82,0x78,0x6C,0x6A,0x73,0x79,0x7C,0x7A,0x7B,0x81,0x86, -0x88,0x85,0x81,0x81,0x89,0x88,0x82,0x82,0x83,0x82,0x7B,0x75,0x79,0x85,0x8D,0x84, -0x7E,0x85,0x87,0x81,0x7D,0x78,0x73,0x73,0x71,0x72,0x77,0x78,0x76,0x77,0x78,0x74, -0x7A,0x83,0x82,0x7A,0x77,0x78,0x79,0x7B,0x7C,0x7D,0x87,0x89,0x84,0x83,0x83,0x81, -0x7D,0x7B,0x7A,0x80,0x82,0x7D,0x78,0x7A,0x79,0x80,0x8C,0x90,0x8B,0x83,0x7F,0x7D, -0x7C,0x78,0x74,0x77,0x7B,0x77,0x7D,0x8C,0x92,0x90,0x88,0x7D,0x7A,0x7B,0x75,0x70, -0x78,0x7F,0x81,0x88,0x87,0x82,0x88,0x8C,0x86,0x88,0x87,0x7C,0x76,0x80,0x86,0x8E, -0x92,0x87,0x80,0x7F,0x79,0x77,0x85,0x87,0x7B,0x7F,0x86,0x86,0x89,0x8B,0x8C,0x8B, -0x83,0x7C,0x81,0x89,0x84,0x81,0x82,0x7E,0x7B,0x84,0x82,0x7B,0x7D,0x79,0x74,0x74, -0x7A,0x7C,0x80,0x84,0x84,0x8B,0x8A,0x86,0x84,0x83,0x80,0x82,0x8B,0x8E,0x83,0x83, -0x83,0x7D,0x7E,0x7F,0x77,0x7C,0x7A,0x79,0x80,0x80,0x7E,0x7D,0x81,0x7D,0x79,0x84, -0x8A,0x86,0x88,0x89,0x8B,0x82,0x79,0x70,0x74,0x79,0x6F,0x70,0x78,0x75,0x7E,0x85, -0x84,0x85,0x7E,0x7C,0x79,0x76,0x6B,0x6B,0x7C,0x87,0x84,0x89,0x89,0x8C,0x93,0x90, -0x8B,0x84,0x8E,0x87,0x7E,0x82,0x84,0x84,0x81,0x78,0x78,0x79,0x7B,0x7C,0x80,0x7C, -0x73,0x7B,0x7F,0x72,0x6A,0x6C,0x6E,0x73,0x74,0x7D,0x80,0x86,0x88,0x88,0x8C,0x8A, -0x85,0x88,0x7B,0x72,0x7B,0x82,0x85,0x82,0x82,0x81,0x82,0x87,0x89,0x81,0x80,0x84, -0x87,0x84,0x79,0x77,0x84,0x7C,0x7B,0x79,0x7B,0x79,0x73,0x73,0x74,0x7A,0x7A,0x71, -0x78,0x7F,0x7B,0x84,0x84,0x83,0x86,0x8D,0x8E,0x87,0x88,0x86,0x80,0x8D,0x86,0x7F, -0x85,0x86,0x8A,0x86,0x84,0x85,0x8B,0x8D,0x7B,0x76,0x82,0x82,0x84,0x88,0x8A,0x90, -0x90,0x8A,0x7F,0x7C,0x7D,0x72,0x75,0x7B,0x6C,0x72,0x7B,0x7F,0x80,0x84,0x87,0x8A, -0x87,0x7D,0x73,0x7C,0x83,0x7E,0x82,0x8A,0x96,0x9D,0x96,0x88,0x82,0x83,0x81,0x79, -0x7F,0x7F,0x7D,0x80,0x80,0x87,0x8D,0x89,0x88,0x80,0x77,0x72,0x75,0x79,0x76,0x7D, -0x80,0x79,0x7C,0x7D,0x7A,0x7C,0x7A,0x75,0x76,0x7A,0x7C,0x7C,0x82,0x7F,0x7A,0x7E, -0x7F,0x82,0x86,0x82,0x80,0x80,0x84,0x85,0x86,0x83,0x7E,0x83,0x88,0x82,0x81,0x83, -0x7F,0x7D,0x7D,0x80,0x80,0x7D,0x76,0x74,0x7B,0x7C,0x7A,0x7C,0x78,0x78,0x7A,0x7A, -0x78,0x7B,0x83,0x82,0x7B,0x7E,0x82,0x84,0x86,0x89,0x8D,0x8C,0x84,0x7E,0x7B,0x77, -0x72,0x79,0x82,0x81,0x7E,0x7B,0x79,0x76,0x77,0x7B,0x83,0x8C,0x8E,0x8E,0x8D,0x86, -0x7D,0x81,0x88,0x89,0x83,0x7D,0x7B,0x80,0x84,0x7E,0x77,0x7A,0x80,0x81,0x76,0x6B, -0x6C,0x75,0x7F,0x89,0x8B,0x8B,0x8A,0x88,0x87,0x87,0x87,0x81,0x7E,0x7E,0x7E,0x7D, -0x81,0x81,0x7B,0x77,0x7B,0x81,0x88,0x8E,0x8E,0x8B,0x8C,0x8D,0x89,0x85,0x84,0x7E, -0x7A,0x7A,0x7E,0x80,0x7E,0x7F,0x81,0x80,0x7F,0x81,0x81,0x7E,0x7C,0x79,0x7B,0x80, -0x7F,0x7C,0x80,0x8E,0x94,0x90,0x8B,0x8B,0x8A,0x81,0x7B,0x80,0x84,0x85,0x84,0x7F, -0x7C,0x82,0x86,0x8B,0x8E,0x88,0x7F,0x7F,0x80,0x7D,0x7A,0x75,0x72,0x73,0x74,0x76, -0x7E,0x85,0x83,0x7D,0x7A,0x79,0x75,0x73,0x76,0x82,0x87,0x7F,0x7B,0x78,0x78,0x7B, -0x80,0x87,0x8A,0x82,0x79,0x7B,0x7D,0x79,0x79,0x81,0x83,0x83,0x85,0x80,0x7E,0x80, -0x80,0x7D,0x82,0x87,0x83,0x7D,0x78,0x75,0x75,0x74,0x77,0x7D,0x7D,0x79,0x7A,0x7F, -0x82,0x7E,0x78,0x72,0x6A,0x6A,0x77,0x7F,0x7D,0x7C,0x7F,0x82,0x85,0x87,0x86,0x85, -0x85,0x81,0x7C,0x7A,0x80,0x8B,0x8F,0x93,0x94,0x90,0x8C,0x8B,0x8C,0x88,0x7F,0x7A, -0x7D,0x85,0x8A,0x86,0x84,0x84,0x81,0x7D,0x76,0x74,0x74,0x75,0x74,0x72,0x7A,0x7F, -0x80,0x86,0x8F,0x8E,0x8A,0x88,0x85,0x88,0x8B,0x8C,0x89,0x8A,0x89,0x88,0x8B,0x87, -0x7E,0x7D,0x7E,0x7B,0x7F,0x86,0x88,0x84,0x83,0x81,0x81,0x86,0x87,0x83,0x81,0x7E, -0x7E,0x7C,0x78,0x74,0x79,0x7A,0x76,0x7D,0x83,0x80,0x7D,0x7A,0x75,0x73,0x71,0x77, -0x7E,0x88,0x94,0x99,0x98,0x90,0x8B,0x8A,0x85,0x80,0x7E,0x7C,0x7B,0x7C,0x84,0x87, -0x81,0x80,0x86,0x8B,0x83,0x72,0x6B,0x6A,0x6C,0x6B,0x68,0x6F,0x78,0x7F,0x7F,0x7C, -0x7E,0x7D,0x78,0x7A,0x79,0x7A,0x7B,0x7F,0x82,0x83,0x88,0x8C,0x8B,0x8F,0x91,0x8D, -0x87,0x81,0x7A,0x72,0x70,0x74,0x77,0x7A,0x7C,0x7E,0x84,0x83,0x84,0x84,0x84,0x87, -0x86,0x7F,0x76,0x73,0x75,0x76,0x74,0x6D,0x6E,0x79,0x7A,0x7B,0x80,0x7E,0x7A,0x7C, -0x84,0x88,0x85,0x87,0x87,0x84,0x82,0x82,0x88,0x8C,0x8E,0x90,0x90,0x8D,0x85,0x7B, -0x78,0x73,0x72,0x77,0x79,0x7A,0x82,0x8D,0x8F,0x8A,0x87,0x86,0x86,0x81,0x79,0x79, -0x7E,0x80,0x7D,0x78,0x78,0x7E,0x8A,0x93,0x8B,0x83,0x83,0x83,0x7F,0x79,0x7C,0x83, -0x88,0x8C,0x89,0x87,0x8C,0x8E,0x8C,0x84,0x81,0x86,0x88,0x85,0x7C,0x7A,0x7E,0x79, -0x76,0x7C,0x84,0x84,0x7C,0x7F,0x88,0x88,0x81,0x7B,0x7C,0x82,0x83,0x83,0x85,0x86, -0x84,0x81,0x84,0x85,0x82,0x7E,0x78,0x7A,0x7F,0x80,0x80,0x7F,0x7E,0x7F,0x7F,0x83, -0x86,0x85,0x80,0x77,0x79,0x7E,0x81,0x84,0x87,0x86,0x81,0x7B,0x7B,0x7C,0x79,0x77, -0x78,0x78,0x77,0x77,0x78,0x77,0x78,0x77,0x78,0x7C,0x7A,0x7B,0x80,0x82,0x7E,0x79, -0x77,0x77,0x77,0x77,0x73,0x75,0x79,0x7D,0x7A,0x7A,0x81,0x89,0x89,0x84,0x7D,0x78, -0x7C,0x84,0x85,0x7F,0x78,0x7A,0x82,0x87,0x87,0x87,0x8C,0x8C,0x85,0x82,0x83,0x87, -0x8B,0x87,0x7E,0x79,0x7B,0x7F,0x7E,0x7E,0x7E,0x81,0x84,0x83,0x7E,0x76,0x72,0x6F, -0x70,0x74,0x77,0x7E,0x8A,0x8F,0x90,0x95,0x9B,0x97,0x8C,0x83,0x7F,0x7E,0x7E,0x7F, -0x80,0x86,0x90,0x90,0x8C,0x8B,0x89,0x85,0x81,0x7B,0x77,0x7A,0x82,0x88,0x89,0x8B, -0x8C,0x8B,0x87,0x7B,0x73,0x72,0x73,0x72,0x6F,0x74,0x7C,0x82,0x84,0x85,0x87,0x87, -0x83,0x7F,0x7E,0x83,0x89,0x8B,0x88,0x88,0x8A,0x88,0x83,0x85,0x84,0x81,0x7E,0x7C, -0x77,0x77,0x79,0x79,0x7A,0x7B,0x7C,0x7E,0x7B,0x77,0x75,0x75,0x73,0x72,0x74,0x75, -0x7B,0x82,0x85,0x8A,0x8B,0x84,0x81,0x83,0x82,0x7A,0x74,0x75,0x7B,0x82,0x88,0x87, -0x8A,0x91,0x90,0x8C,0x86,0x7E,0x75,0x70,0x70,0x74,0x7E,0x85,0x87,0x8B,0x89,0x82, -0x7D,0x7B,0x7D,0x7A,0x75,0x6B,0x6A,0x78,0x7F,0x82,0x86,0x84,0x7F,0x75,0x71,0x75, -0x7A,0x7E,0x7D,0x82,0x89,0x88,0x89,0x84,0x7D,0x7B,0x7E,0x85,0x85,0x83,0x88,0x8D, -0x89,0x85,0x87,0x89,0x84,0x7F,0x7E,0x7F,0x80,0x78,0x75,0x7A,0x83,0x88,0x82,0x7C, -0x7B,0x7E,0x7E,0x75,0x76,0x7C,0x7D,0x7E,0x7C,0x77,0x79,0x7F,0x84,0x85,0x83,0x81, -0x84,0x87,0x7E,0x78,0x81,0x8A,0x8D,0x8F,0x8D,0x8C,0x8A,0x89,0x8B,0x8A,0x85,0x81, -0x81,0x81,0x7E,0x82,0x8D,0x8F,0x86,0x7D,0x7D,0x7B,0x7A,0x7D,0x7C,0x78,0x7C,0x80, -0x81,0x81,0x88,0x8F,0x88,0x7F,0x78,0x79,0x7F,0x7C,0x7D,0x83,0x82,0x87,0x8F,0x91, -0x89,0x80,0x80,0x7A,0x76,0x79,0x79,0x7E,0x82,0x83,0x8A,0x87,0x80,0x76,0x75,0x78, -0x7B,0x7B,0x78,0x71,0x74,0x79,0x7D,0x83,0x86,0x87,0x85,0x81,0x7A,0x74,0x76,0x7B, -0x82,0x89,0x88,0x88,0x87,0x86,0x7D,0x75,0x79,0x7A,0x76,0x77,0x7D,0x7B,0x77,0x73, -0x7B,0x7E,0x82,0x82,0x81,0x82,0x7A,0x78,0x7E,0x7A,0x75,0x76,0x79,0x85,0x87,0x87, -0x84,0x88,0x80,0x72,0x71,0x71,0x71,0x78,0x7C,0x7E,0x8E,0x98,0x94,0x8C,0x8D,0x88, -0x84,0x82,0x7C,0x74,0x76,0x75,0x7F,0x85,0x84,0x8B,0x96,0x97,0x89,0x85,0x8B,0x8C, -0x83,0x7D,0x7C,0x81,0x81,0x7C,0x79,0x7C,0x7D,0x7E,0x78,0x75,0x77,0x7E,0x82,0x7E, -0x7F,0x7F,0x86,0x86,0x89,0x87,0x86,0x86,0x90,0x8F,0x86,0x7F,0x7F,0x7E,0x79,0x76, -0x7B,0x7C,0x78,0x78,0x7A,0x86,0x8D,0x8F,0x8B,0x8E,0x8A,0x7E,0x7A,0x83,0x86,0x82, -0x83,0x87,0x85,0x85,0x82,0x77,0x72,0x70,0x6F,0x77,0x80,0x7C,0x75,0x73,0x7C,0x80, -0x85,0x85,0x85,0x84,0x7F,0x7A,0x77,0x7D,0x7D,0x7E,0x7E,0x7C,0x7F,0x85,0x83,0x80, -0x7E,0x82,0x81,0x7E,0x7E,0x77,0x7E,0x86,0x87,0x8B,0x8B,0x88,0x84,0x7E,0x7D,0x7D, -0x81,0x7F,0x78,0x7D,0x81,0x80,0x80,0x7C,0x7C,0x7C,0x7C,0x7D,0x7E,0x80,0x7E,0x7F, -0x81,0x7F,0x82,0x81,0x7C,0x7A,0x77,0x75,0x73,0x77,0x7E,0x82,0x8B,0x90,0x8E,0x8C, -0x83,0x7D,0x7E,0x7E,0x81,0x82,0x85,0x89,0x88,0x81,0x7D,0x84,0x86,0x7C,0x73,0x70, -0x73,0x77,0x7A,0x77,0x75,0x7C,0x80,0x80,0x83,0x80,0x7C,0x82,0x84,0x80,0x7D,0x7D, -0x7E,0x7F,0x82,0x82,0x82,0x84,0x81,0x7B,0x7A,0x7D,0x81,0x82,0x84,0x8A,0x89,0x83, -0x7F,0x82,0x84,0x84,0x80,0x7B,0x7F,0x87,0x86,0x81,0x7E,0x7C,0x78,0x79,0x7E,0x80, -0x81,0x80,0x7F,0x82,0x84,0x89,0x8F,0x91,0x95,0x95,0x8E,0x84,0x7D,0x79,0x76,0x77, -0x7E,0x81,0x82,0x86,0x90,0x96,0x91,0x8A,0x82,0x7D,0x7A,0x75,0x72,0x78,0x82,0x85, -0x86,0x89,0x87,0x82,0x7E,0x7D,0x79,0x72,0x70,0x74,0x7C,0x7F,0x7F,0x85,0x8F,0x8F, -0x8D,0x88,0x80,0x80,0x80,0x7F,0x80,0x83,0x83,0x83,0x86,0x84,0x7D,0x79,0x76,0x72, -0x6A,0x67,0x6D,0x79,0x83,0x88,0x8A,0x88,0x85,0x82,0x81,0x7E,0x76,0x6B,0x6B,0x74, -0x7E,0x83,0x85,0x86,0x86,0x80,0x7B,0x78,0x7C,0x82,0x7F,0x7E,0x84,0x89,0x88,0x86, -0x8B,0x8F,0x87,0x80,0x7D,0x79,0x79,0x7C,0x7C,0x7C,0x7E,0x7E,0x7F,0x83,0x81,0x7D, -0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x82,0x80,0x7C,0x81,0x86,0x82,0x7C,0x7A,0x79,0x7C, -0x7E,0x80,0x87,0x8A,0x85,0x87,0x8E,0x8D,0x85,0x80,0x7C,0x77,0x74,0x72,0x73,0x7B, -0x80,0x82,0x84,0x84,0x84,0x84,0x85,0x87,0x8A,0x88,0x82,0x7F,0x81,0x80,0x83,0x8B, -0x8D,0x8B,0x85,0x7E,0x78,0x76,0x7A,0x80,0x87,0x88,0x82,0x7F,0x7E,0x7F,0x7F,0x7C, -0x78,0x77,0x7C,0x84,0x88,0x86,0x80,0x7E,0x81,0x7F,0x7B,0x76,0x76,0x7B,0x77,0x73, -0x78,0x83,0x87,0x82,0x80,0x81,0x83,0x86,0x82,0x7E,0x80,0x86,0x8A,0x8C,0x90,0x92, -0x8B,0x87,0x85,0x84,0x7F,0x7B,0x7C,0x7E,0x7A,0x7C,0x84,0x86,0x84,0x83,0x85,0x7F, -0x7C,0x7F,0x7C,0x7E,0x7C,0x74,0x70,0x6F,0x76,0x7E,0x82,0x80,0x79,0x77,0x77,0x77, -0x7D,0x81,0x85,0x86,0x81,0x81,0x83,0x8B,0x93,0x90,0x8F,0x89,0x84,0x7E,0x76,0x77, -0x76,0x71,0x71,0x71,0x75,0x7D,0x82,0x81,0x7A,0x76,0x78,0x7C,0x82,0x7C,0x78,0x7E, -0x81,0x81,0x7D,0x7C,0x81,0x7F,0x7C,0x7B,0x7E,0x7F,0x7A,0x78,0x7B,0x80,0x88,0x89, -0x86,0x82,0x82,0x83,0x7E,0x7D,0x7F,0x80,0x82,0x80,0x7D,0x7F,0x80,0x83,0x83,0x80, -0x7F,0x81,0x81,0x7C,0x7A,0x7F,0x84,0x86,0x80,0x7B,0x7E,0x84,0x88,0x85,0x7F,0x7E, -0x7F,0x83,0x80,0x80,0x8C,0x93,0x8F,0x89,0x88,0x8B,0x8A,0x87,0x82,0x7E,0x82,0x86, -0x86,0x85,0x7F,0x7D,0x7F,0x7F,0x7C,0x7C,0x7F,0x7E,0x7A,0x7A,0x7C,0x83,0x89,0x86, -0x83,0x81,0x7F,0x81,0x84,0x83,0x7E,0x7B,0x7C,0x7D,0x83,0x89,0x89,0x85,0x7F,0x82, -0x8A,0x8B,0x82,0x7A,0x7C,0x81,0x83,0x83,0x84,0x88,0x87,0x83,0x7D,0x7B,0x7A,0x7C, -0x7A,0x7A,0x7C,0x7A,0x71,0x6D,0x70,0x72,0x77,0x7F,0x87,0x8A,0x88,0x86,0x83,0x7D, -0x75,0x6E,0x70,0x77,0x7E,0x83,0x87,0x8A,0x8B,0x8A,0x87,0x84,0x80,0x7B,0x78,0x76, -0x73,0x71,0x77,0x7E,0x81,0x81,0x83,0x88,0x8D,0x89,0x7F,0x7A,0x7D,0x7C,0x75,0x74, -0x78,0x7D,0x7D,0x7B,0x7B,0x7E,0x80,0x82,0x83,0x83,0x83,0x82,0x82,0x83,0x7E,0x7B, -0x7E,0x82,0x85,0x88,0x8B,0x87,0x80,0x7D,0x80,0x87,0x88,0x7E,0x7A,0x7D,0x84,0x86, -0x83,0x82,0x81,0x80,0x7C,0x79,0x7B,0x80,0x82,0x82,0x80,0x7D,0x7A,0x7D,0x82,0x80, -0x80,0x82,0x83,0x83,0x7E,0x7C,0x84,0x89,0x86,0x7D,0x7F,0x85,0x87,0x89,0x8B,0x8B, -0x8E,0x8B,0x83,0x7A,0x76,0x78,0x7A,0x7C,0x7E,0x82,0x87,0x8B,0x89,0x83,0x7C,0x7A, -0x7B,0x7B,0x7A,0x79,0x79,0x7B,0x7D,0x7F,0x84,0x8C,0x92,0x90,0x87,0x80,0x80,0x83, -0x83,0x82,0x84,0x85,0x85,0x85,0x85,0x80,0x7A,0x76,0x74,0x76,0x79,0x7B,0x7C,0x7D, -0x7F,0x81,0x82,0x81,0x7F,0x83,0x84,0x7D,0x79,0x7B,0x80,0x86,0x8E,0x8D,0x82,0x7D, -0x7C,0x7B,0x7A,0x75,0x6F,0x73,0x76,0x76,0x7C,0x88,0x8C,0x86,0x84,0x80,0x7B,0x7C, -0x77,0x72,0x73,0x75,0x75,0x7A,0x85,0x85,0x82,0x83,0x7F,0x79,0x7D,0x7E,0x7D,0x7E, -0x7D,0x7D,0x82,0x87,0x83,0x7C,0x80,0x83,0x82,0x7D,0x75,0x79,0x82,0x81,0x7C,0x7F, -0x85,0x86,0x84,0x83,0x7C,0x7B,0x80,0x80,0x7F,0x7B,0x7A,0x7F,0x82,0x7C,0x7F,0x85, -0x83,0x7A,0x7A,0x7F,0x84,0x90,0x97,0x91,0x93,0x98,0x8F,0x83,0x7C,0x7B,0x80,0x88, -0x85,0x7F,0x83,0x88,0x84,0x83,0x7E,0x76,0x74,0x78,0x78,0x7C,0x7F,0x79,0x79,0x82, -0x86,0x8C,0x98,0x8F,0x81,0x7A,0x73,0x71,0x79,0x78,0x7D,0x87,0x8F,0x8A,0x88,0x8D, -0x8C,0x89,0x81,0x78,0x78,0x81,0x7A,0x7D,0x83,0x81,0x83,0x8E,0x8D,0x87,0x83,0x83, -0x7E,0x7D,0x77,0x75,0x85,0x85,0x7A,0x73,0x79,0x7B,0x7E,0x7B,0x74,0x71,0x79,0x7C, -0x7A,0x7F,0x7E,0x83,0x85,0x7E,0x7F,0x80,0x82,0x80,0x7A,0x80,0x83,0x8C,0x8D,0x83, -0x83,0x86,0x81,0x7E,0x79,0x75,0x7A,0x7D,0x7C,0x78,0x7F,0x84,0x83,0x8A,0x88,0x81, -0x7A,0x73,0x73,0x71,0x74,0x74,0x75,0x7B,0x7C,0x7E,0x86,0x84,0x83,0x86,0x8C,0x8B, -0x82,0x7D,0x79,0x7C,0x83,0x80,0x86,0x85,0x86,0x89,0x82,0x79,0x76,0x7C,0x85,0x7E, -0x7B,0x79,0x76,0x7D,0x7B,0x7D,0x83,0x85,0x89,0x85,0x81,0x82,0x83,0x87,0x7E,0x7C, -0x82,0x81,0x85,0x81,0x7F,0x86,0x84,0x84,0x85,0x84,0x88,0x7E,0x7D,0x80,0x81,0x86, -0x83,0x83,0x88,0x84,0x84,0x85,0x7F,0x7C,0x7B,0x81,0x83,0x7F,0x7B,0x73,0x77,0x7A, -0x78,0x7F,0x81,0x80,0x7F,0x85,0x85,0x81,0x84,0x87,0x86,0x86,0x82,0x7B,0x7B,0x7E, -0x85,0x8B,0x90,0x8E,0x84,0x80,0x85,0x87,0x89,0x82,0x7D,0x7D,0x7F,0x7D,0x7B,0x7F, -0x86,0x8A,0x89,0x83,0x7E,0x83,0x83,0x7F,0x7E,0x7B,0x7C,0x7E,0x7E,0x7C,0x7A,0x7D, -0x81,0x7E,0x79,0x75,0x79,0x7A,0x75,0x75,0x7A,0x79,0x7A,0x81,0x88,0x87,0x88,0x86, -0x83,0x7D,0x71,0x70,0x77,0x7E,0x83,0x83,0x7D,0x7D,0x81,0x85,0x82,0x82,0x82,0x79, -0x75,0x78,0x7C,0x81,0x7F,0x7D,0x7F,0x84,0x85,0x85,0x86,0x86,0x81,0x80,0x82,0x7E, -0x79,0x79,0x7E,0x7C,0x78,0x75,0x70,0x71,0x72,0x77,0x7C,0x82,0x83,0x82,0x83,0x7F, -0x78,0x79,0x7A,0x7F,0x84,0x85,0x86,0x8E,0x95,0x98,0x95,0x8F,0x88,0x81,0x7E,0x7B, -0x7A,0x7C,0x7D,0x7D,0x7D,0x7C,0x7D,0x81,0x86,0x89,0x86,0x81,0x7F,0x81,0x82,0x86, -0x88,0x87,0x81,0x7B,0x7A,0x7B,0x7E,0x83,0x85,0x86,0x82,0x7E,0x7E,0x7F,0x7F,0x82, -0x82,0x80,0x7F,0x84,0x8B,0x8B,0x86,0x7E,0x7C,0x81,0x86,0x84,0x7D,0x79,0x7E,0x82, -0x83,0x81,0x81,0x84,0x84,0x84,0x85,0x84,0x84,0x86,0x85,0x7D,0x75,0x76,0x7B,0x7C, -0x77,0x74,0x79,0x80,0x84,0x84,0x87,0x86,0x7F,0x7B,0x76,0x73,0x74,0x76,0x79,0x7F, -0x87,0x8B,0x8F,0x92,0x8F,0x88,0x81,0x7A,0x74,0x76,0x79,0x7F,0x83,0x84,0x84,0x84, -0x85,0x82,0x7D,0x7C,0x7E,0x7D,0x79,0x76,0x78,0x7C,0x7A,0x7A,0x7B,0x7D,0x83,0x86, -0x86,0x85,0x82,0x7F,0x80,0x83,0x84,0x84,0x86,0x86,0x85,0x84,0x86,0x88,0x86,0x82, -0x7D,0x79,0x7B,0x7B,0x77,0x75,0x76,0x80,0x88,0x85,0x83,0x86,0x85,0x81,0x79,0x7A, -0x77,0x74,0x75,0x76,0x7B,0x7E,0x81,0x87,0x87,0x83,0x7F,0x7B,0x75,0x73,0x7F,0x88, -0x89,0x89,0x85,0x81,0x7F,0x7F,0x82,0x82,0x83,0x80,0x76,0x72,0x71,0x77,0x7A,0x79, -0x79,0x7B,0x7B,0x7A,0x80,0x87,0x88,0x87,0x88,0x8A,0x8B,0x87,0x87,0x88,0x81,0x7B, -0x7D,0x85,0x8B,0x8A,0x8B,0x8A,0x89,0x89,0x83,0x7F,0x7D,0x7B,0x7E,0x7C,0x7C,0x7E, -0x7F,0x83,0x80,0x80,0x7E,0x7C,0x7F,0x80,0x7D,0x7E,0x7D,0x83,0x85,0x82,0x7F,0x7C, -0x7E,0x81,0x7D,0x85,0x8B,0x87,0x82,0x7D,0x78,0x75,0x7B,0x85,0x88,0x89,0x85,0x83, -0x81,0x7E,0x80,0x82,0x80,0x7D,0x7B,0x81,0x84,0x83,0x86,0x85,0x80,0x7E,0x7A,0x7B, -0x7A,0x78,0x78,0x75,0x71,0x75,0x7B,0x7C,0x79,0x79,0x7D,0x80,0x80,0x81,0x7F,0x7D, -0x7E,0x7E,0x80,0x7F,0x7E,0x80,0x80,0x7F,0x7F,0x80,0x80,0x7C,0x7C,0x80,0x83,0x82, -0x7D,0x7D,0x80,0x7F,0x7B,0x7F,0x85,0x85,0x84,0x85,0x80,0x7C,0x7A,0x7B,0x81,0x81, -0x7C,0x7A,0x7C,0x7C,0x78,0x76,0x77,0x78,0x7D,0x7F,0x7E,0x82,0x8A,0x8C,0x90,0x95, -0x98,0x95,0x8E,0x88,0x7F,0x77,0x74,0x73,0x77,0x7D,0x7D,0x7B,0x7B,0x7B,0x7C,0x81, -0x84,0x82,0x7D,0x7C,0x80,0x7E,0x7A,0x7E,0x87,0x8C,0x8A,0x87,0x87,0x83,0x7D,0x7A, -0x7C,0x82,0x86,0x86,0x87,0x84,0x81,0x7F,0x80,0x84,0x88,0x8B,0x8B,0x8C,0x8E,0x8C, -0x85,0x7D,0x79,0x78,0x77,0x7B,0x7D,0x7D,0x79,0x78,0x7B,0x7E,0x84,0x88,0x83,0x7D, -0x7C,0x7D,0x7F,0x81,0x82,0x80,0x7B,0x7A,0x7D,0x82,0x86,0x87,0x85,0x81,0x81,0x80, -0x7A,0x79,0x7C,0x80,0x81,0x7F,0x81,0x87,0x8C,0x8C,0x89,0x8A,0x8D,0x8A,0x83,0x7C, -0x7A,0x7D,0x81,0x84,0x86,0x88,0x85,0x7F,0x7D,0x7C,0x79,0x77,0x75,0x71,0x70,0x72, -0x73,0x74,0x75,0x77,0x7A,0x7C,0x7D,0x81,0x88,0x8B,0x86,0x83,0x87,0x8C,0x8E,0x8B, -0x85,0x80,0x82,0x82,0x7D,0x7B,0x7F,0x81,0x81,0x7C,0x74,0x6F,0x71,0x75,0x7B,0x80, -0x81,0x82,0x88,0x88,0x86,0x88,0x88,0x85,0x81,0x7A,0x74,0x77,0x77,0x72,0x70,0x74, -0x78,0x7A,0x7A,0x79,0x77,0x7A,0x80,0x80,0x83,0x86,0x8C,0x90,0x8C,0x89,0x8D,0x8C, -0x87,0x81,0x80,0x82,0x84,0x82,0x7B,0x7A,0x7F,0x7E,0x7A,0x7C,0x80,0x83,0x83,0x86, -0x88,0x85,0x81,0x7D,0x81,0x83,0x7F,0x81,0x86,0x87,0x83,0x82,0x87,0x89,0x85,0x81, -0x7E,0x85,0x88,0x7C,0x76,0x79,0x82,0x8C,0x91,0x90,0x8B,0x8B,0x89,0x86,0x8B,0x87, -0x7F,0x87,0x84,0x7B,0x78,0x7E,0x83,0x81,0x7F,0x78,0x79,0x7F,0x77,0x70,0x72,0x71, -0x70,0x72,0x77,0x7F,0x8D,0x92,0x89,0x8A,0x8D,0x89,0x8B,0x85,0x73,0x71,0x77,0x7E, -0x7E,0x80,0x82,0x86,0x8C,0x8D,0x89,0x8B,0x88,0x7A,0x6E,0x69,0x6D,0x7A,0x7D,0x7A, -0x7D,0x7F,0x75,0x71,0x73,0x76,0x79,0x7E,0x7C,0x78,0x75,0x76,0x7D,0x7F,0x7B,0x79, -0x7E,0x82,0x7F,0x84,0x82,0x7D,0x7E,0x81,0x81,0x84,0x8D,0x8C,0x80,0x7C,0x7E,0x85, -0x88,0x85,0x87,0x85,0x81,0x7F,0x7B,0x77,0x72,0x75,0x7D,0x73,0x72,0x75,0x76,0x7C, -0x7F,0x84,0x87,0x87,0x8F,0x87,0x86,0x83,0x82,0x86,0x7E,0x78,0x7A,0x79,0x7B,0x7E, -0x7C,0x80,0x81,0x86,0x85,0x82,0x8B,0x8D,0x8C,0x87,0x83,0x84,0x85,0x87,0x82,0x7F, -0x82,0x7E,0x7E,0x76,0x75,0x78,0x75,0x74,0x78,0x7B,0x81,0x81,0x82,0x81,0x7E,0x89, -0x91,0x89,0x87,0x88,0x8B,0x89,0x83,0x80,0x7D,0x7D,0x7D,0x81,0x86,0x8B,0x89,0x87, -0x81,0x7E,0x85,0x88,0x83,0x7D,0x7C,0x7D,0x7F,0x80,0x7D,0x7F,0x87,0x8B,0x8A,0x7F, -0x77,0x7D,0x7D,0x77,0x76,0x7C,0x80,0x82,0x81,0x80,0x7E,0x84,0x89,0x85,0x83,0x82, -0x7C,0x7F,0x80,0x82,0x83,0x87,0x8B,0x85,0x84,0x86,0x86,0x82,0x7C,0x7B,0x7A,0x77, -0x79,0x7C,0x7D,0x7F,0x7F,0x7D,0x77,0x76,0x7A,0x7A,0x79,0x77,0x7B,0x81,0x7F,0x7F, -0x83,0x8B,0x8D,0x85,0x7F,0x77,0x72,0x7A,0x7D,0x7D,0x7A,0x7A,0x7D,0x7B,0x7D,0x7D, -0x7A,0x7D,0x80,0x7B,0x76,0x78,0x81,0x85,0x85,0x85,0x82,0x80,0x7F,0x82,0x85,0x86, -0x88,0x83,0x7B,0x79,0x7D,0x84,0x87,0x84,0x82,0x80,0x7F,0x7A,0x75,0x78,0x7D,0x80, -0x81,0x82,0x85,0x86,0x84,0x81,0x82,0x86,0x84,0x7F,0x7E,0x82,0x84,0x84,0x86,0x86, -0x83,0x85,0x86,0x87,0x85,0x81,0x80,0x7F,0x80,0x81,0x82,0x88,0x8B,0x8B,0x85,0x7C, -0x7C,0x80,0x7E,0x7C,0x7F,0x80,0x7F,0x7F,0x83,0x87,0x86,0x85,0x84,0x85,0x83,0x80, -0x7F,0x7C,0x79,0x78,0x7A,0x80,0x85,0x84,0x7E,0x76,0x78,0x7B,0x7E,0x7E,0x7E,0x80, -0x80,0x81,0x84,0x84,0x83,0x81,0x82,0x86,0x89,0x8A,0x8A,0x84,0x7D,0x7C,0x7F,0x82, -0x7F,0x7C,0x77,0x75,0x77,0x79,0x7F,0x82,0x84,0x85,0x83,0x80,0x7B,0x77,0x76,0x76, -0x75,0x73,0x73,0x77,0x7C,0x7F,0x81,0x7F,0x80,0x80,0x7F,0x7D,0x7B,0x7F,0x80,0x82, -0x83,0x81,0x81,0x83,0x82,0x86,0x87,0x85,0x86,0x87,0x89,0x85,0x82,0x80,0x7D,0x7B, -0x79,0x76,0x78,0x7B,0x80,0x85,0x85,0x85,0x87,0x8A,0x85,0x7C,0x79,0x77,0x74,0x72, -0x71,0x79,0x7F,0x85,0x8B,0x8B,0x89,0x83,0x7F,0x7E,0x7D,0x80,0x7C,0x73,0x76,0x7D, -0x83,0x85,0x87,0x8C,0x8E,0x8E,0x8B,0x84,0x81,0x80,0x87,0x8D,0x87,0x82,0x7E,0x7B, -0x7A,0x7D,0x84,0x82,0x7C,0x79,0x77,0x7C,0x7D,0x7D,0x83,0x82,0x7E,0x79,0x79,0x79, -0x75,0x7A,0x7F,0x83,0x89,0x89,0x89,0x88,0x83,0x81,0x7D,0x7B,0x78,0x7C,0x86,0x87, -0x86,0x8D,0x90,0x8C,0x85,0x86,0x87,0x88,0x87,0x80,0x79,0x75,0x75,0x79,0x7B,0x7A, -0x81,0x85,0x84,0x80,0x7C,0x7A,0x79,0x7D,0x82,0x84,0x87,0x89,0x8F,0x90,0x8A,0x86, -0x86,0x82,0x79,0x79,0x7B,0x79,0x7B,0x80,0x83,0x82,0x80,0x7E,0x7D,0x7B,0x7C,0x78, -0x71,0x6B,0x6C,0x7D,0x8A,0x89,0x88,0x86,0x82,0x7B,0x79,0x7C,0x79,0x75,0x76,0x7C, -0x82,0x83,0x86,0x88,0x83,0x7B,0x7D,0x83,0x80,0x7A,0x79,0x78,0x7C,0x80,0x80,0x81, -0x87,0x8C,0x87,0x80,0x7C,0x78,0x77,0x77,0x77,0x7F,0x83,0x83,0x7E,0x79,0x76,0x73, -0x75,0x7A,0x7C,0x7B,0x7C,0x84,0x89,0x88,0x8C,0x90,0x8E,0x83,0x79,0x78,0x7C,0x7E, -0x7F,0x7F,0x81,0x83,0x85,0x8A,0x8C,0x88,0x82,0x80,0x80,0x7D,0x7D,0x82,0x86,0x8C, -0x91,0x90,0x8A,0x83,0x7D,0x7F,0x84,0x84,0x80,0x79,0x77,0x78,0x7D,0x80,0x80,0x81, -0x81,0x7C,0x7B,0x7B,0x7D,0x80,0x84,0x85,0x82,0x80,0x7F,0x81,0x86,0x89,0x8C,0x8E, -0x8A,0x85,0x86,0x86,0x84,0x82,0x81,0x7E,0x7B,0x7A,0x78,0x76,0x7B,0x81,0x81,0x7E, -0x7B,0x7E,0x82,0x80,0x7C,0x7D,0x7E,0x7C,0x7A,0x7E,0x7E,0x7F,0x7E,0x7F,0x7F,0x82, -0x85,0x82,0x7C,0x7A,0x79,0x7B,0x7D,0x7E,0x7E,0x7F,0x81,0x85,0x85,0x83,0x80,0x7E, -0x7B,0x76,0x74,0x75,0x76,0x78,0x7B,0x7E,0x81,0x85,0x88,0x86,0x81,0x80,0x82,0x85, -0x84,0x84,0x85,0x87,0x89,0x89,0x88,0x86,0x84,0x7F,0x7E,0x7B,0x78,0x75,0x76,0x77, -0x78,0x76,0x77,0x7B,0x80,0x79,0x75,0x7B,0x80,0x81,0x84,0x86,0x87,0x87,0x87,0x84, -0x80,0x80,0x7F,0x80,0x82,0x7E,0x7D,0x80,0x82,0x84,0x87,0x84,0x83,0x84,0x85,0x7E, -0x7C,0x7D,0x7F,0x7F,0x7E,0x7E,0x80,0x82,0x81,0x7F,0x81,0x84,0x86,0x89,0x87,0x80, -0x7D,0x79,0x76,0x77,0x77,0x7A,0x7C,0x7E,0x7B,0x7C,0x82,0x83,0x81,0x7F,0x7D,0x80, -0x83,0x7F,0x7E,0x86,0x89,0x86,0x86,0x8A,0x8B,0x87,0x87,0x84,0x85,0x85,0x80,0x7E, -0x7B,0x77,0x7B,0x81,0x81,0x80,0x86,0x86,0x84,0x87,0x89,0x84,0x83,0x85,0x82,0x80, -0x7D,0x79,0x7A,0x7B,0x79,0x78,0x7E,0x80,0x7D,0x80,0x7C,0x7E,0x81,0x82,0x85,0x88, -0x8C,0x8E,0x8F,0x8F,0x87,0x86,0x8C,0x87,0x85,0x85,0x83,0x80,0x7E,0x79,0x74,0x75, -0x76,0x72,0x76,0x75,0x72,0x7A,0x7E,0x79,0x78,0x7D,0x7D,0x7A,0x7D,0x7F,0x7E,0x82, -0x86,0x84,0x84,0x82,0x7F,0x7C,0x7B,0x78,0x80,0x82,0x7D,0x7F,0x83,0x87,0x82,0x83, -0x84,0x81,0x7E,0x7C,0x7C,0x7D,0x7B,0x7A,0x7A,0x7E,0x79,0x7E,0x84,0x79,0x74,0x7B, -0x76,0x74,0x7A,0x7A,0x7C,0x7D,0x85,0x87,0x83,0x87,0x81,0x82,0x84,0x81,0x86,0x88, -0x89,0x89,0x85,0x84,0x84,0x89,0x86,0x82,0x84,0x86,0x87,0x8A,0x81,0x7F,0x81,0x76, -0x75,0x78,0x81,0x83,0x83,0x85,0x83,0x7F,0x7C,0x77,0x7C,0x77,0x77,0x7F,0x85,0x87, -0x82,0x85,0x87,0x83,0x7E,0x7D,0x7A,0x80,0x7D,0x82,0x86,0x87,0x8D,0x90,0x8A,0x8D, -0x8B,0x8A,0x82,0x7A,0x7E,0x7E,0x83,0x89,0x8B,0x82,0x7D,0x7E,0x7A,0x7A,0x7E,0x79, -0x79,0x7A,0x78,0x7A,0x7F,0x83,0x83,0x82,0x86,0x81,0x77,0x7A,0x72,0x76,0x7B,0x7B, -0x7B,0x7E,0x83,0x86,0x82,0x7E,0x7B,0x7D,0x83,0x83,0x7C,0x7B,0x7F,0x83,0x87,0x89, -0x90,0x91,0x93,0x8F,0x85,0x81,0x81,0x7C,0x78,0x79,0x7C,0x78,0x74,0x74,0x76,0x78, -0x78,0x7A,0x7A,0x7B,0x7A,0x79,0x79,0x78,0x79,0x7E,0x86,0x8A,0x84,0x7F,0x82,0x84, -0x84,0x85,0x85,0x83,0x7D,0x77,0x78,0x82,0x8D,0x91,0x89,0x80,0x7F,0x80,0x7F,0x81, -0x82,0x84,0x86,0x89,0x86,0x7F,0x7B,0x78,0x71,0x6B,0x6A,0x6F,0x7A,0x7F,0x79,0x76, -0x7D,0x81,0x7F,0x7B,0x7B,0x7B,0x79,0x76,0x78,0x7C,0x83,0x84,0x85,0x89,0x8B,0x8A, -0x87,0x86,0x86,0x87,0x89,0x8C,0x8D,0x8C,0x8A,0x85,0x80,0x7F,0x80,0x83,0x83,0x7F, -0x79,0x78,0x7B,0x7B,0x7A,0x7C,0x7E,0x7F,0x7D,0x79,0x7B,0x81,0x86,0x8C,0x8A,0x82, -0x7C,0x7C,0x82,0x84,0x83,0x80,0x7E,0x7F,0x7E,0x7D,0x7E,0x83,0x8B,0x8F,0x8C,0x8A, -0x89,0x8B,0x8C,0x8C,0x8B,0x8A,0x8A,0x86,0x7F,0x7C,0x7C,0x7E,0x81,0x81,0x81,0x7B, -0x74,0x70,0x6F,0x73,0x76,0x7B,0x80,0x80,0x81,0x80,0x7C,0x78,0x75,0x72,0x74,0x7A, -0x81,0x85,0x83,0x84,0x86,0x88,0x86,0x86,0x89,0x8C,0x88,0x82,0x80,0x7E,0x7D,0x81, -0x84,0x83,0x81,0x7D,0x7B,0x7A,0x75,0x72,0x74,0x77,0x7A,0x7A,0x79,0x76,0x78,0x7F, -0x7F,0x7B,0x76,0x74,0x78,0x7C,0x7F,0x85,0x8A,0x8B,0x87,0x88,0x85,0x7F,0x81,0x81, -0x84,0x82,0x80,0x80,0x7D,0x7D,0x80,0x83,0x85,0x82,0x81,0x80,0x7B,0x79,0x79,0x7A, -0x81,0x80,0x7E,0x80,0x81,0x82,0x80,0x80,0x7F,0x7D,0x80,0x80,0x80,0x80,0x7F,0x80, -0x84,0x86,0x86,0x86,0x88,0x88,0x84,0x82,0x81,0x83,0x85,0x83,0x85,0x89,0x86,0x83, -0x7F,0x7C,0x76,0x76,0x7B,0x80,0x83,0x7E,0x7E,0x86,0x88,0x84,0x86,0x8A,0x88,0x80, -0x7F,0x81,0x81,0x83,0x84,0x82,0x80,0x7B,0x7E,0x7E,0x77,0x72,0x73,0x7E,0x86,0x88, -0x85,0x7E,0x7E,0x7E,0x7D,0x7C,0x7B,0x7D,0x81,0x82,0x84,0x88,0x8C,0x89,0x84,0x86, -0x85,0x81,0x84,0x84,0x82,0x83,0x86,0x8A,0x88,0x85,0x82,0x7C,0x79,0x75,0x74,0x76, -0x7A,0x7C,0x7B,0x7C,0x7D,0x80,0x7E,0x7C,0x7F,0x84,0x81,0x7A,0x77,0x78,0x7C,0x7C, -0x81,0x85,0x80,0x7E,0x7F,0x85,0x89,0x85,0x85,0x84,0x87,0x87,0x85,0x85,0x81,0x7D, -0x79,0x7B,0x81,0x80,0x7C,0x7D,0x81,0x80,0x79,0x75,0x75,0x75,0x75,0x75,0x77,0x7E, -0x84,0x85,0x82,0x7D,0x7A,0x79,0x7D,0x7E,0x7A,0x78,0x77,0x7C,0x82,0x82,0x7D,0x7A, -0x7B,0x7F,0x84,0x8D,0x91,0x8D,0x8A,0x8B,0x8B,0x87,0x81,0x83,0x83,0x81,0x7C,0x78, -0x78,0x79,0x7D,0x7B,0x78,0x79,0x79,0x78,0x77,0x76,0x79,0x80,0x88,0x8A,0x84,0x7F, -0x7F,0x82,0x83,0x7E,0x7E,0x84,0x89,0x8A,0x86,0x85,0x84,0x82,0x83,0x83,0x84,0x85, -0x88,0x8C,0x8C,0x8D,0x8F,0x90,0x8E,0x88,0x84,0x81,0x80,0x81,0x83,0x83,0x84,0x84, -0x80,0x7C,0x7B,0x78,0x73,0x70,0x6F,0x71,0x77,0x7A,0x7B,0x7E,0x81,0x83,0x84,0x86, -0x83,0x83,0x83,0x82,0x81,0x82,0x85,0x8B,0x8E,0x91,0x8E,0x89,0x85,0x80,0x7A,0x78, -0x79,0x79,0x77,0x75,0x78,0x7D,0x86,0x89,0x84,0x7E,0x7D,0x7E,0x7B,0x77,0x70,0x6F, -0x72,0x73,0x71,0x75,0x7B,0x80,0x7D,0x80,0x81,0x80,0x82,0x83,0x7F,0x7D,0x80,0x82, -0x81,0x83,0x85,0x85,0x88,0x8B,0x86,0x81,0x7E,0x7C,0x7E,0x7A,0x76,0x76,0x7A,0x81, -0x82,0x83,0x83,0x84,0x82,0x81,0x81,0x80,0x7C,0x7B,0x7E,0x7E,0x7A,0x7B,0x7E,0x7C, -0x80,0x84,0x81,0x83,0x85,0x81,0x7D,0x77,0x75,0x76,0x80,0x8A,0x89,0x87,0x85,0x83, -0x85,0x86,0x86,0x88,0x88,0x84,0x7E,0x7F,0x81,0x84,0x81,0x7D,0x7E,0x83,0x84,0x86, -0x87,0x80,0x7B,0x7B,0x81,0x7E,0x83,0x84,0x81,0x82,0x80,0x7F,0x81,0x80,0x82,0x7E, -0x86,0x8A,0x7C,0x7D,0x7D,0x79,0x77,0x7A,0x81,0x81,0x80,0x83,0x7D,0x80,0x80,0x80, -0x83,0x7E,0x83,0x82,0x7F,0x81,0x84,0x85,0x87,0x88,0x8C,0x83,0x86,0x85,0x7F,0x80, -0x79,0x75,0x7C,0x80,0x82,0x82,0x87,0x8B,0x83,0x87,0x7F,0x7A,0x80,0x7F,0x80,0x81, -0x7E,0x81,0x7B,0x7C,0x82,0x82,0x85,0x80,0x7E,0x78,0x77,0x78,0x79,0x79,0x7F,0x7C, -0x80,0x86,0x89,0x89,0x86,0x86,0x82,0x80,0x82,0x7F,0x7E,0x81,0x7E,0x7F,0x78,0x7B, -0x7F,0x81,0x7F,0x7D,0x79,0x76,0x74,0x75,0x74,0x78,0x81,0x80,0x7E,0x79,0x7A,0x79, -0x79,0x7C,0x7F,0x84,0x8E,0x89,0x84,0x84,0x7D,0x7A,0x7B,0x7F,0x7C,0x77,0x7D,0x7D, -0x80,0x85,0x88,0x87,0x82,0x7E,0x7B,0x7D,0x80,0x7D,0x7D,0x7D,0x7F,0x80,0x83,0x81, -0x82,0x7F,0x77,0x71,0x6F,0x74,0x7B,0x83,0x86,0x81,0x84,0x87,0x8B,0x8E,0x86,0x81, -0x82,0x84,0x82,0x82,0x82,0x81,0x82,0x88,0x86,0x87,0x8A,0x86,0x85,0x86,0x85,0x87, -0x8C,0x88,0x81,0x85,0x8B,0x8A,0x86,0x7E,0x75,0x76,0x78,0x78,0x79,0x7B,0x7A,0x79, -0x79,0x77,0x7A,0x82,0x83,0x85,0x89,0x86,0x84,0x87,0x84,0x7F,0x83,0x8A,0x8B,0x89, -0x86,0x83,0x83,0x88,0x89,0x8C,0x8E,0x89,0x87,0x87,0x80,0x76,0x73,0x74,0x71,0x73, -0x78,0x7A,0x7B,0x7A,0x78,0x79,0x7C,0x7B,0x7C,0x7B,0x7C,0x7A,0x79,0x7B,0x82,0x8B, -0x8B,0x86,0x83,0x81,0x80,0x7B,0x76,0x73,0x73,0x78,0x7C,0x81,0x80,0x7E,0x80,0x85, -0x89,0x8C,0x8A,0x84,0x80,0x7D,0x7B,0x76,0x78,0x7E,0x81,0x82,0x81,0x7E,0x7D,0x7B, -0x7C,0x78,0x75,0x75,0x78,0x7A,0x7B,0x7F,0x86,0x8A,0x8C,0x8A,0x85,0x87,0x8A,0x8C, -0x86,0x80,0x7A,0x78,0x7A,0x7C,0x7C,0x7B,0x7A,0x7C,0x7E,0x7E,0x80,0x81,0x83,0x84, -0x82,0x82,0x84,0x88,0x84,0x7F,0x80,0x84,0x8B,0x8E,0x8A,0x86,0x81,0x7C,0x78,0x75, -0x74,0x73,0x75,0x7B,0x81,0x85,0x86,0x86,0x87,0x85,0x84,0x87,0x8A,0x88,0x81,0x7B, -0x76,0x74,0x7A,0x81,0x86,0x83,0x7E,0x7E,0x7F,0x7F,0x7D,0x7D,0x7F,0x82,0x84,0x85, -0x83,0x84,0x84,0x84,0x86,0x87,0x85,0x83,0x83,0x83,0x80,0x80,0x80,0x7F,0x81,0x7E, -0x7D,0x80,0x87,0x89,0x85,0x82,0x80,0x82,0x85,0x83,0x7A,0x76,0x78,0x7B,0x7E,0x83, -0x89,0x8B,0x88,0x85,0x7F,0x7C,0x7E,0x7B,0x78,0x76,0x79,0x7D,0x83,0x85,0x86,0x87, -0x88,0x86,0x81,0x7C,0x7A,0x7A,0x78,0x76,0x79,0x7E,0x84,0x85,0x84,0x83,0x80,0x7C, -0x79,0x79,0x78,0x76,0x78,0x7C,0x7D,0x81,0x84,0x87,0x83,0x7F,0x7E,0x81,0x81,0x7E, -0x7D,0x7E,0x7E,0x7F,0x7E,0x7D,0x7F,0x83,0x81,0x7F,0x7E,0x7D,0x7B,0x7B,0x78,0x75, -0x74,0x79,0x7D,0x7F,0x81,0x82,0x7D,0x7B,0x7A,0x7D,0x83,0x86,0x83,0x82,0x83,0x85, -0x82,0x80,0x7F,0x7D,0x7D,0x7C,0x7B,0x7E,0x81,0x83,0x86,0x8B,0x8D,0x8D,0x8E,0x8B, -0x85,0x80,0x80,0x87,0x8C,0x8C,0x8B,0x87,0x7F,0x77,0x73,0x73,0x75,0x75,0x77,0x79, -0x7B,0x7F,0x81,0x86,0x8B,0x8B,0x88,0x83,0x81,0x82,0x82,0x83,0x82,0x81,0x83,0x88, -0x8A,0x86,0x7F,0x7E,0x7F,0x81,0x82,0x83,0x87,0x89,0x87,0x84,0x80,0x81,0x84,0x87, -0x86,0x82,0x81,0x81,0x82,0x80,0x7D,0x79,0x76,0x76,0x77,0x74,0x75,0x76,0x78,0x78, -0x78,0x7B,0x7F,0x82,0x87,0x86,0x84,0x83,0x81,0x7E,0x7C,0x7D,0x7D,0x7E,0x80,0x82, -0x85,0x89,0x8A,0x89,0x86,0x85,0x83,0x81,0x7F,0x80,0x7F,0x7E,0x7D,0x79,0x76,0x77, -0x7B,0x7E,0x80,0x7F,0x7D,0x79,0x74,0x71,0x75,0x7B,0x80,0x82,0x82,0x7F,0x7D,0x7E, -0x81,0x85,0x86,0x87,0x86,0x81,0x7C,0x7D,0x82,0x81,0x7D,0x7A,0x78,0x7C,0x84,0x86, -0x85,0x87,0x89,0x89,0x84,0x7D,0x7B,0x7B,0x7E,0x7E,0x7F,0x7E,0x80,0x83,0x85,0x81, -0x7D,0x7C,0x7D,0x7A,0x78,0x78,0x7D,0x81,0x83,0x83,0x7F,0x79,0x7A,0x7D,0x7E,0x7D, -0x79,0x77,0x7B,0x80,0x82,0x84,0x87,0x8A,0x88,0x83,0x80,0x82,0x87,0x8E,0x8F,0x8B, -0x89,0x86,0x84,0x82,0x7F,0x7E,0x7B,0x79,0x79,0x77,0x76,0x79,0x7F,0x89,0x8A,0x84, -0x7E,0x7C,0x7D,0x7E,0x7F,0x84,0x83,0x84,0x87,0x8C,0x8B,0x89,0x89,0x83,0x7F,0x7E, -0x7B,0x7B,0x7C,0x81,0x85,0x85,0x88,0x88,0x87,0x88,0x88,0x85,0x80,0x7F,0x80,0x84, -0x82,0x83,0x7F,0x7E,0x82,0x7C,0x7B,0x7D,0x7C,0x7A,0x75,0x74,0x76,0x77,0x7A,0x7B, -0x7D,0x83,0x85,0x81,0x84,0x84,0x85,0x86,0x88,0x83,0x7E,0x7E,0x7C,0x7C,0x7D,0x80, -0x83,0x82,0x81,0x7A,0x72,0x78,0x82,0x8A,0x88,0x89,0x8B,0x83,0x7B,0x79,0x74,0x77, -0x7C,0x7B,0x78,0x78,0x7D,0x82,0x7F,0x79,0x74,0x70,0x71,0x6F,0x73,0x79,0x7A,0x7F, -0x82,0x87,0x86,0x85,0x83,0x80,0x7F,0x7C,0x7C,0x7E,0x80,0x86,0x91,0x92,0x8D,0x8A, -0x85,0x82,0x81,0x82,0x7D,0x7A,0x83,0x81,0x80,0x87,0x85,0x83,0x84,0x7F,0x74,0x70, -0x79,0x78,0x79,0x7B,0x7B,0x7F,0x81,0x85,0x84,0x83,0x86,0x85,0x84,0x83,0x82,0x85, -0x80,0x78,0x86,0x8B,0x8C,0x8A,0x82,0x89,0x87,0x89,0x8C,0x8C,0x8E,0x86,0x84,0x81, -0x7B,0x7E,0x7D,0x7C,0x78,0x78,0x7A,0x76,0x79,0x79,0x74,0x78,0x80,0x81,0x85,0x85, -0x88,0x85,0x82,0x83,0x80,0x85,0x86,0x83,0x87,0x82,0x81,0x7E,0x78,0x79,0x7A,0x7F, -0x7A,0x7E,0x83,0x81,0x86,0x8A,0x88,0x8A,0x8A,0x8A,0x85,0x7F,0x79,0x70,0x73,0x72, -0x6F,0x7A,0x7C,0x78,0x7A,0x77,0x7A,0x77,0x7D,0x85,0x7F,0x84,0x87,0x84,0x88,0x88, -0x89,0x84,0x7E,0x81,0x7F,0x83,0x8B,0x8C,0x8B,0x86,0x85,0x82,0x7E,0x7F,0x79,0x78, -0x78,0x76,0x7B,0x83,0x89,0x87,0x83,0x86,0x83,0x7C,0x75,0x6E,0x6E,0x71,0x76,0x7B, -0x79,0x7D,0x82,0x80,0x80,0x7E,0x7A,0x76,0x77,0x79,0x78,0x7B,0x81,0x83,0x81,0x7F, -0x80,0x82,0x88,0x8A,0x87,0x88,0x89,0x88,0x86,0x86,0x83,0x7D,0x7D,0x81,0x81,0x80, -0x7F,0x7F,0x81,0x83,0x82,0x7F,0x7B,0x79,0x77,0x75,0x76,0x7C,0x80,0x80,0x81,0x7C, -0x78,0x79,0x7D,0x7D,0x7C,0x7E,0x82,0x84,0x88,0x86,0x83,0x86,0x87,0x89,0x8B,0x8E, -0x8F,0x88,0x83,0x80,0x7F,0x82,0x84,0x85,0x85,0x83,0x87,0x87,0x86,0x82,0x7F,0x81, -0x82,0x7F,0x7C,0x7B,0x7D,0x80,0x84,0x88,0x86,0x82,0x81,0x82,0x82,0x80,0x7F,0x7D, -0x7B,0x7F,0x83,0x85,0x88,0x87,0x86,0x80,0x7B,0x79,0x76,0x7A,0x7F,0x81,0x82,0x82, -0x86,0x86,0x86,0x86,0x82,0x7F,0x7E,0x7A,0x77,0x79,0x7F,0x83,0x85,0x8A,0x83,0x7C, -0x7B,0x79,0x74,0x71,0x70,0x6F,0x73,0x7C,0x83,0x89,0x8D,0x89,0x84,0x7E,0x79,0x7C, -0x7F,0x81,0x80,0x7D,0x7C,0x79,0x76,0x74,0x73,0x76,0x76,0x7B,0x83,0x82,0x7E,0x7F, -0x84,0x89,0x8E,0x8C,0x82,0x7B,0x7A,0x7A,0x7D,0x7E,0x7F,0x80,0x80,0x7F,0x7F,0x81, -0x81,0x7D,0x7B,0x7A,0x7A,0x7D,0x7E,0x80,0x81,0x80,0x83,0x86,0x83,0x85,0x88,0x88, -0x84,0x82,0x81,0x7E,0x7D,0x7E,0x7F,0x81,0x89,0x8A,0x84,0x80,0x7E,0x80,0x83,0x82, -0x82,0x82,0x81,0x81,0x82,0x87,0x87,0x80,0x7B,0x7D,0x83,0x83,0x7F,0x7D,0x7E,0x80, -0x86,0x88,0x83,0x81,0x7F,0x7B,0x78,0x78,0x78,0x77,0x7B,0x81,0x87,0x89,0x8A,0x8A, -0x86,0x84,0x80,0x80,0x86,0x86,0x84,0x82,0x85,0x88,0x84,0x80,0x7E,0x7D,0x7A,0x78, -0x76,0x78,0x7C,0x7F,0x81,0x80,0x80,0x80,0x81,0x80,0x7E,0x7D,0x7F,0x83,0x86,0x86, -0x87,0x83,0x81,0x80,0x7D,0x79,0x76,0x78,0x7A,0x7C,0x7F,0x82,0x83,0x84,0x84,0x86, -0x87,0x87,0x84,0x80,0x7E,0x7F,0x82,0x83,0x81,0x7E,0x80,0x81,0x81,0x82,0x82,0x7D, -0x79,0x78,0x77,0x75,0x75,0x74,0x77,0x7B,0x80,0x81,0x82,0x83,0x84,0x85,0x83,0x80, -0x80,0x7F,0x7C,0x7C,0x7C,0x7D,0x80,0x87,0x8A,0x86,0x82,0x82,0x84,0x83,0x7C,0x78, -0x79,0x79,0x79,0x7C,0x81,0x82,0x83,0x83,0x7F,0x7C,0x7A,0x76,0x72,0x71,0x74,0x77, -0x78,0x7A,0x7B,0x7A,0x7D,0x82,0x89,0x8E,0x8D,0x8B,0x89,0x88,0x89,0x8A,0x89,0x85, -0x81,0x7E,0x80,0x81,0x7F,0x7F,0x82,0x82,0x80,0x7C,0x76,0x78,0x7D,0x7D,0x7B,0x79, -0x7D,0x82,0x89,0x8C,0x8B,0x8B,0x8B,0x89,0x85,0x83,0x82,0x81,0x81,0x82,0x7E,0x80, -0x84,0x84,0x83,0x81,0x84,0x89,0x8C,0x8C,0x84,0x81,0x7D,0x78,0x76,0x77,0x79,0x7E, -0x85,0x89,0x88,0x8B,0x8A,0x86,0x82,0x7F,0x7E,0x7E,0x7E,0x80,0x7D,0x7C,0x7E,0x82, -0x83,0x83,0x84,0x81,0x79,0x76,0x77,0x7B,0x82,0x85,0x87,0x87,0x88,0x86,0x81,0x83, -0x82,0x7D,0x7D,0x79,0x76,0x76,0x79,0x75,0x74,0x75,0x74,0x7B,0x79,0x77,0x77,0x74, -0x7B,0x83,0x7F,0x7A,0x7D,0x85,0x84,0x80,0x81,0x7D,0x80,0x85,0x81,0x7E,0x7E,0x80, -0x80,0x7F,0x83,0x84,0x85,0x87,0x86,0x84,0x85,0x88,0x82,0x7F,0x7E,0x7E,0x7C,0x7D, -0x7D,0x79,0x7A,0x7F,0x80,0x7E,0x7A,0x7A,0x7B,0x7C,0x79,0x76,0x79,0x7B,0x7B,0x78, -0x7E,0x82,0x81,0x85,0x89,0x8B,0x88,0x85,0x81,0x7D,0x80,0x84,0x83,0x84,0x89,0x8A, -0x89,0x89,0x86,0x83,0x83,0x85,0x80,0x80,0x7E,0x7A,0x84,0x89,0x86,0x81,0x7F,0x80, -0x7E,0x7E,0x7C,0x79,0x7E,0x78,0x78,0x80,0x7F,0x87,0x84,0x80,0x7A,0x79,0x82,0x7D, -0x83,0x82,0x74,0x81,0x82,0x87,0x8B,0x8C,0x8E,0x8A,0x8B,0x84,0x7A,0x80,0x82,0x81, -0x87,0x82,0x82,0x80,0x7C,0x7B,0x77,0x7A,0x7B,0x7D,0x81,0x77,0x7C,0x80,0x7B,0x85, -0x86,0x89,0x8B,0x89,0x8A,0x81,0x84,0x83,0x78,0x83,0x7B,0x7A,0x83,0x7D,0x7B,0x79, -0x7F,0x85,0x83,0x8A,0x84,0x7D,0x87,0x7F,0x7C,0x79,0x75,0x79,0x7A,0x82,0x81,0x7F, -0x85,0x7B,0x7C,0x7E,0x7D,0x80,0x7A,0x79,0x79,0x7C,0x84,0x82,0x86,0x84,0x7F,0x80, -0x81,0x85,0x87,0x80,0x7B,0x75,0x74,0x76,0x76,0x7A,0x7A,0x7D,0x84,0x86,0x88,0x84, -0x7E,0x7A,0x7A,0x7C,0x7A,0x7D,0x7F,0x7D,0x7E,0x7F,0x83,0x87,0x87,0x82,0x7E,0x7E, -0x7D,0x7B,0x7D,0x7C,0x7C,0x7D,0x7C,0x7B,0x7A,0x7D,0x7D,0x7F,0x83,0x84,0x84,0x85, -0x83,0x82,0x7E,0x7D,0x7F,0x83,0x84,0x83,0x83,0x81,0x80,0x84,0x88,0x89,0x86,0x84, -0x82,0x7E,0x7B,0x7A,0x7C,0x80,0x85,0x89,0x88,0x86,0x87,0x87,0x84,0x82,0x7F,0x82, -0x83,0x82,0x83,0x82,0x82,0x82,0x82,0x82,0x80,0x81,0x82,0x81,0x7F,0x7E,0x7F,0x7F, -0x81,0x82,0x80,0x80,0x81,0x82,0x83,0x82,0x7F,0x80,0x84,0x88,0x87,0x84,0x84,0x81, -0x80,0x7E,0x7A,0x7B,0x7C,0x7E,0x80,0x82,0x83,0x7F,0x80,0x80,0x7C,0x79,0x77,0x76, -0x76,0x79,0x7F,0x7F,0x81,0x83,0x80,0x82,0x81,0x7E,0x7E,0x7B,0x7C,0x7D,0x80,0x84, -0x85,0x89,0x8A,0x86,0x84,0x81,0x7F,0x7B,0x79,0x7B,0x79,0x78,0x7A,0x7D,0x81,0x83, -0x83,0x80,0x7E,0x7F,0x7D,0x78,0x76,0x73,0x75,0x79,0x83,0x88,0x83,0x7E,0x7A,0x7C, -0x7F,0x7D,0x7D,0x7C,0x7E,0x7F,0x7F,0x86,0x87,0x84,0x7F,0x7E,0x86,0x89,0x88,0x87, -0x85,0x85,0x80,0x81,0x84,0x85,0x87,0x86,0x81,0x7F,0x7D,0x7B,0x7A,0x7A,0x7A,0x7A, -0x7B,0x7C,0x7A,0x79,0x79,0x7B,0x7F,0x82,0x81,0x84,0x89,0x87,0x83,0x81,0x81,0x80, -0x7C,0x7B,0x7C,0x7E,0x7F,0x83,0x84,0x84,0x88,0x8C,0x8A,0x87,0x88,0x87,0x84,0x80, -0x7A,0x7B,0x80,0x80,0x7E,0x7F,0x82,0x84,0x83,0x80,0x7A,0x7A,0x7E,0x7E,0x7D,0x7A, -0x7D,0x82,0x87,0x89,0x88,0x87,0x85,0x82,0x80,0x7F,0x80,0x80,0x7D,0x7B,0x7D,0x82, -0x86,0x87,0x88,0x87,0x85,0x83,0x83,0x84,0x85,0x87,0x86,0x81,0x7E,0x7B,0x7A,0x7B, -0x7B,0x7B,0x7E,0x7F,0x7B,0x74,0x74,0x7B,0x80,0x80,0x7D,0x7A,0x7C,0x81,0x82,0x7F, -0x80,0x80,0x80,0x81,0x83,0x84,0x83,0x80,0x7E,0x7C,0x7C,0x7E,0x81,0x83,0x85,0x87, -0x88,0x83,0x7D,0x77,0x76,0x7A,0x7D,0x7D,0x7C,0x7F,0x82,0x7F,0x7B,0x77,0x79,0x7A, -0x79,0x79,0x7A,0x7B,0x7A,0x7A,0x7C,0x7D,0x7C,0x7B,0x7B,0x7C,0x7C,0x7C,0x7D,0x7E, -0x82,0x87,0x8A,0x89,0x85,0x82,0x81,0x82,0x82,0x7F,0x7E,0x85,0x8A,0x88,0x85,0x87, -0x87,0x84,0x80,0x80,0x82,0x86,0x85,0x7E,0x78,0x77,0x7B,0x80,0x80,0x7D,0x7F,0x84, -0x86,0x88,0x84,0x7E,0x80,0x82,0x81,0x7F,0x81,0x83,0x82,0x81,0x81,0x81,0x88,0x86, -0x7E,0x79,0x7A,0x7D,0x7E,0x85,0x88,0x86,0x86,0x83,0x7F,0x83,0x82,0x89,0x86,0x83, -0x87,0x83,0x86,0x83,0x82,0x80,0x7C,0x81,0x7E,0x7A,0x82,0x82,0x7F,0x7B,0x78,0x79, -0x7F,0x7F,0x80,0x7C,0x83,0x87,0x84,0x86,0x7E,0x80,0x81,0x7B,0x7D,0x79,0x7F,0x83, -0x80,0x7E,0x76,0x7F,0x7C,0x7A,0x7F,0x79,0x7E,0x83,0x84,0x84,0x82,0x86,0x84,0x83, -0x85,0x83,0x83,0x88,0x82,0x78,0x7A,0x78,0x7F,0x7A,0x7E,0x7F,0x7D,0x83,0x7E,0x84, -0x80,0x80,0x7E,0x72,0x72,0x78,0x7A,0x7D,0x7F,0x83,0x84,0x89,0x89,0x86,0x83,0x84, -0x80,0x80,0x7F,0x79,0x79,0x7F,0x81,0x7F,0x80,0x87,0x82,0x82,0x7F,0x7D,0x7B,0x7B, -0x78,0x74,0x7A,0x81,0x81,0x83,0x7F,0x7F,0x7E,0x7E,0x7B,0x78,0x7B,0x7C,0x7C,0x78, -0x77,0x7C,0x81,0x8B,0x89,0x8E,0x8A,0x8A,0x8C,0x83,0x81,0x81,0x87,0x87,0x84,0x85, -0x82,0x81,0x80,0x7D,0x78,0x7A,0x78,0x74,0x7B,0x7D,0x81,0x84,0x82,0x80,0x7A,0x7E, -0x80,0x83,0x83,0x82,0x82,0x80,0x7E,0x7C,0x7C,0x7B,0x7C,0x80,0x81,0x86,0x8B,0x84, -0x83,0x86,0x85,0x83,0x84,0x84,0x87,0x8A,0x8A,0x86,0x88,0x8E,0x8D,0x8D,0x8D,0x83, -0x7E,0x7D,0x7A,0x78,0x73,0x72,0x77,0x7B,0x7C,0x7A,0x7C,0x7E,0x7F,0x83,0x84,0x83, -0x83,0x82,0x81,0x82,0x81,0x7E,0x7E,0x82,0x84,0x88,0x89,0x89,0x8A,0x87,0x82,0x7C, -0x78,0x78,0x76,0x75,0x75,0x76,0x7A,0x7D,0x80,0x83,0x85,0x85,0x82,0x7B,0x78,0x77, -0x78,0x7A,0x7C,0x7F,0x7D,0x7A,0x7A,0x78,0x79,0x7C,0x7E,0x7F,0x81,0x84,0x86,0x87, -0x86,0x81,0x80,0x7E,0x7D,0x80,0x82,0x83,0x80,0x7D,0x7A,0x77,0x79,0x79,0x78,0x7C, -0x7E,0x7E,0x7D,0x7B,0x7D,0x7F,0x83,0x85,0x82,0x83,0x82,0x81,0x7F,0x7C,0x82,0x89, -0x8A,0x85,0x82,0x82,0x85,0x8A,0x88,0x81,0x7B,0x7A,0x7A,0x7B,0x78,0x7A,0x7F,0x84, -0x86,0x85,0x85,0x84,0x83,0x82,0x7F,0x7D,0x7F,0x80,0x81,0x84,0x83,0x81,0x7F,0x80, -0x88,0x89,0x87,0x84,0x85,0x86,0x88,0x88,0x84,0x80,0x81,0x83,0x88,0x82,0x7F,0x81, -0x81,0x7E,0x76,0x76,0x78,0x7B,0x81,0x7F,0x80,0x83,0x85,0x82,0x81,0x80,0x7D,0x7D, -0x79,0x7C,0x81,0x83,0x82,0x7C,0x7D,0x7D,0x7E,0x83,0x82,0x7E,0x7D,0x7A,0x7F,0x82, -0x86,0x89,0x8A,0x88,0x82,0x83,0x83,0x81,0x80,0x7F,0x82,0x80,0x7D,0x7E,0x78,0x7B, -0x7B,0x7A,0x80,0x81,0x84,0x84,0x80,0x7F,0x7B,0x7D,0x7F,0x7D,0x7B,0x7D,0x7F,0x83, -0x81,0x7E,0x81,0x82,0x83,0x80,0x7C,0x7B,0x7D,0x82,0x7F,0x7C,0x7E,0x81,0x86,0x85, -0x86,0x85,0x82,0x82,0x7E,0x7C,0x7C,0x7D,0x7F,0x7B,0x75,0x76,0x7A,0x7D,0x7F,0x7F, -0x80,0x7E,0x7B,0x7C,0x7D,0x81,0x81,0x81,0x82,0x80,0x81,0x81,0x84,0x83,0x82,0x81, -0x7E,0x7F,0x81,0x82,0x82,0x80,0x7E,0x7D,0x7E,0x80,0x80,0x7F,0x7E,0x7C,0x7B,0x7B, -0x7B,0x7B,0x79,0x7C,0x80,0x80,0x82,0x81,0x7E,0x79,0x79,0x7D,0x7D,0x7F,0x7F,0x81, -0x87,0x8B,0x8A,0x86,0x83,0x84,0x8A,0x8E,0x8D,0x89,0x89,0x89,0x88,0x87,0x86,0x83, -0x83,0x84,0x86,0x84,0x80,0x80,0x81,0x80,0x81,0x82,0x7F,0x78,0x73,0x72,0x6E,0x72, -0x79,0x7F,0x84,0x86,0x85,0x83,0x83,0x88,0x88,0x89,0x85,0x7E,0x7D,0x7E,0x81,0x81, -0x84,0x88,0x87,0x85,0x84,0x84,0x84,0x81,0x7B,0x7A,0x7D,0x85,0x88,0x85,0x85,0x82, -0x84,0x84,0x82,0x83,0x80,0x7F,0x7F,0x7B,0x75,0x70,0x70,0x72,0x78,0x7E,0x7E,0x80, -0x82,0x7F,0x7C,0x7B,0x7C,0x7B,0x7D,0x7B,0x79,0x79,0x7A,0x79,0x7D,0x81,0x82,0x83, -0x83,0x85,0x83,0x80,0x7F,0x7F,0x85,0x83,0x80,0x7E,0x7A,0x80,0x83,0x85,0x84,0x7D, -0x7B,0x7A,0x80,0x7F,0x7E,0x7D,0x7B,0x7D,0x79,0x80,0x85,0x86,0x83,0x7C,0x7C,0x76, -0x78,0x7B,0x7C,0x7D,0x7B,0x84,0x83,0x88,0x8C,0x8B,0x88,0x85,0x83,0x80,0x7E,0x7E, -0x7C,0x7C,0x7F,0x83,0x83,0x8A,0x8A,0x8B,0x8C,0x88,0x84,0x79,0x77,0x74,0x74,0x7A, -0x7B,0x7D,0x80,0x81,0x81,0x80,0x7E,0x7F,0x83,0x82,0x81,0x81,0x80,0x82,0x83,0x85, -0x84,0x89,0x85,0x89,0x87,0x82,0x81,0x7E,0x83,0x82,0x81,0x82,0x7B,0x7F,0x82,0x81, -0x87,0x85,0x85,0x88,0x8B,0x89,0x86,0x7F,0x78,0x78,0x7A,0x7B,0x7A,0x7C,0x7D,0x7C, -0x7B,0x77,0x7B,0x80,0x80,0x7C,0x7A,0x7A,0x7A,0x81,0x85,0x80,0x81,0x82,0x86,0x8A, -0x88,0x88,0x85,0x80,0x80,0x7E,0x7E,0x7D,0x7C,0x7F,0x83,0x88,0x8C,0x8E,0x8B,0x84, -0x7E,0x7B,0x7C,0x7C,0x7C,0x7B,0x78,0x78,0x79,0x79,0x79,0x7A,0x7A,0x77,0x74,0x74, -0x76,0x78,0x7D,0x81,0x81,0x82,0x82,0x82,0x83,0x81,0x80,0x81,0x84,0x86,0x87,0x89, -0x88,0x83,0x7D,0x76,0x7A,0x7F,0x80,0x7F,0x7E,0x7E,0x80,0x83,0x84,0x81,0x82,0x80, -0x7A,0x77,0x76,0x73,0x72,0x74,0x78,0x7D,0x81,0x83,0x84,0x85,0x81,0x7E,0x7C,0x7D, -0x7F,0x7E,0x7E,0x80,0x82,0x86,0x8B,0x8F,0x8E,0x89,0x84,0x81,0x80,0x80,0x7B,0x7A, -0x7E,0x82,0x84,0x84,0x88,0x89,0x87,0x82,0x7A,0x75,0x75,0x78,0x7C,0x7D,0x7B,0x7D, -0x81,0x86,0x85,0x83,0x84,0x81,0x82,0x83,0x84,0x8A,0x8E,0x91,0x90,0x90,0x8C,0x87, -0x85,0x82,0x7D,0x7C,0x78,0x78,0x7B,0x80,0x86,0x87,0x86,0x82,0x82,0x82,0x7F,0x7F, -0x7A,0x79,0x7A,0x7C,0x7C,0x7B,0x80,0x7D,0x7B,0x7B,0x77,0x7A,0x7B,0x7E,0x83,0x85, -0x87,0x88,0x87,0x83,0x7E,0x7E,0x82,0x81,0x80,0x7E,0x7F,0x81,0x80,0x7D,0x7C,0x7E, -0x81,0x7F,0x7B,0x78,0x7A,0x7E,0x7D,0x7F,0x81,0x83,0x86,0x83,0x82,0x7E,0x7D,0x7D, -0x79,0x75,0x75,0x78,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x80,0x7A,0x7C,0x7D,0x82,0x81, -0x80,0x80,0x7F,0x83,0x84,0x84,0x83,0x7F,0x7E,0x7D,0x7F,0x7E,0x7B,0x7C,0x7B,0x7C, -0x7E,0x7F,0x80,0x80,0x80,0x82,0x83,0x83,0x84,0x85,0x88,0x89,0x87,0x85,0x81,0x7F, -0x7D,0x7A,0x7B,0x7B,0x7A,0x7A,0x7C,0x80,0x81,0x83,0x84,0x85,0x83,0x83,0x84,0x83, -0x7F,0x7E,0x80,0x81,0x82,0x81,0x82,0x82,0x7F,0x7B,0x79,0x7A,0x7C,0x7D,0x80,0x82, -0x85,0x87,0x88,0x89,0x89,0x87,0x83,0x80,0x83,0x85,0x84,0x81,0x7E,0x7D,0x7D,0x7F, -0x81,0x80,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x7F,0x7F,0x7C,0x7C,0x80,0x80,0x7E, -0x7F,0x81,0x81,0x85,0x85,0x81,0x81,0x7E,0x7E,0x80,0x83,0x84,0x82,0x85,0x89,0x86, -0x88,0x88,0x85,0x83,0x80,0x7F,0x82,0x82,0x83,0x80,0x7A,0x78,0x79,0x7F,0x7D,0x7B, -0x7D,0x79,0x79,0x75,0x73,0x73,0x78,0x7F,0x7F,0x83,0x84,0x81,0x82,0x80,0x7F,0x80, -0x7F,0x82,0x84,0x83,0x85,0x83,0x82,0x82,0x7F,0x7E,0x7D,0x80,0x81,0x81,0x7F,0x7F, -0x81,0x83,0x83,0x7F,0x7A,0x78,0x76,0x74,0x74,0x73,0x75,0x76,0x79,0x7C,0x7C,0x7B, -0x7D,0x80,0x82,0x81,0x7E,0x7F,0x81,0x82,0x83,0x82,0x86,0x85,0x86,0x86,0x82,0x82, -0x7F,0x82,0x85,0x87,0x87,0x85,0x89,0x87,0x84,0x7E,0x7D,0x7F,0x7C,0x7C,0x7A,0x7C, -0x7E,0x7D,0x7F,0x7F,0x81,0x84,0x85,0x86,0x84,0x84,0x7F,0x7E,0x81,0x84,0x88,0x87, -0x86,0x83,0x82,0x81,0x80,0x7F,0x7B,0x7D,0x7F,0x80,0x82,0x84,0x86,0x87,0x89,0x8A, -0x86,0x86,0x84,0x85,0x83,0x84,0x83,0x81,0x80,0x7B,0x79,0x7B,0x7A,0x79,0x76,0x77, -0x7C,0x7D,0x80,0x80,0x82,0x87,0x87,0x85,0x81,0x7F,0x83,0x82,0x81,0x82,0x80,0x80, -0x80,0x7D,0x7B,0x7D,0x80,0x84,0x83,0x81,0x80,0x82,0x85,0x83,0x80,0x81,0x80,0x7E, -0x7B,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x77,0x7C,0x7E,0x7F,0x7D,0x7E,0x80,0x81, -0x81,0x82,0x84,0x86,0x84,0x84,0x85,0x86,0x86,0x84,0x82,0x80,0x7E,0x7C,0x7B,0x7E, -0x7F,0x7E,0x7E,0x7F,0x81,0x83,0x84,0x82,0x7F,0x7C,0x7B,0x7E,0x82,0x83,0x83,0x82, -0x7F,0x7A,0x77,0x79,0x7E,0x81,0x80,0x7E,0x7F,0x7F,0x7D,0x7B,0x7B,0x7F,0x82,0x82, -0x81,0x80,0x7F,0x7B,0x7B,0x7F,0x82,0x85,0x87,0x89,0x8A,0x89,0x87,0x86,0x86,0x81, -0x7C,0x7D,0x7D,0x7D,0x7C,0x79,0x79,0x7A,0x80,0x87,0x88,0x87,0x85,0x84,0x80,0x7D, -0x7A,0x79,0x7D,0x82,0x84,0x81,0x7F,0x82,0x85,0x89,0x87,0x81,0x7D,0x78,0x77,0x78, -0x7B,0x7F,0x82,0x87,0x86,0x86,0x88,0x88,0x85,0x7E,0x7C,0x7E,0x84,0x85,0x85,0x87, -0x85,0x84,0x81,0x7F,0x7C,0x7D,0x82,0x82,0x82,0x82,0x82,0x83,0x85,0x82,0x80,0x7F, -0x7E,0x80,0x81,0x80,0x7D,0x7A,0x7A,0x7D,0x84,0x88,0x87,0x84,0x81,0x80,0x80,0x7F, -0x7B,0x7A,0x7B,0x7B,0x7D,0x7E,0x7E,0x7F,0x80,0x81,0x84,0x82,0x7F,0x7F,0x7F,0x7D, -0x7D,0x7F,0x82,0x84,0x85,0x86,0x83,0x7E,0x78,0x74,0x73,0x72,0x73,0x76,0x79,0x7C, -0x80,0x81,0x7E,0x7D,0x7E,0x81,0x83,0x83,0x80,0x7C,0x7A,0x7B,0x7E,0x83,0x85,0x86, -0x85,0x83,0x7E,0x7A,0x78,0x7A,0x7F,0x82,0x83,0x7F,0x7D,0x7B,0x7A,0x7A,0x7B,0x7E, -0x7F,0x7F,0x81,0x80,0x7F,0x80,0x82,0x85,0x87,0x87,0x85,0x82,0x80,0x7F,0x80,0x82, -0x84,0x85,0x88,0x88,0x85,0x86,0x86,0x84,0x80,0x7C,0x7D,0x80,0x81,0x80,0x7E,0x7E, -0x7F,0x80,0x81,0x81,0x7F,0x80,0x80,0x7D,0x7D,0x7E,0x83,0x86,0x83,0x81,0x7E,0x81, -0x85,0x84,0x84,0x88,0x88,0x8C,0x8B,0x89,0x87,0x86,0x86,0x83,0x7F,0x7C,0x7A,0x78, -0x78,0x79,0x7C,0x7E,0x81,0x80,0x7E,0x7B,0x7E,0x81,0x7F,0x7F,0x80,0x81,0x82,0x82, -0x80,0x80,0x7D,0x80,0x80,0x7E,0x7B,0x7A,0x7A,0x7C,0x7C,0x81,0x85,0x87,0x88,0x8A, -0x89,0x88,0x82,0x7F,0x81,0x81,0x82,0x7E,0x7B,0x7B,0x7A,0x79,0x79,0x78,0x7A,0x7B, -0x7D,0x7D,0x79,0x78,0x7D,0x83,0x86,0x85,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x81, -0x7E,0x7B,0x7A,0x7A,0x7A,0x7B,0x7E,0x81,0x82,0x82,0x80,0x7D,0x7A,0x7A,0x7B,0x7D, -0x7E,0x7E,0x80,0x82,0x85,0x85,0x82,0x81,0x7D,0x7A,0x78,0x79,0x7D,0x81,0x84,0x85, -0x85,0x85,0x85,0x85,0x83,0x7F,0x7C,0x7C,0x81,0x86,0x87,0x85,0x82,0x82,0x80,0x7F, -0x7D,0x7A,0x7B,0x7E,0x80,0x7D,0x7B,0x7C,0x7C,0x7D,0x7B,0x7A,0x7C,0x7E,0x7E,0x7B, -0x7B,0x7E,0x82,0x84,0x82,0x80,0x81,0x83,0x84,0x84,0x83,0x82,0x83,0x84,0x84,0x83, -0x85,0x8A,0x8E,0x8E,0x89,0x85,0x84,0x83,0x83,0x82,0x81,0x80,0x80,0x7F,0x80,0x82, -0x82,0x7F,0x7D,0x7C,0x7D,0x7E,0x7D,0x7B,0x7B,0x7C,0x7F,0x80,0x81,0x82,0x84,0x83, -0x81,0x7E,0x7D,0x81,0x86,0x87,0x86,0x87,0x86,0x86,0x84,0x84,0x84,0x85,0x85,0x83, -0x81,0x7F,0x7A,0x77,0x78,0x7D,0x84,0x87,0x85,0x82,0x80,0x80,0x7F,0x7B,0x77,0x76, -0x7A,0x7C,0x7B,0x77,0x76,0x79,0x7B,0x7C,0x7B,0x7B,0x7E,0x7E,0x7E,0x7E,0x7E,0x7F, -0x7F,0x7F,0x7E,0x7E,0x82,0x86,0x86,0x86,0x85,0x83,0x80,0x7F,0x7F,0x7C,0x77,0x73, -0x75,0x7B,0x82,0x86,0x87,0x84,0x80,0x7D,0x7C,0x7C,0x7A,0x78,0x76,0x78,0x7A,0x7B, -0x7E,0x81,0x81,0x7F,0x7E,0x7F,0x81,0x82,0x82,0x83,0x86,0x87,0x87,0x86,0x84,0x82, -0x83,0x85,0x84,0x81,0x80,0x82,0x83,0x84,0x84,0x83,0x84,0x83,0x81,0x7E,0x7D,0x7E, -0x7F,0x80,0x80,0x7F,0x7F,0x7E,0x7F,0x7F,0x7F,0x81,0x81,0x80,0x7F,0x80,0x82,0x83, -0x83,0x82,0x81,0x81,0x82,0x82,0x81,0x82,0x82,0x82,0x81,0x81,0x83,0x86,0x89,0x89, -0x87,0x84,0x81,0x80,0x81,0x83,0x83,0x80,0x7F,0x80,0x81,0x81,0x7F,0x7E,0x7D,0x7F, -0x81,0x81,0x7E,0x7B,0x79,0x79,0x7B,0x7C,0x7E,0x7E,0x7C,0x7A,0x79,0x7A,0x7C,0x7E, -0x7E,0x7E,0x82,0x86,0x89,0x88,0x88,0x87,0x87,0x89,0x89,0x8A,0x89,0x85,0x84,0x83, -0x82,0x7F,0x7C,0x7A,0x79,0x78,0x77,0x76,0x77,0x79,0x7B,0x7C,0x7D,0x7F,0x7F,0x79, -0x74,0x73,0x75,0x79,0x7E,0x82,0x85,0x86,0x87,0x87,0x88,0x86,0x84,0x82,0x81,0x80, -0x7E,0x7E,0x81,0x84,0x85,0x84,0x83,0x83,0x84,0x81,0x7C,0x78,0x77,0x77,0x76,0x77, -0x78,0x77,0x77,0x79,0x7D,0x7E,0x7D,0x7D,0x7E,0x81,0x83,0x81,0x7F,0x80,0x80,0x7F, -0x7E,0x7E,0x80,0x83,0x85,0x85,0x84,0x81,0x7F,0x7E,0x7F,0x82,0x86,0x89,0x89,0x85, -0x80,0x7E,0x7E,0x7E,0x7D,0x7F,0x84,0x88,0x88,0x87,0x84,0x81,0x81,0x83,0x84,0x82, -0x7E,0x7B,0x7A,0x7B,0x7D,0x81,0x83,0x82,0x82,0x81,0x7F,0x7D,0x7D,0x7F,0x82,0x85, -0x86,0x86,0x86,0x83,0x81,0x82,0x85,0x89,0x8A,0x8B,0x8A,0x8A,0x87,0x81,0x7F,0x7F, -0x80,0x80,0x7F,0x80,0x82,0x82,0x83,0x84,0x83,0x80,0x7E,0x80,0x80,0x7E,0x7A,0x79, -0x7A,0x7B,0x7B,0x78,0x76,0x76,0x76,0x77,0x78,0x7A,0x7D,0x81,0x85,0x89,0x8B,0x8B, -0x89,0x87,0x84,0x81,0x7E,0x7B,0x79,0x7A,0x7D,0x80,0x82,0x82,0x81,0x80,0x7F,0x7D, -0x7A,0x7A,0x78,0x76,0x75,0x77,0x7B,0x7E,0x7E,0x7E,0x7F,0x80,0x7F,0x7B,0x78,0x77, -0x78,0x7D,0x81,0x81,0x80,0x81,0x82,0x82,0x83,0x87,0x8A,0x8B,0x8A,0x86,0x81,0x7F, -0x7F,0x7E,0x7B,0x78,0x78,0x7B,0x7F,0x80,0x7F,0x7F,0x7E,0x7F,0x82,0x83,0x82,0x83, -0x83,0x80,0x80,0x82,0x84,0x80,0x7B,0x7B,0x7F,0x83,0x83,0x82,0x82,0x82,0x81,0x81, -0x81,0x80,0x7F,0x7C,0x78,0x79,0x7D,0x81,0x85,0x88,0x88,0x86,0x85,0x84,0x86,0x87, -0x86,0x85,0x83,0x83,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x7F,0x7A,0x78,0x79,0x7A, -0x7B,0x7D,0x81,0x85,0x89,0x89,0x85,0x80,0x7D,0x79,0x78,0x77,0x76,0x77,0x79,0x7B, -0x7D,0x80,0x82,0x85,0x87,0x88,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x85,0x87,0x85, -0x81,0x81,0x81,0x81,0x81,0x7F,0x7D,0x7C,0x7E,0x7F,0x80,0x81,0x81,0x7F,0x7D,0x7D, -0x80,0x80,0x80,0x7F,0x7E,0x7A,0x76,0x75,0x79,0x7B,0x79,0x79,0x7C,0x81,0x85,0x86, -0x84,0x81,0x80,0x81,0x82,0x81,0x7F,0x7D,0x7D,0x7F,0x80,0x7F,0x80,0x80,0x81,0x80, -0x7F,0x7F,0x80,0x7F,0x7C,0x7C,0x7D,0x7E,0x7E,0x7E,0x7F,0x7F,0x7F,0x7C,0x7A,0x79, -0x78,0x77,0x76,0x77,0x77,0x7A,0x7D,0x81,0x85,0x84,0x84,0x83,0x82,0x85,0x86,0x84, -0x80,0x7F,0x82,0x86,0x89,0x89,0x86,0x83,0x80,0x7C,0x79,0x78,0x7A,0x7F,0x80,0x7F, -0x7E,0x7E,0x7E,0x7D,0x7C,0x7B,0x7B,0x7C,0x7E,0x7F,0x7F,0x80,0x83,0x85,0x84,0x84, -0x86,0x86,0x84,0x84,0x86,0x8A,0x8B,0x8A,0x8A,0x8A,0x8A,0x8C,0x8C,0x8A,0x87,0x83, -0x80,0x80,0x82,0x84,0x84,0x84,0x83,0x81,0x80,0x7D,0x7B,0x79,0x78,0x76,0x78,0x78, -0x77,0x78,0x7C,0x7F,0x80,0x82,0x81,0x80,0x7C,0x7A,0x7C,0x7F,0x82,0x83,0x85,0x88, -0x8B,0x8D,0x8C,0x8B,0x88,0x85,0x84,0x82,0x81,0x7E,0x7D,0x7C,0x7C,0x7E,0x7E,0x7E, -0x7E,0x7F,0x7F,0x7E,0x7A,0x76,0x75,0x76,0x77,0x78,0x7A,0x7C,0x7B,0x78,0x76,0x78, -0x7B,0x7E,0x7D,0x7D,0x7E,0x7F,0x80,0x83,0x85,0x85,0x83,0x82,0x82,0x84,0x85,0x86, -0x86,0x83,0x7E,0x79,0x77,0x79,0x79,0x79,0x7A,0x7D,0x80,0x80,0x80,0x82,0x82,0x83, -0x83,0x82,0x81,0x81,0x81,0x81,0x82,0x85,0x87,0x85,0x82,0x7E,0x7B,0x7A,0x7C,0x7D, -0x7A,0x78,0x79,0x7D,0x7F,0x7E,0x7F,0x81,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x84, -0x83,0x83,0x84,0x85,0x86,0x86,0x83,0x7F,0x7E,0x80,0x81,0x81,0x80,0x7E,0x7D,0x7E, -0x82,0x85,0x86,0x88,0x88,0x86,0x81,0x7C,0x7B,0x7C,0x7D,0x7B,0x7A,0x7C,0x7E,0x7E, -0x7C,0x79,0x78,0x7A,0x80,0x84,0x85,0x84,0x85,0x87,0x8A,0x8D,0x8E,0x8B,0x87,0x83, -0x80,0x7F,0x80,0x7E,0x7C,0x7B,0x7C,0x7E,0x80,0x81,0x82,0x81,0x7F,0x7D,0x7D,0x7E, -0x7F,0x7F,0x7F,0x7F,0x7F,0x7E,0x7D,0x7E,0x81,0x83,0x84,0x85,0x85,0x85,0x85,0x83, -0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x82,0x82,0x81,0x7F,0x7F,0x7F,0x7F,0x7F,0x7B, -0x79,0x79,0x7C,0x7E,0x7D,0x7C,0x7C,0x7B,0x79,0x77,0x77,0x77,0x78,0x7A,0x7D,0x80, -0x83,0x86,0x86,0x85,0x81,0x80,0x81,0x85,0x87,0x84,0x7F,0x7D,0x7D,0x7E,0x7E,0x7E, -0x80,0x81,0x81,0x80,0x80,0x7F,0x7E,0x7C,0x7B,0x7A,0x79,0x7B,0x7B,0x7B,0x79,0x78, -0x7A,0x7E,0x82,0x82,0x81,0x7F,0x7C,0x7A,0x79,0x7B,0x7D,0x80,0x83,0x85,0x87,0x88, -0x88,0x87,0x88,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x83,0x81,0x80,0x81, -0x83,0x83,0x85,0x85,0x84,0x80,0x7D,0x7A,0x77,0x74,0x76,0x7A,0x7F,0x83,0x84,0x84, -0x84,0x85,0x84,0x80,0x7C,0x7A,0x7B,0x7E,0x82,0x87,0x8B,0x8D,0x8E,0x8D,0x8A,0x85, -0x81,0x7F,0x7D,0x7D,0x80,0x85,0x88,0x89,0x88,0x87,0x85,0x83,0x82,0x80,0x7A,0x76, -0x74,0x73,0x74,0x76,0x78,0x7B,0x7E,0x7F,0x7F,0x7E,0x7F,0x7E,0x7C,0x7C,0x80,0x84, -0x85,0x82,0x80,0x80,0x84,0x88,0x8C,0x8C,0x88,0x84,0x82,0x82,0x80,0x7C,0x7B,0x7B, -0x7B,0x77,0x74,0x74,0x74,0x75,0x79,0x7D,0x81,0x82,0x80,0x7E,0x7E,0x80,0x80,0x7F, -0x7E,0x7C,0x7B,0x7E,0x83,0x87,0x87,0x84,0x82,0x81,0x82,0x83,0x82,0x7F,0x7C,0x7A, -0x7A,0x7E,0x82,0x84,0x84,0x84,0x83,0x81,0x7F,0x7E,0x7D,0x7C,0x7D,0x7C,0x7D,0x7E, -0x7E,0x7E,0x7E,0x7F,0x7F,0x7D,0x7B,0x79,0x79,0x7C,0x81,0x83,0x84,0x87,0x88,0x86, -0x84,0x83,0x81,0x80,0x7F,0x7F,0x80,0x82,0x82,0x81,0x80,0x7F,0x7E,0x7E,0x7E,0x82, -0x86,0x88,0x88,0x86,0x84,0x7F,0x7B,0x7A,0x79,0x78,0x78,0x7A,0x7C,0x7E,0x82,0x85, -0x87,0x85,0x81,0x7F,0x7C,0x7B,0x7C,0x7E,0x80,0x82,0x85,0x89,0x8E,0x91,0x8F,0x88, -0x84,0x81,0x81,0x81,0x7F,0x7F,0x80,0x82,0x84,0x85,0x85,0x82,0x80,0x7E,0x7D,0x7E, -0x7D,0x7C,0x7A,0x79,0x78,0x7A,0x7E,0x83,0x86,0x89,0x88,0x84,0x82,0x80,0x7F,0x7F, -0x80,0x83,0x86,0x87,0x86,0x85,0x84,0x82,0x80,0x7C,0x7A,0x79,0x7C,0x7F,0x81,0x80, -0x80,0x83,0x86,0x83,0x7F,0x7C,0x7A,0x78,0x77,0x77,0x79,0x7B,0x7E,0x7E,0x7A,0x76, -0x74,0x76,0x7C,0x82,0x85,0x86,0x88,0x89,0x89,0x88,0x85,0x80,0x7C,0x79,0x77,0x77, -0x79,0x7A,0x7B,0x7C,0x7F,0x81,0x82,0x81,0x7E,0x7B,0x79,0x7B,0x7D,0x7D,0x7C,0x7B, -0x7D,0x7F,0x80,0x82,0x82,0x80,0x7D,0x7C,0x7C,0x7E,0x80,0x82,0x82,0x81,0x80,0x80, -0x80,0x7F,0x7E,0x7F,0x81,0x82,0x82,0x83,0x86,0x89,0x8A,0x87,0x83,0x80,0x7D,0x7A, -0x79,0x7B,0x7E,0x80,0x83,0x87,0x8B,0x8A,0x85,0x7F,0x7E,0x7E,0x7F,0x81,0x82,0x84, -0x86,0x87,0x87,0x86,0x84,0x83,0x82,0x7F,0x7E,0x7F,0x81,0x81,0x7F,0x7E,0x7D,0x7F, -0x83,0x85,0x84,0x81,0x80,0x80,0x80,0x81,0x7F,0x7E,0x7F,0x82,0x82,0x80,0x81,0x84, -0x85,0x83,0x7F,0x7C,0x7C,0x7E,0x80,0x81,0x83,0x86,0x88,0x89,0x87,0x85,0x83,0x81, -0x7F,0x7D,0x7D,0x7D,0x7C,0x7C,0x7D,0x7B,0x7A,0x79,0x7B,0x7B,0x7C,0x7D,0x7C,0x79, -0x79,0x7B,0x80,0x82,0x83,0x83,0x84,0x86,0x85,0x82,0x80,0x81,0x81,0x80,0x80,0x81, -0x81,0x80,0x7F,0x7F,0x81,0x81,0x80,0x80,0x80,0x80,0x7F,0x80,0x7F,0x7E,0x7E,0x7D, -0x7C,0x79,0x78,0x79,0x7A,0x79,0x77,0x78,0x7C,0x80,0x7F,0x7D,0x7D,0x80,0x82,0x83, -0x83,0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x85,0x84,0x80, -0x7B,0x78,0x78,0x79,0x7A,0x7B,0x7C,0x7C,0x7D,0x7D,0x7B,0x7A,0x79,0x7A,0x7D,0x80, -0x81,0x81,0x82,0x85,0x88,0x89,0x88,0x86,0x85,0x83,0x82,0x81,0x7F,0x7D,0x7F,0x81, -0x82,0x84,0x85,0x86,0x86,0x84,0x82,0x84,0x86,0x86,0x84,0x81,0x7F,0x7F,0x7E,0x7D, -0x7D,0x7F,0x7F,0x80,0x80,0x7F,0x80,0x82,0x84,0x86,0x86,0x86,0x86,0x84,0x82,0x81, -0x81,0x83,0x84,0x84,0x84,0x83,0x83,0x85,0x85,0x83,0x81,0x80,0x81,0x82,0x82,0x82, -0x82,0x82,0x82,0x82,0x82,0x81,0x7F,0x7D,0x7C,0x7B,0x7A,0x7A,0x7B,0x7C,0x7D,0x7E, -0x7F,0x7F,0x7E,0x7B,0x79,0x79,0x7B,0x7C,0x7E,0x80,0x82,0x83,0x85,0x85,0x84,0x81, -0x7E,0x7F,0x80,0x7E,0x7A,0x79,0x7B,0x7D,0x7E,0x80,0x82,0x83,0x80,0x7E,0x7C,0x7A, -0x78,0x77,0x76,0x76,0x77,0x79,0x7C,0x7E,0x7E,0x7E,0x7F,0x80,0x81,0x81,0x7F,0x7D, -0x7C,0x7C,0x7C,0x7C,0x7D,0x7F,0x81,0x80,0x7F,0x81,0x84,0x89,0x8A,0x88,0x85,0x83, -0x82,0x80,0x7E,0x7C,0x7A,0x7A,0x7E,0x83,0x85,0x84,0x84,0x85,0x86,0x85,0x83,0x83, -0x83,0x82,0x7E,0x7C,0x7A,0x7A,0x7B,0x7D,0x7F,0x81,0x82,0x83,0x84,0x84,0x83,0x81, -0x80,0x80,0x80,0x82,0x86,0x89,0x88,0x83,0x80,0x7D,0x7D,0x7E,0x7E,0x7E,0x7F,0x80, -0x82,0x85,0x89,0x8B,0x8B,0x89,0x86,0x83,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x80, -0x7E,0x7C,0x7C,0x7D,0x7E,0x80,0x81,0x80,0x7E,0x7D,0x7B,0x7A,0x7C,0x7E,0x7F,0x80, -0x81,0x83,0x83,0x81,0x7F,0x7E,0x7F,0x80,0x81,0x83,0x83,0x84,0x84,0x83,0x82,0x7F, -0x7D,0x7B,0x7C,0x7E,0x81,0x83,0x83,0x81,0x82,0x85,0x84,0x81,0x7C,0x79,0x79,0x7A, -0x7D,0x7F,0x82,0x85,0x83,0x80,0x7E,0x7E,0x7D,0x7B,0x79,0x77,0x77,0x7B,0x80,0x83, -0x81,0x7F,0x80,0x82,0x84,0x83,0x81,0x81,0x81,0x7F,0x7C,0x7A,0x7A,0x7C,0x7E,0x7F, -0x7F,0x7F,0x7D,0x7A,0x78,0x76,0x74,0x76,0x7A,0x7D,0x80,0x83,0x85,0x84,0x81,0x80, -0x7F,0x7F,0x7F,0x7F,0x81,0x83,0x83,0x82,0x81,0x82,0x82,0x81,0x7F,0x81,0x84,0x83, -0x80,0x7F,0x82,0x85,0x86,0x86,0x85,0x80,0x7B,0x79,0x79,0x7B,0x7D,0x7E,0x7F,0x7D, -0x7B,0x7A,0x7D,0x82,0x84,0x84,0x85,0x85,0x86,0x85,0x83,0x83,0x85,0x86,0x87,0x88, -0x88,0x86,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x83,0x81,0x83,0x85,0x86,0x85,0x84, -0x82,0x80,0x7F,0x7F,0x7F,0x7E,0x7F,0x81,0x83,0x84,0x84,0x81,0x7E,0x7C,0x7B,0x7A, -0x7B,0x7F,0x82,0x83,0x81,0x7F,0x7F,0x81,0x82,0x81,0x7F,0x7F,0x80,0x81,0x82,0x81, -0x81,0x83,0x82,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7E,0x7E,0x7D,0x7C,0x7B,0x79,0x79, -0x7B,0x7D,0x7D,0x7B,0x7A,0x7C,0x7E,0x7F,0x7F,0x7D,0x7A,0x78,0x76,0x75,0x76,0x79, -0x7D,0x80,0x82,0x83,0x83,0x83,0x82,0x80,0x80,0x7F,0x7F,0x80,0x81,0x81,0x80,0x80, -0x83,0x85,0x87,0x86,0x83,0x80,0x7C,0x79,0x75,0x75,0x78,0x7D,0x7F,0x7F,0x7F,0x82, -0x86,0x87,0x86,0x84,0x81,0x7E,0x7A,0x77,0x74,0x76,0x7C,0x80,0x83,0x86,0x89,0x8C, -0x8C,0x8A,0x87,0x86,0x85,0x82,0x80,0x7E,0x7C,0x7D,0x7F,0x81,0x83,0x84,0x83,0x82, -0x81,0x81,0x80,0x7E,0x7D,0x7D,0x7E,0x80,0x81,0x82,0x84,0x86,0x85,0x84,0x83,0x81, -0x7F,0x7D,0x7D,0x7E,0x80,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x82,0x7F,0x7D,0x7C, -0x7B,0x7A,0x79,0x79,0x7B,0x7F,0x82,0x86,0x88,0x88,0x85,0x81,0x81,0x81,0x82,0x82, -0x81,0x81,0x81,0x83,0x84,0x82,0x81,0x80,0x81,0x81,0x81,0x80,0x80,0x81,0x83,0x85, -0x85,0x82,0x80,0x80,0x80,0x7E,0x7B,0x7A,0x7D,0x7F,0x80,0x7D,0x7C,0x7B,0x7A,0x78, -0x78,0x7A,0x7E,0x81,0x83,0x85,0x87,0x88,0x86,0x84,0x83,0x80,0x7D,0x7B,0x7A,0x79, -0x78,0x79,0x7C,0x7E,0x81,0x81,0x81,0x80,0x80,0x81,0x82,0x83,0x82,0x81,0x80,0x7F, -0x7E,0x7C,0x7C,0x80,0x82,0x82,0x80,0x7E,0x7C,0x7B,0x7C,0x7D,0x7E,0x7D,0x7C,0x7C, -0x7B,0x7A,0x79,0x7A,0x7B,0x7B,0x7A,0x7C,0x7F,0x81,0x80,0x7F,0x81,0x83,0x82,0x80, -0x7F,0x80,0x80,0x7F,0x7F,0x83,0x87,0x8A,0x89,0x86,0x83,0x82,0x83,0x84,0x83,0x83, -0x84,0x85,0x83,0x80,0x7E,0x7E,0x7D,0x7C,0x7B,0x7A,0x7D,0x81,0x84,0x86,0x86,0x84, -0x83,0x82,0x81,0x80,0x80,0x81,0x83,0x85,0x85,0x87,0x88,0x88,0x86,0x84,0x84,0x83, -0x81,0x7F,0x7E,0x7E,0x7E,0x7F,0x82,0x85,0x86,0x85,0x82,0x80,0x81,0x82,0x81,0x7F, -0x7D,0x7C,0x7E,0x7F,0x7F,0x7F,0x80,0x81,0x83,0x83,0x82,0x82,0x82,0x7F,0x7D,0x7E, -0x7F,0x7F,0x7E,0x7F,0x82,0x83,0x82,0x82,0x83,0x83,0x82,0x81,0x80,0x7D,0x7A,0x7A, -0x7B,0x7C,0x7D,0x7B,0x7A,0x7C,0x7F,0x81,0x81,0x7F,0x7B,0x78,0x79,0x7B,0x7A,0x7A, -0x7C,0x7E,0x7F,0x7F,0x80,0x80,0x80,0x7F,0x7E,0x7E,0x80,0x83,0x85,0x85,0x82,0x80, -0x7F,0x80,0x81,0x81,0x81,0x83,0x85,0x84,0x81,0x7F,0x7D,0x7C,0x7A,0x78,0x7A,0x7C, -0x7E,0x7E,0x7D,0x7D,0x7E,0x81,0x82,0x81,0x7F,0x7E,0x7F,0x7E,0x7B,0x7A,0x7B,0x7C, -0x7D,0x7E,0x81,0x84,0x86,0x86,0x85,0x84,0x82,0x80,0x7F,0x80,0x81,0x81,0x83,0x86, -0x89,0x8B,0x8C,0x8C,0x8A,0x86,0x80,0x7B,0x78,0x79,0x7A,0x7C,0x7D,0x7D,0x7C,0x7E, -0x81,0x82,0x81,0x7F,0x7B,0x79,0x79,0x7C,0x7F,0x83,0x86,0x87,0x87,0x86,0x84,0x83, -0x81,0x81,0x81,0x81,0x81,0x80,0x7F,0x7E,0x80,0x80,0x80,0x7F,0x7F,0x80,0x83,0x87, -0x8A,0x8C,0x8C,0x8A,0x86,0x80,0x7C,0x7A,0x79,0x7B,0x7E,0x81,0x81,0x81,0x81,0x80, -0x7E,0x7E,0x7E,0x80,0x81,0x81,0x81,0x80,0x80,0x82,0x83,0x84,0x83,0x82,0x81,0x80, -0x7E,0x7E,0x7D,0x7C,0x7E,0x81,0x83,0x83,0x81,0x7F,0x7E,0x80,0x83,0x85,0x84,0x81, -0x7D,0x7B,0x7C,0x7D,0x7E,0x7E,0x7E,0x7E,0x7F,0x80,0x7E,0x7A,0x77,0x76,0x77,0x77, -0x77,0x78,0x7B,0x7D,0x7E,0x7E,0x7F,0x81,0x81,0x7F,0x7E,0x7E,0x7F,0x7F,0x7F,0x7E, -0x7F,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x85,0x83,0x81,0x81,0x82,0x80,0x7D,0x7B, -0x7C,0x7C,0x7C,0x79,0x78,0x79,0x7A,0x7A,0x7A,0x7A,0x7B,0x7C,0x7C,0x7B,0x7C,0x7E, -0x81,0x83,0x85,0x86,0x85,0x83,0x83,0x84,0x85,0x84,0x85,0x86,0x89,0x8B,0x8B,0x89, -0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x85,0x83,0x7F,0x7A,0x77,0x78,0x7C, -0x80,0x82,0x82,0x81,0x80,0x7F,0x7F,0x7F,0x7F,0x7D,0x7C,0x7B,0x7D,0x7F,0x81,0x84, -0x85,0x84,0x84,0x84,0x86,0x85,0x84,0x83,0x83,0x84,0x86,0x8B,0x8D,0x8C,0x88,0x85, -0x82,0x7E,0x7B,0x7A,0x7C,0x7E,0x7F,0x7E,0x7C,0x79,0x78,0x78,0x79,0x79,0x79,0x78, -0x78,0x77,0x77,0x7A,0x7D,0x7F,0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x83,0x83,0x85, -0x87,0x86,0x83,0x81,0x83,0x84,0x83,0x80,0x7F,0x80,0x82,0x81,0x7F,0x7D,0x7B,0x78, -0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x7B,0x7E,0x81,0x81,0x80,0x7E,0x7C,0x7B, -0x7A,0x79,0x79,0x7B,0x80,0x85,0x89,0x8A,0x89,0x89,0x89,0x87,0x84,0x81,0x7F,0x80, -0x81,0x80,0x7F,0x7F,0x82,0x84,0x85,0x82,0x7D,0x7A,0x78,0x77,0x76,0x75,0x77,0x7B, -0x7E,0x7F,0x7E,0x7E,0x7E,0x7E,0x7D,0x7C,0x7D,0x80,0x82,0x82,0x83,0x85,0x85,0x84, -0x83,0x84,0x86,0x86,0x83,0x81,0x82,0x85,0x86,0x86,0x85,0x84,0x84,0x85,0x85,0x84, -0x82,0x81,0x81,0x82,0x83,0x81,0x7D,0x7B,0x7B,0x7C,0x7E,0x7F,0x7F,0x7F,0x7F,0x80, -0x81,0x84,0x85,0x84,0x83,0x83,0x86,0x88,0x88,0x86,0x85,0x86,0x85,0x85,0x86,0x85, -0x83,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x84,0x85,0x83,0x7E,0x7C,0x7C,0x7C,0x7D, -0x7F,0x80,0x81,0x81,0x81,0x7F,0x7E,0x7E,0x7E,0x7D,0x7A,0x77,0x76,0x78,0x7A,0x7D, -0x7F,0x80,0x82,0x85,0x89,0x8A,0x89,0x86,0x81,0x7E,0x7D,0x7D,0x7D,0x7B,0x79,0x76, -0x76,0x78,0x7B,0x7E,0x7F,0x80,0x80,0x7F,0x7B,0x79,0x7B,0x7E,0x7F,0x81,0x81,0x82, -0x81,0x7D,0x7B,0x79,0x79,0x78,0x77,0x78,0x79,0x7B,0x7C,0x7C,0x7E,0x80,0x82,0x83, -0x83,0x83,0x83,0x83,0x82,0x7F,0x7D,0x7C,0x7D,0x7E,0x80,0x84,0x86,0x86,0x85,0x85, -0x86,0x85,0x83,0x81,0x7E,0x7D,0x7D,0x7F,0x81,0x84,0x87,0x89,0x8A,0x8A,0x86,0x81, -0x7F,0x7F,0x7E,0x7D,0x7E,0x80,0x82,0x81,0x80,0x7D,0x7B,0x7A,0x7A,0x7B,0x7C,0x7E, -0x00 -}; diff --git a/boop/trunk/syscalls.c b/boop/trunk/syscalls.c deleted file mode 100644 index eea9557..0000000 --- a/boop/trunk/syscalls.c +++ /dev/null @@ -1,22 +0,0 @@ -/* based on a example-code from Keil for CS G++ */ - -/* for caddr_t (typedef char * caddr_t;) */ -#include - -extern int _bss_end; - -caddr_t _sbrk ( int incr ) -{ - static unsigned char *heap = NULL; - unsigned char *prev_heap; - - if (heap == NULL) { - heap = (unsigned char *)&_bss_end; - } - prev_heap = heap; - /* check removed to show basic approach */ - - heap += incr; - - return (caddr_t) prev_heap; -} diff --git a/boop/trunk/timer/Make.conf b/boop/trunk/timer/Make.conf deleted file mode 100644 index 6a23f8a..0000000 --- a/boop/trunk/timer/Make.conf +++ /dev/null @@ -1,2 +0,0 @@ -THUMBSRCS := timerfuncs.c -SRCS := timerirq.c diff --git a/boop/trunk/timer/timerfuncs.c b/boop/trunk/timer/timerfuncs.c deleted file mode 100644 index f7749c1..0000000 --- a/boop/trunk/timer/timerfuncs.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - timerfuncs.c - timer control functions - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "timerfuncs.h" -#include "irq.h" -#include "keyboard.h" - -extern struct CB callbacks[MAX_CB]; -extern unsigned long* timeouts[MAX_TO]; - -void startTimerIRQ(void) -{ - int i; - struct CB *cur_cb; - - for(i=0; istate = SLOT_FREE; - cur_cb->exec = 0; - } - - for(i=0; i PR = 15 - 1 = 0x0e - T0MR0 = 5000; // 1.000.000 Hz / 5000 = 200 Hz = 5 msec intervall time - T0MCR = 0x03; // reset and issue IRQ on TC == MR0 - T0TCR = 0x01; // enable timer - - T0overflow = 0; - - VICVectAddr15 = (unsigned long)&(timerIRQ); - VICVectCntl15 = VIC_SLOT_EN | INT_SRC_TIMER0; - VICIntEnable = INT_TIMER0; -} - -void wait5ms(void) { - - unsigned long x; - - x=T0TC; - while(x==T0TC); - while(x!=T0TC); -} - -void waitus(unsigned long d) { - - unsigned long x,y; - - x=(T0TC+d)%5000; - y= T0overflow; - - if(xT0TC); -} - -unsigned int addTimerCB(cb_fn cb, unsigned short intervall) -{ - int i; - struct CB *cur_cb; - - for(i=0; istate == SLOT_FREE) - { - cur_cb->exec = cb; - cur_cb->intervall = intervall; - cur_cb->cur_intervall = 0; - cur_cb->state = SLOT_HALT | SLOT_USED; - return i; - } - i++; - } - return 0xFF; -} - -unsigned int removeTimerCB(unsigned int cb) -{ - if(cb < MAX_CB) - { - callbacks[cb].state = SLOT_FREE; - return MAX_CB; - } - return 0xFF; -} - -void startCB(unsigned int cb) -{ - if(cb < MAX_CB) - { - callbacks[cb].state &= ~SLOT_HALT; - } -} - -void stopCB(unsigned int cb) -{ - if(cb < MAX_CB) - { - callbacks[cb].state |= SLOT_HALT; - } -} - -void setCBIntervall(unsigned int cb, unsigned short intervall) -{ - if(cb < MAX_CB) - { - callbacks[cb].intervall = intervall; - callbacks[cb].cur_intervall = 0; - } -} - -unsigned char addTimeout(volatile unsigned long* counter, unsigned long value) { - - int i; - - for(i=0; i - - 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 3 of the License, 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, see . -*/ - -#ifndef TIMERFUNCS_H -#define TIMERFUNCS_H - -//////////////////////////////////////////////// -///@Attention: Timer are using 5msec intervall! -//////////////////////////////////////////////// -#define TIME_MSEC2TICKS(t) (t/5) - -#include "timerirq.h" - -volatile unsigned long T0overflow; - -void startTimerIRQ(void); - -/** -@brief Alocate a timer, set the time but do *NOT* start. - - Use @see startCB to start the timer - -@Param Timer expiry callback, time intervall - -@return index of the allocated timer on success - 0xFF is no timer left -*/ -unsigned int addTimerCB(cb_fn cb, unsigned short intervall); -unsigned int removeTimerCB(unsigned int cb); -void startCB(unsigned int cb); -void stopCB(unsigned int cb); -void setCBIntervall(unsigned int cb, unsigned short intervall); -void wait5ms(void); -void waitus(unsigned long d); -unsigned char addTimeout(volatile unsigned long* counter, unsigned long value); -unsigned char removeTimeout(volatile unsigned long* counter); - -#endif diff --git a/boop/trunk/timer/timerirq.c b/boop/trunk/timer/timerirq.c deleted file mode 100644 index a19cfae..0000000 --- a/boop/trunk/timer/timerirq.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - timerirq.c - timekeeping and calllbacks - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#include "lpc2220.h" -#include "timerirq.h" -#include "timerfuncs.h" -#include "lcd.h" - -struct CB callbacks[MAX_CB]; -unsigned long* timeouts[MAX_TO]; - - -// wird alle 5 ms aufgerufen (s. startTimerIRQ() in timerfuncs) -// bearbeitet eingetragene "timer" -void __attribute__ ((section(".text.fastcode"))) timerIRQ(void) -{ - unsigned int cnt; - struct CB *cur_cb; - - for(cnt=0; cntstate & SLOT_USED) - { - if(!(cur_cb->state & SLOT_HALT)) - { - cur_cb->cur_intervall++; - if(cur_cb->cur_intervall >= cur_cb->intervall) - { - if(cur_cb->exec) - (cur_cb->exec)(cnt); // run callback function - cur_cb->cur_intervall = 0; - } - } - } - } - - for(cnt = 0; cnt < MAX_TO; cnt++) { - if(timeouts[cnt]) { - if(*timeouts[cnt]) - (*timeouts[cnt])--; - else - timeouts[cnt] = 0; - } - } - - if(oldsymbols != symbols) { - volatile cb_fn x; - x=refresh_symbols; - x(0xff); - } - - T0overflow++; - T0IR = 1; -} diff --git a/boop/trunk/timer/timerirq.h b/boop/trunk/timer/timerirq.h deleted file mode 100644 index c39a6ae..0000000 --- a/boop/trunk/timer/timerirq.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - timerirq.h - timekeeping and calllbacks - Copyright (C) 2007 Ch. Klippel - - 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 3 of the License, 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, see . -*/ - -#ifndef TIMERIRQ_H -#define TIMERIRQ_H - -#define MAX_CB 32 -#define MAX_TO 10 - -#define SLOT_FREE 0x00 -#define SLOT_USED 0x01 -#define SLOT_HALT 0x02 - -typedef void(*cb_fn)(unsigned int cb); - -typedef struct CB -{ - unsigned int state; - unsigned short cur_intervall; - unsigned short intervall; - cb_fn exec; -} CB; - -void __attribute__ ((section(".text.fastcode"))) timerIRQ (void); - -#endif diff --git a/boop/trunk/tools/Make.conf b/boop/trunk/tools/Make.conf deleted file mode 100644 index 1ed1f58..0000000 --- a/boop/trunk/tools/Make.conf +++ /dev/null @@ -1 +0,0 @@ -THUMBSRCS := toolsmenu.c scart_icp.c diff --git a/boop/trunk/tools/scart_icp.c b/boop/trunk/tools/scart_icp.c deleted file mode 100644 index 3bc6cb2..0000000 --- a/boop/trunk/tools/scart_icp.c +++ /dev/null @@ -1,715 +0,0 @@ -/* - 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 3 of the License, 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, see . -*/ -#ifndef DEBUGMODE - #define USE_SCART_ICP 1 -#endif - -#include "lpc2220.h" -#include "lcd.h" -#include "fonty.h" -#include "keyboard.h" - -#if USE_SCART_ICP - -#include "scart_icp.h" -#include "scart_image.h" - - - -/* The portpins (P0.x) to use to connect to scart */ -#define PIN_RST (1<<14) /* Portpin P0.14 to RST/P1.5 on Scart */ -#define PIN_PDA (1<<1) /* Portpin P0.1 to PDA/P0.4 on Scart */ -#define PIN_PCL (1<<0) /* Portpin P0.0 to PCL/P0.5 on Scart */ - -/* bit mask for port value and direction register */ -#define PORT_MASK (PIN_RST | PIN_PDA | PIN_PCL) -/* bit mask for pin function select register */ -#define PINSEL_MASK (((PIN_RST*PIN_RST) | (PIN_PDA*PIN_PDA) | (PIN_PCL*PIN_PCL)) * 3) - - -/* Definitions of the ICP commands/opcodes */ -/* see http://www.zlgmcu.com/philips/yingrong/lpc900/LPC900_ICP_Spec_en.pdf */ -#define OP_NOP 0x00 /* NOP */ -#define OP_WR_FMADRL 0x08 /* Write address low command */ -#define OP_RD_FMADRL 0x09 /* Read address low command */ -#define OP_WR_FMADRH 0x0A /* Write address high command */ -#define OP_RD_FMADRH 0x0B /* Read address high command */ -#define OP_WR_FMCON 0x0E /* Write a command to FMCON */ -#define OP_RD_FMCON 0x0F /* Read a command from FMCON */ -#define OP_WR_FMDATA_PG 0x14 /* Write a command to FMDATA and increment address */ -#define OP_RD_FMDATA_PG 0x15 /* Read a command from FMDATA and increment address */ -#define OP_WR_FMDATA 0x0C /* Write a command to FMDATA */ -#define OP_RD_FMDATA 0x0D /* Read a command from FMDATA */ -#define OP_WR_FMDATA_I 0x04 /* Write a command to FMDATA and increment address */ -#define OP_RD_FMDATA_I 0x05 /* Read a command from FMDATA and increment address */ - -#define CMD_LOAD 0x00 /* Clear and then load the page register */ -#define CMD_PROG 0x48 /* Program page with page register command */ -#define CMD_ERS_G 0x72 /* Erase global command */ -#define CMD_ERS_S 0x71 /* Erase sector command */ -#define CMD_ERS_P 0x70 /* Erase page command */ -#define CMD_CONF 0x6C /* Accesses user configuration information addressed by FMADRL */ -#define CMD_CRC_G 0x1A /* Calculate CRC on the entire user code command */ -#define CMD_CRC_S 0x19 /* Calculate CRC on a sector command */ -#define CMD_CCP 0x67 /* Clear configuration protection */ - -#define ADR_UCFG1 0x00 /* User Configuration Reg. #1 */ -#define ADR_UCFG2 0x01 /* User Configuration Reg. #2 */ -#define ADR_BootVector 0x02 /* Bootvector */ -#define ADR_StatusByte 0x03 /* Status Byte */ -#define ADR_SEC0 0x08 /* Security byte, sector 0 */ -#define ADR_SEC1 0x09 /* Security byte, sector 1 */ -#define ADR_SEC2 0x0A /* Security byte, sector 2 */ -#define ADR_SEC3 0x0B /* Security byte, sector 3 */ -#define ADR_SEC4 0x0C /* Security byte, sector 4 */ -#define ADR_SEC5 0x0D /* Security byte, sector 5 */ -#define ADR_SEC6 0x0E /* Security byte, sector 6 */ -#define ADR_SEC7 0x0F /* Security byte, sector 7 */ -#define ADR_MFGID 0x10 /* Manufacturer ID */ -#define ADR_ID1 0x11 /* Device ID 1 */ -#define ADR_ID2 0x12 /* Device ID 2 */ - - -/* Scart's flash memory attributes */ -#define PAGE_SIZE 64 /* flash page size of LPC931 */ -#define SECTOR_SIZE 1024 /* flash sector size of LPC931 */ - - -/* saved pin configuration for later restore */ -static unsigned int savedPinsel0, savedPindir0, savedPin0; - - -/**************************************************************************/ -/* icp_init() */ -/* Purpose: Initialize the portpins for use as ICP */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_init() -{ - /* save the current pin configuration */ - savedPinsel0 = PINSEL0; - savedPindir0 = FIODIR0; - savedPin0 = FIOPIN0; - - /* setup all used pins as GPIO, output, low */ - PINSEL0 &= ~PINSEL_MASK; - FIODIR0 |= (PIN_RST | PIN_PDA | PIN_PCL); - FIOCLR0 = (PIN_RST | PIN_PDA | PIN_PCL); -} - -/**************************************************************************/ -/* icp_close() */ -/* Purpose: Configure the portpins as they was before used for ICP */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_close() -{ - /* restore the saved pin configuration */ - PINSEL0 = (PINSEL0 & ~PINSEL_MASK) | (savedPinsel0 & PINSEL_MASK); - FIODIR0 = (FIODIR0 & ~PORT_MASK) | (savedPindir0 & PORT_MASK); - FIOPIN0 = (FIOPIN0 & ~PORT_MASK) | (savedPin0 & PORT_MASK); -} - -/**************************************************************************/ -/* icp_wait_us() */ -/* Purpose: Wait some us */ -/* Input: time: the time to wait in us */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_wait_us(int time) -{ - int start; - - /* use Timer0, which increments every 1us and rollover at T0MR0 */ - start = T0TC; - if ((start + time) < T0MR0) - { - while (T0TC < (start + time)); - } - else - { - while ((T0TC < (start + time - T0MR0)) || (T0TC >= start)); - } -} - -/**************************************************************************/ -/* icp_wait_ns() */ -/* Purpose: Wait some ns */ -/* Input: time: the time to wait in ns */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_wait_ns(int time) -{ - int i; - - /* inaccurate, but okay */ - for (i=0; i<(time>>4); i++); -} - -/**************************************************************************/ -/* icp_mode_entry() */ -/* Purpose: Bring the scart's CPU into ICP mode */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_mode_entry() -{ - int i; - - /* see ICP spec */ - for (i=0; i<8; i++) - { - FIOCLR0 = PIN_RST; - icp_wait_us(10); - FIOSET0 = PIN_RST; - icp_wait_us(10); - } - icp_wait_us(50); -} - -/**************************************************************************/ -/* icp_mode_exit() */ -/* Purpose: Bring the scart's CPU out of ICP mode, reset CPU */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_mode_exit() -{ - FIOCLR0 = (PIN_RST | PIN_PDA | PIN_PCL); -} - -/**************************************************************************/ -/* icp_shift_out() */ -/* Purpose: Shift out one byte to scart */ -/* Input: val: byte to shift out */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_shift_out(unsigned char val) -{ - int i; - - for (i=0; i<8; i++) - { - FIOCLR0 = PIN_PCL; - icp_wait_ns(50); - if (val & 1) - { - FIOSET0 = PIN_PDA; - } - else - { - FIOCLR0 = PIN_PDA; - } - val >>= 1; - icp_wait_ns(50); - FIOSET0 = PIN_PCL; - icp_wait_ns(100); - } - icp_wait_ns(100); -} - -/**************************************************************************/ -/* icp_shift_in() */ -/* Purpose: Shift in one byte from scart */ -/* Input: - */ -/* Output: - */ -/* Return: byte shifted in */ -/**************************************************************************/ -static unsigned char icp_shift_in() -{ - int i; - unsigned char val; - - /* configure pin as input */ - FIODIR0 &= ~PIN_PDA; - val = 0; - for (i=0; i<8; i++) - { - FIOCLR0 = PIN_PCL; - icp_wait_ns(100); - val >>= 1; - val |= ((FIOPIN0 & PIN_PDA) ? 0x80 : 0); - FIOSET0 = PIN_PCL; - icp_wait_ns(100); - } - /* configure pin as output */ - FIODIR0 |= PIN_PDA; - icp_wait_ns(100); - return val; -} - -/**************************************************************************/ -/* icp_read_config_byte() */ -/* Purpose: Read a configuration byte from scart */ -/* Input: adr: address of the config byte */ -/* Output: - */ -/* Return: value of the config byte */ -/**************************************************************************/ -static unsigned char icp_read_config_byte(unsigned char adr) -{ - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_CONF); - icp_shift_out(OP_WR_FMADRL); - icp_shift_out(adr); - icp_shift_out(OP_RD_FMDATA); - return icp_shift_in(); -} - -/**************************************************************************/ -/* icp_write_config_byte() */ -/* Purpose: Write a configuration byte to scart */ -/* Input: adr: address of the config byte */ -/* val: value of the config byte */ -/* Output: - */ -/* Return: 0 on success, else error code */ -/**************************************************************************/ -static unsigned char icp_write_config_byte(unsigned char adr, unsigned char val) -{ - unsigned char status; - - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_CONF); - icp_shift_out(OP_WR_FMADRL); - icp_shift_out(adr); - icp_shift_out(OP_WR_FMDATA); - icp_shift_out(val); - - do - { - icp_shift_out(OP_RD_FMCON); - status = icp_shift_in(); - } while ((status & 0x8F) == 0x80); - - return (status & 0x8F); -} - -/**************************************************************************/ -/* icp_calc_sector_crc() */ -/* Purpose: Calculate the CRC of one sector */ -/* Input: adr: start address of the sector */ -/* Output: crc: value of the CRC */ -/* Return: 0 on success, else error code */ -/**************************************************************************/ -static unsigned char icp_calc_sector_crc(unsigned short adr, unsigned int *pcrc) -{ - int i; - unsigned char status; - - icp_shift_out(OP_WR_FMADRH); - icp_shift_out(adr>>8); - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_CRC_S); - - do - { - icp_shift_out(OP_RD_FMCON); - status = icp_shift_in(); - } while ((status & 0x8F) == 0x80); - - if (status & 0x8F) return (status & 0x8F); - - *pcrc = 0; - for (i=0; i<4; i++) - { - icp_shift_out(OP_RD_FMDATA_I); - *pcrc >>= 8; - *pcrc |= (unsigned int)icp_shift_in() << 24; - } - return 0; -} - -/**************************************************************************/ -/* icp_load_page_register() */ -/* Purpose: Load the page registers with bytes */ -/* Input: adr: start address of the bytes in the flash */ -/* pval: pointer to the bytes to load */ -/* nbytes: number of bytes to load */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -static void icp_load_page_register(unsigned short adr, const unsigned char *pval, unsigned char nbytes) -{ - int i; - - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_LOAD); - icp_shift_out(OP_WR_FMADRL); - icp_shift_out(adr & 0xFF); - icp_shift_out(OP_WR_FMDATA_PG); - for (i=0; i> 8); - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_PROG); - - do - { - icp_shift_out(OP_RD_FMCON); - status = icp_shift_in(); - } while ((status & 0x8F) == 0x80); - - return (status & 0x8F); -} - -/**************************************************************************/ -/* icp_erase_sector() */ -/* Purpose: Erase one flash sector */ -/* Input: adr: start address of the sector in the flash */ -/* Output: - */ -/* Return: 0 on success, else error code */ -/**************************************************************************/ -static unsigned char icp_erase_sector(unsigned short adr) -{ - unsigned char status; - - icp_shift_out(OP_WR_FMADRH); - icp_shift_out(adr >> 8); - icp_shift_out(OP_WR_FMCON); - icp_shift_out(CMD_ERS_S); - - do - { - icp_shift_out(OP_RD_FMCON); - status = icp_shift_in(); - } while ((status & 0x8F) == 0x80); - - return (status & 0x8F); -} - -void scart_icp_header(void) { - set_font(BOLDFONT); - draw_string(0, 0, "Scart ICP", 3, DRAW_PUT); - draw_block(0,10,128,2,3,DRAW_PUT); - draw_block(0,149,128,2,3,DRAW_PUT); - set_font(SMALLFONT); -} - -/**************************************************************************/ -/* scart_icp() */ -/* Purpose: Use ICP to program an image into scart's flash */ -/* and read some infos from scart */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/**************************************************************************/ -void scart_icp(void) -{ - int i; - unsigned short offs, addr, blklen; - unsigned int err, crc_sc, crc_im, tap, poly, crcf; - unsigned char data; - - - set_font(SMALLFONT); - - lcd_fill(0); - scart_icp_header(); - draw_string(0, 20, "Um Schaeden an der Betty", 3, DRAW_PUT); - draw_string(0, 29, "und am Scart-Adapter zu", 3, DRAW_PUT); - draw_string(0, 38, "vermeiden, folgen Sie", 3, DRAW_PUT); - draw_string(0, 47, "bitte den Anweisungen!", 3, DRAW_PUT); - draw_string(0, 56, "Entfernen Sie alle", 3, DRAW_PUT); - draw_string(0, 65, "Kabel von der Betty!", 3, DRAW_PUT); - draw_string(0, 74, "Druecken Sie dann OK.", 3, DRAW_PUT); - draw_string(0, 83, "Oder druecken Sie EXIT", 3, DRAW_PUT); - draw_string(0, 92, "um jetzt abzubrechen.", 3, DRAW_PUT); - - do - { - waitKeyUpDown(); - } while(!KEY_OK && !KEY_Exit); - - if (KEY_Exit) return; - - /* init port pins */ - icp_init(); - - lcd_fill(0); - scart_icp_header(); - draw_string(0, 20, "Trennen Sie zuerst die", 3, DRAW_PUT); - draw_string(0, 29, "Stromversorgung des", 3, DRAW_PUT); - draw_string(0, 38, "SCART-Adapters.", 3, DRAW_PUT); - draw_string(0, 47, "Verbinden Sie danach die", 3, DRAW_PUT); - draw_string(0, 56, "Betty mit dem SCART-", 3, DRAW_PUT); - draw_string(0, 65, "Adapter. Schliessen Sie", 3, DRAW_PUT); - draw_string(0, 74, "dann die Stromversorgung", 3, DRAW_PUT); - draw_string(0, 83, "des SCART-Adapters", 3, DRAW_PUT); - draw_string(0, 92, "wieder an.", 3, DRAW_PUT); - draw_string(0, 101, "Druecken Sie dann OK.", 3, DRAW_PUT); - - do - { - waitKeyUpDown(); - } while(!KEY_OK); - - /* bring scart into ICP mode */ - icp_mode_entry(); - - while (1) - { - lcd_fill(0); - scart_icp_header(); - draw_string(0, 20, "Druecken Sie eine Taste", 3, DRAW_PUT); - draw_string(0, 40, "1 Lese Config-Bytes", 3, DRAW_PUT); - draw_string(0, 49, "2 Programmiere Image", 3, DRAW_PUT); - draw_string(0, 58, "3 Vergleiche CRCs", 3, DRAW_PUT); - draw_string(0, 67, "4 Schreibe Config-Bytes", 3, DRAW_PUT); - draw_string(0, 84, "Exit Beenden", 3, DRAW_PUT); - - do - { - waitKeyUpDown(); - } while(!KEY_Exit && !KEY_1 && !KEY_2 && !KEY_3 && !KEY_4); - - lcd_fill(0); - scart_icp_header(); - if (KEY_Exit) break; - - if (KEY_1) - { /* show all config bytes */ - draw_string(0, 14, "UCFG1 & 2", 3, DRAW_PUT); - draw_hexC (60, 14, icp_read_config_byte(ADR_UCFG1), 3, DRAW_PUT); - draw_hexC (80, 14, icp_read_config_byte(ADR_UCFG2), 3, DRAW_PUT); - draw_string(0, 23, "BootVector", 3, DRAW_PUT); - draw_hexC (60, 23, icp_read_config_byte(ADR_BootVector), 3, DRAW_PUT); - draw_string(0, 32, "StatusByte", 3, DRAW_PUT); - draw_hexC (60, 32, icp_read_config_byte(ADR_StatusByte), 3, DRAW_PUT); - draw_string(0, 41, "SEC0", 3, DRAW_PUT); - draw_hexC (60, 41, icp_read_config_byte(ADR_SEC0), 3, DRAW_PUT); - draw_string(0, 50, "SEC1", 3, DRAW_PUT); - draw_hexC (60, 50, icp_read_config_byte(ADR_SEC1), 3, DRAW_PUT); - draw_string(0, 59, "SEC2", 3, DRAW_PUT); - draw_hexC (60, 59, icp_read_config_byte(ADR_SEC2), 3, DRAW_PUT); - draw_string(0, 68, "SEC3", 3, DRAW_PUT); - draw_hexC (60, 68, icp_read_config_byte(ADR_SEC3), 3, DRAW_PUT); - draw_string(0, 77, "SEC4", 3, DRAW_PUT); - draw_hexC (60, 77, icp_read_config_byte(ADR_SEC4), 3, DRAW_PUT); - draw_string(0, 86, "SEC5", 3, DRAW_PUT); - draw_hexC (60, 86, icp_read_config_byte(ADR_SEC5), 3, DRAW_PUT); - draw_string(0, 95, "SEC6", 3, DRAW_PUT); - draw_hexC (60, 95, icp_read_config_byte(ADR_SEC6), 3, DRAW_PUT); - draw_string(0, 104, "SEC7", 3, DRAW_PUT); - draw_hexC (60, 104, icp_read_config_byte(ADR_SEC7), 3, DRAW_PUT); - draw_string(0, 113, "MFGID", 3, DRAW_PUT); - draw_hexC (60, 113, icp_read_config_byte(ADR_MFGID), 3, DRAW_PUT); - draw_string(0, 122, "ID1", 3, DRAW_PUT); - draw_hexC (60, 122, icp_read_config_byte(ADR_ID1), 3, DRAW_PUT); - draw_string(0, 131, "ID2", 3, DRAW_PUT); - draw_hexC (60, 131, icp_read_config_byte(ADR_ID2), 3, DRAW_PUT); - } - - if (KEY_2) - { /* erase sectors and program image */ - draw_string(0, 20, "Loesche", 3, DRAW_PUT); - - /* only erase first 7 sectors, not all! */ - for (i=0; i<7; i++) - { - draw_block (0, 29, 128, 9, 3, DRAW_ERASE); - draw_string(0, 29, "Sektor", 3, DRAW_PUT); - draw_numU (40, 29, i, 0, 3, DRAW_PUT); - err = icp_erase_sector(i*SECTOR_SIZE); - if (err) break; - } - - if (!err) - { - lcd_fill(0); - draw_string(0, 20, "Programmiere", 3, DRAW_PUT); - } - - offs = 0; - addr = scart_image_startaddr; - while (!err && (offs < sizeof(scart_image))) - { - blklen = (addr | (PAGE_SIZE-1)) + 1 - addr; - if ((sizeof(scart_image) - offs) < blklen) - { - blklen = sizeof(scart_image) - offs; - } - - draw_block(0, 29, 128, 9, 3, DRAW_ERASE); - draw_hexS (0, 29, addr, 3, DRAW_PUT); - - icp_load_page_register(addr, &scart_image[offs], blklen); - err = icp_prog_page_register(addr); - - addr += blklen; - offs += blklen; - } - - if (!err) - { - draw_block(0, 29, 128, 9, 3, DRAW_ERASE); - draw_string(0, 29, "BootVector", 3, DRAW_PUT); - err = icp_write_config_byte(ADR_BootVector, scart_bootvec); - } - if (!err) - { - draw_block(0, 29, 128, 9, 3, DRAW_ERASE); - draw_string(0, 29, "StatusByte", 3, DRAW_PUT); - err = icp_write_config_byte(ADR_StatusByte, scart_bootstat); - } - if (err) - { - draw_string(0, 40, "Fehler", 3, DRAW_PUT); - draw_hexC (40, 40, err, 3, DRAW_PUT); - } - else - { - draw_string(0, 40, "OK", 3, DRAW_PUT); - } - } - - if (KEY_3) - { /* compare CRC of all programmed sectors */ - draw_string(0, 20, "Vergleiche", 3, DRAW_PUT); - err = 0; - crc_sc = 0; - offs = 0; - addr = scart_image_startaddr; - while (!err && (offs < sizeof(scart_image))) - { - blklen = (addr | (SECTOR_SIZE-1)) + 1 - addr; - if ((sizeof(scart_image) - offs) < blklen) - { - blklen = sizeof(scart_image) - offs; - } - - draw_block (0, 29, 128, 9, 3, DRAW_ERASE); - draw_string(0, 29, "Sektor @", 3, DRAW_PUT); - draw_hexS (44, 29, addr, 3, DRAW_PUT); - - /* calculate CRC from scart */ - err = icp_calc_sector_crc(addr, &crc_sc); - - /* calculate CRC from image */ - poly = 0x00400007; - crc_im = tap = 0; - for (i=0; i. -*/ - - -#ifndef SCART_ICP -#define SCART_ICP - -extern void scart_icp(void); - -#endif diff --git a/boop/trunk/tools/scart_image.h b/boop/trunk/tools/scart_image.h deleted file mode 100644 index 52887f1..0000000 --- a/boop/trunk/tools/scart_image.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - 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 3 of the License, 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, see . -*/ - -/* bootstat register */ -const unsigned char scart_bootstat = 0x01; - -/* bootvec register, high byte of the reset vector */ -const unsigned char scart_bootvec = 0x00; - -/* address of the first byte of scart_image to program to */ -const unsigned short scart_image_startaddr = 0x0000; - -/* from betty_scart.bin SVN #14 */ -/* truncated to a size of 0x1C00 = 7168 to preserve the content of the last flash sector */ -#include "scart_image_data.h" diff --git a/boop/trunk/tools/scart_image_data.h b/boop/trunk/tools/scart_image_data.h deleted file mode 100644 index 514f01c..0000000 --- a/boop/trunk/tools/scart_image_data.h +++ /dev/null @@ -1,484 +0,0 @@ -// Array representation of binary file betty_scart.bin - - -const unsigned char scart_image[] = -{ - 0x02,0x00,0x73,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0x02,0x03,0xf7,0xff,0xff,0xff,0xff,0xff,0x32,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02, - 0x09,0x90,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0x32,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x32,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0x02,0x04,0x46,0x12,0x00,0xdb,0x80,0xfe,0x75,0x81,0xac,0x12,0x0d, - 0x0e,0xe5,0x82,0x60,0x03,0x02,0x00,0x6e,0x79,0x00,0xe9,0x44,0x00,0x60,0x1b, - 0x7a,0x00,0x90,0x0d,0xd3,0x78,0x00,0x75,0xa0,0x00,0xe4,0x93,0xf2,0xa3,0x08, - 0xb8,0x00,0x02,0x05,0xa0,0xd9,0xf4,0xda,0xf2,0x75,0xa0,0xff,0xe4,0x78,0xff, - 0xf6,0xd8,0xfd,0x78,0x00,0xe8,0x44,0x00,0x60,0x0a,0x79,0x00,0x75,0xa0,0x00, - 0xe4,0xf3,0x09,0xd8,0xfc,0x78,0x00,0xe8,0x44,0x00,0x60,0x0c,0x79,0x00,0x90, - 0x00,0x00,0xe4,0xf0,0xa3,0xd8,0xfc,0xd9,0xfa,0x75,0x08,0x00,0x75,0x09,0x00, - 0x75,0x22,0x00,0x75,0x23,0x05,0x02,0x00,0x6e,0x53,0x84,0x6c,0x43,0x85,0x92, - 0x75,0x80,0x83,0x53,0x91,0x3e,0x43,0x92,0xcd,0x75,0x90,0xcd,0x53,0xb1,0xfe, - 0x43,0xb2,0x01,0x75,0xb0,0x00,0x12,0x0c,0xd3,0x12,0x03,0x12,0x12,0x09,0x77, - 0x12,0x09,0x84,0xd2,0xaf,0x90,0x0d,0x12,0x75,0xf0,0x80,0x12,0x03,0x2c,0x90, - 0x0d,0x15,0x75,0xf0,0x80,0x12,0x03,0x2c,0x90,0x0d,0x12,0x75,0xf0,0x80,0x12, - 0x03,0x2c,0xd2,0x00,0x7a,0x00,0x30,0x01,0x2b,0x74,0xc6,0x25,0x09,0x50,0x0f, - 0x85,0x22,0x28,0x75,0x82,0x3a,0xc0,0x02,0x12,0x07,0x2e,0xd0,0x02,0x80,0xe8, - 0xe5,0x09,0x60,0xe4,0x30,0x8d,0xe1,0x85,0x22,0x28,0x85,0x09,0x82,0xc0,0x02, - 0x12,0x07,0x2e,0xd0,0x02,0x80,0xd2,0x20,0x00,0x03,0x02,0x02,0x63,0xc3,0xea, - 0x95,0x09,0x50,0xc6,0x8a,0x82,0x0a,0xc0,0x02,0x12,0x04,0xe1,0xab,0x82,0xd0, - 0x02,0xbb,0x0d,0x02,0x80,0x03,0x02,0x02,0x57,0x90,0x0d,0x12,0x75,0xf0,0x80, - 0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0xea,0x25,0x08,0x14,0x54,0x3f,0x24,0x2d, - 0xf8,0x76,0x00,0xc0,0x02,0x12,0x04,0x92,0xab,0x82,0xd0,0x02,0xda,0x03,0x02, - 0x02,0x36,0xbb,0x62,0x02,0x80,0x62,0xbb,0x63,0x02,0x80,0x54,0xbb,0x72,0x02, - 0x80,0x29,0xbb,0x73,0x02,0x80,0x41,0xbb,0x74,0x02,0x80,0x05,0xbb,0x77,0x65, - 0x80,0x57,0xe5,0x09,0x60,0x6c,0x8a,0x82,0x12,0x06,0xb8,0x7a,0x00,0x90,0x0d, - 0x12,0x75,0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x80,0x56,0xe5,0x09, - 0x60,0x52,0x75,0x28,0x00,0x8a,0x82,0x12,0x07,0x2e,0x7a,0x00,0x90,0x0d,0x1b, - 0x75,0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x80,0x39,0xc0,0x02,0x12, - 0x08,0x9d,0xd0,0x02,0x80,0x30,0xc0,0x02,0x12,0x07,0xd1,0xd0,0x02,0x80,0x27, - 0xc2,0x00,0x75,0x82,0x01,0xc0,0x02,0x12,0x03,0xad,0xd0,0x02,0x80,0x19,0x75, - 0x82,0x00,0xc0,0x02,0x12,0x0c,0x55,0xd0,0x02,0x80,0x0d,0x90,0x0d,0x23,0x75, - 0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x8a,0x04,0xec,0x60,0x1b,0xc0, - 0x04,0x12,0x04,0x92,0xd0,0x04,0x1c,0x8c,0x02,0x80,0xf1,0x90,0x0d,0x15,0x75, - 0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x80,0x02,0x8c,0x02,0x90,0x0d, - 0x12,0x75,0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x02,0x01,0x23,0x8b, - 0x82,0xc0,0x02,0x12,0x03,0xad,0xd0,0x02,0x02,0x01,0x23,0xe5,0x09,0x70,0x03, - 0x02,0x01,0x23,0xc0,0x02,0x12,0x04,0x92,0xab,0x82,0xd0,0x02,0xeb,0x24,0xf8, - 0x40,0x60,0xeb,0x2b,0x2b,0x90,0x02,0x7f,0x73,0x02,0x02,0x97,0x02,0x02,0x99, - 0x02,0x02,0xa2,0x02,0x02,0xab,0x02,0x02,0xb4,0x02,0x02,0xbd,0x02,0x02,0xc6, - 0x02,0x02,0xcf,0x80,0x49,0xc0,0x02,0x12,0x07,0x7d,0xd0,0x02,0x80,0x40,0xc0, - 0x02,0x12,0x09,0x68,0xd0,0x02,0x80,0x37,0xc0,0x02,0x12,0x08,0xc1,0xd0,0x02, - 0x80,0x2e,0xc0,0x02,0x12,0x08,0xdb,0xd0,0x02,0x80,0x25,0xc0,0x02,0x12,0x08, - 0xf5,0xd0,0x02,0x80,0x1c,0xc0,0x02,0x12,0x09,0x2d,0xd0,0x02,0x80,0x13,0xc0, - 0x02,0x12,0x09,0x71,0xd0,0x02,0x80,0x0a,0x75,0x82,0x00,0xc0,0x02,0x12,0x03, - 0xad,0xd0,0x02,0x30,0x00,0x03,0x02,0x01,0x23,0x75,0x82,0x01,0xc0,0x02,0x12, - 0x03,0xad,0xd0,0x02,0x02,0x01,0x23,0xe5,0x82,0x25,0x82,0x24,0x33,0xfa,0xe4, - 0x34,0x0d,0xfb,0x8a,0x82,0x8b,0x83,0xa3,0xe4,0x93,0xf5,0xbe,0x8a,0x82,0x8b, - 0x83,0xe4,0x93,0xf5,0xbf,0x22,0x75,0x98,0x52,0x43,0xba,0xa0,0x75,0x82,0x07, - 0x12,0x02,0xf5,0x75,0xbd,0x03,0xc2,0x98,0xd2,0xac,0xd2,0x99,0xd2,0xbc,0xd2, - 0xfe,0x22,0xaa,0x82,0xab,0x83,0xac,0xf0,0x7d,0x00,0xed,0x2a,0xfe,0xe4,0x3b, - 0xff,0x8c,0x00,0x8e,0x82,0x8f,0x83,0x88,0xf0,0x12,0x0c,0xf2,0x60,0x2b,0x8d, - 0x06,0x0d,0xee,0x2a,0xfe,0xe4,0x3b,0xff,0x8c,0x00,0x8e,0x82,0x8f,0x83,0x88, - 0xf0,0x12,0x0c,0xf2,0xf5,0x82,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0x12, - 0x03,0xad,0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0x80,0xc2,0x22,0xaa,0x82, - 0xab,0x83,0xac,0xf0,0x7d,0x00,0xc3,0xed,0x95,0x0c,0x50,0x2b,0x8d,0x06,0x0d, - 0xee,0x2a,0xfe,0xe4,0x3b,0xff,0x8c,0x00,0x8e,0x82,0x8f,0x83,0x88,0xf0,0x12, - 0x0c,0xf2,0xf5,0x82,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0x12,0x03,0xad, - 0xd0,0x05,0xd0,0x04,0xd0,0x03,0xd0,0x02,0x80,0xcf,0x22,0xaa,0x82,0x8a,0x82, - 0xc0,0x02,0x12,0x05,0x06,0xe5,0x82,0xd0,0x02,0x70,0x04,0xd2,0xee,0x80,0xef, - 0xd2,0xee,0x22,0xe5,0x82,0xfa,0xc4,0x54,0x0f,0xfb,0x53,0x03,0x0f,0x74,0x30, - 0x2b,0xfb,0x24,0xc6,0x50,0x04,0x74,0x07,0x2b,0xfb,0x8b,0x82,0xc0,0x02,0x12, - 0x03,0xad,0xd0,0x02,0x74,0x0f,0x5a,0xfb,0x74,0x30,0x2b,0xfb,0x24,0xc6,0x50, - 0x04,0x74,0x07,0x2b,0xfb,0x8b,0x82,0x02,0x03,0xad,0xc0,0x21,0xc0,0xe0,0xc0, - 0xf0,0xc0,0x82,0xc0,0x83,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06, - 0xc0,0x07,0xc0,0x00,0xc0,0x01,0xc0,0xd0,0x75,0xd0,0x00,0x74,0xc0,0x25,0x09, - 0x40,0x06,0x85,0x99,0x82,0x12,0x04,0xef,0xc2,0x98,0xc2,0x8d,0x75,0x8c,0x00, - 0xd0,0xd0,0xd0,0x01,0xd0,0x00,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0, - 0x03,0xd0,0x02,0xd0,0x83,0xd0,0x82,0xd0,0xf0,0xd0,0xe0,0xd0,0x21,0x32,0xc0, - 0x21,0xc0,0xe0,0xc0,0xf0,0xc0,0x82,0xc0,0x83,0xc0,0x02,0xc0,0x03,0xc0,0x04, - 0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x00,0xc0,0x01,0xc0,0xd0,0x75,0xd0,0x00, - 0xe5,0x0b,0x60,0x0a,0x12,0x04,0xad,0x85,0x82,0x99,0xc2,0x99,0x80,0x02,0xc2, - 0xee,0xd0,0xd0,0xd0,0x01,0xd0,0x00,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04, - 0xd0,0x03,0xd0,0x02,0xd0,0x83,0xd0,0x82,0xd0,0xf0,0xd0,0xe0,0xd0,0x21,0x32, - 0x7a,0x00,0xc2,0xaf,0xe5,0x09,0x60,0x0e,0x15,0x09,0xab,0x08,0x05,0x08,0x74, - 0x3f,0x5b,0x24,0x2d,0xf8,0x86,0x02,0xd2,0xaf,0x8a,0x82,0x22,0x7a,0x00,0xc2, - 0xaf,0xe5,0x0b,0x60,0x0e,0x15,0x0b,0xab,0x0a,0x05,0x0a,0x74,0x3f,0x5b,0x24, - 0x6d,0xf8,0x86,0x02,0xd2,0xaf,0x8a,0x82,0x22,0xe5,0x09,0x60,0xfc,0xc2,0xaf, - 0x15,0x09,0xaa,0x08,0x05,0x08,0x74,0x3f,0x5a,0x24,0x2d,0xf8,0x86,0x02,0xd2, - 0xaf,0x8a,0x82,0x22,0xe5,0x82,0x25,0x08,0x54,0x3f,0x24,0x2d,0xf8,0x86,0x02, - 0x8a,0x82,0x22,0xaa,0x82,0x74,0xc0,0x25,0x09,0x40,0x0e,0xab,0x09,0x05,0x09, - 0xeb,0x25,0x08,0x54,0x3f,0x24,0x2d,0xf8,0xa6,0x02,0x22,0xaa,0x82,0xc2,0xaf, - 0x74,0xc0,0x25,0x0b,0x40,0x14,0xab,0x0b,0x05,0x0b,0xeb,0x25,0x0a,0x54,0x3f, - 0x24,0x6d,0xf8,0xa6,0x02,0xd2,0xaf,0x75,0x82,0x01,0x22,0xd2,0xaf,0x75,0x82, - 0x00,0x22,0xaa,0x82,0x7b,0x08,0xeb,0x60,0x10,0xc2,0x97,0xea,0x33,0x92,0x96, - 0xd2,0x97,0xea,0xa2,0x95,0x3a,0xfa,0x1b,0x80,0xed,0xc2,0x97,0x8a,0x82,0x22, - 0x7a,0x00,0xc2,0x96,0xc2,0x97,0x7b,0x08,0xeb,0x60,0x0c,0xd2,0x97,0xea,0xa2, - 0x95,0x3a,0xfa,0xc2,0x97,0x1b,0x80,0xf1,0x8a,0x82,0x22,0xd2,0x97,0xc2,0x96, - 0xc2,0x81,0x7a,0xff,0xea,0x60,0x03,0x1a,0x80,0xfa,0xd2,0x81,0x7a,0xff,0xea, - 0x60,0x03,0x1a,0x80,0xfa,0xc2,0x81,0xc2,0x97,0x20,0x95,0xfd,0x75,0x82,0x30, - 0x12,0x05,0x2a,0x20,0x95,0xfd,0x75,0x82,0x40,0x12,0x05,0x2a,0x7a,0x00,0xba, - 0x2f,0x00,0x50,0x11,0xea,0x90,0x0d,0x47,0x93,0xf5,0x82,0xc0,0x02,0x12,0x05, - 0x2a,0xd0,0x02,0x0a,0x80,0xea,0xd2,0x81,0x75,0x11,0xc0,0x75,0x82,0x3e,0x12, - 0x06,0x07,0x75,0x82,0x36,0x12,0x06,0x90,0x75,0x82,0x33,0x12,0x06,0x90,0x75, - 0x82,0x3a,0x12,0x06,0x90,0x75,0x82,0x34,0x02,0x06,0x90,0xaa,0x82,0xc2,0x81, - 0x20,0x95,0xfd,0x8a,0x82,0x12,0x05,0x2a,0xaa,0x82,0x7b,0x00,0xc3,0xeb,0x95, - 0x10,0x50,0x23,0xeb,0x25,0x0d,0xfc,0xe4,0x35,0x0e,0xfd,0xae,0x0f,0x8c,0x82, - 0x8d,0x83,0x8e,0xf0,0x12,0x0c,0xf2,0xf5,0x82,0xc0,0x02,0xc0,0x03,0x12,0x05, - 0x2a,0xd0,0x03,0xd0,0x02,0x0b,0x80,0xd7,0xd2,0x81,0x8a,0x82,0x22,0xaa,0x82, - 0xc2,0x81,0x20,0x95,0xfd,0x8a,0x82,0x12,0x05,0x2a,0xaa,0x82,0x85,0x11,0x82, - 0xc0,0x02,0x12,0x05,0x2a,0xd0,0x02,0xd2,0x81,0x8a,0x82,0x22,0xaa,0x82,0xc2, - 0x81,0x20,0x95,0xfd,0x74,0x80,0x4a,0xf5,0x82,0x12,0x05,0x2a,0xaa,0x82,0x7b, - 0x00,0xac,0x15,0xec,0x60,0x37,0x8b,0x05,0x0b,0xed,0x25,0x12,0xfd,0xe4,0x35, - 0x13,0xfe,0xaf,0x14,0xc0,0x02,0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0, - 0x07,0x12,0x05,0x46,0xa8,0x82,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0, - 0x03,0xd0,0x02,0x8d,0x82,0x8e,0x83,0x8f,0xf0,0xe8,0x12,0x0c,0xd9,0x1c,0x80, - 0xc6,0xd2,0x81,0x8a,0x82,0x22,0xaa,0x82,0xc2,0x81,0x20,0x95,0xfd,0x74,0x80, - 0x4a,0xf5,0x82,0x12,0x05,0x2a,0x75,0x82,0x00,0x12,0x05,0x2a,0xd2,0x81,0x22, - 0xaa,0x82,0xc2,0x81,0x20,0x95,0xfd,0x8a,0x82,0x12,0x05,0x2a,0xd2,0x81,0x22, - 0xaa,0x82,0x10,0x81,0x02,0x80,0x03,0x20,0x95,0xfd,0x8a,0x82,0x12,0x05,0x2a, - 0xaa,0x82,0x30,0x02,0x02,0xd2,0x81,0x8a,0x82,0x22,0xaa,0x82,0x75,0x82,0x00, - 0xc0,0x02,0x12,0x0c,0x55,0xc2,0xe9,0x75,0x82,0x36,0x12,0x06,0x90,0xd0,0x02, - 0x75,0x82,0xf5,0xc0,0x02,0x12,0x06,0x78,0xab,0x82,0xd0,0x02,0xbb,0x01,0xf1, - 0x74,0x03,0x2a,0xf5,0x24,0x75,0x25,0x00,0x85,0x16,0x26,0x75,0x27,0x01,0x75, - 0x0d,0x24,0x75,0x0e,0x00,0x75,0x0f,0x40,0x75,0x10,0x04,0x75,0x82,0x7f,0xc0, - 0x02,0x12,0x05,0xc9,0xc2,0x02,0x75,0x82,0x7f,0x12,0x06,0x9f,0xd0,0x02,0x8a, - 0x03,0x1a,0xeb,0x60,0x0e,0xc0,0x02,0x12,0x04,0x92,0xc2,0x02,0x12,0x06,0x9f, - 0xd0,0x02,0x80,0xec,0xd2,0x81,0x75,0x82,0x35,0x12,0x06,0x90,0xd2,0xe9,0x90, - 0x0d,0x79,0x75,0xf0,0x80,0x02,0x03,0x2c,0xaa,0x82,0x74,0x03,0x2a,0xf5,0x29, - 0x85,0x28,0x2a,0x85,0x16,0x2b,0x75,0x2c,0x05,0xc2,0xe9,0x75,0x0d,0x29,0x75, - 0x0e,0x00,0x75,0x0f,0x40,0x75,0x10,0x04,0x75,0x82,0x7f,0xc0,0x02,0x12,0x05, - 0xc9,0xc2,0x02,0x75,0x82,0x7f,0x12,0x06,0x9f,0xd0,0x02,0x8a,0x03,0x1a,0xeb, - 0x60,0x0e,0xc0,0x02,0x12,0x04,0x92,0xc2,0x02,0x12,0x06,0x9f,0xd0,0x02,0x80, - 0xec,0xd2,0x81,0x75,0x82,0x35,0x12,0x06,0x90,0xd2,0xe9,0x22,0xe5,0x09,0x60, - 0xfc,0x12,0x04,0x92,0xaa,0x82,0xba,0x3e,0x00,0x50,0x40,0xc2,0x02,0x75,0x82, - 0x7f,0xc0,0x02,0x12,0x06,0x9f,0xd0,0x02,0xc2,0x02,0x8a,0x82,0xc0,0x02,0x12, - 0x06,0x9f,0xd0,0x02,0x7b,0x00,0xc3,0xeb,0x9a,0x50,0x17,0xe5,0x09,0x60,0xfc, - 0xc0,0x02,0xc0,0x03,0x12,0x04,0x92,0xc2,0x02,0x12,0x06,0x9f,0xd0,0x03,0xd0, - 0x02,0x0b,0x80,0xe4,0xd2,0x81,0x75,0x82,0x35,0x12,0x06,0x90,0x02,0x0c,0x10, - 0x75,0x82,0x00,0x02,0x03,0xad,0xc2,0x02,0x75,0x82,0xc0,0x12,0x06,0x9f,0x7a, - 0x00,0xba,0x2f,0x00,0x50,0x50,0x90,0x0d,0x81,0x75,0xf0,0x80,0xc0,0x02,0x12, - 0x03,0x2c,0xd0,0x02,0x8a,0x82,0xc0,0x02,0x12,0x03,0xc3,0x90,0x0d,0x88,0x75, - 0xf0,0x80,0x12,0x03,0x2c,0xc2,0x02,0x75,0x82,0x00,0x12,0x06,0x9f,0x12,0x03, - 0xc3,0xd0,0x02,0x74,0x03,0x5a,0xfb,0xbb,0x03,0x0f,0x90,0x0d,0x76,0x75,0xf0, - 0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x80,0x0d,0x90,0x0d,0x8e,0x75,0xf0, - 0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x0a,0x80,0xab,0xd2,0x81,0x90,0x0d, - 0x76,0x75,0xf0,0x80,0x12,0x03,0x2c,0xc2,0x02,0x75,0x82,0xfe,0x12,0x06,0x9f, - 0x7a,0x00,0xba,0x08,0x00,0x50,0x50,0x90,0x0d,0x92,0x75,0xf0,0x80,0xc0,0x02, - 0x12,0x03,0x2c,0xd0,0x02,0x8a,0x82,0xc0,0x02,0x12,0x03,0xc3,0x90,0x0d,0x9b, - 0x75,0xf0,0x80,0x12,0x03,0x2c,0xc2,0x02,0x75,0x82,0x00,0x12,0x06,0x9f,0x12, - 0x03,0xc3,0xd0,0x02,0x74,0x03,0x5a,0xfb,0xbb,0x03,0x0f,0x90,0x0d,0x76,0x75, - 0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x80,0x0d,0x90,0x0d,0xa2,0x75, - 0xf0,0x80,0xc0,0x02,0x12,0x03,0x2c,0xd0,0x02,0x0a,0x80,0xab,0xd2,0x81,0x22, - 0x90,0x0d,0xa5,0x75,0xf0,0x80,0x12,0x03,0x2c,0x75,0x82,0xbd,0x12,0x06,0x90, - 0x12,0x03,0xc3,0x90,0x0d,0xba,0x75,0xf0,0x80,0x12,0x03,0x2c,0x75,0x82,0x3d, - 0x12,0x06,0x90,0x02,0x03,0xc3,0x12,0x04,0xc8,0xaa,0x82,0x74,0x80,0x4a,0xf5, - 0x82,0xc2,0x02,0x12,0x06,0x9f,0xd2,0x02,0x75,0x82,0x00,0x12,0x06,0x9f,0x02, - 0x03,0xad,0x12,0x04,0xc8,0xaa,0x82,0xc2,0x02,0x8a,0x82,0x12,0x06,0x9f,0x30, - 0x98,0xfd,0xaa,0x99,0xc2,0x98,0xd2,0x02,0x8a,0x82,0x02,0x06,0x9f,0x12,0x04, - 0xc8,0xaa,0x82,0xc0,0x02,0x12,0x04,0xc8,0xab,0x82,0x74,0xc0,0x4b,0xf5,0x82, - 0xc2,0x02,0x12,0x06,0x9f,0xd0,0x02,0x7c,0x00,0xc3,0xec,0x9a,0x50,0x16,0xc2, - 0x02,0x75,0x82,0x00,0xc0,0x02,0xc0,0x04,0x12,0x06,0x9f,0x12,0x03,0xad,0xd0, - 0x04,0xd0,0x02,0x0c,0x80,0xe5,0xd2,0x81,0x22,0x12,0x04,0xc8,0xaa,0x82,0xc0, - 0x02,0x12,0x04,0xc8,0xab,0x82,0x74,0x40,0x4b,0xf5,0x82,0xc2,0x02,0x12,0x06, - 0x9f,0xd0,0x02,0x7c,0x00,0xc3,0xec,0x9a,0x50,0x19,0x30,0x98,0xfd,0xab,0x99, - 0xc2,0x98,0xc2,0x02,0x8b,0x82,0xc0,0x02,0xc0,0x04,0x12,0x06,0x9f,0xd0,0x04, - 0xd0,0x02,0x0c,0x80,0xe2,0xd2,0x81,0x22,0x12,0x04,0xc8,0x12,0x06,0x90,0x02, - 0x03,0xad,0x12,0x04,0xc8,0x02,0x0c,0x55,0x12,0x05,0x60,0xc2,0x03,0x90,0x0d, - 0x50,0xe4,0x93,0xf5,0x16,0x22,0x75,0x93,0x40,0x75,0x86,0x40,0x75,0x94,0x02, - 0xd2,0xe9,0x22,0xc0,0x21,0xc0,0xe0,0xc0,0xf0,0xc0,0x82,0xc0,0x83,0xc0,0x02, - 0xc0,0x03,0xc0,0x04,0xc0,0x05,0xc0,0x06,0xc0,0x07,0xc0,0x00,0xc0,0x01,0xc0, - 0xd0,0x75,0xd0,0x00,0xe5,0x93,0x30,0xe6,0x09,0x75,0x93,0x00,0x75,0x94,0x02, - 0x02,0x0b,0xf3,0x75,0x82,0xfb,0x12,0x06,0x78,0xe5,0x82,0xf5,0x17,0xfa,0x70, - 0x03,0x02,0x0b,0xbd,0xc2,0x04,0xea,0x24,0xfc,0x50,0x14,0x75,0x12,0x17,0x75, - 0x13,0x00,0x75,0x14,0x40,0x75,0x15,0x04,0x75,0x82,0xff,0x12,0x06,0x24,0x80, - 0x11,0x75,0x12,0x17,0x75,0x13,0x00,0x75,0x14,0x40,0x8a,0x15,0x75,0x82,0xff, - 0x12,0x06,0x24,0xe5,0x17,0x24,0xfc,0x40,0x03,0x02,0x0b,0x93,0x20,0x00,0x06, - 0x20,0x01,0x03,0x02,0x0b,0x5d,0xc2,0x05,0xaa,0x1a,0xba,0x02,0x02,0x80,0x0d, - 0xba,0x05,0x02,0x80,0x45,0xba,0x06,0x02,0x80,0x67,0x02,0x0b,0x13,0x75,0x82, - 0xff,0x12,0x06,0x78,0xaa,0x82,0xba,0x01,0x02,0x80,0x03,0x02,0x0b,0x93,0x75, - 0x17,0x04,0xaa,0x19,0x8a,0x18,0x85,0x16,0x19,0x75,0x1a,0x02,0x75,0x0d,0x17, - 0x75,0x0e,0x00,0x75,0x0f,0x40,0x75,0x10,0x04,0x75,0x82,0x7f,0x12,0x05,0xc9, - 0x75,0x11,0x02,0x75,0x82,0x7f,0x12,0x06,0x07,0xd2,0x04,0x02,0x0b,0x93,0xc2, - 0x02,0x75,0x82,0xff,0x12,0x06,0x9f,0x7a,0x03,0xc3,0xea,0x95,0x17,0x50,0x12, - 0xc2,0x02,0x75,0x82,0x00,0xc0,0x02,0x12,0x06,0x9f,0x12,0x03,0xad,0xd0,0x02, - 0x0a,0x80,0xe8,0xd2,0x81,0x02,0x0b,0x93,0x75,0x82,0xff,0x12,0x06,0x78,0xe5, - 0x82,0xfa,0x24,0xfb,0x40,0x4e,0xea,0x2a,0x2a,0x90,0x0a,0x99,0x73,0x02,0x0a, - 0xa8,0x02,0x0a,0xaa,0x02,0x0a,0xc3,0x02,0x0a,0xd2,0x02,0x0a,0xde,0x80,0x36, - 0xe5,0x17,0x24,0xfb,0x50,0x30,0x75,0x82,0xff,0x12,0x06,0x78,0xe5,0x82,0xfa, - 0x24,0xf6,0x40,0x02,0x8a,0x23,0xd2,0x05,0x80,0x1d,0x85,0x19,0x22,0x85,0x23, - 0x82,0x12,0x02,0xf5,0xd2,0x01,0xd2,0x05,0x80,0x0e,0xc2,0x01,0x75,0x82,0x07, - 0x12,0x02,0xf5,0xd2,0x05,0x80,0x02,0xd2,0x05,0x20,0x05,0x03,0x02,0x0b,0x93, - 0x75,0x17,0x04,0xaa,0x19,0x8a,0x18,0x85,0x16,0x19,0x75,0x1a,0x06,0x75,0x0d, - 0x17,0x75,0x0e,0x00,0x75,0x0f,0x40,0x75,0x10,0x04,0x75,0x82,0x7f,0x12,0x05, - 0xc9,0x75,0x11,0x00,0x75,0x82,0x7f,0x12,0x06,0x07,0xd2,0x04,0x02,0x0b,0x93, - 0xe5,0x17,0x24,0xfc,0x50,0x7a,0x30,0x00,0x77,0x90,0x0d,0xcb,0x75,0xf0,0x80, - 0x12,0x03,0x2c,0x90,0x0d,0xce,0x75,0xf0,0x80,0x12,0x03,0x2c,0xc2,0x02,0x75, - 0x82,0xff,0x12,0x06,0x9f,0x7a,0x03,0xc3,0xea,0x95,0x17,0x50,0x12,0xc2,0x02, - 0x75,0x82,0x00,0xc0,0x02,0x12,0x06,0x9f,0x12,0x03,0xad,0xd0,0x02,0x0a,0x80, - 0xe8,0xd2,0x81,0x90,0x0d,0xcb,0x75,0xf0,0x80,0x12,0x03,0x2c,0x80,0x36,0x75, - 0x82,0x02,0x12,0x03,0xad,0x75,0x0c,0x04,0x90,0x00,0x17,0x75,0xf0,0x40,0x12, - 0x03,0x73,0xc2,0x02,0x75,0x82,0xff,0x12,0x06,0x9f,0x7a,0x03,0xc3,0xea,0x95, - 0x17,0x50,0x12,0xc2,0x02,0x75,0x82,0x00,0xc0,0x02,0x12,0x06,0x9f,0x12,0x03, - 0xad,0xd0,0x02,0x0a,0x80,0xe8,0xd2,0x81,0x75,0x82,0x36,0x12,0x06,0x90,0x75, - 0x82,0xf5,0x12,0x06,0x78,0xaa,0x82,0xba,0x01,0xf5,0x75,0x82,0x3a,0x12,0x06, - 0x90,0x30,0x04,0x08,0x75,0x82,0x35,0x12,0x06,0x90,0x80,0x38,0x75,0x82,0x34, - 0x12,0x06,0x90,0x80,0x30,0x75,0x82,0xf5,0x12,0x06,0x78,0xaa,0x82,0xba,0x0d, - 0x02,0x80,0x23,0x75,0x82,0x36,0x12,0x06,0x90,0x75,0x82,0xf5,0x12,0x06,0x78, - 0xaa,0x82,0xba,0x01,0xf5,0x75,0x82,0x3a,0x12,0x06,0x90,0x75,0x82,0x3b,0x12, - 0x06,0x90,0x75,0x82,0x34,0x12,0x06,0x90,0x75,0x93,0x40,0x75,0x94,0x02,0xd0, - 0xd0,0xd0,0x01,0xd0,0x00,0xd0,0x07,0xd0,0x06,0xd0,0x05,0xd0,0x04,0xd0,0x03, - 0xd0,0x02,0xd0,0x83,0xd0,0x82,0xd0,0xf0,0xd0,0xe0,0xd0,0x21,0x32,0x7a,0x01, - 0xea,0x60,0x3f,0x75,0x82,0x3d,0xc0,0x02,0x12,0x06,0x90,0xe5,0x82,0xd0,0x02, - 0x54,0xf0,0xfb,0x60,0x21,0xbb,0x10,0x02,0x80,0x0f,0xbb,0x70,0xe4,0x75,0x82, - 0x3b,0xc0,0x02,0x12,0x06,0x90,0xd0,0x02,0x80,0xd8,0x30,0x03,0x06,0x75,0x82, - 0x36,0x12,0x06,0x90,0x7a,0x00,0x80,0xcb,0x20,0x03,0x06,0x75,0x82,0x34,0x12, - 0x06,0x90,0x7a,0x00,0x80,0xbe,0x22,0xaa,0x82,0x75,0x1b,0x01,0x8a,0x1c,0xc2, - 0xe9,0xd2,0x03,0x90,0x0d,0x5f,0xe4,0x93,0xfa,0x74,0xcf,0x5a,0xf5,0x11,0x75, - 0x82,0x18,0x12,0x06,0x07,0x75,0x82,0x36,0x12,0x06,0x90,0x75,0x82,0x33,0x12, - 0x06,0x90,0x12,0x0c,0x10,0x7a,0x00,0x7b,0x00,0x8a,0x04,0x8b,0x05,0x0a,0xba, - 0x00,0x01,0x0b,0xc3,0xec,0x94,0xfa,0xed,0x94,0x00,0x50,0x25,0x75,0x0d,0x1b, - 0x75,0x0e,0x00,0x75,0x0f,0x40,0x75,0x10,0x02,0x75,0x82,0x7f,0xc0,0x02,0xc0, - 0x03,0x12,0x05,0xc9,0x75,0x82,0x35,0x12,0x06,0x90,0x12,0x0c,0x10,0xd0,0x03, - 0xd0,0x02,0x80,0xc9,0x90,0x0d,0x5f,0xe4,0x93,0xf5,0x11,0x75,0x82,0x18,0x12, - 0x06,0x07,0xc2,0x03,0x12,0x0c,0x10,0x75,0x94,0x02,0xd2,0xe9,0x22,0x43,0x89, - 0x01,0xd2,0x8c,0x22,0x20,0xf7,0x10,0x30,0xf6,0x11,0x88,0x83,0xa8,0x82,0x20, - 0xf5,0x07,0xf6,0xa8,0x83,0x75,0x83,0x00,0x22,0xf2,0x80,0xf7,0xf0,0x22,0x20, - 0xf7,0x14,0x30,0xf6,0x14,0x88,0x83,0xa8,0x82,0x20,0xf5,0x07,0xe6,0xa8,0x83, - 0x75,0x83,0x00,0x22,0xe2,0x80,0xf7,0xe4,0x93,0x22,0xe0,0x22,0x75,0x82,0x00, - 0x22,0x0d,0x0a,0x00,0x52,0x65,0x61,0x64,0x79,0x00,0x54,0x58,0x20,0x44,0x6f, - 0x6e,0x65,0x00,0x53,0x79,0x6e,0x74,0x61,0x78,0x20,0x65,0x72,0x72,0x6f,0x72, - 0x00,0x0d,0x0a,0x00,0x2d,0x1b,0x16,0x85,0x0b,0x3b,0x05,0x95,0x03,0xb4,0x02, - 0xc3,0x01,0xd2,0x01,0x59,0x00,0xe1,0x00,0x68,0x29,0x2e,0x06,0x47,0xd3,0x91, - 0x3e,0x1a,0x45,0x01,0x01,0x06,0x00,0x10,0x0b,0xda,0x8a,0x75,0x13,0x22,0xc1, - 0x35,0x07,0x03,0x38,0x16,0x6c,0x43,0x40,0x91,0x46,0x50,0x78,0x56,0x10,0xa9, - 0x0a,0x00,0x11,0x41,0x00,0x57,0x7f,0x3f,0x98,0x31,0x0b,0x0d,0x0a,0x00,0x54, - 0x58,0x20,0x44,0x6f,0x6e,0x65,0x00,0x52,0x65,0x67,0x20,0x30,0x78,0x00,0x20, - 0x3d,0x20,0x30,0x78,0x00,0x20,0x20,0x20,0x00,0x50,0x41,0x54,0x41,0x42,0x4c, - 0x45,0x5b,0x00,0x5d,0x20,0x3d,0x20,0x30,0x78,0x00,0x20,0x20,0x00,0x43,0x43, - 0x31,0x31,0x30,0x30,0x20,0x52,0x65,0x61,0x64,0x20,0x53,0x74,0x61,0x74,0x75, - 0x73,0x3a,0x20,0x00,0x20,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x53,0x74,0x61, - 0x74,0x75,0x73,0x3a,0x20,0x00,0x0d,0x0a,0x00,0x52,0x58,0x3a,0x20,0x00,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -}; diff --git a/boop/trunk/tools/toolsmenu.c b/boop/trunk/tools/toolsmenu.c deleted file mode 100644 index d2b3173..0000000 --- a/boop/trunk/tools/toolsmenu.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - 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 3 of the License, 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, see . -*/ -#include "global.h" -#include "menu.h" -#include "scart_icp.h" -#include "redirector.h" -#include "fs20.h" - -const struct MENU_ENTRY toolsMenuEntries[] = -{ - { scart_icp, 0, FUNCENTRY, "Scart ICP", "Program the SCART unit" }, // tools/scarticp.c -#if FF_UART_REDIRECT - { uarto_redirector, 0, FUNCENTRY, "Redirector", "Serial redirector" }, // serial/redirector.c -#endif - { fs20_decoder, 0, FUNCENTRY, "FS20 decoder", "FS20 decoder" } // cc1100/fs20.c - -}; - -const struct MENU toolsMenu = -{ - NUM_OF_ELEMENTS (toolsMenuEntries), (MENU_ENTRY*)&toolsMenuEntries, "Tools" -}; diff --git a/boop/trunk/tools/toolsmenu.h b/boop/trunk/tools/toolsmenu.h deleted file mode 100644 index 4411339..0000000 --- a/boop/trunk/tools/toolsmenu.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - 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 3 of the License, 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, see . -*/ - -#ifndef TOOLSMENU_H -#define TOOLSMENU_H - -extern const struct MENU toolsMenu; - -#endif diff --git a/lpctool/trunk/ChangeLog b/lpctool/ChangeLog similarity index 100% rename from lpctool/trunk/ChangeLog rename to lpctool/ChangeLog diff --git a/lpctool/trunk/Makefile b/lpctool/Makefile similarity index 100% rename from lpctool/trunk/Makefile rename to lpctool/Makefile diff --git a/lpctool/trunk/Makefile.local.WinARM b/lpctool/Makefile.local.WinARM similarity index 100% rename from lpctool/trunk/Makefile.local.WinARM rename to lpctool/Makefile.local.WinARM diff --git a/lpctool/trunk/Makefile.local.linuxARM b/lpctool/Makefile.local.linuxARM similarity index 100% rename from lpctool/trunk/Makefile.local.linuxARM rename to lpctool/Makefile.local.linuxARM diff --git a/lpctool/trunk/bin2h.c b/lpctool/bin2h.c similarity index 100% rename from lpctool/trunk/bin2h.c rename to lpctool/bin2h.c diff --git a/lpctool/trunk/bootcom.c b/lpctool/bootcom.c similarity index 100% rename from lpctool/trunk/bootcom.c rename to lpctool/bootcom.c diff --git a/lpctool/trunk/bootcom.h b/lpctool/bootcom.h similarity index 100% rename from lpctool/trunk/bootcom.h rename to lpctool/bootcom.h diff --git a/boop/trunk/display/fonts/charset.bits b/lpctool/charset.bits similarity index 100% rename from boop/trunk/display/fonts/charset.bits rename to lpctool/charset.bits diff --git a/boop/trunk/display/fonts/charset.info b/lpctool/charset.info similarity index 100% rename from boop/trunk/display/fonts/charset.info rename to lpctool/charset.info diff --git a/lpctool/trunk/crt.s b/lpctool/crt.s similarity index 100% rename from lpctool/trunk/crt.s rename to lpctool/crt.s diff --git a/lpctool/trunk/flash.c b/lpctool/flash.c similarity index 100% rename from lpctool/trunk/flash.c rename to lpctool/flash.c diff --git a/lpctool/trunk/flash.h b/lpctool/flash.h similarity index 100% rename from lpctool/trunk/flash.h rename to lpctool/flash.h diff --git a/lpctool/trunk/fonty.c b/lpctool/fonty.c similarity index 100% rename from lpctool/trunk/fonty.c rename to lpctool/fonty.c diff --git a/lpctool/trunk/fonty.h b/lpctool/fonty.h similarity index 100% rename from lpctool/trunk/fonty.h rename to lpctool/fonty.h diff --git a/lpctool/trunk/infohelper.c b/lpctool/infohelper.c similarity index 100% rename from lpctool/trunk/infohelper.c rename to lpctool/infohelper.c diff --git a/lpctool/trunk/infohelper.h b/lpctool/infohelper.h similarity index 100% rename from lpctool/trunk/infohelper.h rename to lpctool/infohelper.h diff --git a/lpctool/trunk/irq.c b/lpctool/irq.c similarity index 100% rename from lpctool/trunk/irq.c rename to lpctool/irq.c diff --git a/lpctool/trunk/lcd.c b/lpctool/lcd.c similarity index 100% rename from lpctool/trunk/lcd.c rename to lpctool/lcd.c diff --git a/lpctool/trunk/lcd.h b/lpctool/lcd.h similarity index 100% rename from lpctool/trunk/lcd.h rename to lpctool/lcd.h diff --git a/lpctool/trunk/lpc2220.h b/lpctool/lpc2220.h similarity index 100% rename from lpctool/trunk/lpc2220.h rename to lpctool/lpc2220.h diff --git a/lpctool/trunk/lpc2220.ld b/lpctool/lpc2220.ld similarity index 100% rename from lpctool/trunk/lpc2220.ld rename to lpctool/lpc2220.ld diff --git a/lpctool/trunk/lpc2220_rom.ld b/lpctool/lpc2220_rom.ld similarity index 100% rename from lpctool/trunk/lpc2220_rom.ld rename to lpctool/lpc2220_rom.ld diff --git a/lpctool/trunk/lpctool.c b/lpctool/lpctool.c similarity index 100% rename from lpctool/trunk/lpctool.c rename to lpctool/lpctool.c diff --git a/lpctool/trunk/lpctool_serial.c b/lpctool/lpctool_serial.c similarity index 100% rename from lpctool/trunk/lpctool_serial.c rename to lpctool/lpctool_serial.c diff --git a/lpctool/trunk/lpctool_serial.h b/lpctool/lpctool_serial.h similarity index 100% rename from lpctool/trunk/lpctool_serial.h rename to lpctool/lpctool_serial.h diff --git a/lpctool/trunk/ramtool.c b/lpctool/ramtool.c similarity index 100% rename from lpctool/trunk/ramtool.c rename to lpctool/ramtool.c diff --git a/lpctool/trunk/serial.c b/lpctool/serial.c similarity index 100% rename from lpctool/trunk/serial.c rename to lpctool/serial.c diff --git a/lpctool/trunk/serial.h b/lpctool/serial.h similarity index 100% rename from lpctool/trunk/serial.h rename to lpctool/serial.h diff --git a/lpctool/trunk/toolcmd.h b/lpctool/toolcmd.h similarity index 100% rename from lpctool/trunk/toolcmd.h rename to lpctool/toolcmd.h diff --git a/lpctool/trunk/toolcom.c b/lpctool/toolcom.c similarity index 100% rename from lpctool/trunk/toolcom.c rename to lpctool/toolcom.c diff --git a/lpctool/trunk/toolcom.h b/lpctool/toolcom.h similarity index 100% rename from lpctool/trunk/toolcom.h rename to lpctool/toolcom.h diff --git a/lpctool/trunk/charset.bits b/lpctool/trunk/charset.bits deleted file mode 100644 index 307a269..0000000 --- a/lpctool/trunk/charset.bits +++ /dev/null @@ -1,118 +0,0 @@ -const unsigned char charset_bits[] = { - 0x80, 0xc0, 0x80, 0xe0, 0x80, 0xc0, 0x80, 0xf0, 0x01, 0x03, 0x01, 0x07, - 0x01, 0x03, 0x01, 0x0f, 0x80, 0x88, 0xaa, 0xff, 0xff, 0xaa, 0x88, 0x80, - 0x00, 0xc0, 0x00, 0xe0, 0x00, 0xc0, 0x00, 0xf0, 0x00, 0x03, 0x00, 0x07, - 0x00, 0x03, 0x00, 0x0f, 0x80, 0x88, 0xaa, 0xab, 0xab, 0xaa, 0x88, 0x80, - 0x80, 0x80, 0x80, 0x70, 0x01, 0x01, 0x01, 0x0e, 0x0e, 0x01, 0x01, 0x01, - 0x70, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x24, - 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x80, 0x00, 0x80, - 0x00, 0x80, 0x00, 0x92, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xaa, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xaa, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x81, - 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xaa, 0x02, 0x05, 0x02, 0x00, - 0x3e, 0x41, 0x41, 0x22, 0x02, 0x05, 0x02, 0x00, 0x7f, 0x09, 0x09, 0x01, - 0x1c, 0x22, 0x41, 0x4f, 0x41, 0x22, 0x1c, 0x1c, 0x22, 0x41, 0x4f, 0x47, - 0x22, 0x1c, 0x1c, 0x22, 0x41, 0x4f, 0x4f, 0x2e, 0x1c, 0x1c, 0x22, 0x41, - 0x4f, 0x5f, 0x3e, 0x1c, 0x1c, 0x22, 0x41, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, - 0x22, 0x71, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, 0x3a, 0x79, 0x7f, 0x7f, 0x3e, - 0x1c, 0x1c, 0x3e, 0x7d, 0x7f, 0x7f, 0x3e, 0x1c, 0x1c, 0x3e, 0x7f, 0x7f, - 0x7f, 0x3e, 0x1c, 0x00, 0x00, 0x5f, 0x03, 0x00, 0x03, 0x14, 0x7f, 0x14, - 0x7f, 0x14, 0x24, 0x4a, 0xff, 0x4a, 0x32, 0x63, 0x13, 0x08, 0x64, 0x63, - 0x36, 0x49, 0x55, 0x22, 0x50, 0x03, 0x1c, 0x22, 0x41, 0x41, 0x22, 0x1c, - 0x14, 0x08, 0x3e, 0x08, 0x14, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x80, 0x60, - 0x60, 0x08, 0x08, 0x08, 0x08, 0x08, 0x60, 0x60, 0xc0, 0x30, 0x0c, 0x03, - 0x3e, 0x51, 0x49, 0x45, 0x3e, 0x00, 0x42, 0x7f, 0x40, 0x00, 0x42, 0x61, - 0x51, 0x49, 0x46, 0x22, 0x41, 0x49, 0x49, 0x36, 0x18, 0x14, 0x12, 0x7f, - 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3e, 0x49, 0x49, 0x49, 0x32, 0x61, - 0x11, 0x09, 0x05, 0x03, 0x36, 0x49, 0x49, 0x49, 0x36, 0x26, 0x49, 0x49, - 0x49, 0x3e, 0x6c, 0x6c, 0x80, 0x6c, 0x6c, 0x08, 0x14, 0x22, 0x41, 0x14, - 0x14, 0x14, 0x14, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x51, 0x09, 0x06, - 0x3e, 0x41, 0x59, 0x55, 0x5e, 0x7e, 0x09, 0x09, 0x09, 0x7e, 0x7f, 0x49, - 0x49, 0x49, 0x36, 0x3e, 0x41, 0x41, 0x41, 0x22, 0x7f, 0x41, 0x41, 0x41, - 0x3e, 0x7f, 0x49, 0x49, 0x41, 0x41, 0x7f, 0x09, 0x09, 0x01, 0x01, 0x3e, - 0x41, 0x41, 0x49, 0x3a, 0x7f, 0x08, 0x08, 0x08, 0x7f, 0x41, 0x7f, 0x41, - 0x30, 0x41, 0x41, 0x41, 0x3f, 0x7f, 0x08, 0x14, 0x22, 0x41, 0x7f, 0x40, - 0x40, 0x40, 0x40, 0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x7f, 0x02, 0x04, 0x08, - 0x7f, 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x7f, 0x09, 0x09, 0x09, 0x06, 0x3e, - 0x41, 0x41, 0x41, 0xbe, 0x7f, 0x09, 0x09, 0x09, 0x76, 0x26, 0x49, 0x49, - 0x49, 0x32, 0x01, 0x01, 0x7f, 0x01, 0x01, 0x3f, 0x40, 0x40, 0x40, 0x3f, - 0x1f, 0x20, 0x40, 0x20, 0x1f, 0x7f, 0x20, 0x10, 0x20, 0x7f, 0x41, 0x22, - 0x1c, 0x22, 0x41, 0x07, 0x08, 0x70, 0x08, 0x07, 0x61, 0x51, 0x49, 0x45, - 0x43, 0x7f, 0x41, 0x41, 0x03, 0x0c, 0x30, 0xc0, 0x41, 0x41, 0x7f, 0x02, - 0x01, 0x02, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01, 0x02, 0x20, 0x54, 0x54, - 0x78, 0x7f, 0x48, 0x48, 0x30, 0x38, 0x44, 0x44, 0x24, 0x30, 0x48, 0x48, - 0x7f, 0x38, 0x54, 0x54, 0x18, 0x08, 0x7e, 0x09, 0x02, 0x98, 0xa4, 0xa4, - 0x78, 0x7f, 0x08, 0x08, 0x70, 0x44, 0x7d, 0x40, 0x44, 0x84, 0x7d, 0x7f, - 0x10, 0x28, 0x44, 0x41, 0x7f, 0x40, 0x7c, 0x04, 0x18, 0x04, 0x78, 0x7c, - 0x08, 0x04, 0x78, 0x38, 0x44, 0x44, 0x38, 0xfc, 0x24, 0x24, 0x18, 0x18, - 0x24, 0x24, 0xfc, 0x7c, 0x08, 0x04, 0x08, 0x48, 0x54, 0x54, 0x24, 0x04, - 0x3f, 0x44, 0x3c, 0x40, 0x20, 0x7c, 0x1c, 0x20, 0x40, 0x20, 0x1c, 0x3c, - 0x40, 0x30, 0x40, 0x3c, 0x44, 0x28, 0x10, 0x28, 0x44, 0x9c, 0xa0, 0xa0, - 0x7c, 0x64, 0x54, 0x54, 0x4c, 0x08, 0x36, 0x41, 0x77, 0x41, 0x36, 0x08, - 0x08, 0x08, 0x2a, 0x1c, 0x08, 0x08, 0x1c, 0x2a, 0x08, 0x08, 0x00, 0x00, - 0x00, 0xdf, 0xdf, 0x07, 0x07, 0x00, 0x07, 0x07, 0x14, 0x3e, 0x14, 0x3e, - 0x14, 0x24, 0x4a, 0xff, 0x4a, 0x32, 0xf3, 0xfb, 0x18, 0xdf, 0xc7, 0x36, - 0x49, 0x55, 0x22, 0x50, 0x04, 0x07, 0x03, 0x3c, 0x7e, 0xc3, 0x81, 0x81, - 0xc3, 0x7e, 0x3c, 0x14, 0x08, 0x3e, 0x08, 0x14, 0x18, 0x7e, 0x7e, 0x18, - 0x80, 0x60, 0x60, 0x18, 0x18, 0x18, 0x18, 0x18, 0x60, 0x60, 0xc0, 0xf0, - 0x3c, 0x0f, 0x03, 0x7e, 0xff, 0xc3, 0xff, 0x7e, 0x04, 0xc6, 0xff, 0xff, - 0xc0, 0xe6, 0xf7, 0xd3, 0xdf, 0xce, 0x42, 0xc3, 0xdb, 0xff, 0x76, 0x38, - 0x3c, 0x36, 0xff, 0xff, 0x5f, 0xdf, 0xdb, 0xfb, 0x73, 0x7e, 0xff, 0xdb, - 0xfb, 0x72, 0x03, 0xf3, 0xfb, 0x0f, 0x07, 0x76, 0xff, 0xdb, 0xff, 0x76, - 0x4e, 0xdf, 0xdb, 0xff, 0x7e, 0x6c, 0x6c, 0x80, 0x6c, 0x6c, 0x18, 0x3c, - 0x66, 0xc3, 0x81, 0x36, 0x36, 0x36, 0x36, 0x81, 0xc3, 0x66, 0x3c, 0x18, - 0x06, 0xd3, 0xd9, 0x0f, 0x06, 0x7e, 0xc3, 0xdb, 0xd7, 0xde, 0xfe, 0xff, - 0x33, 0xff, 0xfe, 0xff, 0xff, 0xdb, 0xff, 0x66, 0x7e, 0xff, 0xc3, 0xe7, - 0x66, 0xff, 0xff, 0xc3, 0xff, 0x7e, 0xff, 0xff, 0xdb, 0xdb, 0xc3, 0xff, - 0xff, 0x1b, 0x1b, 0x03, 0x7e, 0xff, 0xc3, 0xfb, 0x7a, 0xff, 0xff, 0x18, - 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0x60, 0xe3, 0xc3, 0xff, 0x7f, 0xff, - 0xff, 0x1c, 0xf7, 0xe3, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xfe, 0x0c, - 0xfe, 0xff, 0xff, 0xfe, 0x18, 0x7f, 0xff, 0x7e, 0xff, 0xc3, 0xff, 0x7e, - 0xff, 0xff, 0x1b, 0x1f, 0x0e, 0x7e, 0xff, 0xc3, 0x7f, 0xde, 0xff, 0xff, - 0x1b, 0xff, 0xee, 0x4e, 0xdf, 0xdb, 0xfb, 0x72, 0x03, 0xff, 0xff, 0x03, - 0x03, 0x7f, 0xff, 0xc0, 0xff, 0x7f, 0x3f, 0x7f, 0xc0, 0x7f, 0x3f, 0xff, - 0x7f, 0x30, 0x7f, 0xff, 0xe7, 0xe7, 0x18, 0x18, 0xe7, 0xe7, 0x0f, 0x1f, - 0xf0, 0x1f, 0x0f, 0xe3, 0xf3, 0xdb, 0xcf, 0xc7, 0xff, 0xff, 0xc3, 0xc3, - 0x03, 0x0f, 0x3c, 0xf0, 0xc0, 0xc3, 0xc3, 0xff, 0xff, 0x04, 0x06, 0x03, - 0x06, 0x04, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x03, 0x07, 0x60, 0xf4, 0xd4, - 0xf4, 0xf8, 0xff, 0xff, 0xcc, 0xfc, 0x78, 0x78, 0xfc, 0xcc, 0xcc, 0x48, - 0x78, 0xfc, 0xcc, 0xff, 0xff, 0x78, 0xfc, 0xac, 0xbc, 0xb8, 0x18, 0xfe, - 0xff, 0x1b, 0x1b, 0xb8, 0xbc, 0xac, 0xfc, 0x78, 0xff, 0xff, 0x18, 0xf8, - 0xf0, 0xcc, 0xfd, 0xfd, 0xc0, 0xc0, 0xcc, 0xfd, 0x7d, 0xff, 0xff, 0x10, - 0xfc, 0xec, 0x7f, 0xff, 0xc0, 0xc0, 0xfc, 0xfc, 0x0c, 0xfc, 0x0c, 0xfc, - 0xf8, 0xfc, 0xf8, 0x0c, 0xfc, 0xf8, 0x78, 0xfc, 0xcc, 0xfc, 0x78, 0xfc, - 0xfc, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xfc, 0xf8, 0xfc, 0xf8, 0x0c, - 0x1c, 0x18, 0xd8, 0xdc, 0xfc, 0xec, 0x6c, 0x0c, 0x7f, 0xff, 0xcc, 0xcc, - 0x7c, 0xfc, 0xc0, 0x7c, 0xfc, 0x3c, 0x7c, 0xc0, 0x7c, 0x3c, 0x7c, 0xfc, - 0xc0, 0x60, 0xc0, 0xfc, 0x7c, 0xcc, 0xfc, 0x30, 0xfc, 0xdc, 0x9c, 0xbc, - 0xb0, 0xfc, 0x7c, 0xcc, 0xec, 0xfc, 0xdc, 0xcc, 0x10, 0x56, 0xef, 0x81, - 0xef, 0xef, 0x81, 0xee, 0x56, 0x10, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x18, - 0x3c, 0x7e, 0x18, 0x18, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, - 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xe3, 0xf1, 0xf8, 0x7c, - 0x3e, 0x1f, 0x8f, 0xc7, 0xf1, 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, - 0xf8, 0x7c, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0x7c, 0x3e, 0x1f, 0x8f, - 0xc7, 0xe3, 0xf1, 0xf8, 0x3e, 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, - 0x1f, 0x8f, 0xc7, 0xe3, 0xf1, 0xf8, 0x7c, 0x3e, 0xff, 0xff, 0xe7, 0xc3, - 0xc3, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xc3, 0xc3, 0xe7, 0xff, 0xff, - 0xff, 0xf8, 0xe0, 0xc0, 0xc0, 0xe0, 0xf8, 0xff, 0xff, 0x1f, 0x07, 0x03, - 0x03, 0x07, 0x1f, 0xff, 0x1c, 0x3e, 0x77, 0x63, 0x77, 0x3e, 0x1c, 0x1c, - 0x36, 0x63, 0x41, 0x63, 0x36, 0x1c, 0x1c, 0x08, 0x41, 0x63, 0x41, 0x08, - 0x1c, 0x08, 0x14, 0x22, 0x49, 0x22, 0x14, 0x08, 0x55, 0xaa, 0x55, 0xaa, - 0x55, 0xaa, 0x55, 0xaa, 0x33, 0x33, 0xcc, 0xcc, 0x33, 0x33, 0xcc, 0xcc, - 0x33, 0x33, 0x0e, 0x11, 0x0e, 0x12, 0x1f, 0x10, 0x19, 0x15, 0x12, 0x11, - 0x15, 0x0a, 0x07, 0x04, 0x1e, 0x17, 0x15, 0x09, 0x0e, 0x15, 0x09, 0x01, - 0x1d, 0x03, 0x0a, 0x15, 0x0a, 0x12, 0x15, 0x0e, 0x0a, 0x10, 0x0a, 0x04, - 0x0a, 0x11, 0x0a, 0x0a, 0x0a, 0x11, 0x0a, 0x04, 0x01, 0x15, 0x02, 0x01, - 0x03, 0x07, 0x03, 0x01, 0x04, 0x06, 0x07, 0x06, 0x04, 0x04, 0x0e, 0x1f, - 0x1f, 0x0e, 0x04, 0x18, 0x3c, 0x7e, 0x7e, 0x3c, 0x18, 0x3c, 0x42, 0x81, - 0x81, 0x81, 0x81, 0x42, 0x3c, 0x3c, 0x42, 0x99, 0xbd, 0xbd, 0x99, 0x42, - 0x3c, 0x7f, 0x49, 0x41, 0x6b, 0x41, 0x49, 0x7f, 0x80, 0x40, 0x20, 0x10, - 0x0f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0x3e, 0x01, 0x01, 0x01, - 0x01, 0x02, 0x04, 0x38, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x01, - 0x15, 0x0a, 0x15, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/lpctool/trunk/charset.info b/lpctool/trunk/charset.info deleted file mode 100644 index 5c205b8..0000000 --- a/lpctool/trunk/charset.info +++ /dev/null @@ -1,22 +0,0 @@ -const unsigned char charset_info[] = { -0x08, 0x84, 0x48, 0x84, 0x44, 0x44, 0x48, 0x88, // 0- 15 graticule & borders -0x88, 0x88, 0x88, 0x87, 0x77, 0x77, 0x77, 0x77, // 16- 31 graticule & symbols -0x21, 0x35, 0x55, 0x51, 0x33, 0x55, 0x35, 0x24, // 32- 47 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x55, 0x23, 0x44, 0x45, // 48- 63 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x53, 0x55, 0x55, 0x55, // 64- 80 ascii, font 1 -0x55, 0x55, 0x55, 0x55, 0x55, 0x53, 0x43, 0x35, // 80- 95 ascii, font 1 -0x24, 0x44, 0x44, 0x44, 0x43, 0x34, 0x35, 0x44, // 96-112 ascii, font 1 -0x44, 0x44, 0x34, 0x55, 0x54, 0x43, 0x13, 0x55, // 112-127 ascii, font 1 -0x32, 0x55, 0x55, 0x53, 0x44, 0x54, 0x35, 0x25, // 128-143 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x55, 0x23, 0x54, 0x55, // 144-159 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x54, 0x55, 0x55, 0x55, // 160-175 ascii, bold font -0x55, 0x55, 0x55, 0x55, 0x65, 0x54, 0x54, 0x55, // 176-191 ascii, bold font -0x25, 0x55, 0x55, 0x55, 0x54, 0x45, 0x47, 0x55, // 192-207 ascii, bold font -0x55, 0x55, 0x55, 0x57, 0x55, 0x54, 0x24, 0x55, // 208-223 ascii, bold font -0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, // 224-239 symbols -0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 240-255 symbols -0x33, 0x33, 0x33, 0x33, 0x33, 0x12, 0x33, 0x33, // 256-271 small numbers -0x55, 0x33, 0x68, 0x87, 0x84, 0x44, 0x44, 0x44 // 272-288 symbols -}; - -const unsigned char charset_dlines = 1; From ce5c67e0dad39830120d95160ec275894a001bfa Mon Sep 17 00:00:00 2001 From: Telekatz Date: Wed, 5 Jul 2017 23:28:48 +0200 Subject: [PATCH 07/15] Adapt makefile --- boop/Makefile | 8 ++++---- boop/Makefile.local | 24 ------------------------ 2 files changed, 4 insertions(+), 28 deletions(-) delete mode 100644 boop/Makefile.local diff --git a/boop/Makefile b/boop/Makefile index 772c841..f94182d 100644 --- a/boop/Makefile +++ b/boop/Makefile @@ -18,10 +18,10 @@ ############################################################### -ARMBASE=/opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH=$(ARMBASE)/include -ARMPATH=$(ARMBASE)/bin -TOOLPREFIX=/arm-none-eabi- +#ARMBASE=/opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 +#INCLUDEPATH=$(ARMBASE)/include +#ARMPATH=$(ARMBASE)/bin +TOOLPREFIX= arm-none-eabi- BOOTLOADER_DEVICE=/dev/ttyUSB0 ############################################################### diff --git a/boop/Makefile.local b/boop/Makefile.local deleted file mode 100644 index a7db5e9..0000000 --- a/boop/Makefile.local +++ /dev/null @@ -1,24 +0,0 @@ -############################################################### -##### -##### Makefile.local.WinARM for boop -##### Created in the early morninghours -##### -##### Makefile.local.WinARM V1.0 by alterego - alteregon@gmx.net -##### -############################################################### - -############################################################### -##### -##### PATHS (default installation) -##### -##### You can put your path-config into Makefile.local -##### to override these defaults -##### -############################################################### - -ARMBASE=/opt/toolchains/gcc-arm-none-eabi-4_9-2014q4 -INCLUDEPATH=$(ARMBASE)/include -ARMPATH=$(ARMBASE)/bin -TOOLPREFIX=/arm-none-eabi- - -######################## EOF ################################## From 986751eb5d5a25e5f78fca4c2bad0c66ae80796e Mon Sep 17 00:00:00 2001 From: Telekatz Date: Thu, 13 Jul 2017 20:51:20 +0200 Subject: [PATCH 08/15] Adapt to OpenOCD 0.10.0 --- boop/Makefile | 13 +++++++------ boop/betty.cfg | 36 ++++++++++++++++++++++++------------ boop/boop_rom.bin | Bin 256508 -> 256524 bytes boop/cc1100/rf.c | 2 +- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/boop/Makefile b/boop/Makefile index 8109d9a..8a4eaf4 100644 --- a/boop/Makefile +++ b/boop/Makefile @@ -25,8 +25,9 @@ #ARMPATH = $(ARMBASE)/bin/ TOOLPREFIX = arm-none-eabi- LPCTOOL = lpctool -OPENOCDPATH = F:\Tools\OpenOCD -OPENOCD = $(OPENOCDPATH)\openocd.exe -f betty.cfg -f $(OPENOCDPATH)\interface\uniprog.cfg +OPENOCDPATH = F:\Tools\OpenOCD_0_10 +#OPENOCD = $(OPENOCDPATH)\bin\openocd.exe -f $(OPENOCDPATH)\scripts\interface\jlink.cfg -f betty.cfg +OPENOCD = $(OPENOCDPATH)\bin\openocd.exe -f $(OPENOCDPATH)\scripts\interface\uniprog.cfg -f betty.cfg ############################################################### ##### @@ -42,12 +43,9 @@ OD = $(ARMPATH)$(TOOLPREFIX)objdump SIZE = $(ARMPATH)$(TOOLPREFIX)size CPUFLAGS = -mcpu=arm7tdmi-s -OPTFLAGS = -Os -CFLAGS = -Wall -mthumb-interwork +CFLAGS = -Wall -mthumb-interwork -g3 -c INC = -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc -Itools ASFLAGS = -g -I. -mthumb-interwork -#LDFLAGS = -Tlpc2220_rom.ld -Map boop.map -#LIBS = -lc -lgcc LDFLAGS = -mthumb-interwork -nostartfiles -Xlinker -Map -Xlinker boop.map -Tlpc2220_rom.ld THUMBFLAGS = -mthumb @@ -55,6 +53,9 @@ COMPILE = $(CC) $(CPUFLAGS) $(CFLAGS) $(INC) ifeq ($(MAKECMDGOALS),debug) COMPILE += -D DEBUGMODE + OPTFLAGS = -O0 +else + OPTFLAGS = -Os endif ifeq ($(MAKECMDGOALS),release) diff --git a/boop/betty.cfg b/boop/betty.cfg index 77e37d7..4ac8704 100644 --- a/boop/betty.cfg +++ b/boop/betty.cfg @@ -20,24 +20,31 @@ if { [info exists CPUTAPID ] } { } #coonfigure reset options -jtag_nsrst_delay 50 -jtag_ntrst_delay 50 +adapter_nsrst_delay 1 +jtag_ntrst_delay 1 #use combined on interfaces or targets that can't set TRST/SRST separately -reset_config trst_and_srst srst_pulls_trst trst_push_pull srst_push_pull +reset_config srst_only srst_pulls_trst trst_push_pull srst_push_pull -jtag_khz 1000 +adapter_khz 1000 #jtag scan chain jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID set _TARGETNAME $_CHIPNAME.cpu -target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi +target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME # Event handlers -$_TARGETNAME configure -event reset-start {jtag_khz 1000} +$_TARGETNAME configure -event reset-start {adapter_khz 1000} $_TARGETNAME configure -event reset-init {betty_init} +$_TARGETNAME configure -event gdb-attach { + halt + } + $_TARGETNAME configure -event gdb-attach { + reset init + } + arm7_9 dcc_downloads enable $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x10000 -work-area-backup 0 @@ -45,7 +52,7 @@ $_TARGETNAME configure -work-area-phys 0x40000000 -work-area-size 0x10000 -work- #flash bank [ ] set _FLASHNAME $_CHIPNAME.flash flash bank $_FLASHNAME cfi 0x80000000 0x00100000 2 2 $_TARGETNAME -flash bank $_FLASHNAME cfi 0x82000000 0x00100000 2 2 $_TARGETNAME +#flash bank $_FLASHNAME cfi 0x82000000 0x00100000 2 2 $_TARGETNAME arm7_9 fast_memory_access enable @@ -58,8 +65,8 @@ proc betty_init { } { # PLLCFG: 0x42 = psel = 10 (4) = msel= 00010 (3) = 240 mhz Fcco*/ mww 0xe01fc084 0x42 # Activate PLL settings - #mww 0xe01fc08c 0xaa - #mww 0xe01fc08c 0x55 + mww 0xe01fc08c 0xaa + mww 0xe01fc08c 0x55 #sleep 100 # Memory Bank Configuration @@ -69,7 +76,7 @@ proc betty_init { } { mww 0xffe00008 0x10000420 # BCFG1: 8 bit, 3 sram wst, rble, 5 wst 3 idcy : Betty: LCD @ 0x81000000 - #mww 0xffe00004 0x00000400 + mww 0xffe00004 0x00000400 # GPIO Pin COnfiguration for Flash access # PINSEL0: @@ -88,14 +95,19 @@ proc betty_init { } { mww 0xe0028008 0x002018D0 # disable watchdog - #mww 0xfffffd44 0x00008000 + mww 0xfffffd44 0x00008000 # enable user reset - #mww 0xfffffd08 0xa5000001 + mww 0xfffffd08 0xa5000001 + } proc flash_boop {IMAGE} { reset init + + flash erase_sector 0 0 0 + flash erase_check 0 flash erase_sector 0 0 last + flash erase_check 0 flash write_bank 0 $IMAGE 0 reset run } diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 4e93cbe6f8c2bd8afabccf19e1b93bc17301cf6b..1ffe40663a1127450fd83ebf275f386167125683 100644 GIT binary patch delta 8315 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 delta 8315 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 diff --git a/boop/cc1100/rf.c b/boop/cc1100/rf.c index 00ea4a1..62ce2e2 100644 --- a/boop/cc1100/rf.c +++ b/boop/cc1100/rf.c @@ -413,7 +413,7 @@ void startRFIRQ(void) { VICIntEnable = INT_EINT0; } -inline void stopRFIRQ(void) { +void stopRFIRQ(void) { VICIntEnClr = INT_EINT0; } From 5223cd4e2468bd4fb060f4e2d3ae8430adb54de7 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Fri, 14 Jul 2017 23:38:22 +0200 Subject: [PATCH 09/15] Add b&o to lirc --- boop/audio/soundirq.c | 4 +- boop/boop_rom.bin | Bin 438901 -> 175504 bytes boop/infrared/Make.conf | 4 +- boop/infrared/codes.c | 8 +- boop/infrared/infrared.c | 36 +----- boop/infrared/infrared.h | 23 +--- boop/infrared/infraredirq.c | 11 +- boop/infrared/ir_codes/lirc/beo4 | 1 + boop/infrared/ir_lirc.c | 188 +++++++++++-------------------- boop/infrared/ir_lirc.h | 25 ++-- boop/infrared/pwm.c | 54 +++++++++ boop/infrared/pwm.h | 26 +++++ boop/main.c | 3 + 13 files changed, 184 insertions(+), 199 deletions(-) create mode 100644 boop/infrared/ir_codes/lirc/beo4 create mode 100644 boop/infrared/pwm.c create mode 100644 boop/infrared/pwm.h diff --git a/boop/audio/soundirq.c b/boop/audio/soundirq.c index d034c08..2b06570 100644 --- a/boop/audio/soundirq.c +++ b/boop/audio/soundirq.c @@ -211,7 +211,7 @@ void __attribute__ ((section(".text.fastcode"))) soundIRQ (void) } } - // backlight pwm +/* // backlight pwm cmp_val += bl_val; if (cmp_val >= 63) { @@ -222,5 +222,5 @@ void __attribute__ ((section(".text.fastcode"))) soundIRQ (void) { FIODIR0 &= ~(1<<4); // sck0/P0.4 } - +*/ } diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 2778e79f8a06111db8099c079626b8198962ce78..5a46ad71d0d38111db69c5a56fbbacb3bce93b28 100644 GIT binary patch literal 175504 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�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 JjKBE)e*qpOu^0dV literal 438901 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%0D=flaV$-e&1O^pCC5ozV&h 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 literal 175504 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�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 JjKBE)e*qpOu^0dV diff --git a/boop/timer/timerfuncs.c b/boop/timer/timerfuncs.c index f7749c1..7467050 100644 --- a/boop/timer/timerfuncs.c +++ b/boop/timer/timerfuncs.c @@ -42,7 +42,7 @@ void startTimerIRQ(void) T0TCR = 0x02; // reset timer T0TC = 1870; T0PR = 0x0e; // 15.000.000 Hz / 15 = 1.000.000 Hz --> PR = 15 - 1 = 0x0e - T0MR0 = 5000; // 1.000.000 Hz / 5000 = 200 Hz = 5 msec intervall time + T0MR0 = 250; // 1.000.000 Hz / 250 = 4000 Hz = 0,25msec intervall time T0MCR = 0x03; // reset and issue IRQ on TC == MR0 T0TCR = 0x01; // enable timer diff --git a/boop/timer/timerirq.c b/boop/timer/timerirq.c index a19cfae..873274f 100644 --- a/boop/timer/timerirq.c +++ b/boop/timer/timerirq.c @@ -21,14 +21,37 @@ #include "timerfuncs.h" #include "lcd.h" +#define TIMER_PRESCALER 20 + struct CB callbacks[MAX_CB]; unsigned long* timeouts[MAX_TO]; +unsigned char timerPrescaler = TIMER_PRESCALER; +unsigned char bl_val, cmp_val; // backlight PWM - -// wird alle 5 ms aufgerufen (s. startTimerIRQ() in timerfuncs) +// wird alle 0.25 ms aufgerufen (s. startTimerIRQ() in timerfuncs) // bearbeitet eingetragene "timer" void __attribute__ ((section(".text.fastcode"))) timerIRQ(void) { + // backlight pwm + cmp_val += bl_val; + if (cmp_val >= 63) + { + FIODIR0 |= (1<<4); // sck0/P0.4 + cmp_val -= 63; + } + else + { + FIODIR0 &= ~(1<<4); // sck0/P0.4 + } + + + if(--timerPrescaler) { + T0IR = 1; + return; + } + timerPrescaler = TIMER_PRESCALER; + + //5 msec intervall time unsigned int cnt; struct CB *cur_cb; From 8a8e50dfb917c40b72b9b9e80742b101d4d8002a Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sun, 16 Jul 2017 10:22:52 +0200 Subject: [PATCH 11/15] Fix audio --- boop/audio/sid.c | 2 +- boop/audio/sid.h | 12 ++++++------ boop/audio/sidfiles.h | 2 ++ boop/audio/sound.c | 11 ++++++++++- boop/audio/soundirq.c | 8 ++++++-- boop/boop_rom.bin | Bin 255965 -> 186105 bytes boop/gui/testmenu.c | 18 ++++++++++++++++++ boop/infrared/infrared.c | 6 +++--- boop/infrared/pwm.c | 39 ++++++++++++++++++++++++++++++--------- boop/interrupt/irq.c | 6 +++--- boop/main.c | 4 ++-- 11 files changed, 81 insertions(+), 27 deletions(-) diff --git a/boop/audio/sid.c b/boop/audio/sid.c index 0128d39..9ade33e 100644 --- a/boop/audio/sid.c +++ b/boop/audio/sid.c @@ -157,7 +157,7 @@ void beep(unsigned char n) { SIDsetfrq(0,5001); break; } - PWMPR = 0; + //PWMPR = 0; switchSound(SOUND_ON); SID.flags |= SIDenable; SID.reg[REG_Control] |= GATE; diff --git a/boop/audio/sid.h b/boop/audio/sid.h index e67980f..05833b5 100644 --- a/boop/audio/sid.h +++ b/boop/audio/sid.h @@ -101,12 +101,12 @@ struct SID_ { struct SID_ SID; -unsigned int playtone_cb; -unsigned char *playtone[3]; -unsigned char playstate; -unsigned char tonelen[3]; -unsigned short playcounter; -unsigned short playcountermax; +extern unsigned int playtone_cb; +extern unsigned char *playtone[3]; +extern unsigned char playstate; +extern unsigned char tonelen[3]; +extern unsigned short playcounter; +extern unsigned short playcountermax; void SIDsetfrq(unsigned char voice, unsigned short frq); void SIDsetadsr(unsigned char voice,unsigned char attack, unsigned char decay, unsigned char sustain, unsigned char release); diff --git a/boop/audio/sidfiles.h b/boop/audio/sidfiles.h index 0a4dccb..6f10dde 100644 --- a/boop/audio/sidfiles.h +++ b/boop/audio/sidfiles.h @@ -769,6 +769,7 @@ const unsigned char song1[] = { 0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, 0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, 0xa2,0x25,0x00,0x00,0x21,0x11,0x70,0xd2,0x0f,0x00,0x00,0x21,0x00,0x70, +/* 0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, 0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, 0x1f,0x15,0x00,0x00,0x21,0x11,0x70,0xc3,0x10,0x00,0x00,0x21,0x00,0x70, @@ -1001,4 +1002,5 @@ const unsigned char song1[] = { 0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, 0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70, 0xc1,0x2c,0x00,0x00,0x21,0x11,0x70,0x31,0x1c,0x00,0x00,0x21,0x00,0x70 +*/ }; diff --git a/boop/audio/sound.c b/boop/audio/sound.c index 310ecbc..3eee98c 100644 --- a/boop/audio/sound.c +++ b/boop/audio/sound.c @@ -20,6 +20,7 @@ #include "sound.h" #include "soundirq.h" #include "lpc2220.h" +#include "pwm.h" #define AUTO_OFF_TIME 0x4000 @@ -37,7 +38,7 @@ unsigned char timeout; unsigned int auto_timeout; void startSoundIRQ(void) -{ +{/* timeout = 0; auto_timeout = 0; out1 = 0; @@ -57,6 +58,7 @@ void startSoundIRQ(void) //VICVectCntl0 = VIC_SLOT_EN | INT_SRC_PWM; VICIntSelect |= INT_PWM; VICIntEnable = INT_PWM; + */ } void initSound(void) @@ -67,12 +69,18 @@ void initSound(void) tval = 0; last_sample = 0; bl_val = 0x3F; + timeout = 0; + auto_timeout = 0; + out1 = 0; } void switchSound(unsigned char onoff) { if(onoff) { + + PWM_set_frequency(30864); + sound_shutdown = 0; PINSEL0 &= ~(3 << (2 * SND_PWM)); // IO PINSEL0 |= (2 << (2 * SND_PWM)); // PWM @@ -81,6 +89,7 @@ void switchSound(unsigned char onoff) FIODIR0 |= (1<Vm6=iZq+ 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%0D=flaV$-e&1O^pCC5ozV&h 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 diff --git a/boop/gui/testmenu.c b/boop/gui/testmenu.c index e5af164..333fed4 100644 --- a/boop/gui/testmenu.c +++ b/boop/gui/testmenu.c @@ -29,6 +29,7 @@ #include "ir_selector.h" #include "infrared.h" #include "sid.h" +#include "sidfiles.h" #include "timerfuncs.h" #include "sound.h" #include "lpc2220.h" @@ -934,6 +935,9 @@ void test_sid(void) { draw_string (0, 95, "color keys", LCD_COLOR_B, DRAW_PUT); draw_string (0, 104, "set waveform", LCD_COLOR_B, DRAW_PUT); + draw_string (0, 120, "Mute", LCD_COLOR_B, DRAW_PUT); + draw_string (0, 129, "Raiders March", LCD_COLOR_B, DRAW_PUT); + sysInfo |= SYS_IR; SID.noise = 0xaa; playstate = 0x00; @@ -1052,6 +1056,20 @@ void test_sid(void) { playtone_cb = addTimerCB(SIDplaytone, 4); startCB(playtone_cb); } + } else if (KEY_Mute) + { + if (playstate == 0) + { + playstate = 1; + + playtone[0] = (unsigned char*)&song1[0]; + + playcounter = 0; + playcountermax = sizeof(song1)/14; + + playtone_cb = addTimerCB(SIDplaydump, 4); + startCB(playtone_cb); + } } } while (!KEY_Exit); sysInfo &= ~SYS_IR; diff --git a/boop/infrared/infrared.c b/boop/infrared/infrared.c index 415b303..02f3d25 100644 --- a/boop/infrared/infrared.c +++ b/boop/infrared/infrared.c @@ -62,9 +62,9 @@ void startIrIRQ(void) // T1PR = 0x01; T1MCR = 0x03; - //VICVectAddr1 = (unsigned long)&(irIRQ); - //VICVectCntl1 = VIC_SLOT_EN | INT_SRC_TIMER1; - VICIntSelect |= INT_TIMER1; + VICVectAddr1 = (unsigned long)&(irIRQ); + VICVectCntl1 = VIC_SLOT_EN | INT_SRC_TIMER1; + //VICIntSelect |= INT_TIMER1; VICIntEnable = INT_TIMER1; } diff --git a/boop/infrared/pwm.c b/boop/infrared/pwm.c index 875c3df..d447990 100644 --- a/boop/infrared/pwm.c +++ b/boop/infrared/pwm.c @@ -18,6 +18,7 @@ #include "global.h" #include "lpc2220.h" +#include "irq.h" void PWM_init(void) { @@ -25,24 +26,44 @@ void PWM_init(void) PINSEL1 &= ~(3 << (10)); // IO PINSEL1 |= (1 << (10)); // PWM5 - PWMTC = 0; //Timer Counter - PWMPR = 0; //Prescale Register - PWMPC = 0; //Prescale Counter + PWMTC = 0; //Timer Counter + PWMPR = 0; //Prescale Register + PWMPC = 0; //Prescale Counter - PWMMR0 = 416; // pwm rate - PWMMR5 = 0; // pwm value + PWMMR0 = 416; // pwm rate + PWMMR2 = 0x00; // pwm value sound + PWMMR5 = 0x00; // pwm value IR - PWMLER = 0x21; //Latch Enable - PWMMCR = 0x02; //Match Control - PWMPCR |= (1<<13); + PWMLER = 0x26; //Latch Enable + PWMMCR = 0x03; //Match Control + PWMPCR |= (1<<13) | (1<<10); PWMTCR = 0x03; PWMTCR = 0x09; + /* PWMTC = 0; + PWMPR = 7; + PWMMR0 = 0x1E6; // pwm rate + PWMMR2 = 0x00; // pwm value + PWMLER = 0x05; + PWMPCR = (1<<10); +*/ + + //VICVectAddr0 = (unsigned long)&(soundIRQ); + //VICVectCntl0 = VIC_SLOT_EN | INT_SRC_PWM; + VICIntSelect |= INT_PWM; + VICIntEnable = INT_PWM; + } void PWM_set_frequency(unsigned long f) { - PWMMR0 = 15000000 / f; + if(f<5000) { + PWMPR = 7; + PWMMR0 = 1875000 / f; + } else { + PWMPR = 0; + PWMMR0 = 15000000 / f; + } PWMLER |= 0x01; //Latch Enable } diff --git a/boop/interrupt/irq.c b/boop/interrupt/irq.c index 9c8f965..331fa55 100644 --- a/boop/interrupt/irq.c +++ b/boop/interrupt/irq.c @@ -71,12 +71,12 @@ unsigned restoreIRQ(unsigned oldCPSR) // (where's the vector? in lpc2220_rom.ld ?) void __attribute__ ((section(".text.fastcode"))) FIQ_Routine (void) { - while ((PWMIR == 0x01) || (T1IR == 1)) + //while ((PWMIR == 0x01)) { if (PWMIR == 0x01) soundIRQ(); // sound, backlight - if (T1IR == 1) - irIRQ(); // IR + //if (T1IR == 1) + // irIRQ(); // IR } } diff --git a/boop/main.c b/boop/main.c index e9651c8..00f568f 100644 --- a/boop/main.c +++ b/boop/main.c @@ -243,7 +243,7 @@ int main(void) FIOSET0 |= (1<<12); FIOCLR0 |= (1<<4); - setSpeed(SPEED_30); + setSpeed(SPEED_60); lcd_init(0); serial_init(); @@ -254,7 +254,7 @@ int main(void) initKeys(); initSound(); - startSoundIRQ(); + //startSoundIRQ(); initIR(); startIrIRQ(); From 72b06f49f158e114a305e0ec441901a3f1b52ef1 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sun, 16 Jul 2017 20:42:08 +0200 Subject: [PATCH 12/15] Some bugfix --- boop/boop_rom.bin | Bin 186105 -> 267281 bytes boop/crt.s | 2 +- boop/infrared/ir_codes/lirc/beo4 | 2 +- boop/infrared/ir_lirc.c | 8 ++++---- boop/infrared/pwm.c | 7 +++++++ boop/main.c | 13 ++++++------- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index fda668520dc82aa679e2b00819f4bde75373eb2a..3c0bdbf047a66af3db836544619547d293f5fb4c 100644 GIT binary patch literal 267281 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%0ARySZV=yVZ8tn_;tbl(^pU@Ah2w_}brR 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

-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 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 3 of the License, 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, see . */ /*pre_data*/ 0x00000000, // 2. start bit /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x00, /*gap*/ 18000, // final gap to prevent collision /*repeat_gap*/ 0, /*bits*/ 17, // last(4.) start bit logical low as first data bit ==> 1+16 data bits = 17 /*pre_data_bits*/ 1, // 2. start bit /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 455000, // regular freq is 455kHz but to get a valid result 454,5 is used /*flags*/ LIRC_BO, /*header*/ 200,3125, // 1. start bit /*three*/ 0,0, /*two*/ 0,0, /*one*/ 200,9375, /*zero*/ 200,3125, /*plead*/ 0, /*ptrail*/ 200, // stop bit /*foot*/ 0,0, /*pre*/ 200,15625, //3. start bit /*post*/ 200,12500, // post bit /*repeat*/ 0,0, /*min_repeat*/ 0, /*duty cycle*/ 50, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0xB44B, // Exit -> Exit 0x06F9, // Up -> UP 0x8679, // Down -> Down 0xA659, // Left -> Left 0x46B9, // Right -> Right 0x16E9, // OK -> OK 0x0160, // Vol+ -> Vol+ 0x0164, // Vol- -> Vol- 0xF00F, // Mute -> Mute 0x48B7, // Prog+ -> Prog+ 0x48B7, // Prog- -> Prog- 0x0101, // 1 -> 1 0x0102, // 2 -> 2 0x609F, // 3 -> 3 0x10EF, // 4 -> 4 0x906F, // 5 -> 5 0x50AF, // 6 -> 6 0x30CF, // 7 -> 7 0xB04F, // 8 -> 8 0x708F, // 9 -> 9 0x8877, // 0 -> 0 0xF20D, // -/-- -> Guide 0x0181, // AV -> Source 0x0f0c, // Menu -> Menue 0xD22D, // PiP -> Tools 0x1AE5, // A/B -> Return 0x7C83, // 16:9 -> P.Size 0xF807, // Info -> Info 0xD629, // VTX1 -> Ch.List 0x0000, // VTX2 -> 0xC837, // VTX3 -> Pre-CH 0x6897, // Blue -> Blue 0xA857, // Yello -> Yellow 0x28D7, // Green -> Green 0x36C9, // Red -> Red 0xC23D, // TV -> TV/DTV 0x0f0C // Power -> Standby }, \ No newline at end of file +/* infrared codes for bang & olufsen Copyright (C) 2017 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 3 of the License, 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, see . */ /*pre_data*/ 0x00000000, // 2. start bit /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x00, /*gap*/ 18000, // final gap to prevent collision /*repeat_gap*/ 0, /*bits*/ 17, // last(4.) start bit logical low as first data bit ==> 1+16 data bits = 17 /*pre_data_bits*/ 1, // 2. start bit /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 455000, // regular freq is 455kHz but to get a valid result 454,5 is used /*flags*/ LIRC_BO, /*header*/ 200,3125, // 1. start bit /*three*/ 0,0, /*two*/ 0,0, /*one*/ 200,9375, /*zero*/ 200,3125, /*plead*/ 0, /*ptrail*/ 200, // stop bit /*foot*/ 0,0, /*pre*/ 200,15625, //3. start bit /*post*/ 200,12500, // post bit /*repeat*/ 0,0, /*min_repeat*/ 0, /*duty cycle*/ 30, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0xB44B, // Exit -> Exit 0x06F9, // Up -> UP 0x8679, // Down -> Down 0xA659, // Left -> Left 0x46B9, // Right -> Right 0x16E9, // OK -> OK 0x0160, // Vol+ -> Vol+ 0x0164, // Vol- -> Vol- 0xF00F, // Mute -> Mute 0x48B7, // Prog+ -> Prog+ 0x48B7, // Prog- -> Prog- 0x0101, // 1 -> 1 0x0102, // 2 -> 2 0x609F, // 3 -> 3 0x10EF, // 4 -> 4 0x906F, // 5 -> 5 0x50AF, // 6 -> 6 0x30CF, // 7 -> 7 0xB04F, // 8 -> 8 0x708F, // 9 -> 9 0x8877, // 0 -> 0 0xF20D, // -/-- -> Guide 0x0181, // AV -> Source 0x0f0c, // Menu -> Menue 0xD22D, // PiP -> Tools 0x1AE5, // A/B -> Return 0x7C83, // 16:9 -> P.Size 0xF807, // Info -> Info 0xD629, // VTX1 -> Ch.List 0x0000, // VTX2 -> 0xC837, // VTX3 -> Pre-CH 0x6897, // Blue -> Blue 0xA857, // Yello -> Yellow 0x28D7, // Green -> Green 0x36C9, // Red -> Red 0xC23D, // TV -> TV/DTV 0x0f0C // Power -> Standby }, \ No newline at end of file diff --git a/boop/infrared/ir_lirc.c b/boop/infrared/ir_lirc.c index bbfb555..f4a7e98 100644 --- a/boop/infrared/ir_lirc.c +++ b/boop/infrared/ir_lirc.c @@ -165,11 +165,11 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { case LIRC_PRE_DAT_P: if(!has_repeat || !(ir.lirc.repeats)) { if(lirctable->pre_data_bits) { - send_data(lirctable->pre_data,1); + send_data(ir.lirc.pre_data,1); ir.state++; break; case LIRC_PRE_DAT_S: - ir.lirc.pre_data <<= send_data(lirctable->pre_data,0); + ir.lirc.pre_data <<= send_data(ir.lirc.pre_data,0); if(ir.lirc.bit >= lirctable->pre_data_bits) ir.state++; else @@ -226,11 +226,11 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { } ir.state = LIRC_POST_DAT_P; case LIRC_POST_DAT_P: - send_data(lirctable->post_data,1); + send_data(ir.lirc.post_data,1); ir.state++; break; case LIRC_POST_DAT_S: - ir.lirc.post_data <<= send_data(lirctable->post_data,0); + ir.lirc.post_data <<= send_data(ir.lirc.post_data,0); if(ir.lirc.bit >= lirctable->pre_data_bits + lirctable->bits + lirctable->post_data_bits) ir.state = LIRC_TRAIL_P; else diff --git a/boop/infrared/pwm.c b/boop/infrared/pwm.c index d447990..7c891c6 100644 --- a/boop/infrared/pwm.c +++ b/boop/infrared/pwm.c @@ -66,6 +66,13 @@ void PWM_set_frequency(unsigned long f) } PWMLER |= 0x01; //Latch Enable + + if(f < 32000) { + PWMMCR = 0x03; + } else { + PWMMCR = 0x02; + } + } void PWM_set_IR_duty_cycle(unsigned char d) { diff --git a/boop/main.c b/boop/main.c index 00f568f..9744389 100644 --- a/boop/main.c +++ b/boop/main.c @@ -88,8 +88,8 @@ void setSpeed(unsigned char sp) VPBDIV = 0x00; - BCFG0 = 0x100004A0; - BCFG2 = 0x100004A0; + BCFG0 = 0x10001CA0; + BCFG2 = 0x10001CA0; BCFG1 = 0x00000C21; sysInfo |= SYS_TURBO; break; @@ -103,8 +103,8 @@ void setSpeed(unsigned char sp) VPBDIV = 0x02; - BCFG0 = 0x10000420; - BCFG2 = 0x10000420; + BCFG0 = 0x10000A20; + BCFG2 = 0x10000A20; BCFG1 = 0x00000400; sysInfo &= ~SYS_TURBO; break; @@ -244,6 +244,7 @@ int main(void) FIOCLR0 |= (1<<4); setSpeed(SPEED_60); + BFS_Mount(); // flash file system lcd_init(0); serial_init(); @@ -284,10 +285,8 @@ int main(void) set_font(BOLDFONT); - BFS_Mount(); // flash file system - load_RC_setting(); // learned remote codes load_setting(); // display settings - + load_RC_setting(); // learned remote codes // recorded raw IR commands { From fcfd4792f9b892902ede814774fa9e952c842a9c Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sun, 16 Jul 2017 22:36:47 +0200 Subject: [PATCH 13/15] Change all IR protocols to hardware PWM --- boop/betty.cfg | 4 ++-- boop/boop_rom.bin | Bin 267281 -> 267729 bytes boop/infrared/infrared.c | 6 ++++++ boop/infrared/infrared.h | 3 ++- boop/infrared/infraredirq.c | 35 +---------------------------------- boop/infrared/ir_itt.c | 1 + boop/infrared/ir_lirc.c | 1 - boop/infrared/ir_nrc17.c | 1 + boop/infrared/ir_rc5.c | 1 + boop/infrared/ir_rc6.c | 1 + boop/infrared/ir_rca.c | 1 + boop/infrared/ir_rcmm.c | 1 + boop/infrared/ir_rec80.c | 1 + boop/infrared/ir_recs80.c | 1 + boop/infrared/ir_sirc.c | 2 ++ boop/infrared/ir_spaceenc.c | 1 + 16 files changed, 22 insertions(+), 38 deletions(-) diff --git a/boop/betty.cfg b/boop/betty.cfg index b467c7c..ba49750 100644 --- a/boop/betty.cfg +++ b/boop/betty.cfg @@ -71,9 +71,9 @@ proc betty_init { } { # Memory Bank Configuration # BCFG0: 16bit, rble, 2wst - 30 mhz : Betty: FLASH 0 @ 0x80000000 - mww 0xffe00000 0x10000420 + mww 0xffe00000 0x10001CA0 # BCFG2: 16bit, rble, 2wst - 30 mhz : Betty: FLASH 1 @ 0x82000000 - mww 0xffe00008 0x10000420 + mww 0xffe00008 0x10001CA0 # BCFG1: 8 bit, 3 sram wst, rble, 5 wst 3 idcy : Betty: LCD @ 0x81000000 mww 0xffe00004 0x00000400 diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 3c0bdbf047a66af3db836544619547d293f5fb4c..d799393c157877a7703b7217b40614527e9e134a 100644 GIT binary patch delta 21213 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 I&2Cu!ANc*fg8%>k delta 20797 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 diff --git a/boop/infrared/infrared.c b/boop/infrared/infrared.c index 02f3d25..5e3aa45 100644 --- a/boop/infrared/infrared.c +++ b/boop/infrared/infrared.c @@ -114,6 +114,12 @@ void runIR(void) } +void setIRspeed(struct irModule module) +{ + PWM_set_frequency(15000000 / (module.tval * module.lo_border)); + ir.duty_cycle =(module.hi_border * 100) / module.lo_border; +} + void stopIR(void) { T1TCR = 0x03; diff --git a/boop/infrared/infrared.h b/boop/infrared/infrared.h index b5f00a2..4e5665a 100644 --- a/boop/infrared/infrared.h +++ b/boop/infrared/infrared.h @@ -78,7 +78,7 @@ struct IR_VARS_ { //#define setIRspeed( _m ) { if(sysInfo & 0x80) T1MR0 = _m.tval1; else T1MR0 = _m.tval; } -#define setIRspeed( _m ) { T1MR0 = _m.tval; } +//#define setIRspeed( _m ) { T1MR0 = _m.tval; } void __attribute__ ((section(".text.fastcode"))) defIR(void); void defSender(unsigned long cmd); @@ -90,6 +90,7 @@ void startIrIRQ(void); void setIR(struct irModule module); void runIR(void); void stopIR(void); +void setIRspeed(struct irModule module); unsigned long setEncoder( unsigned char _x, unsigned char _y ); diff --git a/boop/infrared/infraredirq.c b/boop/infrared/infraredirq.c index 4430bf5..2ae58f8 100644 --- a/boop/infrared/infraredirq.c +++ b/boop/infrared/infraredirq.c @@ -25,8 +25,6 @@ #include "cc1100.h" #include "pwm.h" -static unsigned int c_cnt = 0; -static unsigned int b_len = 0; extern volatile unsigned char mod_enable; extern volatile unsigned char hi_border; extern volatile unsigned char lo_border; @@ -36,7 +34,6 @@ extern ir_fn irEncoder; void __attribute__ ((section(".text.fastcode"))) irIRQ(void) { - c_cnt++; irEncoder(); @@ -46,36 +43,6 @@ void __attribute__ ((section(".text.fastcode"))) irIRQ(void) PWM_set_IR_duty_cycle(0); } - - /* - if(c_cnt <= hi_border) - { - FIOSET0 = (mod_enable<<21); - } - else - { - FIOCLR0 = (1<<21); - if(c_cnt >= lo_border) - { - c_cnt = 0; - b_len++; - if(b_len >= cycles) - { - irEncoder(); - b_len = 0; - - if(!hi_border) { //RF mode - if(mod_enable) - FIOCLR0 = GDO0; - else - FIOSET0 = GDO0; - } - } - } - } -*/ - //T1TCR = 0x03; - T1IR = 1; -// VICVectAddr = 0; + } diff --git a/boop/infrared/ir_itt.c b/boop/infrared/ir_itt.c index 6294cc4..1156947 100644 --- a/boop/infrared/ir_itt.c +++ b/boop/infrared/ir_itt.c @@ -126,6 +126,7 @@ void __attribute__ ((section(".text.fastcode"))) ITT_Encode (void) } break; } + T1MR0 = cycles * ITT2_Module.lo_border * ITT2_Module.tval; } void ITT_LoadMap(unsigned char map) diff --git a/boop/infrared/ir_lirc.c b/boop/infrared/ir_lirc.c index f4a7e98..2dc4204 100644 --- a/boop/infrared/ir_lirc.c +++ b/boop/infrared/ir_lirc.c @@ -300,7 +300,6 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { } } - T1MR0 = 15 * cycles; } diff --git a/boop/infrared/ir_nrc17.c b/boop/infrared/ir_nrc17.c index afbe81f..229caf4 100644 --- a/boop/infrared/ir_nrc17.c +++ b/boop/infrared/ir_nrc17.c @@ -115,6 +115,7 @@ void __attribute__ ((section(".text.fastcode"))) NRC17_Encode(void) break; } + T1MR0 = cycles * NRC17_Module.lo_border * NRC17_Module.tval; } /* void NRC17_CopyMap(unsigned char xtra, unsigned short *map) diff --git a/boop/infrared/ir_rc5.c b/boop/infrared/ir_rc5.c index 8c6c6c1..624620f 100644 --- a/boop/infrared/ir_rc5.c +++ b/boop/infrared/ir_rc5.c @@ -98,6 +98,7 @@ void __attribute__ ((section(".text.fastcode"))) RC5_Encode (void) } break; } + T1MR0 = cycles * RC5_Module.lo_border * RC5_Module.tval; } void RC5_Init(unsigned char map) diff --git a/boop/infrared/ir_rc6.c b/boop/infrared/ir_rc6.c index d42b43a..990fa08 100644 --- a/boop/infrared/ir_rc6.c +++ b/boop/infrared/ir_rc6.c @@ -148,6 +148,7 @@ void __attribute__ ((section(".text.fastcode"))) RC6_Encode (void) } break; } + T1MR0 = cycles * RC6_Module.lo_border * RC6_Module.tval; } void RC6_Init(unsigned char map) diff --git a/boop/infrared/ir_rca.c b/boop/infrared/ir_rca.c index 84e95d5..1ba24d7 100644 --- a/boop/infrared/ir_rca.c +++ b/boop/infrared/ir_rca.c @@ -120,6 +120,7 @@ void __attribute__ ((section(".text.fastcode"))) RCA_Encode (void) } break; } + T1MR0 = cycles * RCA_Module.lo_border * RCA_Module.tval; } void RCA_LoadMap(unsigned char map) diff --git a/boop/infrared/ir_rcmm.c b/boop/infrared/ir_rcmm.c index 2424391..e477185 100644 --- a/boop/infrared/ir_rcmm.c +++ b/boop/infrared/ir_rcmm.c @@ -117,6 +117,7 @@ void __attribute__ ((section(".text.fastcode"))) RCMM_Encode (void) } + T1MR0 = cycles * RCMM_Module.lo_border * RCMM_Module.tval; } void RCMM_LoadMap(unsigned char map) diff --git a/boop/infrared/ir_rec80.c b/boop/infrared/ir_rec80.c index 6f4f8b1..02fb5f7 100644 --- a/boop/infrared/ir_rec80.c +++ b/boop/infrared/ir_rec80.c @@ -117,6 +117,7 @@ void __attribute__ ((section(".text.fastcode"))) REC80_Encode (void) } break; } + T1MR0 = cycles * REC80_Module.lo_border * REC80_Module.tval; } void REC80_LoadMap(unsigned char map) diff --git a/boop/infrared/ir_recs80.c b/boop/infrared/ir_recs80.c index d15dbd1..cabd96b 100644 --- a/boop/infrared/ir_recs80.c +++ b/boop/infrared/ir_recs80.c @@ -90,6 +90,7 @@ void __attribute__ ((section(".text.fastcode"))) RECS80_Encode (void) } break; } + T1MR0 = cycles * RECS80_Module.lo_border * RECS80_Module.tval; } void RECS80_Init(unsigned char map) diff --git a/boop/infrared/ir_sirc.c b/boop/infrared/ir_sirc.c index 0bcfa8a..dd9e4b4 100644 --- a/boop/infrared/ir_sirc.c +++ b/boop/infrared/ir_sirc.c @@ -103,6 +103,8 @@ void __attribute__ ((section(".text.fastcode"))) SIRC_Encode (void) break; } + + T1MR0 = cycles * SIRC_Module.lo_border * SIRC_Module.tval; } void SIRC_Init(unsigned char map) diff --git a/boop/infrared/ir_spaceenc.c b/boop/infrared/ir_spaceenc.c index d6c0ccc..73b0228 100644 --- a/boop/infrared/ir_spaceenc.c +++ b/boop/infrared/ir_spaceenc.c @@ -137,6 +137,7 @@ void __attribute__ ((section(".text.fastcode"))) SPACEENC_Encode (void) } break; } + T1MR0 = cycles * SPACEENC_Module.lo_border * SPACEENC_Module.tval; } void SPACEENC_LoadMap(unsigned char map) From cfcc4a270f5634f3415ffa4b4d2227cb0ab84bb1 Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sat, 22 Jul 2017 23:22:11 +0200 Subject: [PATCH 14/15] Change RF settings --- boop/Makefile | 2 +- boop/boop_rom.bin | Bin 267729 -> 278085 bytes boop/cc1100/cc1100.c | 124 +++++++++++++++++++++++------------------- boop/cc1100/cc1100.h | 4 +- boop/cc1100/rf.c | 4 +- boop/gui/testmenu.c | 29 ++++++++++ boop/infrared/ir_rf.c | 10 ++-- 7 files changed, 107 insertions(+), 66 deletions(-) diff --git a/boop/Makefile b/boop/Makefile index 8a4eaf4..1f49ca1 100644 --- a/boop/Makefile +++ b/boop/Makefile @@ -55,7 +55,7 @@ ifeq ($(MAKECMDGOALS),debug) COMPILE += -D DEBUGMODE OPTFLAGS = -O0 else - OPTFLAGS = -Os + OPTFLAGS = -Og endif ifeq ($(MAKECMDGOALS),release) diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index d799393c157877a7703b7217b40614527e9e134a..33ec32b700f080e9c64b2708917171867d8ead0d 100644 GIT binary patch delta 85809 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 X%jXlGAZH;f7jrs)6jrMl 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 433,249969 MHz - 0x8A, // MDMCFG4 - 0x75, // MDMCFG3 - 0x13, // MDMCFG2 - 0x22, // MDMCFG1 - 0xC1, // MDMCFG0 CHANSPC_M - 0x35, // DEVIATN - 0x04, // MCSM2 - 0x0C, // MCSM1 0c - 0x38, // MCSM0 - 0x16, // FOCCFG - 0x6C, // BSCFG - 0x43, // AGCCTRL2 - 0x40, // AGCCTRL1 - 0x91, // AGCCTRL0 - 0x46, // WOREVT1 - 0x50, // WOREVT0 - 0x78, // WORCTRL - 0x56, // FREND1 - 0x10, // FREND0 - 0xA9, // FSCAL3 - 0x0A, // FSCAL2 - 0x00, // FSCAL1 - 0x11, // FSCAL0 - 0x41, // RCCTRL1 - 0x00, // RCCTRL0 - 0x57, // FSTEST - 0x7F, // PTEST - 0x3F, // AGCTEST - 0x98, // TEST2 - 0x31, // TEST1 - 0x0B // TEST0 +// Deviation = 21.423340 +// Base frequency = 433.254913 +// Carrier frequency = 433.254913 +// Channel number = 0 +// Carrier frequency = 433.254913 +// Modulated = true +// Modulation format = GFSK +// Manchester enable = false +// Sync word qualifier mode = 30/32 sync word bits detected +// Preamble count = 4 +// Channel spacing = 184.982300 +// Carrier frequency = 433.254913 +// Data rate = 37.4908 +// RX filter BW = 210.937500 +// Data format = Normal mode +// CRC enable = true +// Whitening = false +// Device address = 1 +// Address config = Address check and 0 (0x00) broadcast +// CRC autoflush = true +// PA ramping = false +// TX power = 0 +// Rf settings for CC1101 +const unsigned char conf[] = { + 0x29, // IOCFG2 GDO2 Output Pin Configuration + 0x2E, // IOCFG1 GDO1 Output Pin Configuration + 0x06, // IOCFG0 GDO0 Output Pin Configuration + 0x47, // FIFOTHR RX FIFO and TX FIFO Thresholds + 0xD3, // SYNC1 Sync Word, High Byte + 0x91, // SYNC0 Sync Word, Low Byte + 0x3E, // PKTLEN Packet Length + 0x1A, // PKTCTRL1 Packet Automation Control + 0x05, // PKTCTRL0 Packet Automation Control + 0x01, // ADDR Device Address + 0x00, // CHANNR Channel Number + 0x06, // FSCTRL1 Frequency Synthesizer Control + 0x00, // FSCTRL0 Frequency Synthesizer Control + 0x10, // FREQ2 Frequency Control Word, High Byte + 0x0B, // FREQ1 Frequency Control Word, Middle Byte + 0xE6, // FREQ0 Frequency Control Word, Low Byte + 0x8A, // MDMCFG4 Modem Configuration + 0x6C, // MDMCFG3 Modem Configuration + 0x13, // MDMCFG2 Modem Configuration + 0x22, // MDMCFG1 Modem Configuration + 0xC1, // MDMCFG0 Modem Configuration + 0x35, // DEVIATN Modem Deviation Setting + 0x04, // MCSM2 Main Radio Control State Machine Configuration + 0x0C, // MCSM1 Main Radio Control State Machine Configuration + 0x38, // MCSM0 Main Radio Control State Machine Configuration + 0x16, // FOCCFG Frequency Offset Compensation Configuration + 0x6C, // BSCFG Bit Synchronization Configuration + 0x43, // AGCCTRL2 AGC Control + 0x40, // AGCCTRL1 AGC Control + 0x91, // AGCCTRL0 AGC Control + 0x46, // WOREVT1 High Byte Event0 Timeout + 0x50, // WOREVT0 Low Byte Event0 Timeout + 0x78, // WORCTRL Wake On Radio Control + 0x56, // FREND1 Front End RX Configuration + 0x10, // FREND0 Front End TX Configuration + 0xE9, // FSCAL3 Frequency Synthesizer Calibration + 0x2A, // FSCAL2 Frequency Synthesizer Calibration + 0x00, // FSCAL1 Frequency Synthesizer Calibration + 0x1F, // FSCAL0 Frequency Synthesizer Calibration + 0x41, // RCCTRL1 RC Oscillator Configuration + 0x00, // RCCTRL0 RC Oscillator Configuration }; -const unsigned char confasync[0x2F] = { +const unsigned char confasync[] = { 0x0D, // IOCFG2 0x0D, // IOCFG1 0x2E, // IOCFG0 @@ -120,12 +136,6 @@ const unsigned char confasync[0x2F] = { 0x1F, // FSCAL0 0x41, // RCCTRL1 0x00, // RCCTRL0 - 0x59, // FSTEST - 0x7F, // PTEST - 0x3F, // AGCTEST - 0x81, // TEST2 - 0x35, // TEST1 - 0x09 // TEST0 }; void cc1100_init(void) { @@ -164,7 +174,7 @@ void cc1100_init(void) { while (SSPSR & (1<<4)); xx = SSPDR; - cc1100_write((0x00 | BURST ),(unsigned char*)conf,0x2f); + cc1100_write((0x00 | BURST ),(unsigned char*)conf,sizeof(conf)); cc1100_write1(PATABLE,0xC0); cc1100_strobe(SIDLE); cc1100_strobe(SPWD); diff --git a/boop/cc1100/cc1100.h b/boop/cc1100/cc1100.h index 3e0b3c7..f4cc27a 100644 --- a/boop/cc1100/cc1100.h +++ b/boop/cc1100/cc1100.h @@ -118,8 +118,8 @@ #define MARCSTATE_IDLE 0x01 #define MARCSTATE_RX 0x0d -const unsigned char conf[0x2F] __attribute__((aligned(0x4))); -const unsigned char confasync[0x2F] __attribute__((aligned(0x4))); +extern const unsigned char conf[]; //__attribute__((aligned(0x4))); +extern const unsigned char confasync[];// __attribute__((aligned(0x4))); void cc1100_init(void); unsigned char cc1100_write(unsigned char addr, unsigned char* data, unsigned char length); diff --git a/boop/cc1100/rf.c b/boop/cc1100/rf.c index 62ce2e2..cc93c81 100644 --- a/boop/cc1100/rf.c +++ b/boop/cc1100/rf.c @@ -485,14 +485,14 @@ void RFasyncmode(unsigned char on) { RF_changestate(RFidle); while(RF.state != RFidle); stopRFIRQ(); - cc1100_write((0x00 | BURST ),(unsigned char*)confasync,0x2f); + cc1100_write((0x00 | BURST ),(unsigned char*)confasync,sizeof((unsigned char*)confasync)); cc1100_write1(PATABLE,0xf0); PINSEL1 &= 0xfffffffc; // GDO0 as GPIO FIODIR0 |= GDO0; // output } else { PINSEL1 |= 1; // GDO0 as EINT0 - cc1100_write((0x00 | BURST ),(unsigned char*)conf,0x2f); + cc1100_write((0x00 | BURST ),(unsigned char*)conf,sizeof((unsigned char*)conf)); cc1100_write1(PATABLE,0xC0); cc1100_strobe(SIDLE); load_RF_setting(); diff --git a/boop/gui/testmenu.c b/boop/gui/testmenu.c index 333fed4..ce4d331 100644 --- a/boop/gui/testmenu.c +++ b/boop/gui/testmenu.c @@ -862,6 +862,35 @@ void test_RF(void) { cur_ep->bufferlen = 3; cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce | EPsendwor; + RF_changestate(RFtx); + } else if(KEY_1) + { + struct RFendpoint_* cur_ep; + + cur_ep = openEP(0,0, packet_test); + if(cur_ep) { + cur_ep->dest = destAddr; + cur_ep->data[0] = 'X'; + cur_ep->data[1] = '1'; + cur_ep->data[2] = 0x00; + cur_ep->bufferlen = 3; + cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce; + + RF_changestate(RFtx); + } + } + else if(KEY_2) + { + struct RFendpoint_* cur_ep; + + cur_ep = openEP(0,0, packet_test); + cur_ep->dest = destAddr; + cur_ep->data[0] = 'X'; + cur_ep->data[1] = '2'; + cur_ep->data[2] = 0x00; + cur_ep->bufferlen = 3; + cur_ep->flags |= EPenabled | EPoutput | EPnewdata | EPonce ; + RF_changestate(RFtx); } } diff --git a/boop/infrared/ir_rf.c b/boop/infrared/ir_rf.c index b1dcbe3..8032b17 100644 --- a/boop/infrared/ir_rf.c +++ b/boop/infrared/ir_rf.c @@ -42,7 +42,7 @@ extern volatile unsigned long keyMap[42]; #define IRRF_WAIT 0x01 #define IRRF_BITTIME 40 -#define IRRF_WAITTIME 125 +#define IRRF_WAITTIME 100 void __attribute__ ((section(".text.fastcode"))) IRRF_Encode (void) { @@ -63,6 +63,7 @@ void __attribute__ ((section(".text.fastcode"))) IRRF_Encode (void) } break; } + T1MR0 = 15*1000; } void IRRF_Init(unsigned char map) @@ -100,9 +101,10 @@ void IRRF_Repeat(void) struct RFendpoint_* cur_ep; cur_ep = (struct RFendpoint_*)ir.general.trail; if((cur_ep) && !(cur_ep->flags & EPnewdata)) { - cur_ep->dest = (ir.actcmd & 0xff00) >> 8; - cur_ep->data[0] = (ir.actcmd & 0x00ff); - cur_ep->bufferlen = 1; + cur_ep->dest = 0; + cur_ep->data[1] = (ir.actcmd & 0x00ff); + cur_ep->data[0] = (ir.actcmd & 0xff00) >> 8; + cur_ep->bufferlen = 2; cur_ep->flags |= EPenabled | EPoutput | EPnewdata; RF_changestate(RFtx); From 36c8a56adea88105f5ffbf9e95dcade120260f2d Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sat, 22 Jul 2017 23:30:22 +0200 Subject: [PATCH 15/15] Add FHEM modules --- FHEM/00_CUL.pm | 1738 ++++++++++++++++++++++++++++++++++++++++++++++ FHEM/10_Betty.pm | 176 +++++ 2 files changed, 1914 insertions(+) create mode 100644 FHEM/00_CUL.pm create mode 100644 FHEM/10_Betty.pm diff --git a/FHEM/00_CUL.pm b/FHEM/00_CUL.pm new file mode 100644 index 0000000..a42fcb4 --- /dev/null +++ b/FHEM/00_CUL.pm @@ -0,0 +1,1738 @@ +############################################## +# $Id: 00_CUL.pm 14119 2017-04-27 11:41:18Z rudolfkoenig $ +package main; + +use strict; +use warnings; +use Time::HiRes qw(gettimeofday); + +sub CUL_Attr(@); +sub CUL_Clear($); +sub CUL_HandleCurRequest($$); +sub CUL_HandleWriteQueue($); +sub CUL_Parse($$$$@); +sub CUL_Read($); +sub CUL_ReadAnswer($$$$); +sub CUL_Ready($); +sub CUL_Write($$$); + +sub CUL_SimpleWrite(@); +sub CUL_WriteInit($); + +my %gets = ( # Name, Data to send to the CUL, Regexp for the answer + "ccconf" => 1, + "version" => ["V", '^V .*'], + "raw" => ["", '.*'], + "uptime" => ["t", '^[0-9A-F]{8}[\r\n]*$' ], + "fhtbuf" => ["T03", '^[0-9A-F]+[\r\n]*$' ], + "cmds" => ["?", '.*Use one of( .)*[\r\n]*$' ], + "credit10ms" => [ "X", '^.. *\d*[\r\n]*$' ], +); + +my %sets = ( + "reopen" => "", + "hmPairForSec" => "HomeMatic", + "hmPairSerial" => "HomeMatic", + "raw" => "", + "freq" => "SlowRF", + "bWidth" => "SlowRF", + "rAmpl" => "SlowRF", + "sens" => "SlowRF", + "led" => "", + "patable" => "", + "ITClock" => "SlowRF" +); + +my @ampllist = (24, 27, 30, 33, 36, 38, 40, 42); # rAmpl(dB) + +my $sccMods = "STACKABLE_CC:TSSTACKED:STACKABLE"; +my $culNameRe = "^(CUL|TSCUL)\$"; + +my $clientsSlowRF = ":FS20:FHT.*:KS300:USF1000:BS:HMS: ". + ":CUL_EM:CUL_WS:CUL_FHTTK:CUL_HOERMANN: ". + ":ESA2000:CUL_IR:CUL_TX:Revolt:IT:UNIRoll:SOMFY: ". + ":$sccMods:CUL_RFR::CUL_TCM97001:CUL_REDIRECT:"; +my $clientsHomeMatic = ":CUL_HM:HMS:CUL_IR:$sccMods:"; +my $clientsMAX = ":CUL_MAX:HMS:CUL_IR:$sccMods:"; +my $clientsWMBus = ":WMBUS:HMS:CUL_IR:$sccMods:"; +my $clientsKOPP_FC = ":KOPP_FC:HMS:CUL_IR:$sccMods:"; +my $clientsBetty = ":Betty:HMS:CUL_IR:$sccMods:"; + +my %matchListSlowRF = ( + "1:USF1000" => "^81..(04|0c)..0101a001a5ceaa00....", + "2:BS" => "^81..(04|0c)..0101a001a5cf", + "3:FS20" => "^81..(04|0c)..0101a001", + "4:FHT" => "^81..(04|09|0d)..(0909a001|83098301|c409c401)..", + "5:KS300" => "^810d04..4027a001", + "6:CUL_WS" => "^K.....", + "7:CUL_EM" => "^E0.................\$", + "8:HMS" => "^810e04....(1|5|9).a001", + "9:CUL_FHTTK" => "^T[A-F0-9]{8}", + "A:CUL_RFR" => "^[0-9A-F]{4}U.", + "B:CUL_HOERMANN"=> "^R..........", + "C:ESA2000" => "^S................................\$", + "D:CUL_IR" => "^I............", + "E:CUL_TX" => "^TX[A-F0-9]{10}", + "F:Revolt" => "^r......................\$", + "G:IT" => "^i......", + "H:STACKABLE_CC"=>"^\\*", + "I:UNIRoll" => "^[0-9A-F]{5}(B|D|E)", + "J:SOMFY" => "^Y[r|t|s]:?[A-F0-9]+", + "K:CUL_TCM97001" => "^s[A-F0-9]+", + "L:CUL_REDIRECT" => "^o+", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", +); + +my %matchListHomeMatic = ( + "1:CUL_HM" => "^A....................", + "8:HMS" => "^810e04....(1|5|9).a001", # CUNO OneWire HMS Emulation + "D:CUL_IR" => "^I............", + "H:STACKABLE_CC"=>"^\\*", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", +); + +my %matchListMAX = ( + "1:CUL_MAX" => "^Z........................", + "8:HMS" => "^810e04....(1|5|9).a001", # CUNO OneWire HMS Emulation + "D:CUL_IR" => "^I............", + "H:STACKABLE_CC"=>"^\\*", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", +); + +my %matchListWMBus = ( + "J:WMBUS" => "^b.*", + "8:HMS" => "^810e04....(1|5|9).a001", # CUNO OneWire HMS Emulation + "D:CUL_IR" => "^I............", + "H:STACKABLE_CC"=>"^\\*", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", +); + +my %matchListKOPP_FC = ( + "1:Kopp_FC" => "^kr..................", + "8:HMS" => "^810e04....(1|5|9).a001", # CUNO OneWire HMS Emulation + "D:CUL_IR" => "^I............", + "H:STACKABLE_CC"=>"^\\*", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", +); + +my %matchListBetty = ( + "8:HMS" => "^810e04....(1|5|9).a001", # CUNO OneWire HMS Emulation + "D:CUL_IR" => "^I............", + "H:STACKABLE_CC"=>"^\\*", + "M:TSSTACKED"=>"^\\*", + "N:STACKABLE"=>"^\\*", + "O:Betty" => "^y.*", +); + +sub +CUL_Initialize($) +{ + my ($hash) = @_; + + require "$attr{global}{modpath}/FHEM/DevIo.pm"; + +# Provider + $hash->{ReadFn} = "CUL_Read"; + $hash->{WriteFn} = "CUL_Write"; + $hash->{ReadyFn} = "CUL_Ready"; + +# Normal devices + $hash->{DefFn} = "CUL_Define"; + $hash->{FingerprintFn} = "CUL_FingerprintFn"; + $hash->{UndefFn} = "CUL_Undef"; + $hash->{GetFn} = "CUL_Get"; + $hash->{SetFn} = "CUL_Set"; + $hash->{AttrFn} = "CUL_Attr"; + no warnings 'qw'; + my @attrList = qw( + addvaltrigger + connectCommand + do_not_notify:1,0 + dummy:1,0 + hmId longids + hmProtocolEvents:0_off,1_dump,2_dumpFull,3_dumpTrigger + model:CUL,CUN,CUNO,SCC,nanoCUL + rfmode:SlowRF,HomeMatic,MAX,WMBus_T,WMBus_S,KOPP_FC,Betty + sendpool + showtime:1,0 + ); + use warnings 'qw'; + $hash->{AttrList} = join(" ", @attrList)." ".$readingFnAttributes; + $hash->{ShutdownFn} = "CUL_Shutdown"; +} + +sub +CUL_FingerprintFn($$) +{ + my ($name, $msg) = @_; + + # Store only the "relevant" part, as the CUL won't compute the checksum + $msg = substr($msg, 8) if($msg =~ m/^81/ && length($msg) > 8); + + return ($name, $msg); +} + +##################################### +sub +CUL_Define($$) +{ + my ($hash, $def) = @_; + my @a = split("[ \t][ \t]*", $def); + + if(@a < 4 || @a > 5) { + my $msg = "wrong syntax: define CUL {none | devicename[\@baudrate] ". + "| devicename\@directio | hostname:port} "; + Log3 undef, 2, $msg; + return $msg; + } + + DevIo_CloseDev($hash); + + my $name = $a[0]; + my $dev = $a[2]; + return "FHTID must be H1H2, with H1 and H2 hex and both smaller than 64" + if(uc($a[3]) !~ m/^[0-6][0-9A-F][0-6][0-9A-F]$/); + + if(uc($a[3]) =~ m/^([0-6][0-9A-F])/ && $1 ne "00") { + my $x = $1; + foreach my $d (keys %defs) { + next if($d eq $name); + if($defs{$d}{TYPE} =~ m/$culNameRe/) { + if(uc($defs{$d}{FHTID}) =~ m/^$x/) { + my $m = "$name: Cannot define multiple CULs with identical ". + "first two digits ($x)"; + Log3 $name, 1, $m; + return $m; + } + } + } + } + $hash->{FHTID} = uc($a[3]); + $hash->{initString} = "X21"; + $hash->{CMDS} = ""; + $hash->{Clients} = $clientsSlowRF; + $hash->{MatchList} = \%matchListSlowRF; + + if($dev eq "none") { + Log3 $name, 1, "$name device is none, commands will be echoed only"; + $attr{$name}{dummy} = 1; + return undef; + } + + $hash->{DeviceName} = $dev; + my $ret = DevIo_OpenDev($hash, 0, "CUL_DoInit"); + return $ret; +} + +##################################### +sub +CUL_Undef($$) +{ + my ($hash, $arg) = @_; + my $name = $hash->{NAME}; + + foreach my $d (sort keys %defs) { + if(defined($defs{$d}) && + defined($defs{$d}{IODev}) && + $defs{$d}{IODev} == $hash) + { + my $lev = ($reread_active ? 4 : 2); + Log3 $name, $lev, "deleting port for $d"; + delete $defs{$d}{IODev}; + } + } + + CUL_SimpleWrite($hash, "X00"); # Switch reception off, it may hang up the CUL + DevIo_CloseDev($hash); + return undef; +} + +##################################### +sub +CUL_Shutdown($) +{ + my ($hash) = @_; + CUL_SimpleWrite($hash, "X00"); + return undef; +} + +sub +CUL_RemoveHMPair($) +{ + my $hash = shift; + delete($hash->{hmPair}); +} + +##################################### +sub +CUL_Reopen($) +{ + my ($hash) = @_; + DevIo_CloseDev($hash); + DevIo_OpenDev($hash, 1, "CUL_DoInit"); +} + +##################################### +sub +CUL_Set($@) +{ + my ($hash, @a) = @_; + + return "\"set CUL\" needs at least one parameter" if(@a < 2); + return "Unknown argument $a[1], choose one of " . join(" ", sort keys %sets) + if(!defined($sets{$a[1]})); + + my $name = shift @a; + my $type = shift @a; + my $arg = join("", @a); + + return "This command is not valid in the current rfmode" + if($sets{$type} && $sets{$type} ne AttrVal($name, "rfmode", "SlowRF")); + + if($type eq "reopen") { + CUL_Reopen($hash); + + } elsif($type eq "hmPairForSec") { + return "Usage: set $name hmPairForSec " + if(!$arg || $arg !~ m/^\d+$/); + $hash->{hmPair} = 1; + InternalTimer(gettimeofday()+$arg, "CUL_RemoveHMPair", $hash, 1); + + } elsif($type eq "hmPairSerial") { + return "Usage: set $name hmPairSerial <10-character-serialnumber>" + if(!$arg || $arg !~ m/^.{10}$/); + + my $id = AttrVal($hash->{NAME}, "hmId", "F1".$hash->{FHTID}); + $hash->{HM_CMDNR} = $hash->{HM_CMDNR} ? ($hash->{HM_CMDNR}+1)%256 : 1; + CUL_SimpleWrite($hash, sprintf("As15%02x8401%s000000010A%s", + $hash->{HM_CMDNR}, $id, unpack('H*', $arg))); + $hash->{hmPairSerial} = $arg; + + } elsif($type eq "freq") { + + my $f = $arg/26*65536; + + my $f2 = sprintf("%02x", $f / 65536); + my $f1 = sprintf("%02x", int($f % 65536) / 256); + my $f0 = sprintf("%02x", $f % 256); + $arg = sprintf("%.3f", (hex($f2)*65536+hex($f1)*256+hex($f0))/65536*26); + Log3 $name, 3, "Setting FREQ2..0 (0D,0E,0F) to $f2 $f1 $f0 = $arg MHz"; + CUL_SimpleWrite($hash, "W0F$f2"); + CUL_SimpleWrite($hash, "W10$f1"); + CUL_SimpleWrite($hash, "W11$f0"); + CUL_WriteInit($hash); # Will reprogram the CC1101 + + } elsif($type eq "bWidth") { + my ($err, $ob); + if(!IsDummy($hash->{NAME})) { + CUL_SimpleWrite($hash, "C10"); + ($err, $ob) = CUL_ReadAnswer($hash, $type, 0, "^C10 = .*"); + return "Can't get old MDMCFG4 value" if($err || $ob !~ m,/ (.*)\r,); + $ob = $1 & 0x0f; + } + + my ($bits, $bw) = (0,0); + for (my $e = 0; $e < 4; $e++) { + for (my $m = 0; $m < 4; $m++) { + $bits = ($e<<6)+($m<<4); + $bw = int(26000/(8 * (4+$m) * (1 << $e))); # KHz + goto GOTBW if($arg >= $bw); + } + } + +GOTBW: + $ob = sprintf("%02x", $ob+$bits); + Log3 $name, 3, "Setting MDMCFG4 (10) to $ob = $bw KHz"; + CUL_SimpleWrite($hash, "W12$ob"); + CUL_WriteInit($hash); + + } elsif($type eq "rAmpl") { + return "a numerical value between 24 and 42 is expected" + if($arg !~ m/^\d+$/ || $arg < 24 || $arg > 42); + my ($v, $w); + for($v = 0; $v < @ampllist; $v++) { + last if($ampllist[$v] > $arg); + } + $v = sprintf("%02d", $v-1); + $w = $ampllist[$v]; + Log3 $name, 3, "Setting AGCCTRL2 (1B) to $v / $w dB"; + CUL_SimpleWrite($hash, "W1D$v"); + CUL_WriteInit($hash); + + } elsif($type eq "sens") { + return "a numerical value between 4 and 16 is expected" + if($arg !~ m/^\d+$/ || $arg < 4 || $arg > 16); + my $w = int($arg/4)*4; + my $v = sprintf("9%d",$arg/4-1); + Log3 $name, 3, "Setting AGCCTRL0 (1D) to $v / $w dB"; + CUL_SimpleWrite($hash, "W1F$v"); + CUL_WriteInit($hash); + + } elsif( $type eq "ITClock" ) { + my $clock = shift @a; + $clock=250 if($clock eq ""); + return "argument $arg is not numeric" if($clock !~ /^\d+$/); + Log3 $name, 3, "set $name $type $clock"; + $arg="ic$clock"; + CUL_SimpleWrite($hash, $arg); + + } else { + return "Expecting a 0-padded hex number" + if((length($arg)&1) == 1 && $type ne "raw"); + Log3 $name, 3, "set $name $type $arg"; + $arg = "l$arg" if($type eq "led"); + $arg = "x$arg" if($type eq "patable"); + CUL_SimpleWrite($hash, $arg); + + } + return undef; +} + +##################################### +sub +CUL_Get($@) +{ + my ($hash, @a) = @_; + my $type = $hash->{TYPE}; + + return "\"get $type\" needs at least one parameter" if(@a < 2); + if(!defined($gets{$a[1]})) { + my @cList = map { $_ =~ m/^(file|raw)$/ ? $_ : "$_:noArg" } sort keys %gets; + return "Unknown argument $a[1], choose one of " . join(" ", @cList); + } + + my $arg = ($a[2] ? $a[2] : ""); + my ($msg, $err); + my $name = $a[0]; + + return "No $a[1] for dummies" if(IsDummy($name)); + + if($a[1] eq "ccconf") { + + my %r = ( "0D"=>1,"0E"=>1,"0F"=>1,"10"=>1,"1B"=>1,"1D"=>1 ); + foreach my $a (sort keys %r) { + CUL_SimpleWrite($hash, "C$a"); + ($err, $msg) = CUL_ReadAnswer($hash, "C$a", 0, "^C.* = .*"); + return $err if($err); + my @answ = split(" ", $msg); + $r{$a} = $answ[4]; + } + $msg = sprintf("freq:%.3fMHz bWidth:%dKHz rAmpl:%ddB sens:%ddB", + 26*(($r{"0D"}*256+$r{"0E"})*256+$r{"0F"})/65536, #Freq + 26000/(8 * (4+(($r{"10"}>>4)&3)) * (1 << (($r{"10"}>>6)&3))), #Bw + $ampllist[$r{"1B"}&7], + 4+4*($r{"1D"}&3) #Sens + ); + + } else { + + CUL_SimpleWrite($hash, $gets{$a[1]}[0] . $arg); + my $mtch = defined($a[3]) ? $a[3] : $gets{$a[1]}[1]; # optional + ($err, $msg) = CUL_ReadAnswer($hash, $a[1], 0, $mtch); + if(!defined($msg)) { + DevIo_Disconnected($hash); + $msg = "No answer"; + + } elsif($a[1] eq "cmds") { # nice it up + $msg =~ s/.*Use one of//g; + + } elsif($a[1] eq "uptime") { # decode it + $msg =~ s/[\r\n]//g; + $msg = hex($msg)/125; + $msg = sprintf("%d %02d:%02d:%02d", + $msg/86400, ($msg%86400)/3600, ($msg%3600)/60, $msg%60); + } elsif($a[1] eq "credit10ms") { + ($msg) = ($msg =~ /^.. *(\d*)[\r\n]*$/); + } + + $msg =~ s/[\r\n]//g; + + } + + readingsSingleUpdate($hash, $a[1], $msg, 1); + + return "$a[0] $a[1] => $msg"; +} + +sub +CUL_Clear($) +{ + my $hash = shift; + + # Clear the pipe + $hash->{RA_Timeout} = 0.1; + for(;;) { + my ($err, undef) = CUL_ReadAnswer($hash, "Clear", 0, "wontmatch"); + last if($err); + } + delete($hash->{RA_Timeout}); + $hash->{PARTIAL} = ""; +} + +##################################### +sub +CUL_DoInit($) +{ + my $hash = shift; + my $name = $hash->{NAME}; + my $err; + my $msg = undef; + + CUL_Clear($hash); + my ($ver, $try) = ("", 0); + while($try++ < 3 && $ver !~ m/^V/) { + CUL_SimpleWrite($hash, "V"); + ($err, $ver) = CUL_ReadAnswer($hash, "Version", 0, "^V"); + return "$name: $err" if($err && ($err !~ m/Timeout/ || $try == 3)); + $ver = "" if(!$ver); + } + + if($ver !~ m/^V/) { + $attr{$name}{dummy} = 1; + $msg = "Not an CUL device, got for V: $ver"; + Log3 $name, 1, $msg; + return $msg; + } + $ver =~ s/[\r\n]//g; + $hash->{VERSION} = $ver; + + # Cmd-String feststellen + + my $cmds = CUL_Get($hash, $name, "cmds", 0); + $cmds =~ s/$name cmds =>//g; + $cmds =~ s/ //g; + $hash->{CMDS} = $cmds; + Log3 $name, 3, "$name: Possible commands: " . $hash->{CMDS}; + + CUL_WriteInit($hash); + + # FHTID + if(defined($hash->{FHTID})) { + my $fhtid; + CUL_SimpleWrite($hash, "T01"); + ($err, $fhtid) = CUL_ReadAnswer($hash, "FHTID", 0, undef); + return "$name: $err" if($err); + $fhtid =~ s/[\r\n]//g; + Log3 $name, 5, "GOT CUL fhtid: $fhtid"; + if(!defined($fhtid) || $fhtid ne $hash->{FHTID}) { + Log3 $name, 2, "Setting $name fhtid from $fhtid to " . $hash->{FHTID}; + CUL_SimpleWrite($hash, "T01" . $hash->{FHTID}); + } + } + + my $cc = AttrVal($name, "connectCommand", undef); + CUL_SimpleWrite($hash, $cc) if($cc); + + readingsSingleUpdate($hash, "state", "Initialized", 1); + + # Reset the counter + delete($hash->{XMIT_TIME}); + delete($hash->{NR_CMD_LAST_H}); + return undef; +} + +##################################### +# This is a direct read for commands like get +# Anydata is used by read file to get the filesize +sub +CUL_ReadAnswer($$$$) +{ + my ($hash, $arg, $anydata, $regexp) = @_; + my $ohash = $hash; + + while($hash && $hash->{TYPE} !~ m/$culNameRe/) { + $hash = $hash->{IODev}; + } + return ("No FD", undef) + if(!$hash || ($^O !~ /Win/ && !defined($hash->{FD}))); + + my ($mculdata, $rin) = ("", ''); + my $buf; + my $to = 3; # 3 seconds timeout + $mculdata = $hash->{PARTIAL} if(defined($hash->{PARTIAL})); + + $to = $ohash->{RA_Timeout} if($ohash->{RA_Timeout}); # ...or less + for(;;) { + + if($^O =~ m/Win/ && $hash->{USBDev}) { + $hash->{USBDev}->read_const_time($to*1000); # set timeout (ms) + # Read anstatt input sonst funzt read_const_time nicht. + $buf = $hash->{USBDev}->read(999); + return ("Timeout reading answer for get $arg", undef) + if(length($buf) == 0); + + } else { + return ("Device lost when reading answer for get $arg", undef) + if(!$hash->{FD}); + + vec($rin, $hash->{FD}, 1) = 1; + my $nfound = select($rin, undef, undef, $to); + if($nfound < 0) { + next if ($! == EAGAIN() || $! == EINTR() || $! == 0); + my $err = $!; + DevIo_Disconnected($hash); + return("CUL_ReadAnswer $arg: $err", undef); + } + return ("Timeout reading answer for get $arg", undef) + if($nfound == 0); + $buf = DevIo_SimpleRead($hash); + return ("No data", undef) if(!defined($buf)); + + } + + if(defined($buf)) { + Log3 $ohash->{NAME}, 5, "CUL/RAW (ReadAnswer): $buf"; + $mculdata .= $buf; + } + + # Dispatch data in the buffer before the proper answer. + while(($mculdata =~ m/^([^\n]*\n)(.*)/s) || $anydata) { + my $line = ($anydata ? $mculdata : $1); + $mculdata = $2; + $hash->{PARTIAL} = $mculdata; # for recursive calls + (undef, $line) = CUL_prefix(0, $ohash, $line); # Delete prefix + if($regexp && $line !~ m/$regexp/) { + $line =~ s/[\n\r]+//g; + CUL_Parse($ohash, $hash, $ohash->{NAME}, $line) if($init_done); + $mculdata = $hash->{PARTIAL}; + } else { + return (undef, $line); + } + } + } +} + +##################################### +# Check if the 1% limit is reached and trigger notifies +sub +CUL_XmitLimitCheck($$$) +{ + my ($hash,$fn,$now) = @_; + + if(!$hash->{XMIT_TIME}) { + $hash->{XMIT_TIME}[0] = $now; + $hash->{NR_CMD_LAST_H} = 1; + return; + } + + my $nowM1h = $now-3600; + my @b = grep { $_ > $nowM1h } @{$hash->{XMIT_TIME}}; + + # Maximum nr of transmissions per hour, but not for HM and MAX + if(@b > 163 && $fn !~ m/^[AZ]/) { + my $name = $hash->{NAME}; + Log3 $name, 2, "CUL TRANSMIT LIMIT EXCEEDED"; + DoTrigger($name, "TRANSMIT LIMIT EXCEEDED"); + + } else { + + push(@b, $now); + + } + $hash->{XMIT_TIME} = \@b; + $hash->{NR_CMD_LAST_H} = int(@b); +} + +sub +CUL_XmitDlyHM($$$) +{ + my ($hash,$fn,$now) = @_; + + my (undef,$mTy,undef,$id) = unpack 'A8A2A6A6',$fn if(length($fn)>19); + + if($id && + $modules{CUL_HM}{defptr}{$id} && + $modules{CUL_HM}{defptr}{$id}{helper}{io} && + $modules{CUL_HM}{defptr}{$id}{helper}{io}{nextSend}) { + my $dDly = $modules{CUL_HM}{defptr}{$id}{helper}{io}{nextSend} - $now; + #$dDly -= 0.04 if ($mTy eq "02");# while HM devices need a rest there are + # still some devices that need faster + # reactionfor ack. + # Mode needs to be determined + if ($dDly > 0.01){# wait less then 10 ms will not work + $dDly = 0.1 if($dDly > 0.1); + Log3 $hash->{NAME}, 5, "CUL $id dly:".int($dDly*1000)."ms"; + select(undef, undef, undef, $dDly); + } + } + shift(@{$hash->{helper}{$id}{QUEUE}}); + InternalTimer($now+0.1, "CUL_XmitDlyHMTo", "$hash->{NAME}:$id", 1) + if (scalar(@{$hash->{helper}{$id}{QUEUE}})); + return 0; +} + +sub +CUL_XmitDlyHMTo($) +{ # waited long enough - next send for this ID + my ($name,$id) = split(":",$_[0]); + CUL_SendFromQueue($defs{$name}, ${$defs{$name}{helper}{$id}{QUEUE}}[0]); +} + +##################################### +# Translate data prepared for an FHZ to CUL syntax, so we can reuse +# the FS20 and FHZ modules. +sub +CUL_WriteTranslate($$$) +{ + my ($hash,$fn,$msg) = @_; + + ################### + # Rewrite message from FHZ -> CUL + if(length($fn) <= 1) { # CUL Native + ; + + } elsif($fn eq "04" && substr($msg,0,6) eq "010101") { # FS20 + $fn = "F"; + AddDuplicate($hash->{NAME}, + "0101a001" . substr($msg, 6, 6) . "00" . substr($msg, 12)); + $msg = substr($msg,6); + + } elsif($fn eq "04" && substr($msg,0,6) eq "020183") { # FHT + $fn = "T"; + $msg = substr($msg,6,4) . substr($msg,10); + + } elsif($fn eq "cmd") { # internal command + if($msg eq "speed100") { + $fn = "AR"; + } elsif($msg eq "speed10") { + $fn = "Ar"; + } else { # by default rewrite init + $fn = $hash->{initString}; + } + $msg = ""; + + } else { + Log3 $hash, 2, "CUL cannot translate $fn $msg"; + return (undef, undef); + } + return ($fn, $msg); +} + +##################################### +sub +CUL_Write($$$) +{ + my ($hash,$fn,$msg) = @_; + + ($fn, $msg) = CUL_WriteTranslate($hash, $fn, $msg); + return if(!defined($fn)); + my $name = $hash->{NAME}; + Log3 $name, 5, "$hash->{NAME} sending $fn$msg"; + my $bstring = "$fn$msg"; + + if($fn eq "F" || # FS20 message + $bstring =~ m/^u....F/ || # FS20 messages sent over an RFR + ($fn eq "" && ($bstring =~ m/^A/ || $bstring =~ m/^Z/ ))) { # AskSin/BidCos/HomeMatic/MAX + + CUL_AddSendQueue($hash, $bstring); + + } else { + + CUL_SimpleWrite($hash, $bstring); + + } + +} + +sub +CUL_SendFromQueue($$) +{ + my ($hash, $bstring) = @_; + my $name = $hash->{NAME}; + my $hm = ($bstring =~ m/^A/); + my $to = ($hm ? 0.15 : 0.3); + my $now = gettimeofday(); + if($bstring ne "") { + my $sp = AttrVal($name, "sendpool", undef); + if($sp) { # Is one of the CUL-fellows sending data? + my @fellows = split(",", $sp); + foreach my $f (@fellows) { + if($f ne $name && + $defs{$f} && + $defs{$f}{QUEUE} && + $defs{$f}{QUEUE}->[0] ne ""){ + unshift(@{$hash->{QUEUE}}, ""); + InternalTimer($now+$to, "CUL_HandleWriteQueue", $hash, 1); + return; + } + } + } + + CUL_XmitLimitCheck($hash, $bstring, $now); + if($hm) { + CUL_SimpleWrite($hash, $bstring) if(!CUL_XmitDlyHM($hash,$bstring,$now)); + return; + } else { + CUL_SimpleWrite($hash, $bstring); + } + } + + ############## + # Write the next buffer not earlier than 0.23 seconds + # = 3* (12*0.8+1.2+1.0*5*9+0.8+10) = 226.8ms + # else it will be sent too early by the CUL, resulting in a collision + InternalTimer($now+$to, "CUL_HandleWriteQueue", $hash, 1); +} + +sub +CUL_AddSendQueue($$) +{ + my ($hash, $bstring) = @_; + my $qHash = $hash; + if ($bstring =~ m/^A/){ # HM device + my $id = substr($bstring,16,6);#get HMID destination + $qHash = $hash->{helper}{$id}; + } + if(!$qHash->{QUEUE} || 0 == scalar(@{$qHash->{QUEUE}})) { + $qHash->{QUEUE} = [ $bstring ]; + CUL_SendFromQueue($hash, $bstring); + } else { + push(@{$qHash->{QUEUE}}, $bstring); + } +} + +##################################### +sub +CUL_HandleWriteQueue($) +{ + my $hash = shift; + my $arr = $hash->{QUEUE}; + if(defined($arr) && @{$arr} > 0) { + shift(@{$arr}); + if(@{$arr} == 0) { + delete($hash->{QUEUE}); + return; + } + my $bstring = $arr->[0]; + if($bstring eq "") { + CUL_HandleWriteQueue($hash); + } else { + CUL_SendFromQueue($hash, $bstring); + } + } +} + +##################################### +# called from the global loop, when the select for hash->{FD} reports data +sub +CUL_Read($) +{ + my ($hash) = @_; + + my $buf = DevIo_SimpleRead($hash); + return "" if(!defined($buf)); + my $name = $hash->{NAME}; + + my $culdata = $hash->{PARTIAL}; + Log3 $name, 5, "CUL/RAW: $culdata/$buf"; + $culdata .= $buf; + + while($culdata =~ m/\n/) { + my $rmsg; + ($rmsg,$culdata) = split("\n", $culdata, 2); + $rmsg =~ s/\r//; + $hash->{PARTIAL} = $culdata; # for recursive calls + CUL_Parse($hash, $hash, $name, $rmsg) if($rmsg); + $culdata = $hash->{PARTIAL}; + } + $hash->{PARTIAL} = $culdata; +} + +sub +CUL_Parse($$$$@) +{ + my ($hash, $iohash, $name, $rmsg, $initstr) = @_; + + if($rmsg =~ m/^V/) { # CUN* keepalive + Log3 $name, 4, "CUL_Parse: $name $rmsg"; + return; + } + + my $rssi; + my $dmsg = $rmsg; + my $dmsgLog = (AttrVal($name,"rfmode","") eq "HomeMatic") + ? join(" ",(unpack'A1A2A2A4A6A6A*',$rmsg)) + :$dmsg; + if($dmsg =~ m/^[AFTKEHRStZriby]([A-F0-9][A-F0-9])+$/) { # RSSI + my $l = length($dmsg); + $rssi = hex(substr($dmsg, $l-2, 2)); + $dmsg = substr($dmsg, 0, $l-2); + $rssi = ($rssi>=128 ? (($rssi-256)/2-74) : ($rssi/2-74)); + Log3 $name, 4, "CUL_Parse: $name $dmsgLog $rssi"; + } else { + Log3 $name, 4, "CUL_Parse: $name $dmsgLog"; + } + + ########################################### + #Translate Message from CUL to FHZ + next if(!$dmsg || length($dmsg) < 1); # Bogus messages + + if ($dmsg eq 'SMODE' || $dmsg eq 'TMODE') { # brs/brt returns SMODE/TMODE + Log3 $name, 5, "CUL_Parse: switched to $dmsg"; + return; + } + + if($dmsg =~ m/^[0-9A-F]{4}U./) { # RF_ROUTER + Dispatch($hash, $dmsg, undef); + return; + } + + my $fn = substr($dmsg,0,1); + my $len = length($dmsg); + + if($fn eq "F" && $len >= 9) { # Reformat for 10_FS20.pm + CUL_AddSendQueue($iohash, ""); # Delay immediate replies + $dmsg = sprintf("81%02x04xx0101a001%s00%s", + $len/2+7, substr($dmsg,1,6), substr($dmsg,7)); + $dmsg = lc($dmsg); + + } elsif($fn eq "T") { + if ($len >= 11) { # Reformat for 11_FHT.pm + $dmsg = sprintf("81%02x04xx0909a001%s00%s", + $len/2+7, substr($dmsg,1,6), substr($dmsg,7)); + $dmsg = lc($dmsg); + } + + } elsif($fn eq "H" && $len >= 13) { # Reformat for 12_HMS.pm + my $type = hex(substr($dmsg,6,1)); + my $stat = $type > 1 ? hex(substr($dmsg,7,2)) : hex(substr($dmsg,5,2)); + my $prf = $type > 1 ? "02" : "05"; + my $bat = $type > 1 ? hex(substr($dmsg,5,1))+1 : 1; + my $HA = substr($dmsg,1,4); + my $values = $type > 1 ? "000000" : substr($dmsg,7); + $dmsg = sprintf("81%02x04xx%s%x%xa001%s0000%02x%s", + $len/2+8, # Packet-Length + $prf, $bat, $type, + $HA, # House-Code + $stat, + $values); # Values + $dmsg = lc($dmsg); + + } elsif($fn eq "K" && $len >= 5) { + if($len == 15) { # Reformat for 13_KS300.pm + my @a = split("", $dmsg); + $dmsg = sprintf("81%02x04xx4027a001", $len/2+6); + for(my $i = 1; $i < 14; $i+=2) { # Swap nibbles. + $dmsg .= $a[$i+1] . $a[$i]; + } + $dmsg = lc($dmsg); + } + # Other K... Messages ar sent to CUL_WS + } elsif($fn eq "r" && $len >= 23) { # Revolt + $dmsg = lc($dmsg); + } elsif($fn eq "i" && $len >= 7) { # IT + $dmsg = lc($dmsg); + } elsif($fn eq "A" && $len >= 20) { # AskSin/BidCos/HomeMatic + my $src = substr($dmsg,9,6); + if($modules{CUL_HM}{defptr}{$src}){ + $modules{CUL_HM}{defptr}{$src}{helper}{io}{nextSend} = + gettimeofday() + 0.100; + } + $dmsg .= "::$rssi:$name" if(defined($rssi)); + + } elsif($fn eq "Z" && $len >= 21) { # Moritz/Max + ; + } elsif($fn eq "b" && $len >= 24) { # Wireless M-Bus + $dmsg .= "::$rssi" if (defined($rssi)); + } elsif($fn eq "t" && $len >= 5) { # TX3 + $dmsg = "TX".substr($dmsg,1); # t.* is occupied by FHTTK + } + + $hash->{"${name}_MSGCNT"}++; + $hash->{"${name}_TIME"} = TimeNow(); + # showtime attribute + readingsSingleUpdate($hash, "state", $hash->{READINGS}{state}{VAL}, 0); + $hash->{RAWMSG} = $rmsg; + my %addvals = (RAWMSG => $dmsg); + if(defined($rssi)) { + $hash->{RSSI} = $rssi; + $addvals{RSSI} = $rssi; + } + Dispatch($hash, $dmsg, \%addvals); +} + + +##################################### +sub +CUL_Ready($) +{ + my ($hash) = @_; + + return DevIo_OpenDev($hash, 1, "CUL_DoInit") + if($hash->{STATE} eq "disconnected"); + + # This is relevant for windows/USB only + my $po = $hash->{USBDev}; + my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags); + if($po) { + ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status; + } + return ($InBytes && $InBytes>0); +} + +######################## +# Needed for STACKABLE_CC +sub +CUL_WriteInit($) +{ + my ($hash) = @_; + foreach my $is (split("\n", $hash->{initString})) { + CUL_SimpleWrite($hash, $is); + } +} + +sub +CUL_SimpleWrite(@) +{ + my ($hash, $msg, $nonl) = @_; + return if(!$hash); + ($hash, $msg) = CUL_prefix(1, $hash, $msg); + DevIo_SimpleWrite($hash, $msg, 2, !$nonl); +} + +sub +CUL_Attr(@) +{ + my ($cmd,$name,$aName,$aVal) = @_; + my $hash = $defs{$name}; + + if($aName eq "rfmode") { + + + $aVal = "SlowRF" if(!$aVal || + ($aVal ne "HomeMatic" + && $aVal ne "MAX" + && $aVal ne "WMBus_T" + && $aVal ne "WMBus_S" + && $aVal ne "KOPP_FC" + && $aVal ne "Betty")); + my $msg = $hash->{NAME} . ": Mode $aVal not supported"; + + if($aVal eq "HomeMatic") { + return if($hash->{initString} =~ m/Ar/); + if($hash->{CMDS} =~ m/A/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsHomeMatic; + $hash->{MatchList} = \%matchListHomeMatic; + CUL_SimpleWrite($hash, "Zx") if ($hash->{CMDS} =~ m/Z/); # reset Moritz + $hash->{initString} = "X21\nAr"; # X21 is needed for RSSI reporting + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + + } elsif($aVal eq "MAX") { + return if($hash->{initString} =~ m/Zr/); + if($hash->{CMDS} =~ m/Z/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsMAX; + $hash->{MatchList} = \%matchListMAX; + CUL_SimpleWrite($hash, "Ax") if ($hash->{CMDS} =~ m/A/); # reset AskSin + $hash->{initString} = "X21\nZr"; # X21 is needed for RSSI reporting + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + + } elsif($aVal eq "WMBus_S") { + return if($hash->{initString} =~ m/brs/); + if($hash->{CMDS} =~ m/b/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsWMBus; + $hash->{MatchList} = \%matchListWMBus; + $hash->{initString} = "X21\nbrs"; # Use S-Mode + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + } elsif($aVal eq "WMBus_T") { + return if($hash->{initString} =~ m/brt/); + if($hash->{CMDS} =~ m/b/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsWMBus; + $hash->{MatchList} = \%matchListWMBus; + $hash->{initString} = "X21\nbrt"; # Use T-Mode + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + } elsif($aVal eq "KOPP_FC") { + if($hash->{CMDS} =~ m/k/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsKOPP_FC; + $hash->{MatchList} = \%matchListKOPP_FC; + $hash->{initString} = "krS"; # krS: start Kopp receive Mode + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + + } elsif($aVal eq "Betty") { + if($hash->{CMDS} =~ m/y/ || IsDummy($hash->{NAME}) || !$hash->{FD}) { + $hash->{Clients} = $clientsBetty; + $hash->{MatchList} = \%matchListBetty; + $hash->{initString} = "X21\nyr"; # krS: start Betty receive Mode + CUL_WriteInit($hash); + + } else { + Log3 $name, 2, $msg; + return $msg; + } + + } else { + return if($hash->{initString} eq "X21"); + $hash->{Clients} = $clientsSlowRF; + $hash->{MatchList} = \%matchListSlowRF; + $hash->{initString} = "X21"; + CUL_SimpleWrite($hash, "Ax") if ($hash->{CMDS} =~ m/A/); # reset AskSin + CUL_SimpleWrite($hash, "Zx") if ($hash->{CMDS} =~ m/Z/); # reset Moritz + CUL_SimpleWrite($hash, "brx") if ($hash->{CMDS} =~ m/b/); # reset WMBus + CUL_WriteInit($hash); + + } + + Log3 $name, 2, "Switched $name rfmode to $aVal"; + delete $hash->{".clientArray"}; + + } elsif($aName eq "hmId"){ + if($cmd eq "set") { + return "wrong syntax: hmId must be 6-digit-hex-code (3 byte)" + if($aVal !~ m/^[A-F0-9]{6}$/i); + } + + } elsif($aName eq "connectCommand"){ + CUL_SimpleWrite($hash, $aVal) if($cmd eq "set"); + + } + + return undef; +} + +sub +CUL_prefix($$$) +{ + my ($isadd, $hash, $msg) = @_; + while($hash && $hash->{TYPE} !~ m/$culNameRe/) { + $msg = CallFn($hash->{NAME}, $isadd ? "AddPrefix":"DelPrefix", $hash, $msg); + $hash = $hash->{IODev}; + last if(!$hash); + } + return ($hash, $msg); +} + +1; + +=pod +=item summary connect devices with the culfw Firmware, e.g. Busware CUL +=item summary_DE Anbindung von Geraeten mit dem culfw Firmware, z.Bsp. Busware CUL +=begin html + + +

CUL

+
    + + + +
    + The CUL/CUN(O) is a family of RF devices sold by busware.de. + + With the opensource firmware + culfw they are capable + to receive and send different 433/868 MHz protocols (FS20/FHT/S300/EM/HMS/MAX!). + It is even possible to use these devices as range extenders/routers, see the + CUL_RFR module for details. +

    + + Some protocols (FS20, FHT and KS300) are converted by this module so that + the same logical device can be used, irrespective if the radio telegram is + received by a CUL or an FHZ device.
    + Other protocols (S300/EM) need their + own modules. E.g. S300 devices are processed by the CUL_WS module if the + signals are received by the CUL, similarly EMWZ/EMGZ/EMEM is handled by the + CUL_EM module.

    + + It is possible to attach more than one device in order to get better + reception, FHEM will filter out duplicate messages.

    + + Note: This module may require the Device::SerialPort or + Win32::SerialPort module if you attach the device via USB + and the OS sets strange default parameters for serial devices.

    + +
    + +
    + + + Define +
      + define <name> CUL <device> <FHTID>
      +
      + USB-connected devices (CUL/CUN):
        + <device> specifies the serial port to communicate with the CUL. + The name of the serial-device depends on your distribution, under + linux the cdc_acm kernel module is responsible, and usually a + /dev/ttyACM0 device will be created. If your distribution does not have a + cdc_acm module, you can force usbserial to handle the CUL by the + following command: +
          + modprobe usbserial vendor=0x03eb product=0x204b +
        + In this case the device is most probably /dev/ttyUSB0.

        + + You can also specify a baudrate if the device name contains the @ + character, e.g.: /dev/ttyACM0@38400

        + + If the baudrate is "directio" (e.g.: /dev/ttyACM0@directio), then the + perl module Device::SerialPort is not needed, and FHEM + opens the device with simple file io. This might work if the operating + system uses sane defaults for the serial parameters, e.g. some Linux + distributions and OSX.

        + +
      + Network-connected devices (CUN(O)):
        + <device> specifies the host:port of the device, e.g. + 192.168.0.244:2323 +
      +
      + If the device is called none, then no device will be opened, so you + can experiment without hardware attached.
      + + The FHTID is a 4 digit hex number, and it is used when the CUL talks to + FHT devices or when CUL requests data. Set it to 0000 to avoid answering + any FHT80b request by the CUL. +
    +
    + + + Set +
      +
    • reopen
      + Reopens the connection to the device and reinitializes it. +

    • +
    • raw
      + Issue a CUL firmware command. See the this document + for details on CUL commands. +

    • + +
    • freq / bWidth / rAmpl / sens
      + SlowRF mode only.
      + Set the CUL frequency / bandwidth / receiver-amplitude / sensitivity
      + + Use it with care, it may destroy your hardware and it even may be + illegal to do so. Note: The parameters used for RFR transmission are + not affected.
      +
        +
      • freq sets both the reception and transmission frequency. Note: + Although the CC1101 can be set to frequencies between 315 and 915 + MHz, the antenna interface and the antenna of the CUL is tuned for + exactly one frequency. Default is 868.3 MHz (or 433 MHz)
      • +
      • bWidth can be set to values between 58 kHz and 812 kHz. Large values + are susceptible to interference, but make possible to receive + inaccurately calibrated transmitters. It affects tranmission too. + Default is 325 kHz.
      • +
      • rAmpl is receiver amplification, with values between 24 and 42 dB. + Bigger values allow reception of weak signals. Default is 42. +
      • +
      • sens is the decision boundary between the on and off values, and it + is 4, 8, 12 or 16 dB. Smaller values allow reception of less clear + signals. Default is 4 dB.
      • +
      +

    • + +
    • hmPairForSec
      + HomeMatic mode only.
      + Set the CUL in Pairing-Mode for the given seconds. Any HM device set into + pairing mode in this time will be paired with FHEM. +

    • + +
    • hmPairSerial
      + HomeMatic mode only.
      + Try to pair with the given device. The argument is a 10 character + string, usually starting with letters and ending with digits, printed on + the backside of the device. It is not necessary to put the given device + in learning mode if it is a receiver. +

    • + +
    • led
      + Set the CUL led off (00), on (01) or blinking (02). +

    • +
    • ITClock
      + Set the IT clock for Intertechno V1 protocol. Default 250. +

    • +
    + + + Get +
      +
    • version
      + returns the CUL firmware version +

    • +
    • uptime
      + returns the CUL uptime (time since CUL reset) +

    • +
    • raw
      + Issues a CUL firmware command, and waits for one line of data returned by + the CUL. See the CUL firmware README document for details on CUL + commands. +

    • +
    • fhtbuf
      + CUL has a message buffer for the FHT. If the buffer is full, then newly + issued commands will be dropped, and an "EOB" message is issued to the + FHEM log. + fhtbuf returns the free memory in this buffer (in hex), + an empty buffer in the CUL V2 is 74 bytes, in CUL V3/CUN(O) 200 Bytes. + A message occupies 3 + 2x(number of FHT commands) bytes, + this is the second reason why sending multiple FHT commands with one + set is a good idea. The first reason is, that + these FHT commands are sent at once to the FHT. +

    • + +
    • ccconf
      + Read some CUL radio-chip (cc1101) registers (frequency, bandwidth, etc.), + and display them in human readable form. +

    • + +
    • cmds
      + Depending on the firmware installed, CULs have a different set of + possible commands. Please refer to the README of the firmware of your + CUL to interpret the response of this command. See also the raw command. +

    • +
    • credit10ms
      + One may send for a duration of credit10ms*10 ms before the send limit + is reached and a LOVF is generated. +

    • +
    + + + Attributes +
      +
    • addvaltrigger
      + Create triggers for additional device values. Right now these are RSSI + and RAWMSG for the CUL family and RAWMSG for the FHZ. +

    • + +
    • connectCommand
      + raw culfw command sent to the CUL after a (re-)connect of the USB device, + and sending the usual initialization needed for the configured rfmode. +
    • + +
    • do_not_notify
    • +
    • dummy
    • +
    • hmId
      + Set the HomeMatic ID of this device. If this attribute is absent, the + ID will be F1<FHTID>. Note 1: After setting or changing this + attribute you have to relearn all your HomeMatic devices. Note 2: The + value must be a 6 digit hex number, and 000000 is not valid. FHEM + won't complain if it is not correct, but the communication won't work. +

    • + +
    • hmProtocolEvents
      + Generate events for HomeMatic protocol messages. These are normally + used for debugging, by activating "inform timer" in a telnet session, + or looking at the Event Monitor window in the FHEMWEB frontend.
      + Example: +
        + + 2012-05-17 09:44:22.515 CUL CULHM RCV L:0B N:81 CMD:A258 SRC:...... + DST:...... 0000 (TYPE=88,WAKEMEUP,BIDI,RPTEN) + +
      +

    • + +
    • longids
      + Comma separated list of device-types for CUL that should be handled + using long IDs. This additional ID allows it to differentiate some + weather sensors, if they are sending on the same channel. + Therefore a random generated id is added. If you choose to use longids, + then you'll have to define a different device after battery change. + Default is not to use long IDs.
      + Modules which are using this functionality are for e.g. : + 14_Hideki, 41_OREGON, 14_CUL_TCM97001, 14_SD_WS07.
      + + Examples:
      +
        + # Do not use any long IDs for any devices (this is default):
        + attr cul longids 0
        + # Use long IDs for all devices:
        + attr cul longids 1
        + # Use longids for SD_WS07 devices.
        + # Will generate devices names like SD_WS07_TH_3 for channel 3.
        + attr cul longids SD_WS07 +
      +

    • + +
    • model (CUL,CUN,etc)
    • +
    • sendpool
      + If using more than one CUL for covering a large area, sending + different events by the different CUL's might disturb each other. This + phenomenon is also known as the Palm-Beach-Resort effect. + Putting them in a common sendpool will serialize sending the events. + E.g. if you have three CUN's, you have to specify following + attributes:
      + attr CUN1 sendpool CUN1,CUN2,CUN3
      + attr CUN2 sendpool CUN1,CUN2,CUN3
      + attr CUN3 sendpool CUN1,CUN2,CUN3

      +

    • +
    • rfmode
      + Configure the RF Transceiver of the CUL (the CC1101). Available + arguments are: +
        +
      • SlowRF
        + To communicate with FS20/FHT/HMS/EM1010/S300/Hoermann devices @1 kHz + datarate. This is the default.
      • + +
      • HomeMatic
        + To communicate with HomeMatic type of devices @10 kHz datarate.
      • + +
      • MAX
        + To communicate with MAX! type of devices @10 kHz datarate.
      • + +
      • WMBus_S
      • +
      • WMBus_T
        + To communicate with Wireless M-Bus devices like water, gas or + electrical meters. Wireless M-Bus uses two different communication + modes, S-Mode and T-Mode. While in this mode, no reception of other + protocols like SlowRF or HomeMatic is possible. See also the WMBUS + FHEM Module. +
      • +
      +

    • +
    • showtime
    • + + +
    • readingFnAttributes
    • +
    +
    +
+ +=end html + +=begin html_DE + + +

CUL

+
    + + + +
    + Der CUL/CUN(O) ist eine Familie von Funkempfängern, die von der Firma + Busware verkauft wird. + + Mit der OpenSource Firmware + culfw können sie verschiedene + 868 MHz Funkprotokolle empfangen bzw. senden (FS20/FHT/S300/EM/HMS/MAX!). + Man kann diese Geräte auch zur Reichweitenverlängerung, siehe + CUL_RFR einsetzen. +

    + + Einige Protokolle (FS20, FHT und KS300) werden von diesem Modul in das FHZ + Format konvertiert, daher kann dasselbe logische Gerät verwendet werden, + egal ob das Funktelegramm von einem CUL oder einem FHZ Gerät empfangen + wird.
    + + Andere Protokolle (S300/EM) benötigen ihre eigenen Module. S300 + Geräte werden vom Modul CUL_WS verarbeitet, wenn das Signal von einem + CUL empfangen wurde, ähnliches gilt für EMWZ/EMGZ/EMEM: diese + werden vom CUL_EM Modul verarbeitet.

    + + Es ist möglich mehr als ein Gerät zu verwenden, um einen besseren + Empfang zu erhalten, FHEM filtert doppelte Funktelegramme aus.

    + + Bemerkung: Dieses Modul benötigt unter Umständen das + Device::SerialPort bzw. Win32::SerialPort Modul, + wenn Sie das Gerät über USB anschließen und das + Betriebssystem unübliche Parameter für serielle Schnittstellen + setzt.

    + +
    + +
    + + + Define +
      + define <name> CUL <device> <FHTID>
      +
      + Geräte, die an USB angeschlossen sind (CUL/CUN):
      +
        + <device> gibt die serielle Schnittstelle an, mit der der CUL + kommuniziert. Der Name der seriellen Schnittstelle hängt von der + gewählten Distribution und USB-Treiber ab, unter Linux ist dies das + Kernel Modul cdc_acm und üblicherweise wird die Schnittstelle + /dev/ttyACM0 genannt. Wenn die Linux Distribution über kein Kernel + Modul cdc_acm verfügt, dann kann die Schnittstelle über + usbserial mit dem folgenden Befehl erzeugt werden: +
          + modprobe usbserial vendor=0x03eb product=0x204b +
        + In diesem Fall ist diese Schnittstelle dann wahrscheinlich + /dev/ttyUSB0.

        + + Wenn der Name der Schnittstelle ein @ enthält, kann nachfolgend die + verwendete Baudrate angegeben werden, z.B.: /dev/ttyACM0@38400.

        + + Wenn die Baudrate mit "directio" angegeben wird (z.B.: + /dev/ttyACM0@directio), wird das Perl Modul + Device::SerialPort nicht benötigt und FHEM öffnet + die Schnittstelle mit einfachem Dateizugriff. Dies sollte dann + funktionieren, wenn das Betriebssystem vernünftige Standardwerte + für die serielle Schnittstelle verwendet, wie z.B. einige Linux + Distributionen oder OSX.

        +
      + + Geräte, die mit dem Netzwerk verbunden sind (CUN(O)):
      +
        + <device> gibt die Hostadresse:Port des Gerätes an, z.B. + 192.168.0.244:2323 +
      +
      + + Wenn das Gerät mit none bezeichnet wird, wird keine Schnittstelle + geöffnet und man kann ohne angeschlossene Hardware + experimentieren.
      + + Die FHTID ist eine 4-stellige hexadezimale Zahl und wird verwendet, wenn + der CUL FHT Telegramme sendet bzw. Daten anfragt. Diese sollte als 0000 + gewählt werden, wenn man FHT80b Anfragen durch den CUL vermeiden will. +
    +
    + + + Set +
      +
    • reopen
      + Öffnet die Verbindung zum Gerät neu und initialisiert es. +

    • +
    • raw
      + Sendet einen CUL Firmware Befehl. Siehe auch + hier für + nähere Erläuterungen der CUL Befehle. +

    • + +
    • freq / bWidth / rAmpl / sens
      + Nur in der Betriebsart SlowRF.
      Bestimmt die + CUL Frequenz / Bandbreite / Empfänger Amplitude / + Empfindlichkeit
      + + Bitte mit Vorsicht verwenden, da es die verwendete Hardware + zerstören kann bzw. es zu illegalen Funkzuständen kommen + kann.
      Bemerkung: Die Parameter für die RFR Übermittlung + werden hierdurch nicht beeinflußt.
      +
        +
      • freq bestimmt sowohl die Empfangs- als auch die Sendefrequenz.
        + Bemerkung: Auch wenn der CC1101 zwischen den Frequenzen 315 und 915 + MHz eingestellt werden kann, ist die Antennenanbindung bzw. die + Antenne des CUL exakt auf eine Frequenz eingestellt. Standard ist + 868.3 MHz (bzw. 433 MHz).
      • + +
      • bWidth kann zwischen 58 kHz und 812 kHz variiert werden. + Große Werte sind empfindlicher gegen Interferencen, aber + machen es möglich, nicht genau kalbrierte Signale zu + empfangen. Die Einstellung beeinflusst ebenso die Übertragung. + Standardwert ist 325 kHz.
      • + +
      • rAmpl ist die Verstärkung des Empfängers mit Werten + zwischen 24 and 42 dB. Größere Werte erlauben den + Empfang von schwachen Signalen. Standardwert ist 42.
      • + +
      • sens ist die Entscheidungsgrenze zwischen "on" und "off" + Zuständen und kann 4, 8, 12 oder 16 dB sein. Kleinere Werte + erlauben den Empfang von undeutlicheren Signalen. Standard ist 4 + dB.
      • +
      +

    • + +
    • hmPairForSec
      + Nur in der Betriebsart HomeMatic.
      Versetzt den + CUL für die angegebene Zeit in Sekunden in den Anlern-Modus. Jedes + HM Gerät, das sich im Anlern-Modus befindet, wird an FHEM + angelernt.

    • + + +
    • hmPairSerial
      + Nur in der Betriebsart HomeMatic.
      + Versucht, das angegebene Gerät anzulernen (zu "pairen"). Der + Parameter ist eine 10-stellige Zeichenfolge, die normalerweise mit + Buchstaben beginnt und mit Ziffern endet; diese sind auf der + Rückseite der Geräte aufgedruckt. Wenn das Gerät ein + Empfänger ist, ist es nicht notwendig, das angegebene Gerät in + den Anlern-Modus zu versetzen.

    • + + +
    • led
      + Schaltet die LED des CUL: aus (00), an (01) oder blinkend (02). +

    • +
    • ITClock
      + Setzt die IT clock fü Intertechno V1 Protokoll. Default 250. +

    • +
    + + + Get +
      +
    • version
      + gibt die Version der CUL Firmware zurück +

    • +
    • uptime
      + gibt die Betriebszeit des CULs zurück (Zeit seit dem letzten Reset + des CULs)

    • + +
    • raw
      + Sendet einen CUL Firmware Befehl und wartet auf eine Rückgabe des + CULs. Siehe auch README der Firmware für nähere + Erläuterungen zu den CUL Befehlen.

    • + +
    • fhtbuf
      + Der CUL hat einen Puffer für Nachrichten für FHT. Wenn der + Puffer voll ist, werden neu empfangene Telegramme ignoriert und eine + "EOB" Meldung wird in die FHEM Logdatei geschrieben. + + fhtbuf gibt den freien Speicher dieses Puffers (in hex) + zurück, ein leerer Puffer im CUL V2 hat 74 Byte, im CUL V3/CUN(O) + hat 200 Byte. Eine Telegramm benötigt 3 + 2x(Anzahl der FHT + Befehle) Byte, dies ist ein Grund, warum man mehrere FHT Befehle mit + einem set senden sollte. Ein weiterer Grund ist, + dass diese FHT Befehle in einem "Paket" zum FHT Gerät gesendet werden. +

    • + +
    • ccconf
      + Liest einige CUL Register des CC1101 (Sende- und Empfängerchips) + aus (Frequenz, Bandbreite, etc.) und stellt diese in lesbarer Form dar. +

    • + +
    • cmds
      + In abhägigkeit der installierten Firmware hat der CUL/CUN(O) + unterschiedliche Befehlssätze. Nähere Informationen über + die Befehle bzw. deren Interpretation siehe README Datei der + verwendeten CUL Firmware. Siehe auch Anmerkungen beim raw Befehl. +

    • + +
    • credit10ms
      + Der Funkraum darf für eine Dauer von credit10ms*10 ms belegt + werden, bevor die gesetzliche 1% Grenze erreicht ist und eine + LOVF Meldung ausgegeben wird.

    + + + Attribute +
      +
    • addvaltrigger
      + Generiert Trigger für zusätzliche Werte. Momentan sind dies + RSSI und RAWMSG für die CUL Familie und RAWMSG für FHZ. +

    • + +
    • connectCommand
      + culfw Befehl, was nach dem Verbindungsaufbau mit dem USB-Gerät, nach + Senden der zum Initialisieren der konfigurierten rfmode benötigten + Befehle gesendet wird. +
    • + +
    • do_not_notify
    • +
    • dummy
    • + +
    • hmId
      + Setzt die HomeMatic ID des Gerätes. Wenn dieses Attribut fehlt, + wird die ID zu F1<FHTID> gesetzt. Bemerkung 1: Nach dem Setzen + bzw. Verändern dieses Attributes müssen alle HomeMatic + Geräte neu angelernt werden. Bemerkung 2: Der Wert muss + eine 6-stellige Hexadezimalzahl sein, 000000 ist ungültig. FHEM + überprüft nicht, ob die ID korrekt ist, im Zweifelsfall + funktioniert die Kommunikation nicht.

    • + +
    • hmProtocolEvents
      + Generiert Ereignisse für HomeMatic Telegramme. Diese werden + normalerweise für die Fehlersuche verwendet, z.B. durch Aktivieren + von inform timer in einer telnet Sitzung bzw. im + Event Monitor Fenster im FHEMWEB Frontend.
      + Beispiel: +
        + + 2012-05-17 09:44:22.515 CUL CULHM RCV L:0B N:81 CMD:A258 SRC:...... + DST:...... 0000 (TYPE=88,WAKEMEUP,BIDI,RPTEN) + +
      +

    • + +
    • longids
      + Durch Kommata getrennte Liste von Device-Typen für Empfang von + langen IDs mit den CUL. Diese zusätzliche ID erlaubt es + Wettersensoren, welche auf dem gleichen Kanal senden zu unterscheiden. + Hierzu wird eine zufällig generierte ID hinzugefügt. Wenn Sie + longids verwenden, dann wird in den meisten Fällen nach einem + Batteriewechsel ein neuer Sensor angelegt. + Standardmäßig werden keine langen IDs verwendet.
      + Folgende Module verwenden diese Funktionalität: + 14_Hideki, 41_OREGON, 14_CUL_TCM97001, 14_SD_WS07.
      + Beispiele: +
        + # Keine langen IDs verwenden (Default Einstellung):
        + attr cul longids 0
        + # Immer lange IDs verwenden:
        + attr cul longids 1
        + # Verwende lange IDs für SD_WS07 Devices.
        + # Device Namen sehen z.B. so aus: SD_WS07_TH_3 for channel 3.
        + attr cul longids SD_WS07 +
      +

    • + +
    • model (CUL,CUN)

    • + +
    • rfmode
      + Konfiguriert den RF Transceiver des CULs (CC1101). Verfügbare + Argumente sind: +
        +
      • SlowRF
        + Für die Kommunikation mit FS20/FHT/HMS/EM1010/S300/Hoermann + Geräten @1 kHz Datenrate (Standardeinstellung).
      • + +
      • HomeMatic
        + Für die Kommunikation mit HomeMatic Geräten @10 kHz + Datenrate.
      • + +
      • MAX
        + Für die Kommunikation mit MAX! Geräten @10 kHz + Datenrate.
      • +
      • WMBus_S
      • +
      • WMBus_T
        + Für die Kommunikation mit Wireless M-Bus Geräten wie + Wasser-, Gas- oder Elektrozählern. Wireless M-Bus verwendet + zwei unterschiedliche Kommunikationsarten, S-Mode und T-Mode. In + diesem Modus ist der Empfang von anderen Protokollen wie SlowRF + oder HomeMatic nicht möglich.
      • +
      +

    • + +
    • sendpool
      + Wenn mehr als ein CUL verwendet wird, um einen größeren + Bereich abzudecken, können diese sich gegenseitig + beeinflussen. Dieses Phänomen wird auch Palm-Beach-Resort Effekt + genannt. Wenn man diese zu einen gemeinsamen Sende"pool" + zusammenschließt, wird das Senden der einzelnen Telegramme + seriell (d.h. hintereinander) durchgeführt. + Wenn z.B. drei CUN's zur + Verfügung stehen, werden folgende Attribute gesetzt:
      + attr CUN1 sendpool CUN1,CUN2,CUN3
      + attr CUN2 sendpool CUN1,CUN2,CUN3
      + attr CUN3 sendpool CUN1,CUN2,CUN3

      +

    • + +
    • showtime
    • +
    • readingFnAttributes
    • +
    +
    +
+ +=end html_DE +=cut diff --git a/FHEM/10_Betty.pm b/FHEM/10_Betty.pm new file mode 100644 index 0000000..9fe6b47 --- /dev/null +++ b/FHEM/10_Betty.pm @@ -0,0 +1,176 @@ +############################################## +# $Id: $ +package main; + +use strict; +use warnings; +use SetExtensions; + +my %sets = ( + "clear:noArg" => "", + "time:noArg" => "", + "raw" => "", +); + +sub +Betty_Initialize($) +{ + my ($hash) = @_; + + + $hash->{Match} = "^y.*"; + $hash->{SetFn} = "Betty_Set"; + $hash->{DefFn} = "Betty_Define"; + $hash->{ParseFn} = "Betty_Parse"; + $hash->{AttrList} = "IODev ". $readingFnAttributes; +} + + + +################################### +sub +Betty_Set($@) { + my ($hash, @a) = @_; + + return "set $hash->{NAME} needs at least one parameter" if(@a < 2); + + my $me = shift @a; + my $cmd = shift @a; + my $arg = shift @a; + my $arg2 = shift @a; + + return join(" ", sort keys %sets) if ($cmd eq "?"); + + if ($cmd eq "clear") { + my @cH = ($hash); + delete $_->{READINGS} foreach (@cH); + return undef; + + } elsif ($cmd eq "raw") { + my $msg = $arg; + #IOWrite( $hash, $msg ); + IOWrite( $hash, "y", $msg ); + return undef; + + } elsif ($cmd eq "time") { + my $address = $hash->{ADDRESS}; + + my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime; + + my $m = sprintf("%02d%02d%02d%02d",$mday,$wday,$month+1, $year-100); + my $n = sprintf("%02d%02d%02d",$sec, $min, $hour ); + + my $msg = "w".$address; + IOWrite( $hash, "y", $msg ); + $msg = "s0a".$address."0003".$m.$n; + IOWrite( $hash, "y", $msg ); + + return undef; + + } + + return "Unknown argument $cmd, choose one of ". join(" ", sort keys %sets); +} + + +############################# +sub +Betty_Define($$) +{ + my ($hash, $def) = @_; + my @a = split("[ \t][ \t]*", $def); + + return "wrong syntax: define Betty
" + if(int(@a) < 2 || int(@a) > 4); + + my $address = uc($a[2]); + $hash->{ADDRESS} = $address; + $modules{Betty}{defptr}{$address} = $hash; + AssignIoPort($hash); + + readingsSingleUpdate($hash, "state", "Initialized", 1); + + return undef; +} + + +sub +Betty_Parse($$) +{ + my ($hash,$msg) = @_; + + my ($len,$dest,$src,$service,$data) = unpack 'x1A2A2A2A2A*',$msg; + + my $def = $modules{Betty}{defptr}{$src}; + + if(!$def) { + DoTrigger("global","UNDEFINED Betty_$src Betty $src"); + $def = $modules{Betty}{defptr}{$src}; + if(!$def) { + Log3 $hash, 1, "Betty UNDEFINED, address $src"; + return "UNDEFINED Betty_$src Betty $src"; + } + } + + $hash = $def; + my $name = $hash->{NAME}; + + # packet_RFenc + if ($service eq '04') { + my ($addr,$key) = unpack 'A2A2',$data; + + if($hash->{helper}{lastkey } ne $key) { + $hash->{helper}{lastkey } = $key; + $key = sprintf "%02x", hex($key) & 0x7F; + readingsSingleUpdate($hash, "key", $addr."_".$key , 1); + } + + + # packet_test + } elsif ($service eq '01') { + + $data = latin1ToUtf8(pack("H*",$data)); + readingsSingleUpdate($hash, "test", $data , 1); + + # packet_time + } elsif ($service eq '03') { + + my ($request) = unpack 'A2',$data; + + if($request eq "FF") { + my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime; + + my $m = sprintf("%02d%02d%02d%02d",$mday,$wday,$month+1, $year-100); + my $n = sprintf("%02d%02d%02d",$sec, $min, $hour ); + + $msg = "s0a".$src."0003".$m.$n; + IOWrite( $hash, "y", $msg ); + } + + } else { + Log3 $hash, 4, "Betty UNKNOWN MESSAGE $service: $data"; + } + + return $name; +} + + + + +1; + +=pod +=item summary devices communicating with the Betty remote control +=item summary_DE Anbindung der Betty Fernbedienung +=begin html + + +

Betty

+
    + Todo +
+ +=end html + + +=cut

t$`^aRfH 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%0Dsx_=LRnlaxn(!}B1cp|o0TOqLYm zdtxifugsH@L&{u9>Z&x6F4J-zN**k|g{_Yfrt5ObvLa=4m0{r}87dM|NyEzO0|~3q zAIlQPAeb}R+ill^sg@6bkGX{l=ba|)r4>*s{K<5u+aBM#mVNK$;LY)^H$WunjKa2{ zj!NFRL2a-{EazUmw4lD^ZCrKj z+_PuTe(?*>FE6Zn?D1A(P)cqMM*HpU+i!m7Yqx*@ox9(>GCJNE4MA@)JG@5q`|??;jCFQA=GWhQ=i2^T?|zfG+IO$ETie^$Z*T3P8jq$sTYDSL zls8n)Io4GxD(&j*1@+vk&%LN#BAJSUY>PGkN*FwJS|2$>>3%a?AtQvs@=R@ar?Us% zSd-{XcVkfPpF^dB>TzYwas5%Tv*htoV%>jFP=C1ZO&lG;z{M2^^I|{JKa9m z+3J)gSFT*We)Y=!-tlDb8(+P?xpV!_%^~A>l@qprPuRk&Ts(d1%*x!$=U;sG<+;@h z^K&nK`AaXqc8;{Y7hhdBm~DX)Nm*o6-ZF2E0~7den*=9Rd65{QAP;@}*0!o>#A&dF9;v(wbzp zIqjJmhlj=HN!QUu)5ZGESKqpE{piN=t?#@!=xkr#A8k(x=`4^Z=wv#P{L;- zwZyctW^|F$f_o~Fuq2w2sh!QXh6yvZ?rt)cw1zcpBDB6pX*{{{KC_Sglq{u8daRIQ zJ>!j5>z&cT0ZzM{?|l8euin13w{v5g3UE^OsfL8V!Q+W0?Tc#Dx;~Wh7zwG_B0h^w z?-Mqxd@WJ?5xoW;@ES~Xk2&;UwTc?f$!FVcqT&JY4&9B3sRbP?Tv4K`|CH} z`1;+iz4y-Tz3u7#-Pfm7R|9<3;ZQ2Ez;=4YYO_mGTD{b2w6}Ifq%{=@yJ5`uy}5SQ zDsgqK%QpMmGnbd=S6+MW%g=u0W%c^m=fCvjGZ&T@p8Mjnvny+u%=Frs-{=>TmBD29 zaKbf*L!9WD1ZC{IBiMmq7Me_mR`jRSt4HH{tu?;;&cViL^XSU;*LMIt8WMCP*`k;q zOiM{1JP9%cbt@Xw3Der8i?in!>^9uZKs!lhYQcLY<}D5zeUY_(S*W>nePZIXVIFOl0yg+?k_s>NLl7f?(t^b`k$ zxw>^dbkdCF(y~1XdXv#$3m2=I2x|KD=%5R7-Id#i8*S2ZdOQ6L#GBb-J>j$&ebsU- zgl{uMRVoR9G2q?`SVO&S;Pes{!{RQ9he-sh=K?N}zbZ+9V$9x5F-kTu%+hhUS)-3v zDeNItr`WGZkgL!dHsKo2jEB`?47{v5eC`An!})y3rZc9nXu}SRjdD0x!+g;UDuv%3 zA9M%^5r3>Tg(f)|%a>wKlRekS!YJ!@CTaz&BiK!Gx;rhAc7xDrz?bUuOGx=lnG8TI z<7OXSKjIG*T1A+9A%P}bk7m>=L4k&jSuVpJ1sYPZnj%@N)yDF|P|r6AhzMCOfI~K0 zvQZTF5N8Ml4iP2}{+QbuX*I}U;mw6+H37_hGGEPMGnCtTqMre`WT%lZ7ZbvDmo3?> zGwN7CaG&|b@lCpw*A}Wvyag=tLcN-Sa5Y!07vfH5vH%Y%emoG^04hLeKrQNZrE3MS zGRPJ}hoOoLjuY@}oQX!00!qw@bh#KN(VPP?5%U5q(g1!SP57!?5keOznOtUfs*=ad zBb6#sjA2^g;jW}S-b{=A6R>(x<-w@JoMGNZ?WRbf(*SVIxTfXI4(7Vun{U2xeK?%f zYvJXEx!H58Mnp@dIKDa##PSi67lf8GTz7U5THUW%&z1bJU&q?4}o`4`SoZ|-re8j@kNCmQZt*(lX_H-Yqs zlzUsdwPMn1nANOYa)c}^Dlf<*?JU8px#^Y8)7Z#Z#0J{l-tOlI+js~{!!b4_`8dwGMXk-Wv`R92 z*li2-rkle?)LGw*`_jdd!4>vm0p=H|5#+b!v*Lrg06ije9FTjW^{3tm|wvS@RpTR&TiAw*`t(y~~Y$*6)Q=RI#F^Cu45N z=cyhe7?dvr?6zouoVr$_Jt$Lm7!9fx^pxM5t)=PS@y(r1uaXS=OZ`NiLGi^<3j#6Q zn!#hItD#gq8)6z9(Q3>QFGuZe^4DuPHY2zIGPQEO8;d)vsZhK|UR68kfb=hIk8}$p z2L#eBqNF6Ux-1u#Y!*G7?v>`jwcT!OD;Ld#YQs(wCuut2G+2#+pxNmPx!tJ1Q~ctu2neNTS_sx9hEOGhf0p%NjJP4B@CJl69N?R!30hNrrRXX(dS2WWjI5 zfOnH&R0L=>pmPu;_Iq(qWHY@=3Aj~HzEud??b$*Q^u>4xWUq+N>b9%22=08Ndv&v3 zAo;dgZEf#vfha>tGLQUxb_(Zer%kPu1LmZOW+l1L@dsHKG4}|H>$uhrpPc2#mj+s%DEn{1j&De&$kwGW@4mB zs;s^o$esCGEK$u7{G&L&n1^(iOovk5qIRwuye1N519%40IPv10ZayC~TCE0Oin(%l zNJNfR64qQbk0Kq6RBHg=RYE>&{Bj~5(D*VrTqrOy#pC3aEokgc@_|xel8Y-n7FV%d zYE6z?*;c8XAj!#qGs_#oa}VKrs!;X^vt&{iQdWy29B@Grjky_=O21$X;K>S*R-qVXdqZF;=nGZ!=<#BXpzx{J(EC6<*6SAw=a%2n_`DS>;ItXt-Itr^EAy* zGk@)#ISo}k4K6UrmPM*_Y&j(CHanK2_W5+$X`k|lGw+SO;PdZuS*8g}OFciHR7 zI_q}XZ6yT1&kyeVx?2T_w}-)k+8e+cV?!V}ELO2^;uVdG6cpt3aUh0Be<@(FD5IUh z^;Jh5Nf#$1M096NMHvYTrA&++lTT!)#6%7#+h+8vLT4l5a;mU*pv;N@C&AFTmEF*F zVu<4a1o?qF4f>Wy4dhPJywj|cUzsis(k;nSl+3m$S>D9q0-i${i)c3PHk))d!;V_3 zG+AsUi-a7df~Ro0?7jW*=4v!NKV{R+1c88Ho5dRoS&hb{t^1$dzrVq{%t+%cYWb{rvrpzyJ0reajLVSh>nO7!V>djqReF@Y;!t&A#b#tuMFl_ zZ=cWRAPF&!v(RS0F53P~#KVFaHLzNKa3ohb#AEVA>S#nrjIXp#E}p#l>fO7qzI^}H zn|JSSR?~J18%!k^FoQ@|9~^5GTbT23X4$MbtNht4_F*^}FhcVJ2Zd&}0b~)Y1G!C^ zV8o+5*i#!&+A205KG@jbm8*^(Z|v-tf_95tZ?riQrLq7*pWM8A|L(`1e)#75@4owQ z|NOh}-acEOtk2k2h`?wj2(f?-W0{j{q|1p#j_ZZXOKvr#ObXg5iMH7aIIKFKqxxtu zY_(uW)w;bpuR^w%2v=*AYYwdzX5`_~{-b-3wsy8Qw;tZ#+IzfjVKTXW_tP(SkbCZK z+}}J>8!UWqW7SUY*^h5uy?_7q-4D3se)rQ?uX$SDyu4XY=c~!&<*UWX8qMnYlht_I zud;2e=9u!@T`sK!#H?Dmy)83XR5VE{qt%HEk5>j~oImZg`h6A~#8N6buNP}D`ZK_a ztRB+Mm@ggohwwNLapUZ0Ewek%(f=e&S2iDV>s(jB$LYNw|depmEC-V zpv0-SdTEUS46uNqsw)?2r?cu1lFe|r?6H-s^u~kU0J>MB)vQ!ki+rP(j+Hu{QlXX# z<0-%f4)NA*)F>RToqfd@AKu;E{^Ik;cR#qZ@$kXJjR$w`J$m@yfy%hOt3B9OQDC^@ zOsrXUo}QmCPcP3-7tg=HoIhK3hRd_XfKhC7JQYOiA&cVq@bs(8@#R@>3<`C6a@wg2 z*AXT@_C8#*`VE>9s(79lchIV_+AX-d)N%wK2ipeI<89f)&mQa?Y&_U`^ywG8cw5`Z zX}0$EwzO`=A=GD$&FjLE=n3W6A@!%D>G_jq*I)hL|Mb-#e*W^!5C8bX>o@NqygYw$ zb$+&B!VHw;)wN1`PPG7`t}`wM!N?)TRTVln-;G^Zb0s7a07g?8$m~M2|`>~fhl|W{^IJZ z*Dv4x?!W%wyWjugw_kt#-FI(ZJilOf*sCs(mkSc1qAXV_k6G65ZEC!lL)p&u)}B^#u%}QS z>>nG2>fE3~8=J^@Ma;XD?{=7_Ovls9=g+R6-dvup7nff@ouEK3<*4EKY~gv!;5lL@ ziDaWogIYi&nrk(S`Esq0DdT2BV28T0KJ1XNhk`6m2Sveyubz&IH?EzUBk#4_9p+=L z6DO$#&z#DDVo0q$KH4)!-C6_%I<0UB(rQQ&JT^YYgYjVg)weG$PcP1wt80KX>>}!n z)+<>u@kByx@`WQ|H2Bo)p68aE!fhd8vAd2v6hMc!rO)-w7++^Yc!IWj3@av27 z#&?^KNFX)s7`fC$pCkMv2M#%f_!`VOuQ==k=PiP6ltH5q^PmS}g3Le`H5CvQ4#9Mm zKt&R}b4(v^g`?BM9*ah!p1p_k0EH$nPZC~365nOkK` zV)l;R2~QLg?>IVyX1&Cl8*-i_z;HatNG8cL{B~F!3C8QdrqQ}dZhrt(G$P;{9w$NueNuomMLr%PW7F@8r`Sb9Qxj`h@eA1v z(ODI8RB!w++XEW%B)u?CcpeOVkf8Njofw@D^J!l3P^4a#gu9Z1-xmq6VHb!BAxmIj zo|ZgWTt?MQDMd6)Fot`8Cl*WxFIPD13%h;1+l%p1!HX*n`yOXT9uH?ih|obiyI}_r zcwfS`7{qcY(nFJ(viMvGiUx=wA_RFJP#fTn@$e2xgUn1&p4_fINYF#MT9M*8Op2Z; z$=XOv5`4Dv4AeuJ3?)9h>r{^2u~(AZD2MU?QG)Q4Nr~Iyk>xxlR(@HWw@`$4HJ4Kk zLxQ-e0po;s=ULz|H;q6f64G$q_?*FsBEw6-AY#NHLzEBigIzge6Sn3_ycFb4@|nWk z$Qv9S2+JId73;&o9UW@$%(U0QGaaRAg;0!hg0@=b|hf4v!P3RY} zL<;y1be;@9hx!gpHgi$lx!fnpOBM}$TLBzqsUXEY&H$BNI%+E>&D=S+6TeT~i{>rq zj~DPerm$({5!|wyowQ02Q~SNn1OZ5=lL;mYz^Hg60lNtxmf46IO5hcAATkv!g^$Tl zFdH3QYhn=+ZBdV>3gpZVpI*%uh*~DIKCgK!4(PhwsHc3HY$#Q%cXPEK`%k>yDcftSeb0iDJ;p<*>jP+c-zk5qGLVjqNgU7UA4h%I|&j@bga|9vnQr|LLQj9O(`Gt1>NO|5Vp!r5*O_#R`4T$YXXjm(v&jtd zBGZ!DE?c|KY)-Pd<4d-+v@O zd?eWJDu+XdcU$kRN)DEtu6U={T3wBik&xVf24=efgaFi*M~|T<|YgPDwW=P*qZe4pmEckVy+k~Pjkh7DopTUq1Z(hOi7Ka zy$PDEQKp%xEvLn5i}mwxR4O;~S+ry*WJI%*$~i(|HBw-$MsJbB5!_d*IA9gBL)GDN z#A=9w$+hBBK|LRmca}iPquF}00%YGgdHLOU>*>{aP^~N~xx8dm=}k`E?*0GcKmGMz z|HUtU{fl4zc5C;+p3W=6ZyixSWBu9t-~aJn|M2tAuivdpLnMyzidW_c=;T|6#;rZz z0&26#ik(Et54!zvYd)J^txlI$H&?HpU%$G3_4aIiv6?Wl)#+0ajmKwG!<5)OR&6}o z+S(C%<-;Sb&lsEzsu3Ghuu*S1NwI}4o%D*B=eqR~YcZNTEgx#h#Gb;c(|O?r-rbaK zEB6#;1epe_4XqXz_#S-ZSKqvU^X>0{`s43@`XB%PfBn~=-@a!DwwyA=uTnyYDpa-i z_`XuN^Wfpu09!5X^0?_Ik|UQoJ=UM9Y*xuh)Kgi&Lghgm6Pjf zEtPJyy7TdT)aX=N&1^N3Y0~fqnx`db%&96pMU-i_O@o-zZZ<+;2Gy90k&+PO6k;oo zbX%j6U$=Xtwi#6hS3DnrRho$bb!mY?9L}*@4F>3mYA4U$zP&iVxPG=AuP&~aHRw1O zQv@%yTG%NDb$0T6OoR(L?Xr!>_a1!y*%$X8-@o(Woh`L>|MR;Kl~8Kzfn-qBmx57+ z>Az5N;RYR(i)ow!G8L(R@ZAIBg>PMzjt5=XKwvgM`F%rU+ z?$3waZht7ej-wg=vR-#Q?sl8)VUJ9nA;jrE=Md^zx?a4nR5I`cC}<;WD1fE<0$!if z1_Ou|2j;UU{3Xc+_sR`uJR0P#n1g5xG>zH)<7_~ajSM6a zW>^{QompP9phUPiRe;p4z*NYk9bT%=G~yR(Z&AmAja^zs%@(AY|iBpnc|URDVk=E=aW()3NCN3Q-x(vNucNAkwz=oXtA88mQDDn zmhIB8411#*vBOdE1#;Bg6ntUylkn$5&U6P$cd_YqW#NW|ih1%!@RFx6yJ9U5lv@eL zp%rhe!1qQA2`b(^6o!l+217z>mZN-TN})969SbKAO4RZ(0(=FFELCJ0Ma~$tJ30{> z0ih!i;*dWpV{XMUly=BGm?7TkNqD3}bSeH4E;?!~Dm|fbp^W7R83@wRiC#|p(XD#r z_E*y0Ayh%VFLWz^F5!f*M<|AbT!x14_B#X&n@$H+iZH+2ic4;PlekyBTKt*#wm(Z& zxGio}{3QxPZeH9vU*gL`IU~NtkMS23{Gb1QTYmE6;v2h(GuV=lYa9`I+|7q3>+VIHsBEC=qR=<=4#wnQ)$&-DxGMw#6# z*we_MQd|s+QY;$^6IrU_ zhc;`qaV`%)g7tE}Qw*eFLBg;`vW!Iaz=w<=i1rWnzc4$tOj_n&SmF!@Ehi77li_3q z#v~ulE=$>AlBzisNw6=bzf8nXIoES+1KP{-XpRKA#BT0lx;h(DKDWBlSqtiNby}#j z61eGnwqVL(4{9|U_3?p5bFjbv&|uhdXdmu9e6aIar&qfDzGRu$v_-elC`1OMMK5`z~rR=I(TsAmnX@BvTH?omZhDl*5 zUxcNyu63R^iUUFyM)Se!a?rb&cIPLf&Y+#1UleBN=}eiHB^+>geQLe==uk;?nPPv# zX4tl>zu4Qo|7c&ORFc9FN=d~w(|*VTm!0}~JM=m=6hvCN~z#M;hmq;S~)8F3H|{fO3n;>uflg zcN^W(5i)F01FfozI>2s(aj$e5AS;l{dN8@5U?&Jlae#vI1uK5=ASYTG(8>Rn zGYFFeps#Y$2ayD)qlxzgn|Yu1X*TNiAgI;PUYuYmsB#%7WdRzqls3cVQp#lqoBIx* zS-!QmzXeeQ%Y+6;LI^B!75hPTdULgG3d^Hp&WrsMd?%H&ZY zQzedyRJhRy3rF+(=3-JtzAKt&MviX5=(6ecT7?X$o5!Nt+t_8qx+_=f@WnYuEMc~X zORxnUuMdbz4cMFxdW2DAOB^G}YVCwsI9bag z4F!A2qz`jn9efz1I2Jce!ic)csSI~ws^5OL0TqBwSa55A`Oo26A_;jP>vJmG$ z#1W%1CXWn2geFm(E4Nm1PFD1R;z`24$FE_K!NDMmca&wfw;~3WxFkiI1e+ngi+_l3 z8eBTdYg_!VNR!XQ$N zKscUm4_r=6Vb8oBaH4rd-*kJ1id(%s<~W0e1V{WN(r#wWs%YG(_oJFFm9y=W3Cy`t znn*$Y(a!ecjje-Yg9VBJ6G{zEZn7}^>M*(=h(d_K`^Dp0j z{lgF6ee?C37f+T`e9M`51das>B8vU(&4>3NeDUz%-Fq7%oXzYc7c7!22@1pN>dEVG zzW(lqAAb7X_dkC3?blzvdbVDWiUWJkZ8pf2+P&TFN85Kk_~et1KK}I4&d#3f`1nX} zG#c!VRErR{?zq{UFP0ZqFTZ^9^ySm5)3ax1tCQKyQ(R1=R=Q9V)2xKgU^C$1!vMIw zy{|?AaxBA{tvnP@7ok|J$_M}~wd><2%Zr=K>-qHNV)^9BtLMw}vwpYJZtxcIL`wkQ z?B<AJ@f^~|~bR5W`WyogT(V~>7(7ja{DwXk)6|2QWZ(e5=&?JE- zQ=|<8WS?ewN-30y1m{60>^H9Uup=m}~$qELf)keyz)EQXE6w7C$$`VXzp`A%}NA31_+Q7111in!(4lXL~RTHB@(iX}fvWxqyn8fg6DHI1T z$D!M;Rvw#=wyhS8ovch}$Zler02#Cuk9MgT6JVd3?Akjq1G@q`25`;2OXQtj86f_f?fIh~tQ!+^@- zG3e|zm?_3!(nCfRb903IIPf_3iC04hiui#6NaJ$RVXs!M(>|?E$FtKJySItZ>^@l! zU#&-DVr6T65*u4FZx*MQ%i;8FJ~%rg z>~At4V+XcNdT^4TENHcu5d)t=8X%Es5%hDlHLJWyeK>2jcrEBP^(woA=ryg{KtzU0 zwyARMS%UIovwB~_;bU`vKd?Eu@^krjC7Yr81n)ekQBE}woTwN9h1U7I&|O!TPaA_} zyNai>PWa(q1i-UVAsZuJ8^rq~)&!j7xY8KRqk`i^i2!PKrE*xq?D3@45pZyIusK35 ztIut9I55%1{LXsVmJOQx0jG!fI4Q~XhIopg-|a7llKrq$3wZ$2@aB~8W2BOB^Puj> z%i&r#oT~xT^ph4!Oa)_TM!mEX!9qDPXcO8&K63~H9CiZ1F%jUvn8YNtTS+vK*`)oM zG|N&X7nrtC494PIejCLU8K3!tKb>Gn6QL_W5EEmM#Pz+D7JfELhYWZ}5b`XH*rsq{ z<#LS)l!Uqru>!P$CaNXwej|3jL9m*(BhTvMz;39aZvOpFuv1MUm4;(KY4kd7Z z0eA#BD0bO6>L7v%v|WrQjIh)=WNl#r!+a(_AplOqq9GMV!W81^252Jik4&6Fn6RiJ z7%#)HJ`}?8LaWB^fCerGnVz#69v{p*C^w+~P;~G+#m<1o2{R5915J1=#7>GnmHR;V zhZlgUl_1UWJ+Qt>IEc{0i9<>_BX|yqw}TY+NwD>(k9hdZ_34~Yiy$lDN0FI`mk++E z@NMt_IgdDrh38Im{Sv>Ce~5jLuv}o77f&ol8+V+iiDNT_M)S5~qZJcp7iS}X3j-)} zk`QMcC!)Ad^}H!itpy8xM+k6Vz9EGRg>a}$;2YZx*lHebgSaTbi*8<*pf_O)wZr~G zBfJ(q$jERuCo#I1t}!Gdm(6Y0Yd!E>3DI=B z^%`K#P@2Gk=?qSXL1QKdgUSXh4^tI32etnBo7WfQC{Gv*w;N?bJW4hG1@}lekXVEz zGh_hY66|TcQ8`n-HMrWOA)q1?*#Ap-^hT zERanpGTTfR6pGNJNv>^myX)tS80RDbLvkJ<3|~xpRbU3WWMML?Bj2e=7B44aDg(1M zFIsA$SS>LTXMTh9rC6>JN7-qRt?UW=eGpL{sff#=Jyvc#+GSLGlHwNi8(zHYRCR?{_Lx(X`dmA5GNtCWgmjtUDy&><_;F4R*JPy5Fb*f z!^)|ELjkN5fz_4C#iW7VApp`d91obZa=Df&^O$hi`}=0o@$SR>yN4PMWt&c^I<}&w zWz&n9wXrxmWjMRMcy@Jub%q-pS5~(nqQ_$hl6&Q-+mGM~$y5=_e45?3D4w&a>S#Ky zCz8d^l+--j&ur6BL#1e0eO}@5Htx!Jo;AlZnS5t+ho@aDqc4-|m|FQ%yM$LH<@Egd&DA6qPcs-pk3hUJK+uTRg&;~PP|>NQxuB?<)7@6y_2LRK_(F%Z!j%sb@LK2PK{fc+x`O0;v_4 z7PzM{N-mH(ajW78WDfP)q5NoX@8IZIiQ9#Myg)SMQ0yE+DGRz>g8!YO)EJEV)5ZMy z&ATs8o8;8;T$U+!xfbCyWEK_TQ-|FyL23#c6M^>;F=|aQNgxQR3+!Z8B^H!yIabCy0mYgEoqky4~BvLOznL&0$7{ebHLCRlx3NXWQu~ z6wc>yIh=l0-DZ=)nJ$-8E><2Pkh5Hj`E8Qux3<$L0-(YTwzq)C!L<0WjigXn+&VIj_=0E{y=LHU*7 zi47IIePJ-be=P!0fQ`q)&{bIrgna%C4Ok)QbhASSdnHaSwwve&co@zI;<`%A!+Z%z z0oM=m@5Hs85o#>x&oa%&y?Y)2^UM zOmgWdR$5h%52z9mZ-pX+{AFTPSVHkmnOm*rl0g*gym5&i;Z<0wr5>+uizH@=vm85H>;AZe>~aP((@kyr`QnDIqMrW}V7YiB-#;(UcOAROO9 zCBm6X=8l*KLr~+3e-3xKy;1tWTTdYGqI8)QAkp=4U-@nX2~w>j<&CbC-R!*;gk&pI zios^ZA87h@Zr2fGHH$`lAon;4p--*L)xr2l@~dyUuY0o>r`>9I5_S5O!JwlYvIGKA z`~7>nYOPwnjpxM{OLWgBa1vYn)0a<2E4;IuG?kPeld{(x@fbEf-c)@27a#uWum1L) zeEYy?^7YOat=fFt>UHL`<-3=cZ=SBt3bkGua%s$E0puEY#8S9(<4Lbg!}?33bSM1O zZpC1l6(^wio3Ed~{qfDW?_a)r_H;cg2EF#6N$&GmWp_WhbMNt|fA=^4m3$QG@8xscs}8pus$7EsT+{Ix&%?%p?|!w ztMU?14el)tv`ZgIdgaIVM9S%c2$Vv391J!awUj5G$30h!#@fp-UoBQIow z|Kp4G)y=E*{B$|0a>-zTs@vJwk{zpTK9l_50p6zlt@|H+__x2jbNA7M4?p^cPxh5M z8!+c+q`Ek}m?47c7K4bHQIJ}O>LS2N4&N?fG zM#6<=ol@BAL-`tZTfFfwLAxGO9gw9*Ma&G>edN%I0CuKk-lNjF-4G)fAQ+u?n^~(p zQo6`p*IUv#q7FRD`zIwJ?(vvSo-QmsaNvF{q5_>VK#Ij5o@U-L7!37^e zrw+{1i*PcR^yy7DmPsPx)#hcEq`(;g)z|XrT}MFqDVZ9oqs>j_)|SbtJTR)+6?$Dx zdT2!Cg~pTT&!1dhUw?V?;>G3DlZ)@3Oi8pK^iM7arE>pdd;&_VGrGK3um?N2IUNG6 z5`(ZJkc<+wR>0-P-eexQDe-Ra6tHErReiQAt&71M*6?^O(jq2^YpFENs?jP(vdU&Mc+MqNW6ICi= z($=ekMgmJxnbRBZVv36sD~ou)nG89BidU;#Uo)u9YfV_s%}%|P%%$sRL&o^5bUU?d z*b|4$p2kw98E2g#Hx(7?@lg|k@TLJIXd z#uj`C?AEgB=Dfvam7Krv0(M=EZhT0hZy7)g!6{Pyq?;B2;?Zmd39QlUgTJpolG}Yw zlTx8DBvW3q-suhDBj$ujGx#e}*QG0f7?9oP$Caqhjn1!1ALy3yknc;$K$rsnjbS)7 z7*b>v^SzlAjh{hA`dkP`5(<)AMBY$IR zh;a>43}6OdiP8{I3;kz~N9YS6F2jEx4@mSTsgNsBX;;e4($NrvNj zKyWd$LWZxSH;jfMFp0#*5POZ z0dx1z8`#>{X)QYQaG683$h8RW$*>TzIaLNJoAYb8?P9>prkRIbYoE8J3Z;K7tyHRH zdaK*8_h`pLf>Qvzr7VD)Osal5DQBem zyjxG2>~W*L;<1FBsh~UO$AfLDPX_f|o!xY`R|-}-)p9FuhD7B95)5$Dp-EKYrA%Qk zSiOI_K412M_?V5mTN)R07QDx zz`m`H+=wM)Y_!T1J1Gc+*cY7+y+v|rymkkKeylg`PGvZ1rs8&IE?~uWi<`Y2F$S}t z`VduUG+;4;tO(;^YSkE=_@zQ?(QT|6!8}$__Ad%!K4|S^oN*X}IjU)|R8K_m0b7ta zXF{?#G1C zRg0@ri%fc{4#I|jGw8H9C}@*@cloptFW0E~6ZLFS(jKCs@R~i@V54PE4kcrxUy1;K z^@R$gDh+ACD^i%k5(8hR7&0Dg*x|}a^>}Pt&Goskb_aZ3LQb7o??u<(mR6H)cQzw} zoH|CbYL6VacoBU{Y>!LDkPVVXzm#`dJ&`gAEPj8Z91PdC2^NguLqd* z;N&bDCb12x5Z!CSl*y5!ZD_1)ekGGOfqrUOcvZaGzy#;1M zKNTpkZgAJCzJNQEak=&t?nK&PiFhrsPH*+qSu#Hw5MmIGDXravRIzyr?tsV7XFUj= ztr4|ooV9kM+|612b$SFEhSK6TgyR`MHc1+o>~F14o`j2DtlPq&eu z%p`jN(Ly+A-cd1II~m21l}l0=6dg#UaU%dhKduk9lZNOhlkV2=h;%Ut#GIOF#+EN( zIF7q5#fwEOd&;i88I(tQ0Y@sTHA+!WZj?})OJyll3LWZe1zV;Q3};}dSDGPRC>0p3 z8c}zv=a08DR$D&iNTTVr7YqJyP^Su%Dvik~7O#4(zQ#D{DrKd1FJUmG%icskCN&!Q z#-vqsdsEIxA*xdOgH~TN<<1pcx?m~ejFp1T>7bysWn<1{!)rL1)f`83ealrUxt}?Y^kXDN>hxalengjonqL z)N65GS(IdOc1C1em8DQ2VzdTqt~BpFHh4Z?G7}}bFkQwS zo6q`)WCcu2dsijJnngFd{c0paK5IOf_Pat(DM2c0z?b4APvOiXDyM>Lj_fbw=2?cv zD2&+ZC7NJ<(f#8ZN_s*rHz?{v1u+7{o@}Xr)*I=2F^|li@6BZJb1>J8rC>;M)FycR z2qR$Z`dlKD42m^pD@|{ZT-PukF%nR)0mf2(B4pu=(N&^JPR7clFQ7Ycr{Zq3*s1h1 zT}tY5Q4>ix094=A*kGeYSa^P?}SW*UE)_XLfS>^y{B~{^$Sxr=Q>5JiWX)8zqrWd2Po# z+Yf&I%m4frzxbOEKK$q|TR)={3>GU$>tpD&5xpojvfN>T51go|wKnQme?jxkL@_Z>qv zRX`C^*+4d2pz)TJ&bS zJJ}k|&(1Gie*35Y_<#QQ|NFoG<6r*ikAM34=YRU~_2tE+yPDUtbcQ^4Vi$O@iziE_ z)T?&)F!@-$Kmn29*d&1F1iBQP!i{!za(aDva`X0d%p#_Wz!NRL$L3{~;j%N;M3SfT z+JJy5j+8o+d`Gr>@8Qn=-uA)n{d=1`5BF`lL$y|A@G)r5QO&Mjy?y)j_uqc`&F{YX z=GBjXdU5&cbU;TiZ;ht)_H@R8Z`5qGV2e(AAPhnw<^myr99AyFY!G}_yTjzRIny?c zL%k0-l!#-q!hnUz@8Miz?`}GAhJWmHJaRDerH}l=7XU(d+~`B8}#?#d&YIhJt$aVmUrtOlAxis-&P*GyO%r zKCKoyBXpgF$iZiuo~##ai)jE>@0Oz{(>m?lv@`A(L;x9cbO7iO1RePVeXv}i(GUx# zxc~Ws&p-YA^E;n>_~CCq{`eoZj(+p`&d0yKzq$SBv21TssnZ(JgP<++NBrqUqj)lE zjL)9mJbCxc^EW?!|NW0YeEasxuU@{qSbzUwaItPMqw6<&!*UTgatmuyn^(G7UR~9D zD3-BJR!U8Rd6*#~IS67!^4nr%qO>i-$!ONw@lYyR0qWvS#9)9@g z!~N}hJNp}3JVkOnnrpM&Y4CJ%zG4Zw3?Y3ZT$5PqUwnmv`29EEzIpxM{&@4{yQ|aH z<;9>ksv)1izffeBn?yR&>4lSI=SA{0v`zdO@Fdy-f$>kpMl)PCak{oDj+!Lt(ovSM zUXe(sl!d%UO6C6cV})+#@zKG?#=iVuSEktC#H@E1v?~opgU;X$+H8J`b0&t&#w#VH zt>@odonEb1C(E1X%lVRc$tD&!)^6k-d20=r{;csMOa=)y;=#b)trGlD&Udb-jUK?Y za&JV;TdR(84F+5VLqse&9%abhW5St|h({!nf&sr?$ISO&%NQ}rkB?+~2PTJ^3j^W+ z8xsf*#xHlI-(!PNsuY`3Gz~KpYO^(g7bt>ih1pdfMmwpIG&>%%&Fi+i5xSrt4Z7o9 z{MA^R@wE5)=!j{jY12txuNAAy)u4rk3X?{;UKThjL3j>$>=wP&4_1XZ2!K*}@>FuX zZ)!DrAZEi_H#?*#@f2V>VWbFe8O!rpy#bK6IbMPnWUB(Jo>nf+I!{a`g_%siEJY{9 zoe>fdhJv^TPzTV9@}!ASopQB>tC2kc&^%@rLOpUjuFMI?8tKy<5rL2gza;~4hr@~V z&EpZVRfxT*NrOQQuR$MuDiTWSMoj!14`3+4z~u!sAVqo&qfMbRiQ(hH$0gi|7z<&y z25An_nDF@$vY1q{%A*2%j7v5LOi!c-2{DUs(y>=9XA{|cC#s8A)9y-AOL|@~U*s*5 z2}l{3Qvn`rHt3*`Bt_606kSImCLSr{Pr6*}P3$p6aE04}Un|4^lF4datOg0D;(J*Y zhFv~z>~4ngLML@=?jw@`g9GuKCGH5&4jO)V0f=tcy3+mfLV#$GVJ*UN7K6tWC5@ee zn}!&>C2LK7K$wh}-+Cbc1N*`CC_(ikFpGsvgM4-|8%`!c+9c9>GVR1075*v{;&6`H z1xSDtaiI>9^@NRz+lrzpWOd7jP4KMz5K zpG`*ya2~c}B_zNe7xWyyhph=Ch6G979PBYyVvtQ#dFcR$z<#y~&lom|B$8M*M@dZC zsdOn;NZX@P7r3LeU&=8-5TYi+*jVqE!s#-<-Wex$#TLjQDi5(C!Urb8IRfR9;JB8; zo{YyIbJL&D`PWj!@kL`aC7_nWq#%^Tk&Hj=vnL3WdXZnF=*|h}ts& z{6pBskkyfem5P90=D{(d=Y`0zVs=L*A5Rpn0CY--u7XKat}qILt?>Q`vBRhO!*s@G zC@bDMyiaq2_n$4qGSO%brX<^lq>xz(8ym5uyeWzx#fU&5pe~4SFHIyJ6BCLahBtWp z044HvW73}ru^eLgD?aUMEO;eU1p;U*_Tend1?rvE0lQz`oVR;}T%2b}EDI{^5Q~XjJvV@<>UImk3jj+TDK7>F0($)!i9ee;c())(_ee@OH#;UT#~G`}3TTY1)vZEOoY zh+L^M0~;7rQZC-Tne>>uhtp&7I$EuK4o*4w7Q#oDu3xl?NAVi$NV^?I)zO~bqSb3; zd%LQm<5WOnkjoAgUYZ=#pND$l>?EHflxht7Z@%gd`?XeW@dVs1JEqFGQ>>zgh9K9y zWMN5iOKx0Cp$f_u`xG|=hRsOMDi>$jX1@+P{j>^`h;ep3g>B#JV8-uGsbspnogKMT zcVN)4p|x76#)#$6;meK&A%7|$noQ+R8j(_x)YL@8==S3-vRQE#sgHEJ zW0l+;I?`boR9hWNwM!#2I$SnS#P7vpo6B8Xl*cD*x`*RZZAh0>AzGo9W=oi0hC4|_ zTggC@2bXS_qlGGsbO%30rCdo5&Wp84A(^RnvYA#c7|-yTPK2?H;7T&3-Exn4U!gM_ zj?I=sg`UVZGt3RWRru4}bB&uYa?xHOsXT`ke8*e|!1%fBnawF8}oJH$Ot{I2}P;PC1=N z1Yb$^xU?Mz|LWH}^5X-U=1}b+k#q8L-Jh>cp1uFq|NZLQ|M~U>L1{F7jW9fY$)nx- z?T24{^2@*cV&{Wj>GtlcSu2^n&O;N%<4|HaT3!yOz0!-JwO#g?xb8X9<8mCtjNfd5 zuCe*)9R=ymrfAs7em0pS7IAWNd4BWu+3)`O_y6+!`+xfO)y=95DnDU0<>MaB{m-_H z9>byDu2(rDK9ikmLLg6;iqnRMv6$<&nPPZD2&2NGN}g&a88q-gl=+-TkB&&uW06e! zw9Q>7TQgBd5elrj-4n8oG-rIFwpuji^A+fc=QlTBvP(N7sii@aQsGLBRW0IR{~7fV zC<}{Mr#&{uat;LsMUUU^4wzIbnMKD`(PL7(Tu$&aHd`oAxn2#|%Rw`@dPh*f`NhS> zsNEZM3C%W&mTm8TfBAG;%| znuX72+7lyP2kb3&)N-HjSfb#njgxV;39UE<$*|vtO^Nbzy}o>Lfxz_5&rfEfPA}_3 zDF(G zTEp%DzCL|>x3hjSs+U{%1FMtk1yPMWOuP~O0b+^TU=DtmAW>pxkjVKxb~~BvR*M!5 zCo?CbQKQ3tDmM{(Y4u4ymr;xS;_!fY9ug0{ew*2D$B0DEYXc*7v0m%f^XMSXm-DNe z)8*OelP8PG;%o^OuHPS#!%lz;K`d49+-!U(glG`ZQwwhpM-;9uyU*=3IX!weNk3}U z&hG98i8V46{k6tG;2jp82+Jg5|0?hZ!F{tAu9F2c8(UsXyR;mg{7W7qH-Fv!I7+us3R`?@2GBKtZ^UXhA{(j86~KrXT59h$`Mg zycLr`^2o@&K@UP00z6RufnxyZ0ck%0Y&GQSL82FNaJ=gy!dH**h!K>~jSEFN+aM|< z>`w@8(AS}ypt56QNBaTsp8r=g8PucH#}xP!(@50ueB^?}vx(m&g5s$8#h!?A3=fx($@8}emlj`R z2*>@Q2tifIpCel2TlgQ(g6J0zK5~QH>MeL#C=W9N1T6|QvU#(7r--)`b3!N^{9kG}WUp#PK%|M?3?f z=cDhSh^H{*ZlIMBgMab-3QHW7H@|`w@Ah7c`yrYL@$8{+5sDO05xlaz$owCKO>yUO zq_ojZ2I$se4riV8X0Fu90Be&FB#Scp(=<`n^hS6?$CFkokrFE6LbY9nS6XRg2r+SJ zY)B@}Ha^Barg|ol1>n6qtOh>ZdL0968{vjtkTj=nUrzc!3P^q`5-5vK58N3Ed$&X} zKDT5)_F7G08o?IR?G6^>$)s9owgqiQWJQrKEa5w`6A(p_!lD}~p;jr11U;!(I<-P) zz{R4snN^I}q;zevS`rZ?WPKeM%hOf2PNHN3t8a@y zt1jb%E*Q#T4c2MKex%lIlc8f!>a7lw!H85tW(!$u4wqNGdyL6S4N?auXr((H4Z5}2 z)pUrRh_(;@y+lo#?-4O3@ICq3<>_#Bz3fzKtsHgWa4=c)I7-N($t9=ffQL&VoZSYQ z-fhF`VBA+~0T;>c8NxWz&GJV($NQT)uiNM%$j!w^xibcgycn$qd0!wI@kEQr?@J_b z^U=xVYNYdgUZ~5rz@z#=6^@w15p}eI^!@Hml!!sKIcdI6fk% z+2GLaKi-fZZ5f@9Nw&ZM1fX{vw6MJs6;&RB=eZ4FF7ft`|UW9ZkWj!9pI#(J}GUdZ8O#yz|bQ&pT@`jAEEwz4IC4{h`NM$B776-dIHZ0d@Ad2lp zyLEa#?RVQ5iH{j`Zg-djjdq)$igY4S?DZP$Q5_WlRt$h5lgrNVv{#50YG_j71Qv@S zF{%lM+y;A*(QVj#v~SYxo7^6Y$!(M?4CEkKO20Y11i`jM#N1L%JTTxA5oZdJKZQr+vbEim@=h0}3sa)ziuuS`dbd~|0H#@*`;v1Y|WM+gaV1xfgbZMN=7qO@! zu(jJCh*ZE_78N}790_AHa}gnZ2QI_0#7vX?w{(gRC#NR=1PBdBQjnL)>r4^Lio%o0 z0WEka;)Qydi{Q5fY|BzY@-SSCry|0v&0nbFyLGzEa+A?VB<1!bh;?-*5hA$oT?psLqODkLoz=j73sXu-K_{Va&x~Kti8tjc@{IYi=7! zlQ1@0C{>v2(3q2yJg>Lw(Q?%0@dO!Zq_{}>Y$2Fa4s)Q*E)Pez$L+=+h$n#4E-a2U zB$$-}SkAD}h5{pCf`|zMpcA8ibhX&2>cTlMitq%tC z^y4I=c7zvAKu%grTNy`E7a)k_YYfDgjd6U!?_oFzr5%epRf-QzS-49UA#A0zRdY zi3ayBRmyQ(Av${U?#kuC-vPhm47N zU@$tndG+qy>$h*de0F|1?ABQ*=IEqss_pGZ5AGob+&NSjTpp^rWIWgE%}-A*uFh^= zK7UOYFlwRrPohh+n|bR<9;;El`S9+i_dfV5;6LOix{p>Q7f)Zje*evP zKYaiFH*cP-M%84%sy@=-fZDu!?^nP1^#0!N9x`?M{{XA=YOOO}tgE^M&tF_j zVIz))1F?E$7ZCyGZB~m6OPgvBy5BJ&_B;EBWUXloR+kG;?_@Q{96WpW;_2mTeL+t2 zWJ(4@sni}$dTeU}Fp|#$my98>8x)?+=;H0?6zmeGiF;$S8!($XJ!ZAif)6V~A~jRm zbb-eNTB17~@d;|4KDn5XI6axo`XK*@t!igH8n(-sA_|=bX%D>p-7cTYLT(<9RknHe zzTBW!Zf_hY2=w8VA!r7b8^Y&c96r&Y0+AQ}-f%v_PcS60lHXNdfq80Gxfw6Sz}$~P_rc*@y?l8+AIw*?`Eqr3I_M6@6I6z+Y<7G)Z9()+ktWCd%|wW&jhvk0 zT@}O(z2exQI@TL72_C70QeH=vx;4TVRA#Fl3tG?z&R0xY<6(DvFdHr*IjAqOb=V12Ci6DzzfOmP)b1c4RnWqd$9o zeKH=*X6?c0<$Bs3pUlRS*{GFkU0h7?2X}JWMz2$$0A<(0WyWI5AYgMjyjHE1WF8%v zyBapO$9r4kw(1met@c2sx0y6Dwb_7Q*sM9SCgX_od|^^uX@dMAF=OTO6375_sT6A+ z7E_Z+zuB6MdOZRFb4_;2okqJ~D{&tQD-ty&$dgEFG=?>oE~X@wY;f@rF>tN&m^`Io z9IJBBVG+7UkzBHC2U)@hnYNna#vN*P z!C;|o#!vzmB*E~Tvm@Xt0II~v7W0uC&j^?cC;>?kXQbU0dE`{*aD{0xK&`P;cGz>R zJhea31-_IB5=6=eRXSjeG%K_r%+v!(-QFs4I-XWc^Vz%r943Xt$!m@@ z3lW+m3`OA#33^a)Icg#5q4t0Gd8E{GU3I$F%L5;%k$|1ltoO|p} zLJ~)~6=7G+gr2$_c|{5yItwHzUCuJ#<_f|QAx7wN90NH7-xNZG*x^0n&=7qrGY9@b zs3Jk-jNETqKpa^-75q{Lh`4aAc+h0Q$L=!8XYO#gF;49i$M)g9wLPLjylc#~7 zzF!!;#rKCr!WAv5*oswiT6ZDui8ZVqfYpE~r9xQ>*HC*1XCl5g&O?z? zz~jjhW*yH*t%a-wFRViy_gf+!GQk2iPqI=(_EJNSkpu11M7BJxR%RDVNWCqg^Cz_t zg*%BcCMz&C(B=@_>;Q!bX%qF)<%^p$IJO)*$a{+| zF3-1a2`NhM6g$W&k(w}D>D$0L)tco>6P|RfOM=OOle9e<5c51>A_(L<2#5~=08w*C za`};VYjba7>(eh}2S?1Cl`^IL;ITD=iplL)=};Yo;>fOt%ggiS*|b($JY95pqlUn1 zR*^Oql2Q%|UoIN;=a+qacCAvTM=oi1-Uop^=471UU^=^C=ihCni#U&&Kd}Awx=ebt zZ0Cz3hh}$sXZQY{?PJa1u1qeI;RjT!wa{Wi%`_4_PRjoI#bmHr0rpr7>d0#o!Sbw1 zDnKqCFV@*3vP#WW8Zcq;Q0FH%^E&48dU?Da6J_(yYgY9?>lcBJwST zMtPu6>})*V+28(b!{Joy?a3KFnq2A~CE>~*WXX;|8X@cI-PO3q>DL?0`$U%3Sk_{r z!O1H5qrF}_9A*Pt?b3eKh6Cz>J|oF4K)~^{lP*LJI;e4%)E1ttbUp!PHelBuyApQH zSjycUx%&9=gB=-h=UNp`1D#5KIWKs{b)A|hwu<^hNVmZLr? z;c8$N*JZ`G zvG! z6Xqk?TAgHy=F<~!Ufou@wV3qEO@af(hKR*Kz^+hyPz`x(ZsP&73H9MVsujvP#i9K8 zSfM^p#r%NdY&MJw0XF+W0YTzTpIp`9sMB08>ewy`tB81gA(rL{ftI zI<%#tkmGFYOY|-i%yE^R-uaf~Ogh-E{ z!wdj1N;|O2@yxi9Yo@AoJYUE&nertQerA_swIKF)2M6sWJfR8__$s{;{b??T3Xe0l zT7;xEJMVW(c^u`C60;GO(HsM$=82VMDB_GxO7P5sUXurnfX5l;aq(q*RfKy2PMpk< z^~cj*U%Fa~dIPbLhd7@IDglB-ea0kJ0N?mzPH%2AhD%ZbxolN;&aTu|NvGAZTcDjgA+9Q1EQf z@^Zx&SL%?9WRZN-<$!$d)Z?LzdPF*eM?pN^p|0^OA}j6W1(#5Cm>;ASif zpjz2Q|9OVbSuBR7eB6*CFjQtK6sOwbmIHYH#4R&S<}{=0=03xoW@Ic*Kyl05*%VGX zzML;IQBGuYth-qZ5CsbjhYZnzK9sW|vMXaGF19aDrq|n)k>>o_fTt6P{_+;pKw-~O*wQf2a^G2K|gICgTK6to){~vz4dH3VTGLznyPIa#*jeL0^whYS`U;p&# z**8zur+jKF^e+joU&PuXnUWpJ%`hkwCTA$%s&#U`W`5i`Ij64gv6LzIrtl^jJxt+} zU48iQc>e)QsNLWE{YPIsy7$qi_wGH|hC+U1azLzm@$Ktj8-~(+c`+eyHd&w6%YDwZ zXWyVtyIyu%=PxfufKHp`1S$i&epl|W5QuDZYvl^Dn1pA!uayDRg!UJV1Ev$q)syov znR+A8fONQ}RGDa|hz|pS%O54&1WTd7dwav?ovlNiN@lc!3k=(%)%LhrEVo9Z*?Kwa zb?4`AU!3BCTAvJ`{{HtrJz2i^=IiVAldE|Xp;v*Nq0I*$-nsLeE%nwXAN=)4cYgb; zUw!yr{^~#f)vtg1=_jADdk=NH5N;&j;`o}UbJ0YNC-o3N0RqCvU!w0)+uVf*9j`@_!UTC-! zG6UCIzz>D?;^cJw{KeU;uUjn^1G#&dD;A+egl zEE6@tZZ(0;Gbb5$4@?$~QM*rbDpMRP%?2*Wu47BUNxF##8GJhI@a9X@jCoX<-R}91 z-(R0ye)(#3`DE4WEtZSX;)Fi9Hy=!2o_9-SY~er}$+77Off{i)DQ}|Hij(o;F_}DO z<-XQt)?rjUJizI$uo)kJ_Lv&yNPXvn4LW-F;if@n@rE3+MlR~1&M$Wtlm7L0mk3ft;S%0`rl}Xm;4oCh?2q ztHS}s!gx0B^?Pk7!V*TvZvjxV$o8@#x%EELuJiVD$^8#8^t|Y@CtWgU= zzqHy|n+8-{3X@u)R_s06R%z4MkA<%4u>@M^| ztmkY3D-ulL_lCM#o6X=Rb$iWTzXA5G&Y>p8TawLF%Gz{Rphf|=POkMh;f>kQ#8@=C za9DS2hHn{9KvK^ErE0Q7nDk4_*Q;uQg+`-SPsTvspcNrGmTPuv)=Foa;5Shd7V4b$ zP&OGmrBcH&CeB=*H%`QkbDc3^K-kRe_C(a8=EF~5vRki5&<)E9VN=4BJLx2(5?LzU zMlzIc5F4B)DS(kerkN+2o7EGk;=(BhS&QZdIe34Pg)0XUqfJa&j+hbf-puhs!D=JQ z6A}jw8g@8{<^UgnI4@wA>PeRyXrWZj1ze2o(ENk<*lA7snc5y#Z&o8F!K|4~Z`2#>h)! zg!Ly7@%o#sIA*$XzS==921JY*BE>||Q*6cTZWNOdj%6p$lgM3XG#QF_>y*YE{g^2{ z=$ajkR(TR(O)fu88RSlmEy-6MU?e~n~F+4;9yXWzL0ag40k|mTR7i%Aw02ujjorCQN0okLZxA~%9$JWhdT|37EDQt zcof4pA@YR9qyEB4Bq9JJ5hfo2z$G+N{~uBB-6UChU+F>12z?cWVkuEvk^mNVY};v5 z-ey&L@4fftrn%|8FK@f5+KzV^42A$`0IrCjHmHr*P-tUAf9Nylc?($W0Mk9)zUe1 zz8$SECNfdN{nz`0?%AnS9X2qN`c>%> zAT_Gi1Z)~~lePSC2=*v$j~8ma*4aMI5tpwA@3lg+xvSssC2^`k_8W}KxHo7tBQChm z+XQ_{RHFgPL6AzRpdcY&+U?ZiI2o-wZV?Pb_sjBVy02X9E%)8lC8mqzRVfB#f%%m#vTaQ@USGy&K z38?2%J^;&M(z~rFx@yx-kkL}y8@CWrkJhXKpDl)NB9urrD1T0FI@t8I3`1r@eA$$rMV3+x-x7y>zaFxv+{p zPqr}+(C!A%bf)B1j->HQ@3`IQS6XAXCT@pIWpJYB5%vuj1Pq%PwZUUyX2V@3T}XpI zkkh3`D(P~|!9WS|L#|n=r>XoaTqj5!GNpi>IT{8i7+saH&8>fG@dPuGg0Mr!Qo-h+ zcz84#SBHK0JudX~T7wg(gN?0{NVj9A$%K%oNWVP@bCOp=wFh}W=(4%FZDM}RG`N8T zfqEhz^~59*Ig+5;Dpvag9)gHb>0uTTlk+UPZ%L4mA+_LOP;WOSLN(E7VR~?QfHE_f zYt+d}ttFzxq|FnwS#i=uYYoz~YlTn+n_RjS3{nF_{s=@%K}(t}%5s5zmD_l=g~6f` zH#)7mR&GmV5=4@P5Mg|&RJ|ith6f`#oA;~y5t|{I)A^!ia*K%!lv&(m3&8?A6lXpX z0Jl`8p+y`+sA(=5E6)ZF{P-Fw)cy;jX+w4hN@X>@Q7p#^BH{QYq6%wI=PHzM; zo{Sq{H0yB2*cCdb4P{rtZG%$p%VqrOS`m#eRb1McY0@BOn%OXj6vXy6Hv)9HvQi#l zDbyH_&4ibQjwOhqx8AL`J7tVskX?XiNhO-cq~N1ObG80qZ+bptqw1wV!3AM9J3S`I zr?C_pGT2B&GiDu*AYuzClY?;*1?5ByDVEQ7Q$)($)@CbA)Llg=qJw<|7*Hf zj(Nhhbh=3gjPRP~G!so!SkzNlcmf`LT&Q}1SG6z}fS8G-qUnNMNR|`CRK?jZ7V@b6 z%EBj-%!G)t3#Hg@dT}=qDUbdLF>c)HCYsh2DMuoW5)q0O5f>5(NHT0vC?#UpDq3VD zBv_vU>7v_N$~gQ5nE|7eEcV14qnwKeoJh0`Dx)x>z&)@tsYsIwD-WylS67qSWu4b% z5m0C%6bzZj9#aqrwR!*P!lMs16e@#1j$ ztfSV}wjR9u@b0_sJXn0Pu(GQ)1(}k|=+FpM1dfdJu*z1=7Xn3KqR1mW$?E}8Ua1hf z$GTHE_A_~&ic&RCHb$3dt=ak6#mkp(K6!l&6?TGJ4gWz5--%A8-64f-d2!*%{X35q zo~&%CO;-47Oy~%pgD^jwO!xQ3l=l4=x)=8Gx8q(MGRQMF*PcFpc<0XD_uhKz?VtVZ zop;{7bB~qf#*UT*!FaCP>Fqs#{oz-C_xpeR$KU_qpMLjG-+lFqZ@&2OHeebjeB<<-uc=0|NWhN?>$;wUwgcy+EM6{IT(CU=_;t^+WXI6 zeDdqx{qDP8{PwqBfBTznKDxU6^wZ;`iwV)AXc^dUcv1c_c)^+BPdD%~h>T)VZW0Al z3VsYk+*Ev?FuR$2&S$r{aCu_>;N~Afcp4?qDw6Ss6HYYZuthup8w4|}%@y{c2la`C z3D=+p+!9F|?5?@5Rzx6Ax;^Vo_B&;fnOW_%S}b|^ zl~3M(_wIxHAFMom|K9z(51(#e&01YnxE;1g0PYv_nHIrgD4+H(UcR_IJ=lBp>GiYM z$4u<|1lLY*AC=KDLjb8(c{WAclX}=A1pt7>%Dh={MOw^AKbtD?$6#?-&xw$u0DZ>rnUr0 zyhaOB5c(^KURPhg_~=)k-n{$! z{rBE_53k?))}6N>EUv98ZM*BNuL*bKWsNsAJ?&KIeW~1Khx+2f)AQFi&p-dgci(>b z`I{H#Z+`ve;`LD-re&+vZ&6x{avdy42pMX+lTOI-TS8V!E(M~bdZr5ns%G*mDU8pRGK_bQY@xrb9!EEP)m?okU%6F8+j1*41jJ+p_^zR{rC z+1Yl+t>AHYp~AS0O0?7(jg0}6!|UOH@)*yz2ril)?+w8U&Zqk)M=d3%rv?~UM<3R!xo90A!hhx$YiVx zg?N<(9qkx#yIh3a{z;|?2e^*WvkO%wA1)@S;-7Q@?Gg?lp1?x3Acm&UsTpz+UdU** zL`yCVN7)>UND-q--ws=vDK1?atuWJFl(%3<^BJW9XL_LNbTZDBI>{s@PqI=*Oh}`a zjoRHVH|r4=ASuEy(ip|^OreFeHIW(waFleDACS#|7u|DX>c@2LC$rl;zJRqdy)f$x=pMxrhxqSj1 z0ql@ij4v+13!;Fg#i!!P;p;-Mg0L8mD_tzgaA*=#8+rDzXp^{K)9Ru&W7*6w8xuHR zoS!4#fW?O(Af52II2F<%T#sTNF7W^&=nH1$dYL%Mn8+dJbLQYF@k2ARrw&I66(~*m zkPUeu;BX@@SWLL_EfR*76IuQY3ZM`C%<|d8(|a=lW#z#PCPsotJ(Y`R^1NjHTxOu_ zDayD^!2$9^hJ%%%M1Wx>1qBDIBO54`a#X+|ao8)Pd+TAhVCn8e&jE`oA@t7FSW)U3 ztc!s-X@2;%BqxSWrd_DR3ygkPb+8Ix`a{MS3WIFQfnF)@b)g@}@xf-A@D-k+P+o?0 zP563{t*{7GX0k+%9`SGN4U%Cm`YrhGayFb}N8*aaNTQ?B;VR)J1kaYtK;j}~44FZ~ zFPL7S0w`uURGC#EUyx{@m}f8$3JcH#D6tr?N4|SRpAnc#NIU3g;u*AP&Ir>FF`2=F z0xTmML<`6B1YM9YnxtP)ajD-4Q-RPJiTD$F6bk7QFA1`-7}7G*ML~|@ol8(8Wuc*G zc_O4|3~t%1#mUymLU=%c2wyXaqY%p=owQIP67LRi5MN6QzakZ&Gw#;NId>%!wyGl@ z_!9tFp@%}|_CzH<6HX}hEG-P4*(hz*e19-HAT--p%7TzZu$&A7(CGK3@Z3-1o+8ORNc#E+< zv0B5u%p=EojOtW;$4wjz>96GbfVM~o0laq_{TK}v+hDFh>5=SaEQMgHw%)HOB+>HB}kv2NhS`1-pI^X0f zO6DWAXYB@(@of39-53q}`3$iNt$KwUy4g|TMd&cEZ`##6CcX0M)9tk_oz=Jvb6dUP zi6Z0TAaO>mhLe zp*J)Uz+h0PoALIHc!BBh@bU`G5BW>L78~@R*;I2@>@>Nwb7kt}9N196CMB{S8M_`7 z<ot=F<+P;GB34Qc}7wl{VIyV|g3Tc=S| zh1p!d^^!RP?jV_Cd%D>hUiC0GVKM2IQ!)vO#9ii#+$6(2DLu}I1amS82D?s@IHe+( zaoQ}>^5nxBH&$*$ja*EkoyB?L@>*1S1;H79&xV>LM1{?^Ycea8NZibJvw?K5Y|h`T z#w0;?olm>-ajOFru?=jnl*o-pv_aj13^NN>kUV%sxEy(6zh52^-$7IBA4oPQc9l18mgZ>CD(K#5>!pGfIWDJ-9l zFWyYsF!^Wm=X>?0$DP!voR+QSM+-aNsKTGOdeic#(|&RF)z`gWesucz@y8zz+tuo6 z3GxxkB?;b!!)ti_bY*>g>Cp#I7f2lBpeuPCaBv3WF-aOoqG)O$({5{(iL%b9d$OTg zQ&}8wfaH(BXRr6>`v5;&%)3iTQkQ*<+AY?yN6#LBifrA0smZ~8 zi}br@b&62);*+ZnKfNUT`1Ss5+Uv{hb9+4bLl_1k~_#q$?$zWD8T2t&X5_Um7~zPTBf{W?c18{Aar6l+WC z+nU9N_kQ~5{`%UI(q<&nsn?FrLGkH@IRw?teXq(0^vXneHFl@*QIEV9R)9u6VmW8HYIvQe)eKOzI4zX~FcR*&~uz!(*$oK?7UXyWHA` zkGC8yYY_K191FSGJAZjG84<0$e|pfZH~RA)o>wpyEr1ZsMj4ro-(sf~bXznghiZL$ zXJ?rZ>y=G|%WsFiiUtB0E~bAnwJK6M3Tp61 zj>vACj~aEUy0?FHaCmigaxfc>FD}l`2=f`Bn5Qop$wug;k|y zcO5gF5)`x^A*|W%<*X*s$PFOV9me=Yuqp150Q6Zgy9=;bhwz>fDBxzTIh_ch$NBzr z@A%o--u~&)`TpQ=Z#JLwdOTC@cDvGQ3Opj>zj+) zn(bXB&4W%y1--jlziTmBm{C}r4x`bEP}&bL507sSMof*TvnjYG%mYgmoOo!KXM6Ns zCkI3n@q(U`q}QefETYOGJOD2?Tp4)W1+;0TQgO~Kkl)cz1`aG_L0 zd?V^u*c9l-(R5P0fcd92r{CjSE0w7HQVr(KDfU7rS(tPol)OGP+O*5%qR?M(4oLY>vM51(KmY~w+?#2m@hz0X-V^}} zjBA(?0oz25Mvwx;?JBBBRB5CzpvGiM$yN`W9bJm>Cx~DMIz1LzoJT?%iiQRaES;QC zfzlPxSkUqzjS==a1UH!acrO--;$NX9673$7qgz?1nDX%Q6dpZ(3i152$>be{CJ5z@ za8NJ`!UBO3hYB3qC1o1jCjaN_VD`Z`2{&83v-mrq=He~L-fA_Lp$I&DeyytHbD)*9 z(oCi)0CSllfo;SUQt@YN#meD8Zbf5Ef2xIAU1Gik0tZ-$$BMC(s7tdEVZ1?&b=&8) z*!@m}#T~Y)EJlq`J{wi zx|8pnN~KP|m@N;IarDzPd7Q1qq&t%iTXk;3<2BXp&W6RK&|1kFRvC7bA@8Q};;q@V zD<&^{=7Y1|c#89nDSly6%`~dHP_hvTv%stNFdHEfM`2kiPR^R6LrF$KP(crvGYHD3-&&j!O*+?(p2t!LU293Iqf$DH~TdmpN z*q8WASMe6Gl#nO-p!XjMbKA|L=f;x3@baBmGeyIS4OHfFrIN*mrz9ayZUI^GJlsBTH$XUWvnh9O zM%`ya3TQZcE%XW!8#bVLf+w zk7Pq$3)o4M!>UoLw-!Dy`!)=gt;IW=+mE(H5QW;Lu>rtNpqi+?xSpKtwX@MqJ1?{G zisnm_RI78hmQu}U)84ex$QCF4{s6T~o_>zJMv}pk>HZ8Bh!kEf*Qx7U8jx-_~ey!7{ohPoR2$ zj*b(H;WvGSloGybWPmt0wfaEFWhTD@5%&f!yxpB0Y({!uYCYwung?!C zWm0Q}K%c21cp}y{C7vjxT6k`mY*)l>k4a;-$Pv#qL&XLX64nn4U5;xiBjzdCi>YDs zR$}8wqT+SFr4;3hl{yJJa=F6h59`s8E*ByRUyGiQJF57HXO<(EuOqWsM*{;k3nB?J zb^ev>T)(w4?!yxIHY~ynE?6w!%qNusccU4uxK5{pLsIjO{ClH!=}g-Im; zXV`^m^Va1~dBDesf`xPNPyZp#J)txeAI?F<(2MsKGEU)I5TEOhUxuTN!;@oA2vzyU zIsQ2E#8(r8CNgZZx}+qYF7IfKcBh|hBjeywr8eBZ zeDmVv^NXW7OB8NQfVbHOGFZkh2Qu=5`&7#c*fe|yP`*6l=z4E{a(R9I{KfSpTPc+G z(6p%3Tvp}Q(xZi^Pggfpu!)6J1R4ZMf|){nczkkvcnFPO&|kzA&ne0HmGohoP2`d+ zK6>=%@$%Y^T1&M~QVnC39s~Sm&)^9)M0l`WP4E1{q}yL$D}$De)j*>C>#>u{;teER0g&tATH z{qo`fIVF<2MmB-)MZLPEP^lMJ*B{fwi{Ih~swzoc9OrT!gmis$ zb9i`h2)GXP=XgY>%CM1x6OJG_hIlJLewbHj@oLS!AYDh;W^wcQTbU0fT_(TNzN_@< zcg5r&m}8p8vkXg5?me5#o}cXXXXm}%(f*u>rIy^T!oWaNGnB)PV%%j-T9rYVkT zW~3mR-7S^YV^9aITAcwvG(v1v`bC&{71a8T-1M+8Kf;{WDTO+n0xPY$45qOGVX&O< zw{wFU1G%Kfl?r;rrkN*?2GHcxI0^=TjxNe>T64IR#2#3!9<2tPjNYOO#f%x^GhD3o zGLf)cuOQ+m6NlLt$nBTi$*akDFzVwNkvfo4hx10QCzoUr_YQKceYrrX?M%g;u`~$j zfZk%`Q)<^ewk;Gk4C*#^Y>HinnM`e?lBhPlQLRlm>;<~TfZr?(+`^wg;nK*{dt__J zmGLFcxDf@_pm}&Wo*o`_CkO2T1lY-ie00fjuPf!drEI5`C)E>Jtv?cWo6>0uk_(Cu zrQWU7y1-!>Rh!z~HO1!26N`2^VBj9Vi`8{gM*@PA^=KGzV!+|3C&S}{z}vC?PS$#r zdbi(b%)6cOsMUEroqfJPKRLuuzSlW8olH>A_Q|j4wF{Lqxpe`bppqfII$AFAI%U?J zBpb+~vE~f!f}mikb}Sl&4RMG?&#ruHN42@2^sHKf+j_HRTS+_Zad9bm+^{Lb(SRe@ z^tXozmRYe}C6jO0NEpJWNU{kYqWwMj=B%|pV{zB7c4nOxa84|G6_N;I@-;*C7J z?RXdiT1If&(AYCR4p)82t~XHN>$ohCW^6wCRl=)W4y!Jlv=mC#M9%7ovMfQFhub;E z;>lVtkn{U-(o(Y%XGYsb8zGfakT2vK zaJ~?}D>!Tnm)RnwX!V$2*UDfz5%z`nGxtdbv1|)4c0&oI^%GTjj^!5lKrFDpr?W`F z!puo1FmqfZ0xrUK1!@Y52IkpV*VuAV^m9wb7EaSf=qtDm?zUm5d`SIyM{eEBaWHNN zxg8VgBMfCsB{K-;XoQk%J$PGyzZSQ25$KJ35U)RPPNU?f<>lj8x-e#EKf->a$PSCM ziP3$49hC?Sr&$&R82~Z@KgxQ9Z(4{%=M6#!Vorkfp^9p5{#(#)@ zD#w0G>=RhG1o{3rL2eg!oLZbIRB~ia;3pzC2wS>v(+O4zAH|x9MG>1dTIL|=$sg=1Eni?GKe zy#xMtuxfW<)+fsy5Mwf2P6PcHbU=}@kRZAYF}e+5x|}S#T&;w!B7guTFw~s$Q9s~$ zHUb`sEwG$5xV*51nx%AeT*cU1uAqI&P);OVHmhof!ad+J5s+auYOD^Ta|02#+mEFs zU~*T%?@IiXW^80Ad#e5Y7tbfHX17k8H`(h|b1}viQGZ-YbIq|sA+>;^S0IEATh6BC zGNlvGJ_$@f1;8rMpd@3+6&pF9IA(Ril1zZh?v8SYqEEHDYNY^k=^6tHP>zf#1WavcgrgG338@}SV2o*wpz04RZJZUgRUkl>6lnujQvueN(-@Q(&( z5U1$QmO_naV|RBKfbY5h*1{ho2Z5E2-NU>AV~;4u8JEk}3`_elQV+d~&+kArtXKwn~!d?_Qo%CWbuuB)+~ow6BQUpXXrk+b>X2xN?kKQJl@;ChP2 zmUJ{`W4x-weTHrk$6z{Nt0YmS;*1I7DMp^dy;vwLz=ssdO{Nwsg!wbwGv2d2H{{z9 zoZwkVf-Xi=!hlhr|AkKLk5fC*+;ID5(#ozD$-cN_b0~4QPvdyV;m>4z&R@~4GD7Ct z5P9F|AH)QfV<82yPB^&*MOe(?1X~NhWmc$oIi9%XGy7%A#~0)@6Q5eNP;84yrbu$f zzLnN9i^UI4Qzf(>ta>@Uut4yE;v9j+!six1JaMwIArov|#(qe|_@vAh`G=o@i5uQQ zer869wAai`QJwIOiY|;BFwcVcDQLKWci|jl>o0z4&Nb1{iIz^--Z{&}_bHAv@kZ1H z{5`*k$C#2r@MXl?sh*HJ@b!2TA1)3=VO!_3(>n5jJbJXT9C^Hvkv0ztvLHT6Gkl%3G1|7abq;io#yAO0xGfru0p{xN$#inmJ3NyQuTQVw!s9NFhfHf* zDr{nU%j$z4{%CP^V{1dbc6V*%>4Q6)Dsm3@U%Z|*5B3gEjz0oeHQej=`V!GzXO}n6 z_WH6{uW{wvn(c)xSh|o1HCwB@E^nrkEH^TtjEt^3->61<7vn=4lst zb*dSxJ;Xm%GM>$i4V7X=r&n%1+R$r_X65qJ1(nyLW{hOn+_obnK_uY`WPy@*dV|62 z@^Wwf?6YsadGpCX{hki=H-G<&&%XTR<1atD==Szz#L-aED?WJZ-JkyS?z_cylIRqEXx zwZ`hwZ!Rf?T2e<|d}%n}?@tL)zkY^aymxUns!E-c9vv$9Yi1@fON6yr8^T2h?+i-` zQb(f6Vm=5COA3bBdAG80ubFTfy;9{!L|nS9?aggp%B9}b1^{sSd^V+;{9TthUK8RD zT=Hq*|sJ4Gbngw+m=)D%q$@ zV-a~6esthrm%*SlXN!K1&1BKqVlI%j);b)t`wmz5hunrhjx2wlgobT z>4UrP{P+itHtxOk{U5&f)=%%>`J2D`(Y>b+7q@oRYHOTzp_D0|oHnFlf8OfvwV2g1 z&>QsV@`>@A&S%}(SDzf5oZj3V+_4(=k{&aRY9rruka{t+on`=G|QroU$ z4y@c!Y%f1r*<8oNxcYe0tzBAP-q_eM+JTw+xXm#mL<>geki&e`mZJ!RSTu3axY<|5 zgg}m^B~i`gtbBINR!SfNh7IudKya!kQF3tHgj~p-sYk2^y@B(;=so2<5>NdAD zV&X^N?`g}Sc&Sk@4Nv+oboworgye6L@SFxC9<0qufLcVN9SAk@)y3Si+ok&IQ`zK8 zr-vjENLhexdB*76Z{x`z-KrO*wbQ(%P6c-qBqA%UUcFLB3Ox&Spj-4Zl;s$3rcK~6 zUYNkK>*%j3M`bqg1UN1Oli4bmru zJKacz&0aKHO$B+@BCH_kyeMQix%s-@dfgY#LM|hr1UnhaJ{GCuF+@4PM9QkC)($1} zLAsnG;>0wSM;4Dfu|90>s0SjBVmA;ilg5H$B$$!HgyV3f1gXBcs+Z<*RWrlu5hG9hcqh zcbTK{Vk_VvF(w~#T0G_P!Cs%NWqYz&>~zA~KsM-CS|z8W=(Wdn{(d%5iN#vg@%6Ai zC{d}<@!`3ONV7euT{W1a5$~=ssJDSNuSwNryeWlRDYc_BE0PwS%IzO#n{^MMW24LM zH|sKNzv0HzF?Q08+3m$-u-kOF!}6RgA(yW_$u_Qg)pWdFPNnqATDuXzr^)4FoZiY& zlr#&Ob~;oV4CHjPk#0{4W}kP{PCY5r!y0cP=|cTUv_lP@KrYxl?6zAOyDceK5?+hK zlnOX-?)mfkP&Ue{jbPU6%STMe*y05#sJ4VNk!&3#Rx}TMq(v}NG+8AQK{`5Ywlns4 z!sxKDJe1?*-mDN$XjV2oaktrI^%Sb< zVjoRagwV>OT}gNwQ9?0?BbjYC!7KR-y>2dGvPC3(Tw@j}+?J88dQ+X_Nh*Z3!{zm+ zEykEHOCDb|(LQLQ3Uh1R-4^JB;V>Q>p+81xo=!Ua3SGiQ(-3!4D$dLHjMG&qR1(61 z*_)HG<-&Ib`8$IUwoPJc-t2MNyhP?2qlx}$lN`q8c-js+4QrlS&dXp51pg51qQ@EU z3{sK|7^s=ZM{Isup%RR(yc?{B1H{25a)ZN@rqP|ZD^aLB48iK*nFOgc#6BfK_G>V{ zH!c-IscE+!-?cf_h2vDVAN0937?;9P-HxwX44_k}wzIuy#_Nnp$Zi2^GUh}9>hb3N zRzI`hon5C@i>{=1en?V!9BgGYNxnwdQRw+s&~ONeJeU)s8mFkVDmYaaxSuj23U2lC4z<>6ayC#scDmVWCqkzi!s0|2 zRoyB!e&ZV)Nol*l7)JzdCrbIUrh4C z(Na@uZRMmVf-<*PPuN&rlbqM<$T6#r_((Zuan*;VpgSv(YDY;IN%?&E7NHf@rIgpm zF$FA%m;}$ZE|4n-WpQgh$XVS6lpW^$u?dA45)qn|~fZQ5~ojs9{a9x7G5&T`Rg z3CE!nCz$OMQrB+bAa+@$iqFZh7_IbxP@%c3ln9GWIs(~{lV6&X{UX7RI;ATe1-4ME z?TvztRM_p$Nd>M%e3=8l9rY3mZ{Ml5sxkaxy7Q5}rb$RY2+&eUW0q9hXvWa5o_i zo_MK=#B7@Uw<||`^^nm zUFCu+A$yGRjMrfbWC0twH{O2dohR$d8(NFm60FI*@^RN*zPbMNfB)D2_|Jd%KmP8` ztJf#}cGefNsdZ~_|L`yV;zxh=mp}aBPu_ax@wU>$ybL=731y?%^!VcR?C9dnb9A#g zF%@;NF<-<&Y&Pi)+e;g0b9WSKeAQv8Dz?=1IrZc9)%A;4Uw-q&SKoa6?Be3t`N7c$ zLpVv8k%)eK^U0&-jm_mpOUw5kZ79?n9|8%P7lg7Rko(Tw-ehks=46K_r^n+KB>7UF zP+5y@K!M%6yK3PQTK|X*|OAKzVK-|^ohadmyAO7ywUwrwi zFTVQt#9fj&L6Y~JKBSNSl$Q)_OMuiTycdZyqGIg2IBJ-EG!A=( zPC1+v*;)C5KL}bimyP?ec>1x+=FHGh)JB6D+33=}RVZbsOjkBxY^*!X3o7lxnwlZ7 z*<%t0Nr1r>+&XYbzxwLp&71kb&CSi(>CM3i1K|Gg(YW11w9q^p=23q@uR=`J%I4c5 z8j0$|#xT(wb>a%%!20Xp2BbIo-Pp2WCd3f7Wje`V-cJ+^5z_I9$>y_T>P)i2go0zwhHRtLD&29TDP+|;@zxN` z<7d&66WmPH#?{WvX`k0U3#-Xw|76(RpNvk9VUdl;{pRsicQ7xJ2qo+TA*;us1`VlG zvzC3dV%d1KyY%z-A1^YU-FUR5SXomtvE1HVTUvH_wsf}j6{XHdRAa!!kh{?zO(&D_ zq<8l9+2ndIcSe&@XEc_p-9~GS3sY!z2CrVtZ(hzOCs$XeG`@rVy%CJfNxM<67yH-! z%8+PQ2v7KONHZXCz-(mGy|whzWLa2O+}7uig!&tHH2iw{5h>ebb=%d7L_bHXLSR35(? z_V$2hcF4>l0tUA)4+q~$ogQ+3A1HN#v3@b`iv(=+xlZPzI_0i$M-lb!s8#FBPc}4b z3mfZC9zJ}s`1tYSlLvR7+fG8b_Z1a?iPNZ5b(H8a3d+1NGTo5YE_=}+z>pS$5 zK9A2DY-XH}WoDrFX1a^}ScvjJ`8uzULAxGR;IM34|nEVmC02dQAlN0@h35B3H`_%=j+ zgAn%(_$HJ3&>g~)91qVqKywYJY)|-fAD&nVRi6)$0tg{euh!H4oK)Otd zIksg*7T-+&z-qH50PU8~lo~}~UIn455t##G7AS_3j1Xx>rn2{m0|(ZnDgaetQQPmkEl<0V+kr&j?Ea4 zVJZUZ&PQ(@7Kw7e8wt>rs$g1zg*l!I!9!#?%hL^?#v2=A_`v1jA_GB6`jOexLP3djl90Xz{Ou`VhHxw6WT9IL zg)2DRLPd$H6Lv??n`Y-;Nfk;KJ4^4lqf|`g$-Ck+(+~NBfmSzO&c|ymQ#z2$I&z5N zsCi?44mGiGu8jb<$K{v}aAwL(W0Fn;fnNcxi=d!S_HyYeb~YVp$#`ySS&U%i3d5RI zid$!_-%3~T{yD>GUncC4!AcU~08|}xbRZn4*RT#`D%ir^A)gIf8jl3sA_87k;(=mS zOzewM;>d$>XE@JZIzenIL!mfO^cbAuqPPa2^+r7&99~>?nJ`jW#`~U#0O=Ci=i{Xn z^LxPVBw5U-V}!^6K92#&5fcZt^@zkVF%r6lyNkV)nB)Vohw+7njwuHmM6tqA)b>(oMV{{(pKDhlB}`WO^8J^F9}5CB%$*y@^*s$ z_z^^M2f>F7#*k$3IYbg1FByiSWaaU^g=1JVncOp3VlssFn@gGzjCi52M1UNKWQ_GS ze@4g1kVhEAiIYN+4XzfeSd4{lG#JHqpT|rKb_1<~5Bz?ZWo;~wOLC2eN9ACtP$}3W z%&`1HIqetQeSb=Z!{e6cyqL0*%K}LnXK2+O01DwtRKXTAP)L-gwPM63#mq@uep;W! zoi>F_?2#=}r;snjD3iIet7ts^iApq9YnLNZuQ>mxJ-WmIQX!Iq3ovd^HTV{T&gCVe z$|JeVhNZOvs1IJa30=U_X-(#b$1f0RO>tt~9F~VY zH1={eDG%{!LCLT6ss*$g@zTYha4^Ya=CPdR@I613$Drv$;TsDox zv%O6I$eKb8;b~=MWi{+x_js3AwML817Se7B&Y;8Zb&4%p>h!Gn>=kKPdxyj6vq7LIPlWj4BP3ME&X z(P|}O1}=d;>oi0VWLceLX9NDwkZm;zU%&Z~?5*-5L>n@*dpQ8h=WA+mh|oH9Y` zHNiij29nBY78rO2c`oWr=9!|^oH(>k@XpMLyN<6y78*Q`L)5F8J^*8{i6 zYf^1IHP|icO@~+Sar+Cw99)&=?CklAi(h{C`LDnF?Au>_{`zW6&sU8*0D)-k-dR>C zmLJ@`_tsAq)*rn6-h;<0k2Mjmaedq73}q^#W-Q5S;pph(?BexDAAj-LSKqwYZ+6aK z9(OQdrs6@D6?x3#hZ{s6)AlXA^Zug`);Aw+D%SL*(50$mR3BV^_U5CnfBW~}{qobV zzWx0A5-Zbiw%2HMTA*wwOAWeR#oCjH>#O(gJz=S`{$zD^N9cfe@HVWn8L%6$>iUCe zT0QKY-HXpY{^YZl=jVHupMCW4>12L#R4X)kbzr`QG;kb;dB=o6CX1%Y>H=v3i`b+j zcv$OB<$ZcP!46R_yNEwa@>#PtfEQht6kpiUaYRaf1ucN5|nH zM9_Vkw~}SDA8W!I`B??h{7;heex}eW)qoZ_b4B8#V;+n>wX9r|Pxw*We(%UR%n>#_&Xi%_d zljz1}dC)15jW?Wi@TiRsfQ|S1GP`ml5Ot|HBLf>#Y86>MzjZtCbRzJDsCURrMHqp*0yp(WfFC_S0qJijU>Ta5m&+jDU-{J%ec{Mvsz*%DHj`sOrt-> zD?6Hj`|q>o9E|rS{br}zYn2FTZ(=f$OQglsB`6eVTiA^w+kys@X3j#O4Y`k?PyBQw zcp?>a*&Ae^W6|5@gfVH=PM^b}GazgytkcV!llVj+_Bp`N2-o`r^VM2ImcQh}W0mRl z_vd{Co~HyLj8Biz+qR(SG*}?jT5_vD81*Q}(P+fVWZ2~?)PoMAf)qY%dLhz4ZP3vP z=L5SHvxuy^&8N#saOp<=o1R&-3q#09XiCKG0T64kLn4=0f)zo-z_YDnuv(AW@EMs! zF{{ENHv@xCrV%ZM+}=Ar+H2Mtt#*`TIk1x$-Z4`(e*C){#A z0f+YJEo8NX&0deixUF*f2-ZN)2y_A|1L+fCd<1Df#j#ayCl=W42UdXmkisM!3lkbz zfDc6k8KWdP0I04oCQ`m56Co2eg%Fum0(A!$GSWZM6CvCtmm28Vm8N`2!AC3115Gg)AuOG@we&MffKacPNh-f^KUd?B^mFo+shWJ^*Hb z?&4eKn-*VKybJHo>rs3ZKL}stRuUpUf$%m`#f!*1@d?Ej5*s%0N%+FzyS@EPd?(^_ zh<6ar2S0lfk<0)1z3+YRufO{@$u-}fCHc?q-F*LlNd6hWhuwdcRQ>7iUj5+DZvW23 zpCkOc(fQu(`~Dl=ugIU9e|kUX;ve5{pFfL#b>aX1e$V*xDgUZM|NZYi;m@!6_m4jv zzw$_n2kQ3EfBfyg{VE>r|MsRoy_5Kj$4vb8r?>p+apn;d51M%7_(wdWx1X3lbA|os zi~Q+>cx;3o>GtFKWITc5%in(7?Jwd#|Nn1GsBOe&!(!<&?5?k@tc!qz_2ozJ{P5?i zHZb}he*L$<`;Y(EfBk>{%YXV0-+p*L8xDFM7*u2#vCOU!zU(xrbry$*<~tHYd|<=~ zK!9b&zH#q||J$Gc+yC|7-+jEit=w5(-82N{{Wo8K^A$Vzy;c#yCoh?pTeEWSt)Jgp z(fEtZ3V@@sB6b>VzC`Qd<2P4;UXgnPsYltHgDS{kueUmnj}xk_&~D!I0o*3A1Q$Bu36WN2 zRBtYB+VlN6kx2!D0E~L0$xK|D)o$9|*j5_|7$S8(${Pr8s~o-g{PUL=7Ywyu9)b(- zo3Kf*Km74u{^0$`tGn)ey;IK?Tcf>$^AiAMy+(Hc*-qr$ltbEwKlqEkdh6+qNwc=} z^v>INR*eBLK*Rmh%bVvn&p&*9b9r=fI)g_+;UBT9Ru?z8Tmq?t&lktd)SZrypEeJ! zUOwAv7b5tzO{$f9cNaA-)Wxjf;SM9KMoH##!VsiWjd>hCFcebU`1Fa=jfmW_asRzL zYu+-JQWTGjXo~gz`Io=`?eG7A`s$Q)2C3R;boZ}cUQO~Gb6$8lKml`EP|k3#bNEV?96+lTM?zm{qF_%ey8D0A!L$q#aVku=e1+`-_`8hm$5{ z@xlA=++WeNcg20+bL)1su0*kW{PNY!*}E?N4GuAfdTnKOWntZjJOMpbHOU(O%ANwHWo@Dq*#feeLnWmd*upMyF7y6pJ6+`N>b-TQnq5c9VuDB68dY zt;v&a?42JrVwhSzp+f)o=F{K(r+@vIfBF3vXVZhLtNm((7YrPbGHOPeewOA2Prf@F zRT4g{cH`;7rk0Dz3;dMXkxjdK=db?q$8Z1qM?ZP@$(BlG@&d2q*okM#ZLlSn&XZye z#)hq2>mOX+oK1RzZi%@XV8TTE^!e4<@uVDcJA6dO)w6DZfS9h_R&T0Q$+~t|*S9wo z9xd#eEuMS}uS&gG9$f+#%wh(ExxXadt*6TdUi<+iS~9PZt!f7*9r)B=wVhZ0(iq-a#K}jnnFmgh?{yN5KK% zB^RBh54|}fr%IMFXp~x@z$CYeb69H6W&?o5ob)^~J~zv^(YTdE_R$^>tMFh7e)Z$G z-(9u&JPv=h0y-uY!6D9YDqe23G7dUQ1Y>HW#bMLziXS0b7@wcd1_!4{M+b8(PA6xF zc#^8%$N1?`rBu+)`vGjaymq}QB#*G8(Z>Tk$s_CJ>=ShX&U@xL5wFeSNj8UANpm5? zmd2Nexb6O=RB7~jy+JDj;M=BGYe|3F2gBYdXXB`jb^bE*LK3Hadb5wzwj7Oe&Z~a< z&K-r#4#rHp8%pCQ@^~C5K4R$}Ep01S?!5JI%V2jp+|gXh=M3Zpqi;LPwxi{&h?a<*&YMoJ|wx>Y|^CGhC z>HjaHEyNb=7?bQWn{v_SOhHG~!Qv33=&p!L& z^~J1_jW`{|s|SOojfMAFLw^5fcb5prHaOtPHiu^)fAQtlUw#U1XL@u>Tq}9&W)Yxg zX3&5Ip~3zDn=XTy!)MP@}B^;JLSadYz}n1!1O_S3D$ zckV80aJ#vkjIUirou}9x&51)lKieOOw54jj7$XdhX@DmHPReXH*dSFA?3TpNpGhD~ zIsNjx&p-d|udZ6@pvM=>r=1F=hw|H_w7kK3N*^$Mvv|(&aXfI`qc#4UN+;|ShmaKPV6>%zUBwYl)x z#EP|2*l97NuSkJ(X`_!J{5p)Bm|GGkXm3`|d9939NQ2Vv8iJ+a{Dm;7eMA!G?M}C3i<8=*@_;Kb>@d zAeL&)jKksy1YA1e1-5o}H#gLFux;e5g>ANQ?dZ*Qk6ex8DXL+oQSZzS_J$C5O{?$z z^@q9Xl?EH6`gD}BCQ4y%w$`1WT|a;Id?M4W zHv0RsX5Ot_z4x=9{OHF&ySt*oc@csWowVxxmErO8S1->;4Se>U`T2*Ry*`rNDm9lO zPGy_NYtinkZCgV5Ch3X8qw9;qqe)e2&inad=it?c=aV|mk#<>OQY}1LW>c!((eTL= zneybt=U;rx=cT!A<_fLz*B`x}Cg8EGJ$SsKq6>GZL3^*RTOm(0itMuT7}YCQrLRdE zAkqR@D!R?J^(})N&bJK?g`GTl$mW^S~Ht#YO z)UIj#xkfAD^uZ@&3z?`N%n6JK&1@oEjiBr>FDJ9b8Bcp0*~$4c%2LT^C4W)tjwOIM zJB_5uvKXeDk{ZQmp^^5+n;sfSTSMi~IBozzCu9ClW2R+BqinO|QI$z~2G z(8MN_m4lDJ{l(S6(V&8VtPf!+Wi#^HRV(e@2z=CHuZtUquuoEv*e}#aB+^vd$Xnb# zhb0ivuBnx4i%Ux6_)3K{iJQ`{z#*M#^;+G%vx}pP>nY<4%tS1z=<1o_a8i&|K}rO> zYS5?nnn1(Oo6%IOBeA^mm>K4{tpA}T^Z!Y%+lhb_;baXN5T^GAK_NnP&YdkDQpm4Ct;W^1w zvwnO*4BdSOjSF2WVOF_P1hi<(XRwBgoq|Kh{Z?jIA~#z7Ii9OtHR$GM9AoMs;5Do} zQ6tpl#$a#W9S*7qf52*R1Y%TVPQ5*r3mXg}`VlZaM6QJV1~gWtb)An5SrpF}ZVO_d zY?}%kYRau$Z(%gZSDrm5myT)-rpuXeGE)+8DR<_x+aym8 zy0jCcmC4Cssz_{P2$iq}p(|-;qY{xsmNXGI<(74JdHm~sssg&OAD--kcbjn6_3xNh4mNo5Jy@fLkw(uzBU{YYhCL# zQ1VdnvHBE?r-OOBob(%Zw>9L=G)Vm2XKXy#@75}86jMI^j)sERN!TT0LaBXmbx3$b zw%7pbC8cshcxCD4#aXA|)tOlqVD%(`D~zeyK&1<=AAftCRLgv$je8A>L_FqqdT`nr zR!N!&BTWSw$wJz^x~%h7x}`#EI-88}3l@S_GvoAp+ODyN!)6<*6o)V0opdukT;nER zs@g80z4p7D#08?sihFnIDhxJ4Rmv?Q)T)BES{>b7wp)X$PrJRgrgHMw$i+-!uSaxo ze|mUyI>|bTA}#hh%}T57H;dp~lReofyItW-xiN-%Uy}mfU>2fA7g0;M-%P`r6OlM* z>l|d)YRuG}C1#P`@t{$;9bJ`LuvoD?HwJ@hK)tf&O#_kjB&qJ8eMbw>I~tAV_o^QLWMJ3X&-v$5V)uxOi}VeSNW46D-$AIuQtFvmwncE0naD{-U9* zWGbz}tj{ZY+JfNtw`2Sl)KKTw?&|42}PGblqaY&TJA`~n1Z|vG&lX*s4o*?XEUl?N#Dlfg{P~O ze0E(7a4D$7!$Cx&k1~tJ*enSFmPzR)q`fy8*V~P_-J1k_0u#5~YSgja>>srW3}V*P zY-Bu6K>L0RbA(K#T#5v9*^to^%T~*Iicwx6%3#K%|N9@$9?n{d#YTI#ZQX=tbX|2-Ie9SF6Jr)hU^};w_JN}D$w+0DqjpVs zxhssRh#EQmuHLo=tY=iE4B{4_+_>?chaTA2v$dx!*&Pp1Y7j=S$s9zVSGr?V(yyy7-72*Z0l{;UO|kVqpb~>HV84f)!JJ*>8p29a<>hf z7_i!X)P5l8Hp!(UEw1|NwfI*j`nnQ?!VM%n)?m-}jd7H?jihp{sjFOVYwK{;B5~Qs z^w{9<+KQh%Y7Ptx9_p~fJGb83AE{rxo{HC1_^MVlYEL)yPBbxSojQAQu1&TvgGk@lzHvh<5g&E78mzfw_=u3LvS%{|H>h<|QQ>ax?IS`f z&?HF)eUu)FL>!a~bGh+~cCD{PMu30~40OlcwUF+5PmFX{RB)-Iz+q&|h8A1{o9jvO z>qJ?wi3Bg`M?=gRH#4!4VlsX_)+Daniq^9SPl+b#E@P5TZX+c#WvOdcFJD1Y+BnN$$2;JONch{{)rW`SribqD zA~C#;M?V*N1%=YE7dR)bV)JcdYlYw>X ztYl{ZV{F9Pena=h?iNDJ16afG=4yxKbQ5~b&<2tnZmUbI5BQaAc=XY&Teoi5kRaQQ z*m<0kcePTlt)bQ)YQy8Lb0eXJD03QdaU{Gwf`QM9;*h#%Ab`dOW~Z}}Y7w=S)<9xI zUx0GzlEyMjQhUm`1T78>c|Dz43n{O{|yS9pW(m}FRkTb$!TTiIY(L#;p zXy4Y2u@+Hv+p4@&xQlS*jy^mo+Q=pWXXwDhY4MWI)mB$k>+9IGxeKo$7yfHaE?R8C zxeBE?x9~M}VejtiAW>x;AEyKn$q8SO>^$ols4YoM9Gu_kwM`g8BP>#_xw&im1NU$3 zz(O3etZq!i-FCwHot2OY6~QwW=6-`L^0VL7*LY7OFSN6lS=lzrAU>m4XN zER~gR+`!t!NdeN@ z)7R#$UhhRKh%-rrl_UdIh}*c$VBC+i-F44hopGG(dU25MBR5Id2?J=aTuWvMDo{5k zHWKyN-|PxDdm0;D2?~eyQ2@|MB70YRl3L(h$q-4UYOwm)BR-oq%s@aONC5_UOAd7V zn>sgb=xpmr1{)gury7Fz_DQZkMuI!W`kWm^Z1y&+u8y24&ph~nk#SYNeB--cL(#8WY! zqjr70(;n{a#A6dnG}@)sh>Hmx?Tj_nL;c9Iu%=3Qg*eIqS7q6%S_<9c%|`$|_5tYf zU0b^;`qLhS8LzFkIBV}%?QQin#5QlaYfC@LAIOSN03<2sqGa?;Y~O+6htkZfqIO@M zm6&92YclG!*{xQpg7j><|ErW14LQn6Z(fgSguHZ^R&98zyGV&2i{n#=-Mpo3V?TAw z`ZsljJ>b6p!QdUNs3{elFH(hYbR+Q z-c>%kH$XW_A3X(LXhMQ=)Y*uC474OdmZ}E(nzioa05MJNm^H9Wk!XQ;b9XN&+3jI~ z`|sIC4rGcT_*;A1aDGJLEr}r3S)=|MifD;@csJe<$k^1$x~r$Hw^eHL;4ekVBhut1 z;*G1zQ4msg&*eoKFD7dWGDg~3Q1Cnbh)ixLruv4p7Wjh%;y{?tGxFk*jy4=gMr!Mr zdK4q|{cR-arYx?_7T-pFKwLn{QG)i6#DA@L zB-Gi-iv+((*)4JzbtF9Ns!32B@9Ut9AHIkrVRlfC71pDXxLI7mZ6tDT?(x@?mm)?m zRaX!BT4HT&{r7H)kh!2??UyU@NW*!&$t&qsHIk{2Z>+10G8Yz0fHa4sP!FKqXl#(| zM2r)b7u-yv-CMT~^bc(5?~G`%z8-S!#PLK&Z;DkX36F!Hyp__KM4Lw`q1DpdwS&r} zePjaq@=YX6u5z_@x1c$^y$n@Aa`Q%ieIw;eZ47gikf)ZYn|xhl+NMN3k;5L`6g_pd z4u5jn_RXC^TtEq7j?j;KZf=*$8*YsU{88pZG)5K8L>~e7Vfr}Pf){x^Ekmn>Jv;2S zVI}Hm!zUIjV28Tm2oUS0oa*{Y1PpN-5Bn{Z77K+rqg~)xNEf;N5Tu;WP_V&+&oir( z$?YY>FwWRu*B}&5@^yHl_|RaqX+qSdDwb5|h~d`+%idxk5*LoeR*RQY8ywFzQl(Q= zo`OEuC5akFmAt;r-LY+JPYb?Lly383KtW~fmC_t!t;1qjyXMXs51A}M553s(D2S%# zV!@W&8FdjgfW^y?*RI=6($H$$a6^$^Qq;C|#6Xhv^}Y_+1!gG9vVh#t(`uWTEYB4Tst#A45wL ziK3Ojm^uniR#2=8p9)X46%7P+06R7%L)L0%kdhlBMB{HxDkMonXdx%&ItoNsLhZ3Y zxE&(ZOmJ(M)Zb)RYo@-dkCfiN)_}c!y$kpK)_y|!yGY^ZBp)+A8YH0U=%lh6)QimL zA?oK@J&kqM#CmIF(=p}SEI+i^G}|8*qZ zgS7_pF<4u&JdkV*?`F(n4O+ahvA2(;YKYsR*6!}UE&UxGVXHe4B_xy_kXjrQX{^m} zp@=ORTv|M$s(}2ok`&tOM;7+`9oU>9&vsjtjU?8=t}cWEvNR*gM2O79UL7MUlPb5M zYkbiCaiYkuG4$YpA0wxWB>9Q=cWVBYRuXp;e6VSIFT|bxCeAC~86k&zg9T@Gm~V>K zlZqhRho~4vp-A4*M9;Q~T?$2*VVBgGFD z8*1unodlE+u^;r1+z>ZcANr=SyD8QghhD}c%Qk@|@dRNc)$1DF4UKUO_(aK47P@9# zU_+OuhVXLam-a;O07c4hb*IOhf+X{dp&ExX?V+L?6C^>3XDwhO=*%BN#E#J;o!y;L zA2SA15#^p)$x_Y`2?Tz1bq%$BQFP<*1w|FtnjksR@#O6U@zmjH9Eb)Tu256;dTbAtT*A2-QR^XSQCXl ziD-+GrI~b8bq+L9o$)9pJqL<(jPJ}6`0|#HR+w)rY(cW8X?9c)C>Ibz8e71W^Y0QHJTMZi&0 zNkvCOWcU#oa>+;l|oE)r42UJAhlPb)J?co1X+^iPjCBts8q=J4n&QOrcT_ z`8M2G0jZHuXGc6B=81H56qM}SOc_}U&=A$$mF(F9doQ_!$SqoDrG5h{T%5~#o3SpT zBVm0818~1oOQ(h+t{4(9WVe>Bu~AnOr5?e9pcpD=k!+FDdqNYb9D{}%0fr0@6#w#L z-68%0Bt}(gvMxejyZi8h>4~;6C>1#@HGkLagbFbK)AGZKAci@Sj|v7{9fCrfA`%niyOTv(iF zBb!lIMvybQsSniM*N>*Gx{mUeT?z6`dmC%+Tvb+2tPGfokQ%M4D^7a69UFO23Lg{n z(%fjFiVcn(HtLwUP^!aQAc7FLf!3s>Csc3M5+w1IFs@(|3#JivG*IgxC@s)bzuqB1 zv{9{t97_0(1Ur(=4r+~4caA!ied6)&17~=h7@V4%Nag{_8ARbCLI#5{eM$2BQVW~t zmoU!wR2_gb3Wi8}=BMB-59kAJvffcLp_dP{v?wemmBxr~43Z2KDk}b*OeydOWnxja z*_?LaTd4lsOkG|VS{Eq?MIR=b39umvBDQ;+uE~WQWey{Tp=`ta)!TvPsTWbYT|x(N zu?7bdH5X5W;W(J3)GW6-n>eRQhA`}8q27JZhGquKx}JnJ)v)R=n1co+Z)&1pCyyoC z;z4(akV5Kt#M^s%s1QM9Au)PZt3T1o93}?aA4INl2Ow*kdTl5^th;=2JtaUsI zH9^rX(Nu3$ZK}QnG=kuAXfcIK@&E3i?rl@Ng-qlPUiW%}lITeRyKoU314uk~Y z!pbTn60WT~5v(h#z~P&s?|7WzZf3L9J3OA|KI#;1z(bEDm>?!kOFI%Jw+@m49Qm%P zfzcq70wJoAFeZ8YyYX(>$a;2@x(%kL#gCgkI){jaLbrmknwlb%Od~&Qtu@r$=5oh6 zslQaQUg}CVxf@)~7#cAOq8TAIFoBZzJTvEg4K;R3OW@rG{^Z5-NhGl$#Cm!)H?GSV z^GRF4%)$jo#*OR|jaFYYKuQ&_PusA)hw{gi4#)i!4|4*J1PB&O2uER>P0`LhOWd!v`umu`NAZIkvPHadc1O{0UXJKSo z2f4!SFu|NpsHwM}66)lOrvRiRGZo)*N_KOUo1&f))`@SfkD}Q4R(nw%q8sV!qOfy! z65SWoMX0rbHI?!x)Ejiy-?>JnBWW|*I(oM~WswXt91D8-$4IV7W<`m-2+&8k zG$K(V5%i*E2vMdGafDnKB*JVHF{+tW5p7z(8o!$=;z_}Vq`qg~6OIP%7n2eQn!3sj zbgDDb=B=k<)}1wudg{Q_WQHofVe`iB4fkv&Ng3IVBki3rZ)5%1D!d@ku24_~??&)9 zzDYOMCy+T^4S8muoducW@hDT5`^ z41RBF??XH#VzL*pkJ%IfNi|}?Cd)EGelbb%=)`XiW(6EZonwSqG(F5{!FOPFnDvJB zYmqWT_{IbPs?T?j{KZcI7m^<#?opzONfp{mB@26FL)H2w#5jp;fcOMlP4S+)?;9Wq z0ihKXM*_*>(t%c)HADVdf=tmef=WmfiH}UAJrO_;6pO-EQWlAP)JSn*KUlLf8G(Un z#6-c!kp7DE@G)E-LLt`9NNG9$hIc)m-DM;8%aut^o zMHPNAO)M4sM3A5SqF@IrG@~^~144W^4Mlb#l9qZ`7F#3vUnA&hDGQ1K+K1|wR#9h) z)T(g^V;2eHSvJIHGHz6XYH9I1QTdbU4lf6?=~KsE5`my}jw5Yi>wpxX)gbwT9sJ=V zuQx#oK0lgcDt?d&8B0Kj>_$Q69J!NiQ~;;mB!$2c{Hc=b6U>b|M`j2$X2^m>T~qSS zF-yJV_Qy*b4Nrpl7ZHgaaaqY$3)!StF9m9e`ovx>wb?^X5(Fc15=HJo!$g{dHjqF4 zgt?1@anejk1P(>Mq)ILp4m<~`OeLx1;8G}-i;b8xeyfU>&ebcvM{{4QRoGswj`dTP9kItG)%NQ#N1D)GLnwV zi5>#28?{5w+tE}F=C&o$K~6y^h{W;`b>eoonJv%@=7^-lg+Y_hDTWotBzXIcz0?Hq zH`;0{tEq)dHT4KS;Np78r1yooI>Y$YIsDBaasr*vUbv`8ORh{0s1{GlShM8Bkj#9P zA8jYiM-;goJSUBfBU!N;wN~8C2y7ya1jB^T28r&7h(b@ipD97i!(uUoB@=lIZ&#RP zo`g*GU`e-IBnYMjdEW8b^ZAIqjY4@GHS6J#e0VldxdkdpwMj@sn7&5;IK2#V8vfNtJmhV>Bvt!l@f&ekbiw1~1CqhB#in!)#B(#M5)Rff&TT}bSgEUU@b1NYan1BhI;*qf=Q2|vJ zDqN%>fdE5SGu;5+sU8iVaYe#P%Z6*CegrNmB;q1aRueZ>{3?!>dk|;9)NoI|J z+Rb8&b@$-mOPNv!ju1Fmfo$PU$s1=!SRpJC?25cB+&s1E(1DX0LUNw#6@ut89-K)? zG9))CI#IMUIl#N^)SpBOAeRF+F^~;*5;uOISmPiT6g;OmcPIC4?I?WZV;Ncm*+syiGCTm55}N07ixn zGEa45My!({;;w{-3AwdP6i%Jw*`RG6lz}aHcN4v}-tM7yB+q>)#E`(OG&wzRf}%u) zN+ZR&C@<%nS5ZU#T$rI;`M?QjevRH2kBTwzQEr8tHO zI7-U4l3b4zZYbN}w%fotXkf(1Kq3ziJ!BXmj7U+^&bM_Egvao?kXI!*5y7&Vs${Kg zVQkxeRzv;|43sS(s2mxKe%CS*baToB}#mwr18 zMmT}fAWDJ|iCT#w#RHI)0cYCi*HDy`{o6^BLlUc?LDp?CL0+CvyaREyBpCRm^*goRGZE&d2?88f%z+o6WFfBp>bPWeoLT{vcIl<>B_Uz>SlG3K& zyad%nV40Ayz*n@D@|i3Mm_#Yb38Hn|){|NvbS3%_^j=cn47DQJd$C4fpriko=ipgt zbCGci7gg{umAu4b6f%YW8;k8Q}V-zWYHx|)dDwg3$ z2M39Y9fSjhfmMT#ce?|LUgAH%E10{WpLo7tz{Wo0C2u4-TYN#X+rzwz5)$npCNfDS z2ByPQgye!}qpWJO_ah47=;(r^KvcLt%bEJ65Ni^gQuvWdvu+>6N_aJDp28mB6NX}* zT)U7AgckD0@+^S_H72%@Qk>oNUy`0h%wqjgVSp7BYk~;cEDrR5JQ@dKCqr>ViBU2t z_*_yi2d<#Wg+`kiXv}>S_99Hm_jnB7h4yH`X|*D038wNx9i27nq43y^sCob=C!8Oa zICPpY$Y}IX&(IEVA`@6Daf1JlHj&@qe|hkLnp+D>?G$v=)VD=RfuPRXVCjcJPPbD)pNLQ)ZvCpp;CjJX~6CJG{<9}qhu*;HMarBGc9iyKXLMZu5gsAScl zbOPg30EXHLF~}p<0*ecEot<*^!jQu4!6;FThahy8V*tw<=3@jmd~Jd-nvzvW3e4#A zoJcvZ3mhLH+>t0=P6Yd7Fu>2)XNRreN20PNl@;OhqUiv!gyDuB7)wwQ{xqyO z+6|g?AUs8*$gv>!^=HSSAdWRB}MU$aS%qfaQq$ zkHyi>kUfn^a>2u>pQSuB5&oER&@*FxVP(Ogw?%kV&{vq%2r~i4MUFG%S|}D1maA49pQ1`-BpcV^7 zP%QB*Smjz;yl@=>jB@Z4;3G<-Fh1mnZ6|XM6WfE@8X>wlg0993YXNCsMhI_(q=;rh zYH>wd!{A!7yhB3~_mC&h0OEgu{1ysAQBXnQbb`f~=7B=7mLhzyxZpRipuk|W#tCo? z;Bi1TAi5SqvefU2vc^cVCE80?G^>u*VARHkzzd@yBitYZEM9aXt&t~?=|=Y>&P2(@ zfC5I+0$O2*!2fhA3L$>P&2V4?q3p2FlABMo$G9>vHn2Uc?Iu}uBmzVUgm{HI76uVz zn_tkLB-P+)@DhZPWV{?67$C@2QzO*agVGXj6}m~j3qeC?0nPKU8oVL~GoNAR`GGHJ za1puS(Xm)a$Sw*_DG|t3kv|{|WP}eAO-%pM3=OXe?GdS=#WIb32h*P$`pKf|-mOTPPpiFSsc}HS|<~BuIey*3(gl zpbL(aX@^WmB6;{W;l@GD@I}H{qBIGEALvH75fpo1T*Ox?(~bXXfc(AKG+2=&6{NZp zCM-(6P{I?Dn))*E#Qc{954M*TL83Ol9=9iIZfFh(+1lYZIua}>IBrNe{0fpfs&phf zm<16oqZoKP;h%LYHw|;(B8q}1jE*o4SL{W~2Ft>t;cv@A#CS}V@^%;!M0yqv7>(5_ z{4-f1sU1e1Dyq$4f}=czhcZU+Toj3lk!Y@oD!`Bp4{8@1EpP=paNZ@Vutji*Xldcx z+Tz~&>N@hU_#wg=g7sXK7_^x&2%j+j7%bb-n4ollP-0WVPK(jH(TB;DbcLW9RO((9 zAy3Z~AuS~t5nEy?%>wvCqJu|10&@gfNfAl?Ah<0iJVKJ#3{$-bK1E?3WE>FjBo7JX z0_hqj7vWNvY|sbFe?VDbdG$g)@SQL~ZRmwv)DVQjVc|;t7vg_Hpe$xSKAjE9U#*zbBqoQONT zgg~KH1QUXt1V5qGWZJN7iEI*fr-{s<($ysV5&Q?D0+-TWvHwVVRMsvTgJhwgKY$$* z<^zU=MS%udgfpgxOll#s@G9^cq*R5x3HuCsKupF*!C`_H_`0UIPq(;H9BqZ<&ytZa0sM*0kc1a#GompP--cKlBIpo(?SgfNBqP*7(y0CWSUlnGL2l2by zVJeH$bKov|3FObbSa0#-xdVgAMFro}n{d>SH7pWv*Jz=@H`rxB;7kMXK0dYy3UQEk zNcT}Be}n|uwxNDakO~uA4l|Cy7VZFg4;MoAeY6`SYJzSsHJCz(k1Qs7i(gzIx<(`{ zdJM`hsVu;npdEdpVXy@wkm?of2s|qL^yEo2i6soW6#W>vl3=e$ZOrY^XiFNHL|phY z0_#O524})f^g&WIM7Uo>EvO*tnKd8`E9*fjkHO>!4xk<-LKF#Ac{tH7g6AOf^4QE@ za&h8`gD*}%2qeo*%9V+~5|UwaM>p0x997X)!0Zzwj;YJ-Y9yH-BY@yYaC&P3>;fl- zk_tDYE-YG7`HO89FCwDV0;yyT&{e|MF%QwCVo)W!tw$8Te!{OrkagimhoZWP*~(gh zgfj23kV0FSg}7xkqH5uyl2=FsCoU;EAj)#WG!f#5VoU=Szl7 zaxI0amQ5E%L6-QgqP{^W6a@@39WhlV0_Xs@HAo-~8)yh)7S=pckh_Itz+}Z6yc32s zBC#sG4_=5ewOU$nx&Te%_AKN|Fea*AQ9>qI0vPh6i~%f!tN|t>eak$;@*;M8{BIz1 z7}*gi!1yR@;BTbZCb}0;9nT|F0-lN=8CH>-xC2@7Ksy-bq)?tNOT%4)>o8^tZ2}9z zd9lSzW1->ULsSP7kZfs^&`T8RkPaj%{v*pek!4xbBK=Cr0l{e8n88OR(o30>k`~?s zzQBdW7|O+fP=yO}A}ToQ!m@Ii43OMbaI0{&Odi3C*nkBwOIm7*nzL%bvag-zK-iveCP0J*)8k+yOe59|mS_tyJ3N!116BbpI4CVKD^g!xSb0{s z@By&jtZW`q>I{-evklIG3^OR5{3Mt|^^MsLnM6Fm^y<1=6s;>B5cH;(Il`DV6BGd^ zCC&vZ%k0++O1Y!h@WUj&#-agdfoWAFd{hh$w0B#oltAdfiyAtK>J1!9aXBQ446U~U;_krm)su()9V zg#@6BCw(F>1^~v3AK+){Gj#LlAX~9_;sgkifVFMJ@JvH#F@gLLVshP9E5JSmwLuQrv#o`nS#&khx%0n?GFxeP~AS6(D;UG{qLoQed5C_SP#$sjG zv(6YA<{fJi%qmNZX^TEVk14a1~v{2$+z;$#nil{?G1iHT!M?Dl`Oe85ZF5Dpg=P2x`=87f`&5PIoMWaT? zAa8+6Wm!PiWi5+9!djC2<)o(|b1QX!(OI(8zX0a#-w5VmWPVMsrT+5&W0v;{72E z0!?B9#0rEfI|fM<5OAXr7+c)cMNEZ@YC&$r%aC58Tpx%Ib0$G?SkxI+2)QVHk#WT6 z!Gwa@hX<#B!H=Lj#)EE>aT3ivlS~$~h^(Ml5I9UZ1I1fjj1MS`3B&YeJPCm?F#=m|V&I1X_hRK~3UB3xy#bqZXrp5)N_z<3|Ak zaqgglAwx_|=~t0S^+e%JC83idgW{5e{6_<@-qE)#7#L*uFj1k1sY}qRr1}yrjV&SM zqCrFQ2D3@3D9%E5lvIa24v!B<0Y3zDkFbOALZc8JNORB4nQ&sE2a(Zny1h*| za8Wp-vcbm0df<{Mn&@(!yOsGDB7wJHO?YKEAJQ9vX9Vq|O~bd88zA&y6`~M1@g&IF zlExs=$W#wv34`wujTrQim>AOU({GUgcMI5T^dx;CQ%m@3Db-5sx}b9=AoL7*levjY z45BpdP`F*-ML_2XOAVWbhTKhBEMeUwjTqxAPmgf~N+W2KJ7ai_#_{&)5MEbQ;$n`F ze%HAj#ukLtioYcqIQ)PxW`MYn=y1W2g^s8P2^XG4XbXsd=|Oj+c}75y83?KpYKE}^ z?+~~VA;b(doU;T+g0|7HFbxEKl9x)T1K0)P2R=k=2_5DKo#SNrp`62G7T$=740%BC z!|uXtMrVnRSF{<>7jz7w?cv5SKr{xNs_QO<;4dd)I@1vrLlnHw z9{l&9h~Qx?V^$mwm^$ElS|_YDH34`Mp?12W8GTs`lo>8gy3iv;i}K$LG7(~8>=3U& zp`l10)T3#SW5~jM2Jv9kFmy~uhJh@7Eog}0AeqCmtXOc!`_UjYQFK+H9_BF|4T1pA z040QMb6M5{_dxEYdzdTmax@TS5)ur(1%9B%Ww;T1{SYSFC}v%HQ6eL3XhB(I;7_DK zc}BF%@RX1Vv6HfvX%Q+n*d}JB%s-x+F2zF{xek4gn4OqO+=a}uWGY4v$xIgxTox?y z7)X~#6iO$0W;Zqpa1iSZ?Iv;n9#5h^pbimSj*h_bJm(M|MUV*?K&SxPE76?5=gN8) zq#$U6136WeJO19_GcmVg$j6&etSQU@9$Oxt$qeBVR756Z!1{BAJ0aqs(@=G=?JqZKgvR9WXEg9Eu7amn*=;@K`)MO@dO1C{HF4k+;F&s7YM( zjIaeFfC_&GWdKWvYXFZ3Tg@~T;whdl5~V2oGkh2Qz|HxDjYNDwMat5YdLX(^5i%;W z7;-iTpjsmRXo_8xUP2&(>tS(#7Kr8Hr8CDgfs>$RAbS}+LE*wvGuxOAX{H?pp4bpv zKSa4F%M3DuHc_;!Bp?xqT!b${F+#!Ub-fd%`{A^>H&2JqD331}2DykKh6x0+V6kE* zMiC|$+y^TRVv}xSqRFJ92kB4<3$s#cd!V`zBn1`KrFxbh91g5LV<3o)D{?5!kTZEK zc@!E0RtC+o-Z_XDH$olE)E9=2gBc@8k1oOIc0gmmz4!hiS4263VzS*Wm4> z<-!KgeArdkAi*etS7?cTFIi4pg3Ac6D+^25Fj+u+;=|6w)dgvOlMAta=n)9Ku6$>O z(F9O9;sRm_+?|jD7yzVmBq3295e18v2s%RH*5FkcF*=RM$BzuH82Tp+oMP2r4#+s_ zc!-{tMss0AbnXC|<_`FVFpq^N06ED576Fi{z_5$dgp!0Rf}&^TSm{3Dg*aSrAnF}JItvy9 zmP~&fPG!-;@F9<)qoD)g+jIc{TGJtvN|!Rk#3;9w=1GS_Rz$>R?Bvpd6b0{~<%DsN z4yLD4^NAV7lj@wRzHDSdO82qGWG2W-g0`6)@N2?6fQE!j%JkCJ#TNV+J5s38RqC-GMIyV4YsE?$qM?q!0 z^vTZ=EJAeY;s(ju)A5@uIhlMsr{sE)M}X{cN#=*lRT2LgJ?=%*Q?yjpjUWTzA?4CE zoEM|SC@?%S{dKeWKn9;x#@LAgNWTWdEQTti2fZbnO(TR->dT3HFpKG1 z`Q&sFK}3!c6beR`WeZLfzLY8Eg0&Q+496prhT94j0cFDOq$CKCldLjX%=(Ih0|)=G zo^hIFWO#b+3je@l)A1t09kWw9jB!PJ(K}H<^D1`1TpC(3S=uo&U47@Li9%oDExw8M}0In4sL@PCl}H0o9ap#Or{QfE(<`P zcrr#Zyo|r75o93=u9XvogVFJ-EH;E$VS_kA7K<>z@-WhiJOGm&%pfR4r_Ed#{Ke?d zXlaHZ2sx4-#XgY`hZJGAg`ek8!A|Is^p(xkczV#gK0-X0ez@RQ=@#J!1O@X<^0YKj zhFPDGx;hgrkla$A*$g74Cpb{Hbz~tAD&KTM!h8aS3ge}(cwG}Acu${Y(v2)1eP!sh zSzk-SS;=6e=9iAUgg1dc>SPK1F2Th*)e_tdLWQh}JD7|$lYk4c?wM^ej|3&qWx{LF zL=Ke4lTnuGgL($Nl5ifJ$nb(w(1Eh@h4GN_6WmTi1VJE=>I{waF}Dy5!-5e0P#%}_ zX`z^@!B9{oRux?*FXjnTi&-tbDc6)3chNh*u5x#jDIiXikUBA9EI`+K-*IWNriinp zt`-8r2v!iJA>*vyL9iaGYtbI+IFJP*{DMrTfa3Lv%cQ*x900Q1CM_Q@sJxSN`E4)z zo=hk$v>@-~9HUadWLwS&sd{~TcY52XW}lqL{uk268`Xl7^V#0X_VhNT8Pzg<`zf~P zuzjhzP2c`T`goIa&&W{*-tQQG#{CQ(O3Pd@dr=P8Fc=M!_)u@LKWo7PeVJF zLvzy4IocJ6ejd#J=)dvUgQ`f)QgPLsp{eK8PW2mYb+|TbxS7PM?Qgda#}7<;Cx1A9 zxM)|=&`{A(i8lC&YY!?j*U0B8lO{Dk-~4>v^WS{suIC@$^WdHbhvUQf`{iB4xkW=| zgG0PQ4WGEipRi+OWJDb>4QG!{fJ2{pd@K9Fz<pa)Gukl?ISQ@-MusBd2*gG=B`|;wUImPKfnKt;eGo@J~}`f)30E0UUs(0WO(+!*l}Rw!!#Tm{aN`&Tk)rT8Vz}Q zc~j=hDz*lTf@LFRBW_w_9oau(4Zac_3htlq9uB78BX0eh{JOB%S{x|eKJe_IDp6y2 zp~UdalCS(=*$>)ZZ14I}*PfT|dTAj2-t^Lzm$v^q@0Yf{v_1WP>BX)WUwkn-xU58@ zALY%6+7(7t4;A zLg3r<1(*x^OYuLoFTE+({_|g{YYi%`WRQo|%64dKfBt{=ulf4rk1rX{{@}TTBL_bi zo++cwxHEHRk9>UKgOQQF%q_tnhL18oYW^Vl%s(0qnubR#jM*@~twwen_>Ti`4@ZZ8 zF#O!`a|gl)b{>dqyL;QcQ+ky8)k!ihnL`>^;q|fo;)dc2E^fNmbHT;(zW7-G1-#En zzZ?7#zV7rj_^mkUq~54F2_*Dg5V&|@@toOnKJoPOP$l}ij1~9zU{c#N_{z}W{t|1I zb>YHu7G6}isPMQGrsYk^%gD>ho|bLoZ8Gu4%V07XvM;{gUp(TM*75o-&os=eq$@@O zzJtNyU@?D}6c-ntcfS0;%30c}o5??U}*yzbh^%WS*Zet+-RZp_6*049r20t4vgewPY#&| z4TI*P{QYW}I}YU!ng1N z#TB_OS08^ed00Afgub#qF*0Nw8Qd|Vm5vl?Bm33p-=q<1eB|-xNA|28aqk;BZ&(hN zo=tV+__apA$uIhE`afvFGlS2R|K0D43q}g_MzYn&3DZXSzUEu+Kl7Xa(4LVl*ZX|@ zl+g=K_)J|B+RPOukAzGkgNBho^T<%XG;&yPD&N_|ettE@Mi>tUL`LM$c3R`Z2iyk^ z`VKNQ^t${xMi>PC^Y^~*kiXQV_FvYPJd;OjPRHG&Q5;fABS-;r*I;tbCJ~5%F4Ocj-?tZeLW z|L|~a-+|TJ4zAuhQoem;q+I^^!X`WUi37$C<_o8D5iV86MU=|U$(vJL>{}Gzc7sE5 zJ0aW#gUM*h$j;7~oHq%2Fg(H^U)W?PKXHJN^+BFc9+1e?P%sRm`WoJXa zvP{{j=be_9$6xx{`3=e@>=h)y^hp$+yuhU02Al-ExzMCN0dSMrq}*v;?Iu36_}IjT zd?eE!S^Czd+=n0DL0MxCodKMDzDa9FpnGgL)R&itWu0sbOh=#_-PgzVHsGht)G8RHI4zHTznc z#`nF+_B+6Q-}t@}wnY%m@sIB-V0#wO9UR|xBHJeePfpmkfbB)Vue-*NyPWM(;E@T( zm9uRH-tvqe*UWY&kUimf?`8WDU~kL#asR-!!0#sP`ySgb06&<}2miwMFM+934}6$q zGN}(fc4-@apP`v!gc%CYU#`HRN3 zQ|B*8ZySpj8D9ZYWis(DTErMTOq%N_N|k)+t4cc^I2Bl6$dDzd zM42P6Cxdj3yfpp4I(vJHvCKbOW$tKKDx<`ayDoi*QqLJ4H3+1RJ@mg}?xEYMt%qSn zz5+Y|+z;Fb+zb2;coTRVKzvb%De55bF>nC*2>1~A02l_|2i^nT1+jB+HS9KsPkCdG&3dk^Jf zvd6Yle9XJ_oy?t(O7Ss!$F@`F?;hJu@i8x?wHkpf zAqpTEJy|%(d8zAasgEbZDb97$ETx3Gom6tS;TXeLRIceOYK`$L>f3xjhC{yciPn5N zb1TC3Ex@h7ZNTloDnP8QqO_X|%m(HFa%Ul4!b{6Di$IbEWCLQD(HU|M`VrsdwGx;M zECkGeC><^U&Iir{tbhfm2kL-}0AXG~=DFuxc4)8Wf01k4ovn^HD|N}2_$Q4SdkJHk zG$h$4aOg`~{Fl8}&??szQYM^r@geJBVMdjq%CL~7RdvXInQVt+pTBUP-vD;F0Ss~js=SqaU&;5C zqSpJIU%7P7zZ`bW*T6Ue`Cz3_c0xGwUk(3i2-Bv2{X{1mcA-CGbIL!1AOU$zaqu0` zzu(Mv;PZM-=ehr_{Lrgq-jjMD6k5vK$Mct*d}5zqas5?f+?-WpECL@2jK5Ak@r6l- zx#Qc1ek&eS>boUqC(KISxkIU-rv9J43VH6mE~UOdp%p_|f#o%c0oR{f{pHWSi|aiO z(3NTkFax8nlF={!7eBwma}Nz2dPDnt`CuA`mHN`ZN?TwEo>!{BN~xP4RO;s^ zEA_+kl)89lYTgy|+`Seh8m1ZY4EcuX zh62M;h8ftejTpc)44H;3L$+a(A;*wwI2tx=reT)hSi^CK;|+y|6AZHra|~v~T*ExW ziH4I5u1~f(lU7X{z0c^UFj2Xar^ury-&k7;XCHSwZdIA4jQr^ZN6k3;n3=P5o!uOD za`9y0(N2)#g)taYbh6X6r)*&Ky12Lv95pawpni{K&%A-z1D6i?2dW3=56m4f51cS? z<-p=S<43L-IC|jnJu?Tsu;;2hAAQ?4uzukD@W!#Wj31Z!)}wk=pGqnb?L#W8BC1)n zsHlqJ+SIDHs{1FL@Lm0T*bp{^44UBywLxt^{?6of`#|NMFMjXBZ(jY+r|vsm zP8clSap%ySq-EEck6*t(FYbE&d@VS7(O-PwwWBvz3{*BZ-Tmd!eZ$%J-TpAwJ$#P* zTjsxK{xb7dnQvt7%KT~OtC=rk{!`{NnL9I|&HP^G_cNc%{6XgPnLo@NgfgUFZ}RQU z%=a?)XTCqS5B4_m$wS(#)Zy3No%yprc-nW}9 z%6B!P<_wCa%$la=hBURHC$-JK!u+plh0`C^3Jbob6(04NRygB9t?=lFw8CQ^)(U4n zq7}}%Pb)n3eyy;1p?*%G`nHyP`ERvDh4pLyOUplt3(HN?kRLfawXg3SE#p4+Z(gMT zR(NqpdyxgJ55%O>spWtN$OV=HHv+c+w*t2Tw*#wyd|)~-6)*#H0RvzJOh5*Z31k7; zz$73CP(Ud#0=NOW*L8s0HxIZ7xElBoUnmU*GfL;0t*2%kOy1E`X%=XTPR!u1=gj z}q+N`23tHGS69S>{=DXBlQ0 zXPIVY%*vdVH7k48q**z$)U4d}QKRP_`Z;BmE@q8gb#i_|{!#fy=g-JLF+aaxdco8J zbN<|XLxHitRFF}SS&&tbT`;L2r$FTo&Rke9E&rpL2WD1GUpL)3{k@s*&pao8LH>F9 z=jT^XpHgs8=EB%@m43CO3yvw6S&+VN!Q6sRxh_{;2psx8qu}&{(+W;y|CEAhhY<_& zsxPjZwkmJcnXArNRkZ4uRWnzeylUmD6{`%ZjH^tmGFD}-%377ZYSOBlRl4~?eQ{N4 z(8KA^3s)^)b>phjSD9B$Sygx#u@J?cxDG=1G&YUtCi%h@~9$mP?nd(mOn9W)e~ z@{RiqMS6tWev?&cpL$(s)#z)#+Lb~)`VM)De0BL@*EO@$OO2%}X-f6OuFvQPxkPfT zy*m^O!l++X@11;F>5|hIGDLi? z(7&v>a`_UaR+KJYvUKTnd|Qrgi z`h6|icf75%)2>X>(DkzYj?#v&NYN;(od2%U?z%knyOZs&zpu16mZi3RY`;3Jw1sR- z7dEqPIKcImrnWoSo_|nj&tI0hUN74hf2gz>Y|HUm*$%zQps+37^iyyK&SzT5g{irB zC;ekod2X?_Z3&vRb1{fBGxhCuw!i!LvVFe3?PB|5wnM7)B5`1>VVl#`MK{*3uBa)m zuXkL6LMLU^zd8LIc(7EieFfW(eobl4`kH!+3kzO`5^bBfJLuDJf%>o2?V+AA-+ ze%bOBi?3RI-Lj>ZUc3CZ#ih%yU3}$LH(qzujn^!`@$wZ*ORv9r<#pHJblK9|#Hk>4 zznGS4OQt$D9ib^LOT9uWUnveVV@g;Mn#;eS2Ga+jPy0bOfr5 zTI!W`&B9OI$4K9gwzC39=f^=HWjxFvL|>b)RLMfly_)Y&$w)aNd`n^_MZ%T_kO&<(MD;f@s=hsqIR(Px!gamj(Lo zJ{&go?vW*_)V>=`S}xmP8WIGNTK*jwx8y@5X(bepBK0N!^7JA zd2!qSeAsnAFK+v#!>()ooVe}Rx$fu9ZGQ~6-F|HfZ|{ej?f$LO_N2M(ciAp~OKCq! zbK3{leiv^0dueXlcs<*2+ex-%;3u)&{T|#o+_%i%scc^fcio)kzGtu<`ao&B(%g0- z+neCFznA8==d=ACxa~5w<$9;G{V#CaUrlq{=dyk5@02!>=C-TB86IWO_FR~nd+*af zquln{aDG3Yz-^zz_Raq=&TZ$hy@BmfZX4{Q-}BSB?cW{7Z4a@%^s)arZhH>gm^}X< z;c8c3R zFTMTW<+i1rAO8v5_VHm{fr0tJDZrV)xxj_MVqlcpK8Ek9cBZ6+-1PPz;8ZV zW!&~>DcL3`4kVX2WsE`d-ojp#fQ#G%9*2_^OW<%Oc?wX&9zHfdYoEh zMfW93dVcIo{&>aL4=(wJ!TGorqhyBj~@M!-m_bI zRgvLT$8+;@O7mLgo$L%R8Z;JUpRvoRz4CHS*}kHVz3gqt36JjGZB{0uam}-@ZOAEo zE)mXUf5zTN!n=%5Pc>@%a&zit>^7aY%lO*-Ni$X!pLF_gqml!A$n@jo&mHzhg8$XEeU3UCH6uelA|Zmz*lToX?j@&+z38`SL5i%$G0k@}*FY zIh`*@$(IJc_g(s6&@`Aam?=GxxhrFriI(jgyUeq{-7ux}zj5Y^oSBe*&CGh4d1B4j z{igQ2-EYo&IsD=GR_1-Q!j$JII`yNIo-568WS{!c*a$fCZu{uaAB?6)2j>owz+^By z7#VHjVAf#vAj-$VUCv#~F*rY`B&%gpxFF+qI|p`lINQ~(UAqjs)UNDZS)-4#E3zxR zYyYmHU2_-wk;}b2xh%IJ+`1`*mv%@oDs{1A9^{K1Nh#`O84*lOpisV>=NbcWxh z%d*@$x-}3eeagEhIp?dEW4_@0qQN=!BDwRfjkYB~9omSawJo|ehIr+(?rzU(}i zwA}IG@Kcwl(h|Kj@&Md@CzCb(RfckN=}b9R`gp8``snQ&ZKQEZJ{`i!ma7bMjnq^s zO->C>z~gdF)3eE`arS|`H*>W|c85|2q|ZK> zy3-_8%AI<~kJMW)ciQsbxYIr3=j(Txmz;Wk>U3xLI}C*0^ruGmT+AM$>Dhve=NT25 zn)<-)PCpVoq5mQsNgIm>K7M!;sGKb$&nxH1U_bu|_~7dFsk@9m_3Rs)OOMgJg}%ZYg<~Vy52OB5<-WmRg>Hc!~-I*UkVkduRXU1zM9VngQ zESTv$N;zkgIFDwkj}&B`q)i{&mpD4L>*bjz9Vp?XUbD(FlSX9n9Xm50KJFdc9=pC#p-o?27cyE8ag zdXoENeuN>KSz3_p*>t~x*D*sZV6y)y7Z}Cx z@6spI@9)BNGIxqHCZ+I^w$K?qhaDQ7kv<0A5)LOt7!Etl8NQHXQ)kFT>ofjg>T7td ztk@a8SddRr*o>9?KPsF1biPr`d)m5>i|Idr9`_WPvQoG7D(#=lvLTIP;~zod&f^V< z!kw?~W{%&vulGa8i?_Wy-5H*B82u`klJ8YbDv{BanfsJ7On&x_z7K!fr%LBLVO-P5 zTBehZ_n2EcI_4yuk@}&2>CwyXG_gOmgqE}#cDK(nzn@?9-t>6n!La$=?DrmwI3sG_ z+uHm4`C&%Udo$8M{AcQi-)Qge>zy|=4|F(hYOY#Njw_E^d5ifnOMQh};i-3&yUi6g zo5iO1_4MP9X_ksdhG14nw`NDmz8fg?R|qz5MU0JcWMI`S0N1D)y5$J3v?58Hpy3{`S1 z`}ShczW|rn5Ku|R*~9l)$nyCB$9@g?$%Icru}jVaI)M)Mx8ex!DscLn81OmgRrXi^ zj%(w7dnIr?`<5>$I!g?#*UeNVHvv{40qg{3%u*%i@_FrBO8X8#+{*sFoHOF=l7n45o0q3r}!@*v<%fBy2Y z&s%2GM)sYKgM%M<66mLm-(&xefH%^g%jc+)NBQo=@!>mw0fz>SkK4>N%X2~S=MLfH&SIS(8-v;icgL9P9VkD!`&l?H8_+n}zstdU8R-7_^3>a{2 zc5!dnx0LVIz}M6Jrk$ut<^i3+Q@}8A$w}lu0Gw z|2W&vaGVF#%1?n~QICj<c;L^bke`tv%z%l7D}s8N2*Z{J6?ax|)w8vs$U zEJPhr0+gjcpW|~bFco#mjlia~isfijC%2+nc@nr5)rqKB671^%z5(DHUNQ|;#w|bt z-%mib;sL&sRrJMoO0^b0#P^Bya)&WuAKY=fxPFW5#1Fr!mqgGi7^Z>)a4P574 zR4hxg4cd)>jQs=WsFM4Ddw?ClL>0?t1pug(S1ezO3PxR8?l|LmYlW@cQEjPL;;3U@ zQdMrNtgf$=f->dKT8DZ0GIOn^e63oxVnLDlvWhj9wG}p%J5|juTHszZ_U{b7InDFe z;CnOwoVDi1mzd`}=g(JQxdbPq@T~T}Z&Kvo~VP8{KU9px!uB&iX*vIMeQQ#ts9zRt3y zs;<1&Y?jAZWL`@9xrMD_O%-leseSrmn#)(Omc870NtMN7u~(RHwK#2DwU!U_7tH!2 zrZ?5H+H!l9IrrM~dgr<`%vWBPds#(e^_mL#mV0T1!{N!j;%4(r6*fB)=P;M4ODz_w zT5;2LxLP$<%kSzcC(T=6UQk533CcyEeb%CL7cc^jN~b61Qs&1R`?xmn)6YKZ?DW}1 zi_W=VQPIM~&i<^4zLGAkDR+3&cR9^`S@{i?9qPcvU} zb1q#`z1mitlY00SH|JhfPR}xLb5=O5R*TJ%TWTw+U+p~P%-qHH%5s|{XPL$3tUL4O z>YD1@71j#7y_%D3a*|w{pUEv{{95f?YKY*N)~V=FXp9p6)qhK=pj?VHxF zWh-jinp!tu5wvWC7PhxzgKmUU)V8c^5I2Ud9j&d+xZT*gSuAU7sBfaabg{5yZ7XY= z&DOoQ2o_`08qieH+S1NSTd`f#TE5!O7Pf#w>@qO1S-n-gp|!QWQLPW(r6zot2uFzJ z)t7Fdi~F0fP1;yFkZfw<_DQU*uWtjpm}AAXs#e?-?G0OIGqA5-BtqL8$!smL^JcM% zF8Dnc)#wj?d$X>g>Hda#^{TyTLqqGPcD8U?=!S}cHUraoLuW*=c0+ATJzET06Sit- zzTx}T3(HxFSSpr@TKutpz_D z+M*q`YY3R5p`#r`Lo?hlT_Tx_rO=t?rge?&stKD0bCok&g!ZEed?&L;ZF#fB`r5Yj zXer&)-rm|$td&JtS*Vo->@JSsY}Q=6rlGk|Eecp=6Xe(4uwkTDINVk=Tq_=~O`kp; z7-Ls*C3ZkWZERs(YYRNjhE`VIR=Zhj!sSN1Udm+&>8SmeRj_5%)eFVNtu0O1v8=4A zt**I29Z|>YP;r$-BCNs&at5pdmRswymREU0p*o7U6oSRnldrs%S1ViBX_z!qjT|Oq zt*xY8ENpJx#7*B4S9?<(taDSSp=1*__nHv%RorVwx4|om^$jpHe8Wv^Y^ra-h<5S* z+GaQ{2Cb*9s}6W?EQ| z3k@f1-R6ecHgezi8@7`-vJ$quqFTJIu#iM3_SHx-% zQ7~M?WLjI%aIKhZokV{iH*(n!cAHr4SW$#siuj;a%q*PAuwqqJaX|r_-_X*~)>KFH z+iTm~8er|0SCkh^68J^EGZ9~e#uZG*z!JMyU6yy-^qF~Iu_L-_uI*@oL9T6QEAvWW z6qc3E;JBhFUs2AW+Ssgh;)2??4XyZcm+BJ7lme;9QH?)SSvf|Cg=~Hs)T;?JR?Q4w z?Y7~Ci$|&jaMi>36u}74S4b^xMHtc!uU8EpxVfnfcBrl~hI>c2LstW?VB6p$%MfdB zgqAgs6Kt6q!(vu#8oq>5IUw(bnEJL&4R!0m{g}_2nfGlO9*xOD!dL^{SknNy5t6mS zMYo9Ln@hNbg)D(b7*-r6S5RQs7BlLro=Qo4Vnst6zWoW4w5Y=&B{&a=bsfch zSJq%uGu3k83}9V1ZsZHXueR0Z#k93jkO~{t4%#$q+8Wlk$2_oUc%J4a8lE3hvSwpD zW)=(c3Z%LXF(oYzYywJ%b2Zk8^=(%;XIMqa!b(JiUyR+RhCeELs^oy#T5waOFU%5K zAbxmG_-kl19C(b%aqKNv09euopaK-B(-3#K84YX`r#na&4ojja^)kF2&)+2uu?)7xoYNBWnfg!1S3(!>s9J(e)07U0EY~Iw+0=)r0 zR8nd;t%VP1Q)BfJ-o%tcwY9lQa>deIgeut0VtLH^)&@E|Y3wHk(@O0c_Yu|L(1rs> zOercQ8Wz*YQ$s?de{^Z#vOIO;4kKFvJs#P|*V%Zpp#cvNyJ*KS>K;NewE0znhqo`g z1_cCbWQaG4O)V^=vSDp|2F1{A4egs?{4Ka__ zaDa3$3-!w&vPVs~jAA5pMhb{qD83dUV$}w>H`F8U<8!mJO>K}~JKQceg19xC+2`Gj zL$c<{MDExq7$HT0YEBZDH$t8HfmAhwIG58M#$zEU^{}xjX@-^NUB432S>m2!3r=6{ z5NZQ>whkr{(KA?zzA6t}uu`DzDhoT}+ST_8=3xzQO~GfA^!Rw1bZ1Ju45XIjKH+)g8a+klNy--M$OMct}X zoE>AQ$Yd?z6WB?_Hb_diTAN@^U>DbJYFM|Xwk`h}t5MxfS%Y?*Z5b_8%a3{#GH$A8 z1%(K33MtAdo`pZR&A^|6V!AH4jo+F@%|)}QrMeDNhzrZAhBGtmjre?5S;;a7EFJdM zvJq^n5lg|NgyT<1E^c=l+Su|9B0{oS$`^rdGN&TnCX6g5Qa*gCypsA_7iFLx*u+5H z2J*4+>}y+_;i4(RVQaXXqDe|xHse6ggMxI}pZ2xfS@ST6q925GI68^<d8YcvFEcT)Fb5b_^o*>7djX$$h{5i546L@J+Mhj_rQ6;2$5~4cne_!B|YF* z!0ooy4Rk_BE(AznQ5^A!Q6ZW(=Cc(IZEKofOVq(wzP7HB4^|Dvh9)|yfE9cg(|D0j zd_$1JQyatrjy9GQuUV2&d^dVYraE9SJbyIl&?wC-umYZjt3-4l;sCL>XW zZ`U$%8_08t3pdoRYhXqE253>8GKMWH+sKM}D^P`=uDNC^GWw7<1%WMWd0EB$0+?nT zc5${|p{lz28A4i^RnIGf;>{~V2tTh32a0)Rh~DRw71N*T^k)YBnaLJc%twM?VR-=n z$6z(CMSQ%TwoW+O+CC!gYZz<2M4O5X|69nuLSbv0NKzoB2$wTFX}GMzZ-t~05-!R9 zfz3SA)DouQqvVp$IJ3h3NW95o?t zlsth;OY%NAv42oGkvXU^=^qu3^rj+6-2snuR5?;Ks061aDbG#m3Z&*sKf>gUiNKz+sgi~VM?D-gi7!MoVcm?!X?3BijUWtbcF5AoCAw+ZaxR6quR0WP5} zA7wVc3c$}lUW^B10tAfFqnuMWsCQRE|lY=qQ03Yg?3xSJkzp~xs@pZLt_Zvh{;C$ks62&~eSrda7gKo1QUlVRM zvt9nv8E7|qd`3Ly%ErCp=w}pn`3;ym$^C{xcp7n^@TB>lZ5ssdexYQZ00)uq{)U1#Q+@a%IP1#7LB${*1P%LnTO__gJVcven6`Hm z8)QRrV$x&iR~^v*^Wfty{9xRi?RxjD9eTGLa2UWO^kqqbCd?E1HFKDqo0k5jrElAK z)6&C1{r_O;tNw_V{*5q8KNHq45AaX0cs7(K09o!|qH1?OMhpgd^Ed4n2O9Fh1zSRHoEd9#QvGj|sW9iAdhb;Z;nEQH`{vEUj zzyq@M$5H>Uvh=56>AkS7puI%e*J3|D*9SNqSz?ERoijP5DVA4VEYVa-OR;mlJNr4Ehu8U3z=tA{j zM?@<VO%Qa`4HD^Xum>p zq+t#sgw{&N*wDI|Lm!W|0T*a~ojJje$ik|}e6%LbXJWg~AHrO;#{HQ4;AiGlBdM*P zL1hQ0?~Ecqe>Me!h)_HMmpG^#GNPY3&jMSf*KT>~X|498? z$4BaQ|2R@t!s^q1GSdFF|X>e-5Mlz6B%guPz;_KXGEDo^luJ|IPnQEbjx! zmiK|qCkMLz61r-W1MN6{Y#rL=H%T6!TYN$>ns+G{080OhOW*LBoB&TuSM%$ zZ@rDztmo3!GimGDrZF3x%#6}LzNbxCN9XqVoY>2uX#TU7sh4IAvrG@;I%Jt#{|?JU z-1v`Jrn@lizsfR^75O~NwB`#eQwPRhYnjS;+i1&lf-H(=na-nb0+^@cGjuZq_i4>C zt)V`!OjCZOb3Y4f6qPBsYhan4NB!5hcMS0N)F)(_!mQ5p_eXZm8(}-FVADwZYhjjb z-kT%s%7Kx3-@=jlTR$DC@4aQDKK+f6dP-RTlGjGsp9q^%3A0RZgjurt(nk6(-!f8f z3bQU7!mQ3GVHPp{yCeNeejZj|GE!e&JW^K*N9rZ` z|G)X)pQB~!_#Df0qo9jS+>23QQE8ES7KuH%;D1?_W1NJ zkM9n~W*?E>@+FQ*3Lp}SF`Ik*U2O09?XK-IJ6tROuZOqG0^92U5&Fh5w;aW)e289r z%;o7s*+~KDG>p@kJ-%o}Ar~WP?^pTp;p@@CT`UHf&5t4JvP*eneDLBC5sT&>4d83D z14qQydDj4+L{9txX$!!|j5!f*X&CcF_VL6O0T zvj{RpMr42(drZ;U>SevO9$awC#9^a`n9;UFnE;9nwr`*xIPdv}Vsviv{~mE$IJaL7 z2D3v%DTvL8W3#XZaqJz0_{1P;yJEmO4zV5iNycOZ&W|W0CCW%0kzVr|#U03C?NG>v zU0U+WdGecd7BaBWZRFPkF!6}_r0)p)nwupA5PbVY2*JX3A!`PSO9Q~UI&iOnvS6M- zhijKV%IWbXqfaGZ0bsL)HmOc7ckNPM{Q98s^x&XUjCP7OY3!}6I*GK70)9dIc)0Bo z&=gbUkm>xh00ORr-$usMAB8ayVwcQ3+Z039Hoiush?v2-?ai%v_IfhLH}L(i=Pg)(=6YtDy22Ab7U=nJ5R4LPUM1UlhyyE7`Ju4k^3{J-cvx zkKSE8pu!Kr>Y=t!>BhZhwfl!qdivEd2T;1c1cc`KqVnUu5q!R=ukqmZ`yP0Fr2S(J z&o7#b?tAv@-B+%e^AfJZ+fHlu52BR!>D_Yx=QW&9?^V}r)=HZ5ZSYE@01t;I0|buW zcMOoy35-3*hMN6`svaoy8Rcm}@%wa-^0uXc zx$KRxA{!e>LqM6EH>hmWjRb4|8NH|h4JUv z8PX@?&=a^`POqXfcS+Z)P< z0()66b>VSFHDIYg_#o+#1YGslWL7d!8TKvk{d%N _ecarDVWUnZ`RjW*DUd1yb+wY{$##X1u9FY&2E1g|jO zW`08<{^}7fl!$M@fbWIF>g2SNy~Y7AFdpj>Uj@kx=T!|ySEF}JuLX!+!3J7v9=)!r zJMh{5eI(o3;xlwKOZ>!lk0ct~P3Yx6{5 zey%%M>jLSc&EwNyz0lkXz*o{s;t$b6JlX+TD5y;Xo%n55z%uxTZV!{X50fpSK=&@J zK{k|hljivTrxgDz4VV!R@pwnGTkThIP!PxZyP!X0W0?rsDtG#!gFdonWK${LQsd%X z=O^i4yTmToSm-otEE5q+$*{4aCy8vB4t{L$RUA}6#|q6iUAyLs+L}G2v%sIPi@nNi zIjs->Nx0)TeYu?k9(vX8skV}QE3Ngnm`AXU^}}CAm~Fcvim)zhV4xU$*$g{I2MzKq zuz3NpT{%}(9)#k(uaO*}6MZOcC?6*tU@SxO&H$YvoBd+?`@X~CG2dF^A7aa9>@`6; z6Cqah=y4X%fwrU`+_PzMW|zk2&>Cbv?}W|``(pDkB<}Z~C;k~>&&UTe>6BlDY|G#m z$al~^B>P{6ojFhT*&ualK5ZES$=3prz>|EX3HQlnM6+f3Sb_DMop|5?d7G+sDOon? z4epcPMPQB?5w-}tiLMD=lt7yxt_7dfd(=+%b+`v!@ne33binr!d|#x*=i>*qT+E+k zdqQ!t$Ig>4`~_$QA29D3rCg(XSk~Yt(LRJZ$iEPuv5pT94{6HIFF~(DDLVpe;V9Lx+6%xJZmV~ zDsQ!op7Z#$t?=!;6!iB+X!M86-Go}f7{+Gp)y z4~j`dx-z7-f>*J%PDH(1A~bFOS5y_i%e4Xz}er=-U6q`eYkE zyataKwE4GSe)2ahSYML5{A4GKp+B^r$zGD3^kJ+GcD0S{7U`-4U4>83vuk_;^iYpI ziwB!8laGMjs=h!wJCLpV=t^*O>JARVcM6Ly=)se4KrX-tumMy@00$7ZF}_F0z**UV zOy~(pXbu@;4g-z@Jb&=UW>%9I6j&df3!}<9&tLpRGh8wptqnmb za;YT{2o5e!+2l7A61c9a=WlUvd5Q!|4hh!*S)8bx$2A?U=m14?I*=)?z2Zh@1shx^yt{$Pl8s;a$2yqn&s?L-Xs2lwqt~oyi2(so7Yk}ksmr}6H4Hl z6&ox!V7Yywf*iU*I|RZ(afh+*li+h-hb%6YAghW!an^;m0;)W|Rz0%B(&LK32`B0Nhd?B< z#8>ay>W{Z=^=DPUS>j-1pfbk6g9MTv9eR!-%S+=Tk?Ev^vH|;r+7Y6GUwB`%M9b`& z>;2UJztLY{E;v^f(~PJ7M)TubUXjjvS#WOSbLz3S!P$ubs!Lgfd4y5(sOvsM>xwjX zjT{g8`EVE$&7fsyuab-sfh=U&EE}XQ@S#&dX8J-oo<+>TbGItIJwW<_jI-dvlVIWl z@gN^-8O+Jbi+&o9gvwAkj8Cs@bUvvV#638;RQdGc(ZDj`E+7kS5Z%ahGpo^-teA%C zWuy5JvcJ3W#>7$tPu=o8=x4GWQcSi^(76?FQ@CY=d9Ola1+hEHAoh;cOTFXhaG*0) z2ND>|1}*^uds2C-00EfTEtjE8E^_<25_Zd7!jtEW<`Tcj+zXla;y}7v>3VhdIn$6^ zA>Iac?4k=#p(&I8R2IfV{)-sfnVISF-Dd0ZZv~yR%w2wiuv<2yV=la>ssl~OeS=B` za4?wnVV}Jk5Gd&bT#VvAh3;R5@iwu2uoGBU1ZeA-hPo6?FubPGyhnMk1n;GSejE&B zdQM|vdlb+bAo^f?zy}=aFbC*92Pd3Oi5KDr^+)h&HHySbBxqPKc)#bo3H_1SQs{mb z-b!M?k>(>DX&&RyZsqTT!PzFfB||(QdpAEAy!bNa4d-_;&5a-r2`8+B1R3iNm_)({ z2Pn`*_@#iN7R-AH_m;=2_nw;U@pWkTHsju7xHpIN7>BIPsh+)Gvvuu* z{PsR*?%H?N=IMUO?CI{+)()-pHC&U9R}w(SXF=CtpBX(tiLL7N-@=v$=*5XyKJ!G*&K9}WRE4S-TV-?EU*sAa+3}3TBH3Tng?$k>5&-Jiw)Sf z%K}JrojH380zTX0kR=^V96p14Z$!#<`u>Ws*U6?O4|Rgqoj4S+=SZ(!p?$Ll^1&gF z_D!^`?wgdNF5m9XPT43f@WWI4cJJML&LnPCjC;0X?{q4=OFGY)Y>y~{>a9YlXj zJmBwXJA6MRx?rElj_Az9gQc7YdW<)b-IiZe1b0us;OV%%|hV21va+i`^ zwH=9q?bstd;CIglg1P6M0C`y`d4;*Gz#WO5ib3P~9a@9tr@5hT7q6Y)2)!`4!Bh8-kpLuq!B>l(V}j^86~R{e zFh>#T#3az;IWVYrieV$fKKOxMEovT9%PGPI zIub*34^Yei{(O(`(;gh?x&ska#OtjpZy`s{Q#^s)a~;}~LF+uM>p=M|?Y&6Y4{h(Y zKo=)s-lvku&Ql_u^(Uiz3H@rsPJfr^@vTNYtMhG_b?J|vGs<^C?)UgQ@YxL{?{8r1 z?@?{Nj6{U{am6HKuh4$6!LGp<7ZV*a(b1*Sf%`;fauxO?Af%HzvF9AowHh?F(HQp* z>>CSW&8_|!@FnA+t0w3oCH{5Ht-FdiZZ-PpZ8(_2=aC;W4QYD;`cFQb)-l1p8s%PP z9_Fn<{~E-}t64XW?agtx7G6K>dlK@}OFIykAqK(TBb)y^?p=jldU(hacnG|>3-e;H zBWCmXwosxJwgYcCfR3fyXFoL#bZBdB##-69SIO~Q>dQ=lUlu#}VXwh2cka6iy&=Dx zjy|McjVPZH5HsV!Mz`eg9l~1VpDF$%-%PP+F+kG%H0dV2F&LBu|7@;5cqky1`tj0q z3=_Rd9AtpK6C;Rj;7bqSs)-*lY>4jFkS#Lbw?PgRj@Cup*Wag4A8j~ zXK5de0WEmD13nNq3PUIHEMu8Z7z&IU!;tvYvn1k`RVU-s9q6H1>hzm!Nr+QSu!Ttg zlVU_^L}`X?HJ~1kWQl>U@letXTK@&KnIS*;n?Sr%hdH`I_X@o50Xo2UGiVZQ@Iyo3 zja=q83{~Q#f&;KuH337_-za$VW~X7O!ml4X5g^`~5CfZNtf=$<1Uw>|sKlAk_al@f z8v=^=m}{w@zXf{O<9h-;inTrJhy5UZxOfZXVMfe{@%yp<-YDDg?x*K^I`JT~GZsD% zdj&of^1)fxz{cTBGvBYT8bTuVk+IN&q+IYtfdBgo#5KleaE6oml?ZtoWOI-2@359( z=t=Ci6R;;ZXK+896lg=c0R0vT7qj}F)k@lL?kYbfMO-)zV-Ocg+thdsa-pQHL7eB$ zg52;qznw`a@fpOuQP^+iNv7}<%-oH<4g3{KIPFZ0eP(gTKGIn_-dcuI-6wsN*`(;@Ykg#T`1D zlhL^Zr2(bB3O)gKqZ0{r7uCCz2&taOLU=1_rvaY}6!5k@-Zp|w-G;bv8|ZorZDjL$ z6yiY#co20B4-6v4L6;0>^vA;$IujX0yv@Wq!IMt3!R{kQqXz~QqtQGPc!~!`7f2@~ zhI+xX8Xxu-9w6*S?7r{33AmczuSpJXp`Q-2{w2nQ^PcnoXBF#bWT4GApvho(PHjFD zWMwpm$prS?2)TbFBopWcmx%;kNstLjE)&$bOe9SvXg8zHgfbZ=mx%{%O!0ya zJTxF*^A~s!M>1CF{QijUX>`_UbRw?*qtZ#VQCzHt&f$$coJqRzV#iLjK}R7I(mjK% z+ei9gu9q6ebJEN8KNgK{ED- zS=^oodFU+Sb{&4@^+FW%Dh6xty#byfzPL!Tm_<5wnDR&4fajwDqm%H2PILPbj%SpD z2YGx?T!vq!`RZ`}5$XoXqS}P29yu#)Es{6M=WbeS)HkVM;qh8WBHV!vFX5V;J&bIC z9GC=$NJ%CE_nEX+`6xNagE|4mFXXI3AIZT-dd7y@auFQp%|kd;nEi}7{RV08SpytW zFW%Omw*w33bSDT1W=zL>eWo7+#4Pg+1_J`@-@)mHlGryu^})|UHGb@u zL$&@7gzAlQB99uN67%Iy)WL3S#9nlAz@pMeJvA(oz( zAPV>;_&D;HLZ!5a>Re1Tj^bwK#QE90{~XN~LD$G{&^%f6K*Q{yw_>f8u(8lHzZ*Us zFN0X=Oi6uG(Z`0jVAZjngmIq)Qx_zt*T^ZvRJZo{DMuJSZyd%L*a|$H<9J&gVdJAP zeiqgu9HB15u??*?XXr5{URFQRB`2zD{2Rng_lVvfKn-n>t?2mlVT@&#OM}X_0H5wl zMmquUb2sAcmU;k{1UANOP5_3pxm9@| zaVTPsA><#KRig7f&Lg>0LWX+j`~5^AwMGj@*IVuF*v#)@?SrVt;j{fl8=4Da5iC#P4{s8RHnvriaB735WN*=ZhClA>KTt z#GUPury|FDm;Vtt7SD_>iAI0idC-pdA|E9J_85%cX~uN~>bC+H8|vdwccY|pgow6S z@qHy0&u_X!kI&7L13|nGh_z$hD;-q4IO7^@-gAbMN9BL9o%T^okAB}n zzZakud>*%03V+8gBpyDcBmhsEH#VzFF4Z}F4hEd^#~M4mde5pXYnf2joI%{HwmPSoe76=&^A& zhsNIgPpfG0#%2V>iwjRe?pQGw1@nyhm~VL$D=IFP)3tO;35rSnA7cYg!Lj1Jw6oH1R#8wo5|$Z%Byg&c6xj^8_kKp9<)b+zx0J5RDb?zFqUEm zs>AqOe~w@u4hg}R+V*jn|NoyRvnud=HJ}nu1GpRD0FcZUpqyRIYP`PW9TdN=G0@|vpsv$DB&=P^ff}&L()O$ zHw@@(=JEs{gbq-`X_TXI(SwDpr2Dg-kZrg=FzM$CJ~D#O0#VYGSws3kZNe<9GdBV@ zh*{6gjo|u`h4J+8G^85`Kw}zcCAy!1ew;&nB?2xF>B^VXldoT+Cv-5rR!?pee1(Fi zkY19JI1A@ykn0oqmT7n`7iGlBcmXG2Slpn*v=|s2hp(sz_qiKS21lL)t zOSy=99tOk5y79&s4)RF&ibxs`F$O2%=Iy$3urC-#{d3`%Fa9h6HfF!_yrAA69%sbC zG;CZJ`U=0s+jrq(bk~eQf)UPYcr6;EyLL?E=rPOy1FIVuL%1*|b6n5sRC!}gnP}oT zC>jn#D-wYQjaCEE8iq5q^YughL8pP}1kR(zgyBr>f&sh%-nmTW4IiT)J%&XfD2VUn z^U!_5m&VQkzJv$i%hw?MW!%@=hz9W}+A!vCd`Qv`nLt-Br`2?wzE@t=`oigk_YKV{ z44M3Fs9T*+lP|xA`Q0%dp9er|{@@1lJS~u};h}+sAK`oeeTk<0vm%E;iGU*z&&I7V1$kxjnE+=)#30!jy4H>^r%ztC7`6>g`BEj z=3k!0{U;q3V80W{cc#Pk94Gq${~@v@BylM5k2z7&dU!aBWG#Xw_z+5b>ESbV7>9Mx zjyW04-RY;m2J`xu`6$tdWL5Z>k+ms6MxwPF`>|7xd8og@j`rxyM|%wN6KBac(bq1J z?Fs(s@6X{#DS!Hl3v(at`Mv(rUm(n6pGJKOMzQljJ-Zxa4@WTO{=J?t(PnYNZqe5_ zY$QKfg_k$r$IjY_Hu6nL0Xl5yP*ULbqIB9Pz^CdF$b4Tstp+qmpu8v@_hHJNMzXiS zHG+8(aKK1N3QkLS(Rtj5Ph0s#dbo`TOnB3qzk$4!A*fH-bB_3`f0gzgCBFBnauQ1u z@z7!{6MLg*y=$VHYJQq?kN^tqA(8rlAcXhVL6w=?r_R%&FLiycaH z%du(!72XO^al=q>J< zx4HiBxy+8?S^833@#*I2M%#Fo#bq2|Ia9q!tb9Re4wKi|_l706X*Gy)fDY&9s@sp?7 zqFhrKM0HGbMRgphsIQp3WRATZ6TW?cpr5zd51%oEcC_O zZeREa^pZ^zys@qe=i*)G&&{%Dvx$wYPd}hL$S!TTEKGhnH7hbJ&X_y(9oAP?6U$emRpTE^nw1GIMOPi}O<4 z(^-z-U0;#fk>mRHxhQ*DqW~<%T*kb&7Y*-)(KuXssRzF$Hk|QMViJPrG(7&>IZUiwqA=e2(%drq_y z-9$g};-)YB=KZ`Ake4nCdAF5P|kP8OW3I`@h17^fTOu>QQr zEQB0cahZ0!s_LDH`7pA>>Js`f&q&J_t1Hc}?@w)<$|y`IzWhEMdAb+p#eQ<$(Q!!_ zZ}1w$U7I%@=r8`&zyx67q%c1Zwx^3j@ZhcNq-H(m2Dztoq-CZ{caw()7EXLV)wHkPENrF_fzb4zl{Kc~nkkr@{o zBWJQp*_X4Y{oBa`CbFGq$t}p0mf>yViI>%ul7bTHVq>r%$Xk;yKbASb{$-`V%21^J zy~n?d>bXvT)nzTHqb!$YJ_%g6_wjVLuZV|mkFdM%=`7Wq+|wx8t+J3+Zu_fJJ+AWY zLzboT!F1eTnGI<$agn^QQP;P#H2UNL=|HiYJ_&EcjiRDV?@_} zXC(fvs*S*Kmfq(Wsu-$xrNXTlG6|=EtQNhS9_6GVO;4M9DPJ@S%zPZoT%s}aF23w; zd9ghS3oqi#oUfwCnOV-!dq^(jZMq!&$x{1YqNh%_@ez0O@w3B55TpAX4f1r2X?pK; zKC4bH;(e!ahUJ4{d10fn`KU#5HVh=4a0RS{b0Z%Zuy-QZi_<=5Z(7(K z#OglB6nUK5#@S1(?sH54%V{n%XKXweo4~O**;h5i+6OR`=~Og&^gD^St7;=bWB=#y zwqq1;yAHGOE>_pfF?w}5v%D;ad3VYS`I_70`5gZWJq;PJJ1GjGhx5r`5WX$&y%e!0pOOsBK zvi2ien7W?jM0w+Yg8&^gfzJN=F>(y9NhghRl!_^rgn?tK>Z$Iqs;Q)>q@!8T(U6{! z#tqa&Ku;fno|bBQTEgkuB+upL?drUo1GD(Njq)tc<>_H}h);cv)v{z?)$Gn(EhO3W z-f4WiPR`@Kr;;wRDbU5qVdJv+xVdtcri*&GYceuAc_JU3#(84}Z-`4{a-vUa8prWb zHBOWh)fqYM@qETxjS+Cw{<_;l@#CO-XG(>dD9kJ!!FgOBhP zqQNPHub*wxIMu_~_(bmJI6rK6qUS>@E*!tFa$GLTU*-Ka+eO^JKkWWSe*azhK6`4T z5k^n%y-%aQm5*4D_Eqd&=tv{SVqMtSdOr3Qxqg^)YqYUWKDNgGE==TV`x)omeC$eG z8^FI6VRKaTIR<3aUQymPCGIZXwpXs?8mISGYO^llvsQ2#=7r5c)~e631vZK_RPVL% zemeP1K5jPee_L4p8N7cj9Kz~m^gmOq&0omJaf`+Bpe5uM25M9{GnJ2-FHaq&b+R_< zRzB*>+N(*|u~%uIu~%`>lrf9$NMBa7AGRt6EA%_bVx4i4?vTa$tkw)w(4HdQ`8Z5> zh`$3hMrh3d_SaHPYpOWT`{X5d8Tz2|cVQT{6`a~GI9;-%rS|^j67b`*ZudU$I1Mw* z;k=-|8R8f1%sxjg`~uBT$oFI_-;;%Q7e?r?PiLXb;d?S0vrpywY%=y4Suj)1EhlMb z4%8TOqE2SO8l5Rq-7fKBLfA^Fe5G7jbG=-HRM(p!-@;cP%W+H?_6Ee=_?*OdOt{&g4{)_723)Sahn!%8Ic+C0zG2)zc0%_NV27lR2>F+4gturO;%GiUGF@ zxAK*22y3{+IL}1hHbaK51t%iC6Sz#rb1ZdoDqT50Yx%C{Yl*HK``VVz^|g&*ygi6I z*}o+mOVZ)}(BZ|J4p(w6?37iju+UzFRp;4PtuKczm2t_IsMK+a@8r~N)NF$0Q6P=m z?QV?I$+y|Zp!}>qStYAhAs^hOppbmZBt9aKkDy?2m2ooGB&}VQmIbb7g6lZ?AmA#|gn=b1HgU!*C<6_Bn2q$Es~y8sty<9I5atw148c?v8;EiRY^#SZs>n zkxcZdFBcyk3gavBbS7WRkkjyXKbx*`R1J`85V=Kx!U8V;&qi&Ph}sAz&}q+HE=S7{u=FMQ$Xwge;evK>da#i%XhT$&FqRd6oM0~g9sD_b;&`&siz@^5gXu=1_o zKO#x7i<#uW!>V1wG^7ycoNIrdzT-l;=A_a4fYPu*!{YUCbu z@_GB}T@2@|=j;P04c=#Q7b_=czV$4p{AtW%W#7d7-&8rpc`(R1)$bqVYYt!yE9*m_ zzOX*u;C*)Z51=Gz@3X%POcK2N_`JJuWo5k>(;GI1V(&gji+_7q+g9Gz#qo^xx;dT^ z-iI`Lm^at=ReJ%at--qmyc5##`N>Nget&=19BTAk>ZjmE&_}VM5qv8rjpsP)fB#ue`?hZm z?yEHY=66KXEL;;!Gq97UgQkI+6jsDJWMO2_25OF3`bwkU%@12Mhp+j9kD_nbOite< z-uA37%U;O2%T8{Vk(L3Clf6jFa9SsFT2s+#Wwcv9>vMMa)Yvc)Bk;05`k2Gk9mChS z-xrJ01X`nECsbN@{Vp=BpPu(y;~R;+PiTAR`xv28-_EIj0oO$RVeI|ya_TMYJDmCy z_H9o6Pb}YBR0vBnU^!T7c=xX{vl%NF`<_xr9q_>*eu@JNiqF@BDCl>W*~S-vO(Yr2|(QW8ELV@)VpqhkR$*o|hhhpXhK7KT?3_`EnV|W}I4& z;MDpIqA7aOm?Em18O%RS29tPeMkGAK+nX88|7Zr2cu9P8LPtY-TF$M^%?xJvGYR68 zQ`0%x%QrKaYDW2H2J`bXn6#%zcY4Eg=Vk`e>iR=wFp0lE9_0^0zV>DYb5)x9wD3Qg z!6e=?oB%?;RzjWZ-^~o>e=dVbd@T;+EAjNtJ%dR!H(x{ZA3B3cYmlxIKW}C*DZBE; z*>vLBv)9PwW(ITQH2&Y6!6f;d4wH`o*Y20-%yTn?`G?40-u(p`%!U60GngO!?(;L4 zzxp%EU~aiV1~U|U*WahcFW()`U^+SV-_|mi-$H)uSuKP4*IEYiX)S~K&9Dq6){#99`xx7>+>-0^RM#PP!b+r)iRh5@Oe9U2D1ZWHieC8<73{HU14n-cw4iU z!MsnfhXT!nSN61E2A;`UDKeNPkPzO5;Tg<3wG1YnWZ^o} zJ6pr&vl+~yQ5j5$XE5`>LIp&nXjOH~pgBgi>pTmG&l)0RoM`VX*`1LXxxX~cJH*Q@?=+cKu{P2?sU3KZhBy8wSDne*SB+|4hW2s1 zy?<1DCE8U|DfW;1fv_u`!gdg7)7 z4G|}2@VWtY3G}d>_%np(sz#bc#gd+6=G!M`ylkP_N=;%<*WCA5GV&??gKptu05dk417K)s(x1y;2d4 z#5KJSp9{lAuSd~qQk1^NXUJIxK8q0gDeOC<1UFq9E=^SGQK$R#&ybHm9B>-I8~z0U z;2nSdFRti~Zx<(S`1Oasj9{^Uf_UCU=_UvM964ag8LM@jIa21ig59M|9kN`liGyoZwDtOg&VB=}f^D<}yJ1uB?O5+rMohLRvl zgItsZ#Tv{(Nl>mqB}xK^1~n)N>NRLaNzksrgD45MYS4?4;D82)P!c??!Sg5yUew?S zN`m7WoIpu%T7&mc5}eiGLzDy`Yj6c6fuT?Z6H0<)4bo5&WNDC#lAu_FIVcIrHK;^M z;LxB3B|*Ig%_s@lHFyvu!B!1=Q4$=`;1EiJr!{yUCBcgt96?ENT!RxR2~KP99!i3< z8hnV7;A0K0pd>Khl_vs|2FWN1(lp3INsy~SF-n3t8Zf5Ax5kEj4ceEAPL3lwp^%lr zRZ7W)M<)NMMI&<%fjkW`VVC}?TG5-4$e*fYZsPU-0|%3`Zh2N_+i3 D4Zx(L diff --git a/boop/infrared/Make.conf b/boop/infrared/Make.conf index 2a1fa32..f6aed17 100644 --- a/boop/infrared/Make.conf +++ b/boop/infrared/Make.conf @@ -1,5 +1,5 @@ -THUMBSRCS := infrared.c codes.c encoders.c ir_capture.c ir_selector.c -SRCS := infraredirq.c +THUMBSRCS := infrared.c codes.c encoders.c ir_capture.c ir_selector.c +SRCS := infraredirq.c pwm.c THUMBSRCSUNOPT := ir_itt.c ir_nrc17.c \ ir_raw.c ir_rc5.c ir_rc6.c ir_rca.c ir_rcmm.c ir_rec80.c ir_recs80.c ir_rf.c \ ir_sirc.c ir_spaceenc.c ir_lirc.c diff --git a/boop/infrared/codes.c b/boop/infrared/codes.c index f30c7ad..99a5f59 100644 --- a/boop/infrared/codes.c +++ b/boop/infrared/codes.c @@ -222,7 +222,7 @@ const struct TABLES_N RAW = const struct TABLES_L LIRC = { - 9, + 10, { { #include "ir_codes/lirc/ufs922" @@ -259,6 +259,10 @@ const struct TABLES_L LIRC = { #include "ir_codes/lirc/samsung_ue46b6000" "Samsung TV" - } + }, + { + #include "ir_codes/lirc/beo4" + "bang & olufsen" + } } }; diff --git a/boop/infrared/infrared.c b/boop/infrared/infrared.c index fcde7b7..415b303 100644 --- a/boop/infrared/infrared.c +++ b/boop/infrared/infrared.c @@ -25,6 +25,7 @@ #include "encoders.h" #include "codes.h" #include "ir_selector.h" +#include "pwm.h" volatile unsigned char mod_enable; volatile unsigned char hi_border; @@ -109,45 +110,14 @@ void defStopper(void) void runIR(void) { T1TCR = 0x01; - - /* - PWMTC = 0; - PWMPR = 7; - PWMMR0 = 0x1E6; // pwm rate - PWMMR2 = 0x00; // pwm value - PWMLER = 0x05; - PWMMCR = 0x03; - PWMPCR = (1<<10); - PWMTCR = 0x03; - PWMTCR = 0x09; - */ - - PINSEL1 &= ~(3 << (10)); // IO - PINSEL1 |= (1 << (10)); // PWM5 - - PWMTC = 0; //Timer Counter - PWMPR = 0; //Prescale Register - PWMPC = 0; //Prescale Counter - - PWMMR0 = 416; // pwm rate - PWMMR5 = 0; // pwm value - - PWMLER = 0x21; //Latch Enable - PWMMCR = 0x02; //Match Control - PWMPCR |= (1<<13); - PWMTCR = 0x03; - PWMTCR = 0x09; - - //FIOSET0 = (1<<21); - + PWM_set_IR_duty_cycle(0); } void stopIR(void) { T1TCR = 0x03; - PWMMR5 = 0; // pwm value - PWMLER = 0x21; //Latch Enable + PWM_set_IR_duty_cycle(0); } diff --git a/boop/infrared/infrared.h b/boop/infrared/infrared.h index b10991e..b5f00a2 100644 --- a/boop/infrared/infrared.h +++ b/boop/infrared/infrared.h @@ -63,28 +63,8 @@ struct IR_VARS_ { unsigned long actpre_data; unsigned long post_data; // data which the remote sends after actual keycode unsigned long actpost_data; - unsigned short flags; // flags - unsigned short phead,shead; // header - unsigned short plead; // leading pulse - unsigned short ptrail; // trailing pulse - unsigned short pfoot,sfoot; // foot - unsigned short pre_p,pre_s; // signal between pre_data and keycode - unsigned short post_p,post_s; // signal between keycode and post_code - unsigned short gap; - unsigned short repeat_gap; - unsigned short prepeat,srepeat; - unsigned short cycles_counter; - unsigned char bits; // bits (length of code) - unsigned char pre_data_bits; // length of pre_data - unsigned char post_data_bits; // length of post_data - unsigned char rc6_bit; // doubles signal length of this bit (only used for RC-6) - unsigned char pthree,sthree; // 3 (only used for RC-MM) - unsigned char ptwo,stwo; // 2 (only used for RC-MM) - unsigned char pone,sone; // 1 - unsigned char pzero,szero; // 0 - unsigned char min_repeat; + unsigned long cycles_counter; unsigned char bit; - unsigned char map; unsigned char stop; unsigned char repeats; } lirc; @@ -93,6 +73,7 @@ struct IR_VARS_ { unsigned int actcmd; unsigned char toggle; unsigned char state; + unsigned char duty_cycle; } ir; diff --git a/boop/infrared/infraredirq.c b/boop/infrared/infraredirq.c index ea9d228..4430bf5 100644 --- a/boop/infrared/infraredirq.c +++ b/boop/infrared/infraredirq.c @@ -23,6 +23,7 @@ #include "keyboard.h" #include "rf.h" #include "cc1100.h" +#include "pwm.h" static unsigned int c_cnt = 0; static unsigned int b_len = 0; @@ -40,16 +41,12 @@ void __attribute__ ((section(".text.fastcode"))) irIRQ(void) irEncoder(); if(mod_enable) { - PWMMR5 = 200; // pwm value - PWMLER = 0x20; //Latch Enable + PWM_set_IR_duty_cycle(ir.duty_cycle); } else { - PWMMR5 = 0; // pwm value - PWMLER = 0x20; //Latch Enable + PWM_set_IR_duty_cycle(0); } - - /* if(c_cnt <= hi_border) { @@ -77,6 +74,8 @@ void __attribute__ ((section(".text.fastcode"))) irIRQ(void) } } */ + //T1TCR = 0x03; + T1IR = 1; // VICVectAddr = 0; } diff --git a/boop/infrared/ir_codes/lirc/beo4 b/boop/infrared/ir_codes/lirc/beo4 new file mode 100644 index 0000000..233465b --- /dev/null +++ b/boop/infrared/ir_codes/lirc/beo4 @@ -0,0 +1 @@ +/* infrared codes for bang & olufsen Copyright (C) 2017 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 3 of the License, 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, see . */ /*pre_data*/ 0x00000000, // 2. start bit /*post_data*/ 0x00000000, /*toggle_bit_mask*/ 0x00, /*gap*/ 18000, // final gap to prevent collision /*repeat_gap*/ 0, /*bits*/ 17, // last(4.) start bit logical low as first data bit ==> 1+16 data bits = 17 /*pre_data_bits*/ 1, // 2. start bit /*post_data_bits*/ 0, /*rc6_bit*/ 0, /*frequency*/ 455000, // regular freq is 455kHz but to get a valid result 454,5 is used /*flags*/ LIRC_BO, /*header*/ 200,3125, // 1. start bit /*three*/ 0,0, /*two*/ 0,0, /*one*/ 200,9375, /*zero*/ 200,3125, /*plead*/ 0, /*ptrail*/ 200, // stop bit /*foot*/ 0,0, /*pre*/ 200,15625, //3. start bit /*post*/ 200,12500, // post bit /*repeat*/ 0,0, /*min_repeat*/ 0, /*duty cycle*/ 50, { 0x0000, // A -> 0x0000, // B -> 0x0000, // C -> 0x0000, // D -> 0x0000, // Betty -> 0xB44B, // Exit -> Exit 0x06F9, // Up -> UP 0x8679, // Down -> Down 0xA659, // Left -> Left 0x46B9, // Right -> Right 0x16E9, // OK -> OK 0x0160, // Vol+ -> Vol+ 0x0164, // Vol- -> Vol- 0xF00F, // Mute -> Mute 0x48B7, // Prog+ -> Prog+ 0x48B7, // Prog- -> Prog- 0x0101, // 1 -> 1 0x0102, // 2 -> 2 0x609F, // 3 -> 3 0x10EF, // 4 -> 4 0x906F, // 5 -> 5 0x50AF, // 6 -> 6 0x30CF, // 7 -> 7 0xB04F, // 8 -> 8 0x708F, // 9 -> 9 0x8877, // 0 -> 0 0xF20D, // -/-- -> Guide 0x0181, // AV -> Source 0x0f0c, // Menu -> Menue 0xD22D, // PiP -> Tools 0x1AE5, // A/B -> Return 0x7C83, // 16:9 -> P.Size 0xF807, // Info -> Info 0xD629, // VTX1 -> Ch.List 0x0000, // VTX2 -> 0xC837, // VTX3 -> Pre-CH 0x6897, // Blue -> Blue 0xA857, // Yello -> Yellow 0x28D7, // Green -> Green 0x36C9, // Red -> Red 0xC23D, // TV -> TV/DTV 0x0f0C // Power -> Standby }, \ No newline at end of file diff --git a/boop/infrared/ir_lirc.c b/boop/infrared/ir_lirc.c index 35f36ad..bbfb555 100644 --- a/boop/infrared/ir_lirc.c +++ b/boop/infrared/ir_lirc.c @@ -25,20 +25,16 @@ #include "lcd.h" #include "rf.h" #include "cc1100.h" +#include "pwm.h" #include "global.h" extern volatile unsigned char mod_enable; extern volatile unsigned int cycles; -extern volatile unsigned long keyMap[42]; -volatile unsigned long act_freq; +struct CODE_TABLE_L *lirctable; -/* -#define RAW_IDLE 0x00 -#define RAW_HI 0x01 -#define RAW_LO 0x02 -*/ +unsigned int prev_cycles; /* needed for handling of b&o specific protocol added MN2017325 */ #define LIRC_IDLE 0x00 #define LIRC_HEAD_P 0x01 @@ -75,7 +71,7 @@ const struct irModule LIRC_Module = unsigned char __attribute__ ((section(".text.fastcode"))) send_data (unsigned long data, unsigned char pulse) { - const unsigned char* bittimes[4] = {&(ir.lirc.pzero), &(ir.lirc.pone), &(ir.lirc.ptwo), &(ir.lirc.pthree)}; + const unsigned short* bittimes[4] = {&(lirctable->pzero), &(lirctable->pone), &(lirctable->ptwo), &(lirctable->pthree)}; unsigned char notpulse = 1; if(pulse) { @@ -114,7 +110,7 @@ unsigned char __attribute__ ((section(".text.fastcode"))) send_data (unsigned lo cycles = bittimes[0][notpulse]; mod_enable = pulse; } - if((ir.lirc.bit+1 == ir.lirc.rc6_bit)) + if((ir.lirc.bit+1 == lirctable->rc6_bit)) cycles <<= 1; } else { @@ -134,97 +130,108 @@ unsigned char __attribute__ ((section(".text.fastcode"))) send_data (unsigned lo } void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { - unsigned short gap; + unsigned long gap; ir.lirc.cycles_counter += cycles; switch(ir.state) { case LIRC_IDLE: - cycles = ir.lirc.pone; + cycles = lirctable->pone; mod_enable = 0; break; case LIRC_HEAD_P: ir.lirc.cycles_counter = 0; - if(has_header && (!ir.lirc.repeats || (!(ir.lirc.flags&LIRC_NO_HEAD_REP) && !has_repeat) || (ir.lirc.flags&LIRC_REPEAT_HEADER))) { // + if(has_header && (!ir.lirc.repeats || (!(lirctable->flags&LIRC_NO_HEAD_REP) && !has_repeat) || (lirctable->flags&LIRC_REPEAT_HEADER))) { // mod_enable = 1; - cycles = ir.lirc.phead; + cycles = lirctable->phead; ir.state++; break; case LIRC_HEAD_S: mod_enable = 0; - cycles = ir.lirc.shead; + cycles = lirctable->shead; ir.state++; break; } ir.state = LIRC_LEAD_P; case LIRC_LEAD_P: - if(ir.lirc.plead) { + if(lirctable->plead) { mod_enable = 1; - cycles = ir.lirc.plead; + cycles = lirctable->plead; ir.state++; break; } ir.state++; case LIRC_PRE_DAT_P: if(!has_repeat || !(ir.lirc.repeats)) { - if(ir.lirc.pre_data_bits) { - send_data(ir.lirc.pre_data,1); + if(lirctable->pre_data_bits) { + send_data(lirctable->pre_data,1); ir.state++; break; case LIRC_PRE_DAT_S: - ir.lirc.pre_data <<= send_data(ir.lirc.pre_data,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits) + ir.lirc.pre_data <<= send_data(lirctable->pre_data,0); + if(ir.lirc.bit >= lirctable->pre_data_bits) ir.state++; else ir.state--; break; case LIRC_PRE_P: - if(ir.lirc.pre_p && ir.lirc.pre_s) { + if(lirctable->pre_p && lirctable->pre_s) { mod_enable = 1; - cycles = ir.lirc.pre_p; + cycles = lirctable->pre_p; ir.state++; break; case LIRC_PRE_S: mod_enable = 0; - cycles = ir.lirc.pre_s; + cycles = lirctable->pre_s; ir.state++; break; } } - ir.state = LIRC_DATA_P; + ir.state = LIRC_DATA_P; + prev_cycles = 0; case LIRC_DATA_P: send_data(ir.cmd,1); ir.state++; break; case LIRC_DATA_S: ir.cmd <<= send_data(ir.cmd,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits + ir.lirc.bits) + /* handling for b&o specific protocol added MN2017325 + special r-bit coding, if current bit is equal previous bit */ + if(is_BO) { + if (prev_cycles == cycles) { + prev_cycles = cycles; + cycles = lirctable->szero * 2 ; + } else { + prev_cycles = cycles; + } + } + if(ir.lirc.bit >= lirctable->pre_data_bits + lirctable->bits) ir.state++; else ir.state--; break; case LIRC_POST_P: - if(ir.lirc.post_data_bits) { - if(ir.lirc.post_p && ir.lirc.post_s) { + if(lirctable->post_data_bits) { + if(lirctable->post_p && lirctable->post_s) { mod_enable = 1; - cycles = ir.lirc.post_p; + cycles = lirctable->post_p; ir.state++; break; case LIRC_POST_S: mod_enable = 0; - cycles = ir.lirc.post_s; + cycles = lirctable->post_s; ir.state++; break; } ir.state = LIRC_POST_DAT_P; case LIRC_POST_DAT_P: - send_data(ir.lirc.post_data,1); + send_data(lirctable->post_data,1); ir.state++; break; case LIRC_POST_DAT_S: - ir.lirc.post_data <<= send_data(ir.lirc.post_data,0); - if(ir.lirc.bit >= ir.lirc.pre_data_bits + ir.lirc.bits +ir.lirc.post_data_bits) + ir.lirc.post_data <<= send_data(lirctable->post_data,0); + if(ir.lirc.bit >= lirctable->pre_data_bits + lirctable->bits + lirctable->post_data_bits) ir.state = LIRC_TRAIL_P; else ir.state--; @@ -235,33 +242,33 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { case LIRC_REPEAT_P: if(has_repeat && ir.lirc.repeats) { mod_enable = 1; - cycles = ir.lirc.prepeat; + cycles = lirctable->prepeat; ir.state++; break; case LIRC_REPEAT_S: mod_enable = 0; - cycles = ir.lirc.srepeat; + cycles = lirctable->srepeat; ir.state++; break; } ir.state = LIRC_TRAIL_P; case LIRC_TRAIL_P: - if(ir.lirc.ptrail) { + if(lirctable->ptrail) { mod_enable = 1; - cycles = ir.lirc.ptrail; + cycles = lirctable->ptrail; ir.state++; break; } ir.state++; case LIRC_FOOT_S: - if(has_foot && (!ir.lirc.repeats || !(ir.lirc.flags&LIRC_NO_FOOT_REP)) && (!has_repeat || !ir.lirc.repeats)) { + if(has_foot && (!ir.lirc.repeats || !(lirctable->flags&LIRC_NO_FOOT_REP)) && (!has_repeat || !ir.lirc.repeats)) { mod_enable = 0; - cycles = ir.lirc.sfoot; + cycles = lirctable->sfoot; ir.state++; break; case LIRC_FOOT_P: mod_enable = 1; - cycles = ir.lirc.pfoot; + cycles = lirctable->pfoot; ir.state++; break; } @@ -273,17 +280,17 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { ir.lirc.pre_data = ir.lirc.actpre_data; ir.lirc.post_data = ir.lirc.actpost_data; - if((ir.lirc.repeat_gap && has_repeat && ir.lirc.repeats) | (is_RF && (ir.lirc.repeats >= ir.lirc.min_repeat))) - gap = ir.lirc.repeat_gap; + if((lirctable->repeat_gap && has_repeat && ir.lirc.repeats) | (is_RF && (ir.lirc.repeats >= lirctable->min_repeat))) + gap = lirctable->repeat_gap; else - gap = ir.lirc.gap; + gap = lirctable->gap; if(is_const && (ir.lirc.cycles_counter < gap)) cycles = gap - ir.lirc.cycles_counter; else cycles = gap; - if((ir.lirc.repeats >= ir.lirc.min_repeat) && ir.lirc.stop) { + if((ir.lirc.repeats >= lirctable->min_repeat) && ir.lirc.stop) { ir.state = LIRC_IDLE; } else { @@ -294,14 +301,13 @@ void __attribute__ ((section(".text.fastcode"))) LIRC_Encode (void) { } - T1MR0 = (15000000 / (act_freq)) * cycles; + T1MR0 = 15 * cycles; } void LIRC_Init(unsigned char map) { unsigned long freq; - struct CODE_TABLE_L *lirctable; if(map < LIRC.num_tables) { @@ -311,92 +317,32 @@ void LIRC_Init(unsigned char map) setIR(LIRC_Module); if(lirctable->flags&LIRC_RF) { - hi_border = 0; - lo_border = 1; + ir.duty_cycle = 50; freq = 20000; } else { freq = lirctable->freq; if(!freq) freq = 38000; - - if(lirctable->duty_cycle == 0) { //default 50% - hi_border = 1; - lo_border = 2; - } - else if(lirctable->duty_cycle <= 25) { - hi_border = 1; - lo_border = 4; - } - else if(lirctable->duty_cycle <= 33) { - hi_border = 1; - lo_border = 3; - } - else if(lirctable->duty_cycle <= 50) { - hi_border = 1; - lo_border = 2; - } - else if(lirctable->duty_cycle <= 66) { - hi_border = 2; - lo_border = 3; - } - else { //75% - hi_border = 3; - lo_border = 4; + + ir.duty_cycle = lirctable->duty_cycle; + if(!lirctable->duty_cycle) { //default 50% + ir.duty_cycle = 50; } } - act_freq = freq; + PWM_set_frequency(freq); - T1MR0 = 15000000 / (freq * lo_border); + T1MR0 = 15000000 / (freq); - - ir.lirc.phead = (lirctable->phead * freq) / 1000000; - ir.lirc.shead = (lirctable->shead * freq) / 1000000; - - ir.lirc.plead = (lirctable->plead * freq) / 1000000; - ir.lirc.actpre_data = (lirctable->pre_data)<<(32-lirctable->pre_data_bits); - ir.lirc.pre_data_bits = lirctable->pre_data_bits; - ir.lirc.pre_p = (lirctable->pre_p * freq) / 1000000; - ir.lirc.pre_s = (lirctable->pre_s * freq) / 1000000; - - ir.lirc.post_p = (lirctable->post_p * freq) / 1000000; - ir.lirc.post_s = (lirctable->post_s * freq) / 1000000; ir.lirc.actpost_data = (lirctable->post_data)<<(32-lirctable->post_data_bits); - ir.lirc.post_data_bits = lirctable->post_data_bits; - - ir.lirc.ptrail = (lirctable->ptrail * freq) / 1000000; - - ir.lirc.pfoot = (lirctable->pfoot * freq) / 1000000; - ir.lirc.sfoot = (lirctable->sfoot * freq) / 1000000; - - ir.lirc.prepeat = (lirctable->prepeat * freq) / 1000000; - ir.lirc.srepeat = (lirctable->srepeat * freq) / 1000000; - - ir.lirc.pzero = (lirctable->pzero * freq) / 1000000; - ir.lirc.szero = (lirctable->szero * freq) / 1000000; - ir.lirc.pone = (lirctable->pone * freq) / 1000000; - ir.lirc.sone = (lirctable->sone * freq) / 1000000; - ir.lirc.ptwo = (lirctable->ptwo * freq) / 1000000; - ir.lirc.stwo = (lirctable->stwo * freq) / 1000000; - ir.lirc.pthree = (lirctable->pthree * freq) / 1000000; - ir.lirc.sthree = (lirctable->sthree * freq) / 1000000; - - ir.lirc.gap = (lirctable->gap * freq) / 1000000; - ir.lirc.repeat_gap = (lirctable->repeat_gap * freq) / 1000000; - - ir.lirc.rc6_bit = lirctable->rc6_bit; - ir.lirc.flags = lirctable->flags; - ir.lirc.bits = lirctable->bits; - ir.lirc.min_repeat = lirctable->min_repeat; - + ir.cmd = 0; ir.actcmd = 0; ir.lirc.stop = 0; ir.state = LIRC_IDLE; ir.lirc.bit = 0; - ir.lirc.map = map; } } @@ -407,19 +353,19 @@ void LIRC_Send(unsigned long cmd) if(cmd != 0x0000) { ir.lirc.pre_data = ir.lirc.actpre_data; - ir.actcmd = cmd<<(32-ir.lirc.bits); + ir.actcmd = cmd<<(32-lirctable->bits); ir.lirc.post_data = ir.lirc.actpost_data; ir.lirc.stop = 0; ir.lirc.repeats = 0; if(ir.toggle & 0x01) { - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask) << (32-ir.lirc.post_data_bits); + togglemask = (unsigned long)(lirctable->toggle_bit_mask) << (32-lirctable->post_data_bits); ir.lirc.post_data ^= togglemask; - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask>>ir.lirc.post_data_bits) << (32-ir.lirc.bits); + togglemask = (unsigned long)(lirctable->toggle_bit_mask>>lirctable->post_data_bits) << (32-lirctable->bits); ir.actcmd ^= togglemask; - togglemask = (unsigned long)(LIRC.table[ir.lirc.map].toggle_bit_mask>>(ir.lirc.post_data_bits + ir.lirc.bits)) << (32-ir.lirc.pre_data_bits); + togglemask = (unsigned long)(lirctable->toggle_bit_mask>>(lirctable->post_data_bits + lirctable->bits)) << (32-lirctable->pre_data_bits); ir.lirc.pre_data ^= togglemask; } @@ -429,9 +375,9 @@ void LIRC_Send(unsigned long cmd) ir.state++; if(is_RF) { RFasyncmode(true); - cc1100_write1(FREQ2,((LIRC.table[ir.lirc.map].freq)>>16) & 0xFF); - cc1100_write1(FREQ1,((LIRC.table[ir.lirc.map].freq)>>8) & 0xFF); - cc1100_write1(FREQ0,(LIRC.table[ir.lirc.map].freq) & 0xFF); + cc1100_write1(FREQ2,((lirctable->freq)>>16) & 0xFF); + cc1100_write1(FREQ1,((lirctable->freq)>>8) & 0xFF); + cc1100_write1(FREQ0,(lirctable->freq) & 0xFF); cc1100_strobe(STX); } runIR(); @@ -446,7 +392,7 @@ void LIRC_Repeat(void) { void LIRC_Stop(void) { ir.lirc.stop = 1; - if(ir.lirc.bits){ + if(lirctable->bits){ while(ir.state != LIRC_IDLE); } diff --git a/boop/infrared/ir_lirc.h b/boop/infrared/ir_lirc.h index 2154aa9..3541a87 100644 --- a/boop/infrared/ir_lirc.h +++ b/boop/infrared/ir_lirc.h @@ -28,10 +28,10 @@ //#define LIRC_SPACE_FIRST 0x0020 /* bits are encoded as space+pulse */ //#define LIRC_GOLDSTAR 0x0040 /* encoding found on Goldstar remote */ //#define LIRC_GRUNDIG 0x0080 /* encoding found on Grundig remote */ -//#define LIRC_BO 0x0100 /* encoding found on Bang & Olufsen remote */ -#define LIRC_RF 0x0100 /* RF ASK/OOK modulator */ -//#define LIRC_SERIAL 0x0200 /* serial protocol */ -//#define LIRC_XMP 0x0400 /* XMP protocol */ +#define LIRC_BO 0x0100 /* encoding found on Bang & Olufsen remote */ +#define LIRC_RF 0x0200 /* RF ASK/OOK modulator */ +//#define LIRC_SERIAL 0x0400 /* serial protocol */ +//#define LIRC_XMP 0x0800 /* XMP protocol */ /* additinal flags: can be orred together with protocol flag */ //#define REVERSE 0x0800 @@ -40,14 +40,15 @@ #define LIRC_CONST_LENGTH 0x4000 /* signal length+gap is always constant */ #define LIRC_REPEAT_HEADER 0x8000 /* header is also sent before repeat code */ -#define is_rc6 (ir.lirc.flags & LIRC_RC6) -#define is_biphase ((ir.lirc.flags & LIRC_RC5) || is_rc6) -#define is_rcmm (ir.lirc.flags & LIRC_RCMM) -#define is_const (ir.lirc.flags & LIRC_CONST_LENGTH) -#define is_RF (ir.lirc.flags & LIRC_RF) -#define has_header (ir.lirc.phead && ir.lirc.shead) -#define has_foot (ir.lirc.pfoot && ir.lirc.sfoot) -#define has_repeat (ir.lirc.prepeat && ir.lirc.srepeat) +#define is_rc6 (lirctable->flags & LIRC_RC6) +#define is_biphase ((lirctable->flags & LIRC_RC5) || is_rc6) +#define is_rcmm (lirctable->flags & LIRC_RCMM) +#define is_const (lirctable->flags & LIRC_CONST_LENGTH) +#define is_RF (lirctable->flags & LIRC_RF) +#define is_BO (lirctable->flags & LIRC_BO) /* flag for b&o specific protocol MN2017325 */ +#define has_header (lirctable->phead && lirctable->shead) +#define has_foot (lirctable->pfoot && lirctable->sfoot) +#define has_repeat (lirctable->prepeat && lirctable->srepeat) //FS20 Protocol description see http://fhz4linux.info/tiki-index.php?page=FS20%20Protocol #define calcFS20pre(HC1,par1,HC2,par2) ((1<<18) | (HC1<<10) | (par1<<9) | (HC2<<1) | par2) diff --git a/boop/infrared/pwm.c b/boop/infrared/pwm.c new file mode 100644 index 0000000..875c3df --- /dev/null +++ b/boop/infrared/pwm.c @@ -0,0 +1,54 @@ +/* + pwm.c - pwm control + Copyright (C) 2017 + + 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 3 of the License, 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, see . +*/ + +#include "global.h" +#include "lpc2220.h" + +void PWM_init(void) +{ + //Set pin P0.21 IR_OUT as PWM + PINSEL1 &= ~(3 << (10)); // IO + PINSEL1 |= (1 << (10)); // PWM5 + + PWMTC = 0; //Timer Counter + PWMPR = 0; //Prescale Register + PWMPC = 0; //Prescale Counter + + PWMMR0 = 416; // pwm rate + PWMMR5 = 0; // pwm value + + PWMLER = 0x21; //Latch Enable + PWMMCR = 0x02; //Match Control + PWMPCR |= (1<<13); + PWMTCR = 0x03; + PWMTCR = 0x09; + +} + +void PWM_set_frequency(unsigned long f) +{ + PWMMR0 = 15000000 / f; + PWMLER |= 0x01; //Latch Enable + +} + +void PWM_set_IR_duty_cycle(unsigned char d) { + PWMMR5 = (PWMMR0 * d) / 100; + PWMLER |= 0x20; +} + diff --git a/boop/infrared/pwm.h b/boop/infrared/pwm.h new file mode 100644 index 0000000..8d47ff6 --- /dev/null +++ b/boop/infrared/pwm.h @@ -0,0 +1,26 @@ +/* + pwm.h - pwm control + Copyright (C) 2017 + + 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 3 of the License, 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, see . +*/ + +#pragma once + + +void PWM_init(void); +void PWM_set_frequency(unsigned long f); +void PWM_set_IR_duty_cycle(unsigned char d); + + diff --git a/boop/main.c b/boop/main.c index df5e8e4..e9651c8 100644 --- a/boop/main.c +++ b/boop/main.c @@ -31,6 +31,7 @@ //#include "sounds.h" //#include "sound3.h" #include "infrared.h" +#include "pwm.h" #include "codes.h" #include "encoders.h" #include "ir_selector.h" @@ -258,6 +259,8 @@ int main(void) initIR(); startIrIRQ(); + PWM_init(); + RF_init(); load_RF_setting(); startRFIRQ(); From d1ddb909ff165246c3b3c97e3fce6c63da0c4e5a Mon Sep 17 00:00:00 2001 From: Telekatz Date: Sat, 15 Jul 2017 18:47:26 +0200 Subject: [PATCH 10/15] Move backlight pwm to timerirq --- boop/audio/soundirq.c | 13 ------------- boop/boop_rom.bin | Bin 175504 -> 255965 bytes boop/timer/timerfuncs.c | 2 +- boop/timer/timerirq.c | 27 +++++++++++++++++++++++++-- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/boop/audio/soundirq.c b/boop/audio/soundirq.c index 2b06570..81635e7 100644 --- a/boop/audio/soundirq.c +++ b/boop/audio/soundirq.c @@ -35,7 +35,6 @@ extern volatile char last_sample; */ unsigned int tval; -unsigned char bl_val, cmp_val; // backlight PWM unsigned int slen; unsigned char *sdata; unsigned char sact; @@ -211,16 +210,4 @@ void __attribute__ ((section(".text.fastcode"))) soundIRQ (void) } } -/* // backlight pwm - cmp_val += bl_val; - if (cmp_val >= 63) - { - FIODIR0 |= (1<<4); // sck0/P0.4 - cmp_val -= 63; - } - else - { - FIODIR0 &= ~(1<<4); // sck0/P0.4 - } -*/ } diff --git a/boop/boop_rom.bin b/boop/boop_rom.bin index 5a46ad71d0d38111db69c5a56fbbacb3bce93b28..dc098e91dc073882508e7b2b206d762bae10492d 100644 GIT binary patch literal 255965 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