From e20bafd6aba9d23a4a768576e2285b5317f72092 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Wed, 1 Apr 2026 15:58:40 -0400 Subject: [PATCH] sysclk: remove old hocclk, bump version --- .../Horizon-OC-Monitor/Horizon-OC-Monitor.lst | 2 + Source/Horizon-OC-Monitor/Makefile | 4 +- .../{rewrite-hoc-clk => hoc-clk}/.gitignore | 0 .../.gitlab-ci.yml | 0 .../{rewrite-hoc-clk => hoc-clk}/.gitmodules | 0 Source/{rewrite-hoc-clk => hoc-clk}/LICENSE | 0 Source/{rewrite-hoc-clk => hoc-clk}/README.md | 0 Source/{rewrite-hoc-clk => hoc-clk}/bitmap.py | 0 Source/{rewrite-hoc-clk => hoc-clk}/build.sh | 25 +- .../common/include/SaltyNX.h | 0 .../common/include/battery.h | 0 .../common/include/cpp_util.hpp | 0 .../common/include/crc32.h | 0 .../common/include/fuse.h | 0 .../common/include/i2c.h | 0 .../common/include/ipc.h | 0 .../common/include/memmem.h | 0 .../common/include/notification.h | 0 .../common/include/pcv_types.h | 0 .../common/include/pwm.h | 0 .../common/include/registers.h | 0 .../common/include/rgltr.h | 0 .../common/include/rgltr_services.h | 0 .../common/include/service_guard.h | 0 .../common/include/sysclk.h | 0 .../common/include/sysclk/apm.h | 0 .../common/include/sysclk/board.h | 0 .../common/include/sysclk/client/ipc.h | 0 .../common/include/sysclk/client/types.h | 0 .../common/include/sysclk/clock_manager.h | 0 .../common/include/sysclk/config.h | 0 .../common/include/sysclk/errors.h | 0 .../common/include/sysclk/ipc.h | 0 .../common/include/sysclk/psm_ext.h | 0 .../common/src/apm_profile_table.c | 0 .../common/src/battery.cpp | 0 .../common/src/client/ipc.c | 0 .../common/src/crc32.cpp | 0 .../common/src/i2c.cpp | 0 .../common/src/memmem.c | 0 .../common/src/notification.cpp | 0 .../common/src/psm_ext.c | 0 .../common/src/pwm.c | 0 .../common/src/rgltr_services.cpp | 0 .../config.ini.template | 0 .../sysmodule => hoc-clk/overlay}/.gitignore | 0 Source/hoc-clk/overlay/Makefile | 173 + Source/hoc-clk/overlay/data/logo_rgba.bin | Bin 0 -> 17160 bytes Source/hoc-clk/overlay/lang/de.json | 141 + Source/hoc-clk/overlay/lang/en.json | 141 + Source/hoc-clk/overlay/lang/es.json | 141 + Source/hoc-clk/overlay/lang/fr.json | 141 + Source/hoc-clk/overlay/lang/it.json | 141 + Source/hoc-clk/overlay/lang/ja.json | 141 + Source/hoc-clk/overlay/lang/jp.json | 146 + Source/hoc-clk/overlay/lang/ko.json | 141 + Source/hoc-clk/overlay/lang/nl.json | 141 + Source/hoc-clk/overlay/lang/pl.json | 141 + Source/hoc-clk/overlay/lang/pt.json | 141 + Source/hoc-clk/overlay/lang/ru.json | 141 + Source/hoc-clk/overlay/lang/uk.json | 141 + Source/hoc-clk/overlay/lang/zh-cn.json | 157 + Source/hoc-clk/overlay/lang/zh-tw.json | 141 + Source/hoc-clk/overlay/scripts/make_logo.sh | 16 + Source/hoc-clk/overlay/src/ipc.h | 42 + Source/hoc-clk/overlay/src/main.cpp | 97 + .../overlay/src/ui/elements/base_frame.h | 48 + Source/hoc-clk/overlay/src/ui/format.h | 47 + .../hoc-clk/overlay/src/ui/gui/about_gui.cpp | 309 ++ Source/hoc-clk/overlay/src/ui/gui/about_gui.h | 41 + .../overlay/src/ui/gui/app_profile_gui.cpp | 468 ++ .../overlay/src/ui/gui/app_profile_gui.h | 81 + .../hoc-clk/overlay/src/ui/gui/base_gui.cpp | 144 + Source/hoc-clk/overlay/src/ui/gui/base_gui.h | 53 + .../overlay/src/ui/gui/base_menu_gui.cpp | 323 ++ .../overlay/src/ui/gui/base_menu_gui.h | 91 + Source/hoc-clk/overlay/src/ui/gui/cat.h | 4118 +++++++++++++++++ .../hoc-clk/overlay/src/ui/gui/fatal_gui.cpp | 84 + Source/hoc-clk/overlay/src/ui/gui/fatal_gui.h | 46 + .../overlay/src/ui/gui/freq_choice_gui.cpp | 219 + .../overlay/src/ui/gui/freq_choice_gui.h | 64 + .../src/ui/gui/global_override_gui.cpp | 418 ++ .../overlay/src/ui/gui/global_override_gui.h | 74 + Source/hoc-clk/overlay/src/ui/gui/labels.cpp | 134 + Source/hoc-clk/overlay/src/ui/gui/labels.h | 34 + .../hoc-clk/overlay/src/ui/gui/main_gui.cpp | 123 + Source/hoc-clk/overlay/src/ui/gui/main_gui.h | 39 + .../hoc-clk/overlay/src/ui/gui/misc_gui.cpp | 1748 +++++++ Source/hoc-clk/overlay/src/ui/gui/misc_gui.h | 72 + Source/hoc-clk/overlay/src/ui/gui/ult_ext.h | 126 + .../overlay/src/ui/gui/value_choice_gui.cpp | 200 + .../overlay/src/ui/gui/value_choice_gui.h | 114 + Source/hoc-clk/overlay/src/ui/style.h | 37 + Source/hoc-clk/sysmodule/.gitignore | 2 + .../sysmodule/Makefile | 0 .../sysmodule/lib/minIni/.gitignore | 0 .../sysmodule/lib/minIni/.gitrepo | 0 .../sysmodule/lib/minIni/LICENSE | 0 .../sysmodule/lib/minIni/Makefile | 0 .../sysmodule/lib/minIni/NOTICE | 0 .../sysmodule/lib/minIni/README.md | 0 .../sysmodule/lib/minIni/dev/minGlue-FatFs.h | 0 .../sysmodule/lib/minIni/dev/minGlue-ccs.h | 0 .../sysmodule/lib/minIni/dev/minGlue-efsl.h | 0 .../sysmodule/lib/minIni/dev/minGlue-ffs.h | 0 .../sysmodule/lib/minIni/dev/minGlue-mdd.h | 0 .../sysmodule/lib/minIni/dev/minGlue-stdio.h | 0 .../sysmodule/lib/minIni/dev/minGlue.h | 0 .../sysmodule/lib/minIni/dev/minIni.c | 0 .../sysmodule/lib/minIni/dev/minIni.h | 0 .../sysmodule/lib/minIni/dev/test.c | 0 .../sysmodule/lib/minIni/dev/test.ini | 0 .../sysmodule/lib/minIni/dev/test2.cc | 0 .../sysmodule/lib/minIni/dev/testplain.ini | 0 .../sysmodule/lib/minIni/dev/wxMinIni.h | 0 .../sysmodule/lib/minIni/doc/minIni.pdf | Bin .../sysmodule/lib/minIni/include/minIni.h | 0 .../sysmodule/lib/nxExt/.gitignore | 0 .../sysmodule/lib/nxExt/Makefile | 0 .../sysmodule/lib/nxExt/include/nxExt.h | 0 .../lib/nxExt/include/nxExt/apm_ext.h | 0 .../nxExt/include/nxExt/cpp/lockable_mutex.h | 0 .../sysmodule/lib/nxExt/include/nxExt/i2c.h | 0 .../lib/nxExt/include/nxExt/ipc_server.h | 0 .../lib/nxExt/include/nxExt/max17050.h | 0 .../sysmodule/lib/nxExt/include/nxExt/t210.h | 0 .../lib/nxExt/include/nxExt/tmp451.h | 0 .../sysmodule/lib/nxExt/src/apm_ext.c | 0 .../sysmodule/lib/nxExt/src/i2c.c | 0 .../sysmodule/lib/nxExt/src/ipc_server.c | 0 .../sysmodule/lib/nxExt/src/max17050.c | 0 .../sysmodule/lib/nxExt/src/t210.c | 0 .../sysmodule/lib/nxExt/src/tmp451.c | 0 .../sysmodule/perms.json | 0 .../sysmodule/src/board/board.cpp | 0 .../sysmodule/src/board/board.hpp | 0 .../sysmodule/src/board/board_freq.cpp | 0 .../sysmodule/src/board/board_freq.hpp | 0 .../sysmodule/src/board/board_fuse.cpp | 0 .../sysmodule/src/board/board_fuse.hpp | 0 .../sysmodule/src/board/board_load.cpp | 0 .../sysmodule/src/board/board_load.hpp | 0 .../sysmodule/src/board/board_misc.cpp | 0 .../sysmodule/src/board/board_misc.hpp | 0 .../sysmodule/src/board/board_name.cpp | 0 .../sysmodule/src/board/board_name.hpp | 0 .../sysmodule/src/board/board_profile.cpp | 0 .../sysmodule/src/board/board_profile.hpp | 0 .../sysmodule/src/board/board_sensor.cpp | 0 .../sysmodule/src/board/board_sensor.hpp | 0 .../sysmodule/src/board/board_volt.cpp | 0 .../sysmodule/src/board/board_volt.hpp | 0 .../src/board/display_refresh_rate.cpp | 0 .../src/board/display_refresh_rate.hpp | 0 .../sysmodule/src/clock_manager.cpp | 0 .../sysmodule/src/clock_manager.hpp | 0 .../sysmodule/src/config.cpp | 0 .../sysmodule/src/config.hpp | 0 .../sysmodule/src/errors.cpp | 0 .../sysmodule/src/errors.hpp | 0 .../sysmodule/src/file_utils.cpp | 0 .../sysmodule/src/file_utils.hpp | 0 .../sysmodule/src/governor.cpp | 0 .../sysmodule/src/governor.hpp | 0 .../sysmodule/src/integrations.cpp | 0 .../sysmodule/src/integrations.hpp | 0 .../sysmodule/src/ipc_service.cpp | 0 .../sysmodule/src/ipc_service.hpp | 0 .../sysmodule/src/kip.cpp | 0 .../sysmodule/src/kip.hpp | 0 .../sysmodule/src/main.cpp | 0 .../sysmodule/src/process_management.cpp | 0 .../sysmodule/src/process_management.hpp | 0 .../sysmodule/src/soctherm.cpp | 0 .../sysmodule/src/soctherm.hpp | 0 .../sysmodule/toolbox.json | 0 Source/sys-clk/overlay/Makefile | 2 +- build.sh | 2 +- .../contents/00FF0000636C6BFF/exefs.nsp | Bin 226001 -> 225834 bytes dist/atmosphere/kips/hoc.kip | Bin 281452 -> 281900 bytes dist/config/horizon-oc/lang/ko.json | 60 +- dist/config/horizon-oc/lang/lang/de.json | 141 + dist/config/horizon-oc/lang/lang/en.json | 235 +- dist/config/horizon-oc/lang/lang/es.json | 166 +- dist/config/horizon-oc/lang/lang/fr.json | 141 + dist/config/horizon-oc/lang/lang/it.json | 265 +- dist/config/horizon-oc/lang/lang/ja.json | 141 + dist/config/horizon-oc/lang/lang/jp.json | 146 + dist/config/horizon-oc/lang/lang/ko.json | 141 + dist/config/horizon-oc/lang/lang/nl.json | 141 + dist/config/horizon-oc/lang/lang/pl.json | 141 + dist/config/horizon-oc/lang/lang/pt.json | 141 + dist/config/horizon-oc/lang/lang/ru.json | 141 + dist/config/horizon-oc/lang/lang/uk.json | 141 + dist/config/horizon-oc/lang/lang/zh-cn.json | 250 +- dist/config/horizon-oc/lang/lang/zh-tw.json | 261 +- dist/config/horizon-oc/lang/zh-cn.json | 216 +- dist/switch/.overlays/Horizon-OC-Monitor.ovl | Bin 1355836 -> 1355836 bytes dist/switch/.overlays/horizon-oc-overlay.ovl | Bin 1306684 -> 1306684 bytes 199 files changed, 13967 insertions(+), 657 deletions(-) create mode 100644 Source/Horizon-OC-Monitor/Horizon-OC-Monitor.lst rename Source/{rewrite-hoc-clk => hoc-clk}/.gitignore (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/.gitlab-ci.yml (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/.gitmodules (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/LICENSE (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/README.md (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/bitmap.py (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/build.sh (56%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/SaltyNX.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/battery.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/cpp_util.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/crc32.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/fuse.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/i2c.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/ipc.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/memmem.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/notification.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/pcv_types.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/pwm.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/registers.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/rgltr.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/rgltr_services.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/service_guard.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/apm.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/board.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/client/ipc.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/client/types.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/clock_manager.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/config.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/errors.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/ipc.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/include/sysclk/psm_ext.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/apm_profile_table.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/battery.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/client/ipc.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/crc32.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/i2c.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/memmem.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/notification.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/psm_ext.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/pwm.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/common/src/rgltr_services.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/config.ini.template (100%) rename Source/{rewrite-hoc-clk/sysmodule => hoc-clk/overlay}/.gitignore (100%) create mode 100644 Source/hoc-clk/overlay/Makefile create mode 100644 Source/hoc-clk/overlay/data/logo_rgba.bin create mode 100644 Source/hoc-clk/overlay/lang/de.json create mode 100644 Source/hoc-clk/overlay/lang/en.json create mode 100644 Source/hoc-clk/overlay/lang/es.json create mode 100644 Source/hoc-clk/overlay/lang/fr.json create mode 100644 Source/hoc-clk/overlay/lang/it.json create mode 100644 Source/hoc-clk/overlay/lang/ja.json create mode 100644 Source/hoc-clk/overlay/lang/jp.json create mode 100644 Source/hoc-clk/overlay/lang/ko.json create mode 100644 Source/hoc-clk/overlay/lang/nl.json create mode 100644 Source/hoc-clk/overlay/lang/pl.json create mode 100644 Source/hoc-clk/overlay/lang/pt.json create mode 100644 Source/hoc-clk/overlay/lang/ru.json create mode 100644 Source/hoc-clk/overlay/lang/uk.json create mode 100644 Source/hoc-clk/overlay/lang/zh-cn.json create mode 100644 Source/hoc-clk/overlay/lang/zh-tw.json create mode 100644 Source/hoc-clk/overlay/scripts/make_logo.sh create mode 100644 Source/hoc-clk/overlay/src/ipc.h create mode 100644 Source/hoc-clk/overlay/src/main.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/elements/base_frame.h create mode 100644 Source/hoc-clk/overlay/src/ui/format.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/about_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/base_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/base_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/cat.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/fatal_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/fatal_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/labels.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/labels.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/main_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/misc_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/ult_ext.h create mode 100644 Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.cpp create mode 100644 Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h create mode 100644 Source/hoc-clk/overlay/src/ui/style.h create mode 100644 Source/hoc-clk/sysmodule/.gitignore rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/Makefile (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/.gitignore (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/.gitrepo (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/LICENSE (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/Makefile (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/NOTICE (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/README.md (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-FatFs.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-ccs.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-efsl.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-ffs.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-mdd.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue-stdio.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minGlue.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minIni.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/minIni.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/test.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/test.ini (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/test2.cc (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/testplain.ini (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/dev/wxMinIni.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/doc/minIni.pdf (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/minIni/include/minIni.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/.gitignore (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/Makefile (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/apm_ext.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/cpp/lockable_mutex.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/i2c.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/ipc_server.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/max17050.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/t210.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/include/nxExt/tmp451.h (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/apm_ext.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/i2c.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/ipc_server.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/max17050.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/t210.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/lib/nxExt/src/tmp451.c (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/perms.json (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_freq.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_freq.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_fuse.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_fuse.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_load.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_load.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_misc.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_misc.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_name.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_name.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_profile.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_profile.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_sensor.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_sensor.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_volt.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/board_volt.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/display_refresh_rate.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/board/display_refresh_rate.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/clock_manager.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/clock_manager.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/config.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/config.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/errors.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/errors.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/file_utils.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/file_utils.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/governor.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/governor.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/integrations.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/integrations.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/ipc_service.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/ipc_service.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/kip.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/kip.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/main.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/process_management.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/process_management.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/soctherm.cpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/src/soctherm.hpp (100%) rename Source/{rewrite-hoc-clk => hoc-clk}/sysmodule/toolbox.json (100%) create mode 100644 dist/config/horizon-oc/lang/lang/de.json create mode 100644 dist/config/horizon-oc/lang/lang/fr.json create mode 100644 dist/config/horizon-oc/lang/lang/ja.json create mode 100644 dist/config/horizon-oc/lang/lang/jp.json create mode 100644 dist/config/horizon-oc/lang/lang/ko.json create mode 100644 dist/config/horizon-oc/lang/lang/nl.json create mode 100644 dist/config/horizon-oc/lang/lang/pl.json create mode 100644 dist/config/horizon-oc/lang/lang/pt.json create mode 100644 dist/config/horizon-oc/lang/lang/ru.json create mode 100644 dist/config/horizon-oc/lang/lang/uk.json diff --git a/Source/Horizon-OC-Monitor/Horizon-OC-Monitor.lst b/Source/Horizon-OC-Monitor/Horizon-OC-Monitor.lst new file mode 100644 index 00000000..1a834f7f --- /dev/null +++ b/Source/Horizon-OC-Monitor/Horizon-OC-Monitor.lst @@ -0,0 +1,2 @@ +-CSn +/home/sould/Documents/GitHub/Horizon-OC/Source/Horizon-OC-Monitor/Horizon-OC-Monitor.elf diff --git a/Source/Horizon-OC-Monitor/Makefile b/Source/Horizon-OC-Monitor/Makefile index 5e774165..cec7db78 100644 --- a/Source/Horizon-OC-Monitor/Makefile +++ b/Source/Horizon-OC-Monitor/Makefile @@ -38,11 +38,11 @@ include $(DEVKITPRO)/libnx/switch_rules # NACP building is skipped as well. #--------------------------------------------------------------------------------- APP_TITLE := Horizon OC Monitor -APP_VERSION := 1.3.2+r4-hoc-r2 +APP_VERSION := 1.3.2+r4-hoc-r3 TARGET := $(notdir $(CURDIR)) BUILD := build SOURCES := source -INCLUDES := include lib/Atmosphere-libs/libstratosphere/source/dmnt lib/Atmosphere-libs/libstratosphere/source ../sys-clk/common/include/ +INCLUDES := include lib/Atmosphere-libs/libstratosphere/source/dmnt lib/Atmosphere-libs/libstratosphere/source ../hoc-clk/common/include/ NO_ICON := 1 #ROMFS := romfs diff --git a/Source/rewrite-hoc-clk/.gitignore b/Source/hoc-clk/.gitignore similarity index 100% rename from Source/rewrite-hoc-clk/.gitignore rename to Source/hoc-clk/.gitignore diff --git a/Source/rewrite-hoc-clk/.gitlab-ci.yml b/Source/hoc-clk/.gitlab-ci.yml similarity index 100% rename from Source/rewrite-hoc-clk/.gitlab-ci.yml rename to Source/hoc-clk/.gitlab-ci.yml diff --git a/Source/rewrite-hoc-clk/.gitmodules b/Source/hoc-clk/.gitmodules similarity index 100% rename from Source/rewrite-hoc-clk/.gitmodules rename to Source/hoc-clk/.gitmodules diff --git a/Source/rewrite-hoc-clk/LICENSE b/Source/hoc-clk/LICENSE similarity index 100% rename from Source/rewrite-hoc-clk/LICENSE rename to Source/hoc-clk/LICENSE diff --git a/Source/rewrite-hoc-clk/README.md b/Source/hoc-clk/README.md similarity index 100% rename from Source/rewrite-hoc-clk/README.md rename to Source/hoc-clk/README.md diff --git a/Source/rewrite-hoc-clk/bitmap.py b/Source/hoc-clk/bitmap.py similarity index 100% rename from Source/rewrite-hoc-clk/bitmap.py rename to Source/hoc-clk/bitmap.py diff --git a/Source/rewrite-hoc-clk/build.sh b/Source/hoc-clk/build.sh similarity index 56% rename from Source/rewrite-hoc-clk/build.sh rename to Source/hoc-clk/build.sh index be77b3e4..8ad2c457 100644 --- a/Source/rewrite-hoc-clk/build.sh +++ b/Source/hoc-clk/build.sh @@ -24,19 +24,18 @@ cp -vf "$ROOT_DIR/sysmodule/out/horizon-oc.nsp" "$DIST_DIR/atmosphere/contents/$ >"$DIST_DIR/atmosphere/contents/$TITLE_ID/flags/boot2.flag" cp -vf "$ROOT_DIR/sysmodule/toolbox.json" "$DIST_DIR/atmosphere/contents/$TITLE_ID/toolbox.json" -# echo "*** overlay ***" -# pushd "$ROOT_DIR/overlay" -# make -j$CORES -# popd > /dev/null +echo "*** overlay ***" +pushd "$ROOT_DIR/overlay" +make -j$CORES +popd > /dev/null -# mkdir -p "$DIST_DIR/switch/.overlays" -# cp -vf "$ROOT_DIR/overlay/out/horizon-oc-overlay.ovl" "$DIST_DIR/switch/.overlays/horizon-oc-overlay.ovl" +mkdir -p "$DIST_DIR/switch/.overlays" +cp -vf "$ROOT_DIR/overlay/out/horizon-oc-overlay.ovl" "$DIST_DIR/switch/.overlays/horizon-oc-overlay.ovl" -# echo "*** assets ***" -# mkdir -p "$DIST_DIR/config/horizon-oc" -# cp -vf "$ROOT_DIR/config.ini.template" "$DIST_DIR/config/horizon-oc/config.ini.template" -# cp -vf "$ROOT_DIR/../../README.md" "$DIST_DIR/README.md" +echo "*** assets ***" +mkdir -p "$DIST_DIR/config/horizon-oc" +cp -vf "$ROOT_DIR/config.ini.template" "$DIST_DIR/config/horizon-oc/config.ini.template" +cp -vf "$ROOT_DIR/../../README.md" "$DIST_DIR/README.md" -# echo "*** lang ***" - -# cp -r "$ROOT_DIR/overlay/lang/" "$DIST_DIR/config/horizon-oc/lang/" +echo "*** lang ***" +cp -r "$ROOT_DIR/overlay/lang/" "$DIST_DIR/config/horizon-oc/lang/" diff --git a/Source/rewrite-hoc-clk/common/include/SaltyNX.h b/Source/hoc-clk/common/include/SaltyNX.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/SaltyNX.h rename to Source/hoc-clk/common/include/SaltyNX.h diff --git a/Source/rewrite-hoc-clk/common/include/battery.h b/Source/hoc-clk/common/include/battery.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/battery.h rename to Source/hoc-clk/common/include/battery.h diff --git a/Source/rewrite-hoc-clk/common/include/cpp_util.hpp b/Source/hoc-clk/common/include/cpp_util.hpp similarity index 100% rename from Source/rewrite-hoc-clk/common/include/cpp_util.hpp rename to Source/hoc-clk/common/include/cpp_util.hpp diff --git a/Source/rewrite-hoc-clk/common/include/crc32.h b/Source/hoc-clk/common/include/crc32.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/crc32.h rename to Source/hoc-clk/common/include/crc32.h diff --git a/Source/rewrite-hoc-clk/common/include/fuse.h b/Source/hoc-clk/common/include/fuse.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/fuse.h rename to Source/hoc-clk/common/include/fuse.h diff --git a/Source/rewrite-hoc-clk/common/include/i2c.h b/Source/hoc-clk/common/include/i2c.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/i2c.h rename to Source/hoc-clk/common/include/i2c.h diff --git a/Source/rewrite-hoc-clk/common/include/ipc.h b/Source/hoc-clk/common/include/ipc.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/ipc.h rename to Source/hoc-clk/common/include/ipc.h diff --git a/Source/rewrite-hoc-clk/common/include/memmem.h b/Source/hoc-clk/common/include/memmem.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/memmem.h rename to Source/hoc-clk/common/include/memmem.h diff --git a/Source/rewrite-hoc-clk/common/include/notification.h b/Source/hoc-clk/common/include/notification.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/notification.h rename to Source/hoc-clk/common/include/notification.h diff --git a/Source/rewrite-hoc-clk/common/include/pcv_types.h b/Source/hoc-clk/common/include/pcv_types.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/pcv_types.h rename to Source/hoc-clk/common/include/pcv_types.h diff --git a/Source/rewrite-hoc-clk/common/include/pwm.h b/Source/hoc-clk/common/include/pwm.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/pwm.h rename to Source/hoc-clk/common/include/pwm.h diff --git a/Source/rewrite-hoc-clk/common/include/registers.h b/Source/hoc-clk/common/include/registers.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/registers.h rename to Source/hoc-clk/common/include/registers.h diff --git a/Source/rewrite-hoc-clk/common/include/rgltr.h b/Source/hoc-clk/common/include/rgltr.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/rgltr.h rename to Source/hoc-clk/common/include/rgltr.h diff --git a/Source/rewrite-hoc-clk/common/include/rgltr_services.h b/Source/hoc-clk/common/include/rgltr_services.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/rgltr_services.h rename to Source/hoc-clk/common/include/rgltr_services.h diff --git a/Source/rewrite-hoc-clk/common/include/service_guard.h b/Source/hoc-clk/common/include/service_guard.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/service_guard.h rename to Source/hoc-clk/common/include/service_guard.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk.h b/Source/hoc-clk/common/include/sysclk.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk.h rename to Source/hoc-clk/common/include/sysclk.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/apm.h b/Source/hoc-clk/common/include/sysclk/apm.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/apm.h rename to Source/hoc-clk/common/include/sysclk/apm.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/board.h b/Source/hoc-clk/common/include/sysclk/board.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/board.h rename to Source/hoc-clk/common/include/sysclk/board.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/client/ipc.h b/Source/hoc-clk/common/include/sysclk/client/ipc.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/client/ipc.h rename to Source/hoc-clk/common/include/sysclk/client/ipc.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/client/types.h b/Source/hoc-clk/common/include/sysclk/client/types.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/client/types.h rename to Source/hoc-clk/common/include/sysclk/client/types.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/clock_manager.h b/Source/hoc-clk/common/include/sysclk/clock_manager.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/clock_manager.h rename to Source/hoc-clk/common/include/sysclk/clock_manager.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/config.h b/Source/hoc-clk/common/include/sysclk/config.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/config.h rename to Source/hoc-clk/common/include/sysclk/config.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/errors.h b/Source/hoc-clk/common/include/sysclk/errors.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/errors.h rename to Source/hoc-clk/common/include/sysclk/errors.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/ipc.h b/Source/hoc-clk/common/include/sysclk/ipc.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/ipc.h rename to Source/hoc-clk/common/include/sysclk/ipc.h diff --git a/Source/rewrite-hoc-clk/common/include/sysclk/psm_ext.h b/Source/hoc-clk/common/include/sysclk/psm_ext.h similarity index 100% rename from Source/rewrite-hoc-clk/common/include/sysclk/psm_ext.h rename to Source/hoc-clk/common/include/sysclk/psm_ext.h diff --git a/Source/rewrite-hoc-clk/common/src/apm_profile_table.c b/Source/hoc-clk/common/src/apm_profile_table.c similarity index 100% rename from Source/rewrite-hoc-clk/common/src/apm_profile_table.c rename to Source/hoc-clk/common/src/apm_profile_table.c diff --git a/Source/rewrite-hoc-clk/common/src/battery.cpp b/Source/hoc-clk/common/src/battery.cpp similarity index 100% rename from Source/rewrite-hoc-clk/common/src/battery.cpp rename to Source/hoc-clk/common/src/battery.cpp diff --git a/Source/rewrite-hoc-clk/common/src/client/ipc.c b/Source/hoc-clk/common/src/client/ipc.c similarity index 100% rename from Source/rewrite-hoc-clk/common/src/client/ipc.c rename to Source/hoc-clk/common/src/client/ipc.c diff --git a/Source/rewrite-hoc-clk/common/src/crc32.cpp b/Source/hoc-clk/common/src/crc32.cpp similarity index 100% rename from Source/rewrite-hoc-clk/common/src/crc32.cpp rename to Source/hoc-clk/common/src/crc32.cpp diff --git a/Source/rewrite-hoc-clk/common/src/i2c.cpp b/Source/hoc-clk/common/src/i2c.cpp similarity index 100% rename from Source/rewrite-hoc-clk/common/src/i2c.cpp rename to Source/hoc-clk/common/src/i2c.cpp diff --git a/Source/rewrite-hoc-clk/common/src/memmem.c b/Source/hoc-clk/common/src/memmem.c similarity index 100% rename from Source/rewrite-hoc-clk/common/src/memmem.c rename to Source/hoc-clk/common/src/memmem.c diff --git a/Source/rewrite-hoc-clk/common/src/notification.cpp b/Source/hoc-clk/common/src/notification.cpp similarity index 100% rename from Source/rewrite-hoc-clk/common/src/notification.cpp rename to Source/hoc-clk/common/src/notification.cpp diff --git a/Source/rewrite-hoc-clk/common/src/psm_ext.c b/Source/hoc-clk/common/src/psm_ext.c similarity index 100% rename from Source/rewrite-hoc-clk/common/src/psm_ext.c rename to Source/hoc-clk/common/src/psm_ext.c diff --git a/Source/rewrite-hoc-clk/common/src/pwm.c b/Source/hoc-clk/common/src/pwm.c similarity index 100% rename from Source/rewrite-hoc-clk/common/src/pwm.c rename to Source/hoc-clk/common/src/pwm.c diff --git a/Source/rewrite-hoc-clk/common/src/rgltr_services.cpp b/Source/hoc-clk/common/src/rgltr_services.cpp similarity index 100% rename from Source/rewrite-hoc-clk/common/src/rgltr_services.cpp rename to Source/hoc-clk/common/src/rgltr_services.cpp diff --git a/Source/rewrite-hoc-clk/config.ini.template b/Source/hoc-clk/config.ini.template similarity index 100% rename from Source/rewrite-hoc-clk/config.ini.template rename to Source/hoc-clk/config.ini.template diff --git a/Source/rewrite-hoc-clk/sysmodule/.gitignore b/Source/hoc-clk/overlay/.gitignore similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/.gitignore rename to Source/hoc-clk/overlay/.gitignore diff --git a/Source/hoc-clk/overlay/Makefile b/Source/hoc-clk/overlay/Makefile new file mode 100644 index 00000000..1f8312f8 --- /dev/null +++ b/Source/hoc-clk/overlay/Makefile @@ -0,0 +1,173 @@ +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- + +ifeq ($(strip $(DEVKITPRO)),) +$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=/devkitpro") +endif + +TOPDIR ?= $(CURDIR) +include $(DEVKITPRO)/libnx/switch_rules + +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# DATA is a list of directories containing data files +# INCLUDES is a list of directories containing header files +# EXEFS_SRC is the optional input directory containing data copied into exefs, if anything this normally should only contain "main.npdm". +#--------------------------------------------------------------------------------- +TARGET := horizon-oc-overlay +BUILD := build +OUTDIR := out +RESOURCES := res +SOURCES := src src/ui/gui src/ui/elements ../common/src ../common/src/client +DATA := data +INCLUDES := ../common/include +EXEFS_SRC := exefs_src +IS_MINIMAL := 0 + +APP_TITLE := Horizon OC Zeus +NO_ICON := 1 + + +# This location should reflect where you place the libultrahand directory (lib can vary between projects). +include ${TOPDIR}/lib/libultrahand/ultrahand.mk + + +#--------------------------------------------------------------------------------- +# version control constants +#--------------------------------------------------------------------------------- +#TARGET_VERSION := $(shell git describe --dirty --always --tags) +APP_VERSION := 1.1.0 +TARGET_VERSION := $(APP_VERSION) + +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- +DEFINES := -DDISABLE_IPC -DTARGET="\"$(TARGET)\"" -DTARGET_VERSION="\"$(TARGET_VERSION)\"" -DIS_MINIMAL=$(IS_MINIMAL) + +ARCH := -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -fPIE + +CFLAGS := -O2 -Wall -flto -fdata-sections -ffunction-sections -fno-rtti -fno-common \ + $(ARCH) $(DEFINES) + +CFLAGS += $(INCLUDE) -D__SWITCH__ + +# Enable appearance overriding +export MSYS2_ARG_CONV_EXCL := -DUI_OVERRIDE_PATH +UI_OVERRIDE_PATH := /config/horizon-oc/ +CFLAGS += -DUI_OVERRIDE_PATH="\"$(UI_OVERRIDE_PATH)\"" + +# Disable fstream +#NO_FSTREAM_DIRECTIVE := 1 +#CFLAGS += -DNO_FSTREAM_DIRECTIVE=$(NO_FSTREAM_DIRECTIVE) + + +CXXFLAGS := $(CFLAGS) -fno-exceptions -std=gnu++20 + +ASFLAGS := -g $(ARCH) +LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) + +LIBS := -lcurl -lz -lzzip -lmbedtls -lmbedx509 -lmbedcrypto -ljansson -lnx + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(PORTLIBS) $(LIBNX) + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- + +export OUTPUT := $(CURDIR)/$(OUTDIR)/$(TARGET) +export TOPDIR := $(CURDIR) + +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) + +export DEPSDIR := $(CURDIR)/$(BUILD) + +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) +#--------------------------------------------------------------------------------- + export LD := $(CC) +#--------------------------------------------------------------------------------- +else +#--------------------------------------------------------------------------------- + export LD := $(CXX) +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- + +export OFILES := $(addsuffix .o,$(BINFILES)) \ + $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) + +export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) + +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) + +export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC) + +.PHONY: $(BUILD) clean all + +#--------------------------------------------------------------------------------- +all: $(BUILD) + +$(BUILD): + @[ -d $@ ] || mkdir -p $@ + @[ -d $(OUTDIR) ] || mkdir -p $(OUTDIR) + @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + +#--------------------------------------------------------------------------------- +clean: + @echo clean ... + @rm -fr $(BUILD) $(TARGET).ovl $(TARGET).nacp $(TARGET).nso $(TARGET).elf $(OUTDIR) + + +#--------------------------------------------------------------------------------- +else +.PHONY: all + +DEPENDS := $(OFILES:.o=.d) + +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- + +all: $(OUTPUT).ovl + +$(OUTPUT).ovl: $(OUTPUT).elf $(OUTPUT).nacp + @elf2nro $< $@ --nacp=$(OUTPUT).nacp + @echo "built ... $(notdir $(OUTPUT).ovl)" + @printf 'ULTR' >> $@ + @printf "Ultrahand signature has been added.\n" + +$(OUTPUT).elf: $(OFILES) + +#--------------------------------------------------------------------------------- +# you need a rule like this for each extension you use as binary data +#--------------------------------------------------------------------------------- +%.bin.o : %.bin +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + @$(bin2o) + +-include $(DEPENDS) + +#--------------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------------- diff --git a/Source/hoc-clk/overlay/data/logo_rgba.bin b/Source/hoc-clk/overlay/data/logo_rgba.bin new file mode 100644 index 0000000000000000000000000000000000000000..d5b9ced7955408287a22583253cbde7de3d89d04 GIT binary patch literal 17160 zcmeI2S*TTI6vv%%ykLY4mKIn_SZG>=1xjcn6!l<84^adWCMA}b^;8s65Jg4NLsC!} zSqNS#AIyS6DS{h?B{Uc|k!6+@G!M7mU(Xl+v+mya?0wGh`0_3I^Q~{qcdb32J7Pqp z+=1MI+=1MI+=1MI+<|Hx7#tiNQ^m5XU6okbrhW(L|Eb_5@E$lIz9=KP*d~3lMXqz!X<^c7MbUN*9;aQN{AYrLUSJ8YWBW4C!@etXBhFPJ=PT^X zu3x$?{ABi;)lER}h$F#i;6|_;>;O%1*k1yiHv8X{cnoySNu=w}DARRRLyFVxN-g?3 z-%iCf)=ycl0dv7Za5vDmkOyNPWF60q7^i?AKqB>MYRr}P=*~!njdfSj`HF5dIL>9_ zk&OjEgGBoaY|c)~#`=`oAnT|GkJS!O{-vQl&1Xo@kWB$&V-92;%?*DYH`{^Jh-KG_f{pJv3w)>#d{oLt_pzpW_k5`wcuxGqD_`%zL;oJvPGchM89tLC!Md@bXr5~U8*In zO~0|A)HTX$m;H3Ftrd@b%w74rGQRP6UDhg}>+wGwya@EXR7ScUPIAA*Bj0IG`%FIH zE;@l<|7!A3P$69@lf6QHHZtFw-H`zBm`+2T19v}7YHn0Q4 z;}Fr{#v)(jw@Ya>OLpwnn(S}*DMkJ+!=`o(_{82>+9o#6?U*L*;myfjPb(gmn7hv0 zCgT5js9{B`oWtpfH4QuwV(NT6Df%JPb=v6$*&x_z!Z)H{t3AGzYiJd#OivCyKRPWa zvn`V2*!J8M5C3JJ9A5X86N+-xkr88eh`YGR9~=MH@GSc=z~2$p6!}$=5vNiORboXO zV*9bhcJPj9Gu$5gj^?J=#Mq|9MupckuLIlZp!66+x69&*ZTi-gVj+LX?7o6uV0*DM zl5Jekb)|+Fx5}Q}*Q+?Aeegxs6n$fz7-J%vYrbN)MjP#s_XWHEfA2;<3+P*<(~_b% zjabKGsAo^z%XE$`0gA8ZEcMc7!S>MkQ}%4KSO!K<8vlMTYADMwoSYiR1ATXN`jXA9 zK;MIwgQtPsj~mL83IsIk)`e>i_*mSLi6tnJ14U0fL-mUy5_EL|JM(;ZNn=B4*27+CyxlO`N$BWZl z9wYG>Oa<}!?tY2a3<_hUSX!~!lpMl(p4&N(T~}-H*mZd7xCne5>W*8TmrdWql>^!8 zXvkjAa3`i3;D?=CBaY5(C%r$4|tq=B*OT5(o;k+N4WI>3B%e_jWip6f;K zoTGjR7}7j&Gl=hbx<7RM-e13>>`|oy%;q47r2i3`SH(Zu9Gwm@pLc9%x}WufX-B7; koV98Pn9;pJ?`>;9rT2xZv9n$7K<+^9K<+^9K-~`f2SO)gxBvhE literal 0 HcmV?d00001 diff --git a/Source/hoc-clk/overlay/lang/de.json b/Source/hoc-clk/overlay/lang/de.json new file mode 100644 index 00000000..d2eedf0b --- /dev/null +++ b/Source/hoc-clk/overlay/lang/de.json @@ -0,0 +1,141 @@ +{ + "Information": "Informationen", + "IDDQ:": "IDDQ:", + "Module: ": "Modul:", + "sys-dock status:": "Sys-Dock-Status:", + "SaltyNX status:": "SaltyNX-Status:", + "RR Display status:": "RR Anzeigestatus:", + "Wafer Position:": "Waferposition:", + "Credits": "Credits", + "Developers": "Entwickler", + "Contributors": "Mitwirkende", + "Testers": "Tester", + "Special Thanks": "Besonderer Dank", + "Unknown": "Unbekannt", + "Installed": "Installiert", + "Not Installed": "Nicht installiert", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "DIE BIERWAREN-LIZENZ", + "Default": "Standard", + "Do Not Override": "Nicht überschreiben", + "Disabled": "Deaktiviert", + "Enabled": "Aktiviert", + " \\ue0e3 Reset": "\\ue0e3 Zurücksetzen", + "Display": "Anzeige", + "Application changed\\n\\n": "Anwendung geändert\\n\\n", + "The running application changed\\n\\n": "Die laufende Anwendung hat sich geändert\\n\\n", + "while editing was going on.": "während die Bearbeitung im Gange war.", + "Board": "Vorstand", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Es konnte keine Verbindung zum hoc-clk-Systemmodul hergestellt werden.\\n\\n", + "Please make sure everything is\\n\\n": "Bitte stellen Sie sicher, dass alles in Ordnung ist\\n\\n", + "correctly installed and enabled.": "korrekt installiert und aktiviert.", + "Fatal error": "Fataler Fehler", + "Temporary Overrides ": "Temporäre Überschreibungen", + "Sleep Mode": "Schlafmodus", + "Stock": "Lager", + "Dev OC": "Entwickler OC", + "Boost Mode": "Boost-Modus", + "Safe Max": "Sicher max", + "Unsafe Max": "Unsicher max", + "Absolute Max": "Absolutes Maximum", + "Handheld Safe Max": "Handsafe max", + "Enable": "Aktivieren", + "Edit App Profile": "App-Profil bearbeiten", + "Edit Global Profile": "Globales Profil bearbeiten", + "Temporary Overrides": "Temporäre Überschreibungen", + "Settings": "Einstellungen", + "About": "Über", + "Compiling with minimal features": "Kompilieren mit minimalen Funktionen", + "General Settings": "Allgemeine Einstellungen", + "Governor Settings": "Gouverneurseinstellungen", + "Safety Settings": "Sicherheitseinstellungen", + "Save KIP Settings": "Speichern Sie die KIP-Einstellungen", + "RAM Settings": "RAM-Einstellungen", + "CPU Settings": "CPU-Einstellungen", + "GPU Settings": "GPU-Einstellungen", + "Display Settings": "Anzeigeeinstellungen", + "Experimental": "Experimentell", + "GPU Scheduling Override Method": "GPU-Planungsüberschreibungsmethode", + "can be dangerous and may cause": "kann gefährlich sein und verursachen", + "damage to your battery or charger!": "Schäden an Ihrem Akku oder Ladegerät!", + "Charge Current Override": "Ladestrom-Überbrückung", + "RAM Voltage Display Mode": "RAM-Spannungsanzeigemodus", + "Polling Interval": "Abfrageintervall", + "CPU Governor Minimum Frequency": "Mindestfrequenz des CPU-Reglers", + "refresh rates may cause stress": "Bildwiederholraten können Stress verursachen", + "or damage to your display! ": "oder Schäden an Ihrem Display!", + "Proceed at your own risk!": "Das Vorgehen erfolgt auf eigene Gefahr!", + "Max Handheld Display": "Max Handheld-Display", + "Display Clock": "Uhr anzeigen", + "Official Rating": "Offizielle Bewertung", + "TDP Threshold": "TDP-Schwellenwert", + "Power": "Macht", + "Thermal Throttle Limit": "Thermische Drosselgrenze", + "HP Mode": "HP-Modus", + "Default (Mariko)": "Standard (Mariko)", + "Default (Erista)": "Standard (Erista)", + "Rating": "Bewertung", + "Safe Max (Mariko)": "Safe Max (Mariko)", + "Safe Max (Erista)": "Safe Max (Erista)", + "RAM VDD2 Voltage": "RAM VDD2 Spannung", + "Voltage": "Spannung", + "RAM VDDQ Voltage": "RAM-VDDQ-Spannung", + "RAM Frequency Editor": "RAM-Frequenzeditor", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Hoher Tacho erforderlich!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 MHz (Benötigt extremen Tacho/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (Benötigt extremen Tacho/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (Benötigt extremen Tacho/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 MHz (Benötigt lächerlichen Tacho/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 MHz (Benötigt lächerlichen Tacho/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (Benötigt lächerlichen Tacho/PLL)", + "Ram Max Clock": "Ram Max Uhr", + "RAM Latency Editor": "RAM-Latenz-Editor", + "RAM Timing Reductions": "Reduzierung des RAM-Timings", + "Memory Timings": "Speicherzeiten", + "Advanced": "Fortgeschritten", + "t6 tRTW Fine Tune": "t6 tRTW Feinabstimmung", + "tRTW Fine Tune": "tRTW-Feinabstimmung", + "t7 tWTR Fine Tune": "t7 tWTR Feinabstimmung", + "tWTR Fine Tune": "tWTR-Feinabstimmung", + "Memory Latencies": "Speicherlatenzen", + "Read Latency": "Leselatenz", + "Write Latency": "Schreiblatenz", + "CPU Boost Clock": "CPU-Boost-Takt", + "CPU UV": "CPU-UV", + "CPU Unlock": "CPU-Entsperrung", + "CPU VMIN": "CPU-VMIN", + "CPU Max Voltage": "Maximale CPU-Spannung", + "CPU Max Clock": "Maximaler CPU-Takt", + "Extreme UV Table": "Extremer UV-Tisch", + "CPU UV Table": "CPU-UV-Tisch", + "CPU Low UV": "CPU-niedrige UV-Strahlung", + "CPU High UV": "CPU Hohe UV-Strahlung", + "CPU Low VMIN": "CPU niedrig VMIN", + "CPU High VMIN": "CPU hoch VMIN", + "No Undervolt": "Kein Undervolt", + "SLT Table": "SLT-Tisch", + "HiOPT Table": "HiOPT-Tabelle", + "GPU Undervolt Table": "GPU-Unterspannungstabelle", + "GPU Minimum Voltage": "GPU-Mindestspannung", + "Calculate GPU Vmin": "Berechnen Sie die GPU-Vmin", + "GPU VMIN": "GPU-VMIN", + "GPU Maximum Voltage": "Maximale GPU-Spannung", + "GPU Voltage Offset": "GPU-Spannungsoffset", + "Do not override": "Nicht überschreiben", + "Enabled (Default)": "Aktiviert (Standard)", + "96.6% limit": "96,6 %-Grenze", + "99.7% limit": "99,7 %-Grenze", + "GPU Scheduling Override": "GPU-Planungsüberschreibung", + "Official Service": "Offizieller Dienst", + "GPU DVFS Mode": "GPU-DVFS-Modus", + "GPU DVFS Offset": "GPU-DVFS-Offset", + "GPU Voltage Table": "GPU-Spannungstabelle", + "GPU Custom Table (mV)": "Benutzerdefinierte GPU-Tabelle (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075 MHz ohne UV, 1152 MHz auf SLT", + "or 1228MHz on HiOPT can cause ": "oder 1228 MHz auf HiOPT kann dazu führen", + "permanent damage to your Switch!": "Dauerhafter Schaden an Ihrem Switch!", + "921MHz without UV and 960MHz on": "921 MHz ohne UV und 960 MHz eingeschaltet", + "SLT or HiOPT can cause ": "SLT oder HiOPT können dazu führen" +} diff --git a/Source/hoc-clk/overlay/lang/en.json b/Source/hoc-clk/overlay/lang/en.json new file mode 100644 index 00000000..727fab93 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/en.json @@ -0,0 +1,141 @@ +{ + "Information": "Information", + "IDDQ:": "IDDQ:", + "Module: ": "Module: ", + "sys-dock status:": "sys-dock status:", + "SaltyNX status:": "SaltyNX status:", + "RR Display status:": "RR Display status:", + "Wafer Position:": "Wafer Position:", + "Credits": "Credits", + "Developers": "Developers", + "Contributors": "Contributors", + "Testers": "Testers", + "Special Thanks": "Special Thanks", + "Unknown": "Unknown", + "Installed": "Installed", + "Not Installed": "Not Installed", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "THE BEER-WARE LICENSE", + "Default": "Default", + "Do Not Override": "Do Not Override", + "Disabled": "Disabled", + "Enabled": "Enabled", + " \\ue0e3 Reset": " \\ue0e3 Reset", + "Display": "Display", + "Application changed\\n\\n": "Application changed\\n\\n", + "The running application changed\\n\\n": "The running application changed\\n\\n", + "while editing was going on.": "while editing was going on.", + "Board": "Board", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Could not connect to hoc-clk sysmodule.\\n\\n", + "Please make sure everything is\\n\\n": "Please make sure everything is\\n\\n", + "correctly installed and enabled.": "correctly installed and enabled.", + "Fatal error": "Fatal error", + "Temporary Overrides ": "Temporary Overrides ", + "Sleep Mode": "Sleep Mode", + "Stock": "Stock", + "Dev OC": "Dev OC", + "Boost Mode": "Boost Mode", + "Safe Max": "Safe Max", + "Unsafe Max": "Unsafe Max", + "Absolute Max": "Absolute Max", + "Handheld Safe Max": "Handheld Safe Max", + "Enable": "Enable", + "Edit App Profile": "Edit App Profile", + "Edit Global Profile": "Edit Global Profile", + "Temporary Overrides": "Temporary Overrides", + "Settings": "Settings", + "About": "About", + "Compiling with minimal features": "Compiling with minimal features", + "General Settings": "General Settings", + "Governor Settings": "Governor Settings", + "Safety Settings": "Safety Settings", + "Save KIP Settings": "Save KIP Settings", + "RAM Settings": "RAM Settings", + "CPU Settings": "CPU Settings", + "GPU Settings": "GPU Settings", + "Display Settings": "Display Settings", + "Experimental": "Experimental", + "GPU Scheduling Override Method": "GPU Scheduling Override Method", + "can be dangerous and may cause": "can be dangerous and may cause", + "damage to your battery or charger!": "damage to your battery or charger!", + "Charge Current Override": "Charge Current Override", + "RAM Voltage Display Mode": "RAM Voltage Display Mode", + "Polling Interval": "Polling Interval", + "CPU Governor Minimum Frequency": "CPU Governor Minimum Frequency", + "refresh rates may cause stress": "refresh rates may cause stress", + "or damage to your display! ": "or damage to your display! ", + "Proceed at your own risk!": "Proceed at your own risk!", + "Max Handheld Display": "Max Handheld Display", + "Display Clock": "Display Clock", + "Official Rating": "Official Rating", + "TDP Threshold": "TDP Threshold", + "Power": "Power", + "Thermal Throttle Limit": "Thermal Throttle Limit", + "HP Mode": "HP Mode", + "Default (Mariko)": "Default (Mariko)", + "Default (Erista)": "Default (Erista)", + "Rating": "Rating", + "Safe Max (Mariko)": "Safe Max (Mariko)", + "Safe Max (Erista)": "Safe Max (Erista)", + "RAM VDD2 Voltage": "RAM VDD2 Voltage", + "Voltage": "Voltage", + "RAM VDDQ Voltage": "RAM VDDQ Voltage", + "RAM Frequency Editor": "RAM Frequency Editor", + "JEDEC.": "JEDEC.", + "High speedo needed!": "High speedo needed!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (Needs extreme Speedo/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz (Needs extreme Speedo/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz (Needs extreme Speedo/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (Needs ridiculous Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (Needs ridiculous Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz (Needs ridiculous Speedo/PLL)", + "Ram Max Clock": "Ram Max Clock", + "RAM Latency Editor": "RAM Latency Editor", + "RAM Timing Reductions": "RAM Timing Reductions", + "Memory Timings": "Memory Timings", + "Advanced": "Advanced", + "t6 tRTW Fine Tune": "t6 tRTW Fine Tune", + "tRTW Fine Tune": "tRTW Fine Tune", + "t7 tWTR Fine Tune": "t7 tWTR Fine Tune", + "tWTR Fine Tune": "tWTR Fine Tune", + "Memory Latencies": "Memory Latencies", + "Read Latency": "Read Latency", + "Write Latency": "Write Latency", + "CPU Boost Clock": "CPU Boost Clock", + "CPU UV": "CPU UV", + "CPU Unlock": "CPU Unlock", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "CPU Max Voltage", + "CPU Max Clock": "CPU Max Clock", + "Extreme UV Table": "Extreme UV Table", + "CPU UV Table": "CPU UV Table", + "CPU Low UV": "CPU Low UV", + "CPU High UV": "CPU High UV", + "CPU Low VMIN": "CPU Low VMIN", + "CPU High VMIN": "CPU High VMIN", + "No Undervolt": "No Undervolt", + "SLT Table": "SLT Table", + "HiOPT Table": "HiOPT Table", + "GPU Undervolt Table": "GPU Undervolt Table", + "GPU Minimum Voltage": "GPU Minimum Voltage", + "Calculate GPU Vmin": "Calculate GPU Vmin", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "GPU Maximum Voltage", + "GPU Voltage Offset": "GPU Voltage Offset", + "Do not override": "Do not override", + "Enabled (Default)": "Enabled (Default)", + "96.6% limit": "96.6% limit", + "99.7% limit": "99.7% limit", + "GPU Scheduling Override": "GPU Scheduling Override", + "Official Service": "Official Service", + "GPU DVFS Mode": "GPU DVFS Mode", + "GPU DVFS Offset": "GPU DVFS Offset", + "GPU Voltage Table": "GPU Voltage Table", + "GPU Custom Table (mV)": "GPU Custom Table (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075MHz without UV, 1152MHz on SLT", + "or 1228MHz on HiOPT can cause ": "or 1228MHz on HiOPT can cause ", + "permanent damage to your Switch!": "permanent damage to your Switch!", + "921MHz without UV and 960MHz on": "921MHz without UV and 960MHz on", + "SLT or HiOPT can cause ": "SLT or HiOPT can cause " +} diff --git a/Source/hoc-clk/overlay/lang/es.json b/Source/hoc-clk/overlay/lang/es.json new file mode 100644 index 00000000..546b4429 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/es.json @@ -0,0 +1,141 @@ +{ + "Information": "Información", + "IDDQ:": "IDDQ:", + "Module: ": "Módulo:", + "sys-dock status:": "estado del sys-dock:", + "SaltyNX status:": "Estado de SaltyNX:", + "RR Display status:": "Estado de visualización RR:", + "Wafer Position:": "Posición de la oblea:", + "Credits": "Créditos", + "Developers": "Desarrolladores", + "Contributors": "Colaboradores", + "Testers": "Probadores", + "Special Thanks": "agradecimiento especial", + "Unknown": "Desconocido", + "Installed": "Instalado", + "Not Installed": "No instalado", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "LA LICENCIA DE CERVEZA", + "Default": "Predeterminado", + "Do Not Override": "No anular", + "Disabled": "Discapacitado", + "Enabled": "Habilitado", + " \\ue0e3 Reset": "\\ue0e3 Restablecer", + "Display": "Pantalla", + "Application changed\\n\\n": "Aplicación modificada\\n\\n", + "The running application changed\\n\\n": "La aplicación en ejecución cambió\\n\\n", + "while editing was going on.": "mientras se realizaba la edición.", + "Board": "tablero", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "No se pudo conectar al módulo del sistema hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Por favor asegúrese de que todo esté\\n\\n", + "correctly installed and enabled.": "correctamente instalado y habilitado.", + "Fatal error": "error fatal", + "Temporary Overrides ": "Anulaciones temporales", + "Sleep Mode": "Modo de suspensión", + "Stock": "Valores", + "Dev OC": "Desarrollador OC", + "Boost Mode": "Modo de impulso", + "Safe Max": "Máximo seguro", + "Unsafe Max": "Máximo inseguro", + "Absolute Max": "Máximo absoluto", + "Handheld Safe Max": "Caja fuerte de mano máx.", + "Enable": "Habilitar", + "Edit App Profile": "Editar perfil de aplicación", + "Edit Global Profile": "Editar perfil global", + "Temporary Overrides": "Anulaciones temporales", + "Settings": "Configuración", + "About": "Acerca de", + "Compiling with minimal features": "Compilando con características mínimas", + "General Settings": "Configuraciones generales", + "Governor Settings": "Configuración del gobernador", + "Safety Settings": "Configuraciones de seguridad", + "Save KIP Settings": "Guardar configuración de KIP", + "RAM Settings": "Configuración de RAM", + "CPU Settings": "Configuración de la CPU", + "GPU Settings": "Configuración de GPU", + "Display Settings": "Configuración de pantalla", + "Experimental": "Experimental", + "GPU Scheduling Override Method": "Método de anulación de programación de GPU", + "can be dangerous and may cause": "puede ser peligroso y puede causar", + "damage to your battery or charger!": "¡Daños a su batería o cargador!", + "Charge Current Override": "Anulación de corriente de carga", + "RAM Voltage Display Mode": "Modo de visualización de voltaje de RAM", + "Polling Interval": "Intervalo de sondeo", + "CPU Governor Minimum Frequency": "Frecuencia mínima del gobernador de CPU", + "refresh rates may cause stress": "Las frecuencias de actualización pueden causar estrés.", + "or damage to your display! ": "o daños a su pantalla!", + "Proceed at your own risk!": "¡Continúe bajo su propio riesgo!", + "Max Handheld Display": "Pantalla portátil máxima", + "Display Clock": "Reloj de pantalla", + "Official Rating": "Calificación oficial", + "TDP Threshold": "Umbral de TDP", + "Power": "poder", + "Thermal Throttle Limit": "Límite del acelerador térmico", + "HP Mode": "Modo HP", + "Default (Mariko)": "Predeterminado (Mariko)", + "Default (Erista)": "Predeterminado (Erista)", + "Rating": "Calificación", + "Safe Max (Mariko)": "Max seguro (Mariko)", + "Safe Max (Erista)": "Safe Max (Erista)", + "RAM VDD2 Voltage": "Voltaje RAM VDD2", + "Voltage": "voltaje", + "RAM VDDQ Voltage": "Voltaje RAM VDDQ", + "RAM Frequency Editor": "Editor de frecuencia RAM", + "JEDEC.": "JEDEC.", + "High speedo needed!": "¡Se necesita alta velocidad!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (Necesita Speedo/PLL extremo)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz (Necesita Speedo/PLL extremo)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz (Necesita Speedo/PLL extremo)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (Necesita Speedo/PLL ridículo)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (Necesita Speedo/PLL ridículo)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz (Necesita Speedo/PLL ridículo)", + "Ram Max Clock": "Ram Max Reloj", + "RAM Latency Editor": "Editor de latencia de RAM", + "RAM Timing Reductions": "Reducciones de tiempo de RAM", + "Memory Timings": "Tiempos de memoria", + "Advanced": "Avanzado", + "t6 tRTW Fine Tune": "t6 tRTW Ajuste fino", + "tRTW Fine Tune": "Ajuste fino tRTW", + "t7 tWTR Fine Tune": "t7 tWTR Ajuste fino", + "tWTR Fine Tune": "Ajuste fino de tWTR", + "Memory Latencies": "Latencias de la memoria", + "Read Latency": "Leer latencia", + "Write Latency": "Latencia de escritura", + "CPU Boost Clock": "Reloj de aumento de CPU", + "CPU UV": "procesador ultravioleta", + "CPU Unlock": "Desbloqueo de CPU", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "Voltaje máximo de la CPU", + "CPU Max Clock": "Reloj máximo de CPU", + "Extreme UV Table": "Mesa UV extrema", + "CPU UV Table": "Tabla UV de CPU", + "CPU Low UV": "CPU baja radiación ultravioleta", + "CPU High UV": "CPU alta UV", + "CPU Low VMIN": "VMIN bajo de CPU", + "CPU High VMIN": "VMIN alto de CPU", + "No Undervolt": "Sin subvoltaje", + "SLT Table": "Mesa TR", + "HiOPT Table": "Tabla HiOPT", + "GPU Undervolt Table": "Tabla de subvoltaje de GPU", + "GPU Minimum Voltage": "Voltaje mínimo de GPU", + "Calculate GPU Vmin": "Calcular GPU Vmin", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "Voltaje máximo de GPU", + "GPU Voltage Offset": "Compensación de voltaje de GPU", + "Do not override": "no anular", + "Enabled (Default)": "Habilitado (predeterminado)", + "96.6% limit": "límite del 96,6%", + "99.7% limit": "límite del 99,7%", + "GPU Scheduling Override": "Anulación de programación de GPU", + "Official Service": "Servicio Oficial", + "GPU DVFS Mode": "Modo GPU DVFS", + "GPU DVFS Offset": "Compensación DVFS de GPU", + "GPU Voltage Table": "Tabla de voltaje de GPU", + "GPU Custom Table (mV)": "Tabla personalizada de GPU (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075MHz sin UV, 1152MHz en SLT", + "or 1228MHz on HiOPT can cause ": "o 1228MHz en HiOPT pueden causar", + "permanent damage to your Switch!": "¡Daño permanente a tu Switch!", + "921MHz without UV and 960MHz on": "921MHz sin UV y 960MHz encendido", + "SLT or HiOPT can cause ": "SLT o HiOPT pueden causar" +} diff --git a/Source/hoc-clk/overlay/lang/fr.json b/Source/hoc-clk/overlay/lang/fr.json new file mode 100644 index 00000000..2494473a --- /dev/null +++ b/Source/hoc-clk/overlay/lang/fr.json @@ -0,0 +1,141 @@ +{ + "Information": "Informations", + "IDDQ:": "IDDQ :", + "Module: ": "Module :", + "sys-dock status:": "état du dock système :", + "SaltyNX status:": "Statut SaltyNX :", + "RR Display status:": "Etat d'affichage RR :", + "Wafer Position:": "Position de la plaquette :", + "Credits": "Crédits", + "Developers": "Développeurs", + "Contributors": "Contributeurs", + "Testers": "Testeurs", + "Special Thanks": "Remerciements spéciaux", + "Unknown": "Inconnu", + "Installed": "Installé", + "Not Installed": "Non installé", + "X: %u Y: %u": "X : %u Y : %u", + "THE BEER-WARE LICENSE": "LA LICENCE DE LA BIÈRE", + "Default": "Par défaut", + "Do Not Override": "Ne pas remplacer", + "Disabled": "Désactivé", + "Enabled": "Activé", + " \\ue0e3 Reset": "\\ue0e3 Réinitialiser", + "Display": "Affichage", + "Application changed\\n\\n": "Application modifiée\\n\\n", + "The running application changed\\n\\n": "L'application en cours d'exécution a changé\\n\\n", + "while editing was going on.": "pendant le montage.", + "Board": "Conseil", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Impossible de se connecter au module système hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Veuillez vous assurer que tout est\\n\\n", + "correctly installed and enabled.": "correctement installé et activé.", + "Fatal error": "Erreur fatale", + "Temporary Overrides ": "Remplacements temporaires", + "Sleep Mode": "Mode veille", + "Stock": "Actions", + "Dev OC": "Développeur OC", + "Boost Mode": "Mode Boost", + "Safe Max": "Coffre-fort maximum", + "Unsafe Max": "Dangereux Max", + "Absolute Max": "Max absolu", + "Handheld Safe Max": "Coffre-fort portatif Max", + "Enable": "Activer", + "Edit App Profile": "Modifier le profil de l'application", + "Edit Global Profile": "Modifier le profil global", + "Temporary Overrides": "Remplacements temporaires", + "Settings": "Paramètres", + "About": "À propos", + "Compiling with minimal features": "Compilation avec des fonctionnalités minimales", + "General Settings": "Paramètres généraux", + "Governor Settings": "Paramètres du gouverneur", + "Safety Settings": "Paramètres de sécurité", + "Save KIP Settings": "Enregistrer les paramètres KIP", + "RAM Settings": "Paramètres de la RAM", + "CPU Settings": "Paramètres du processeur", + "GPU Settings": "Paramètres du processeur graphique", + "Display Settings": "Paramètres d'affichage", + "Experimental": "Expérimental", + "GPU Scheduling Override Method": "Méthode de remplacement de la planification GPU", + "can be dangerous and may cause": "peut être dangereux et provoquer", + "damage to your battery or charger!": "dommages à votre batterie ou à votre chargeur !", + "Charge Current Override": "Remplacement du courant de charge", + "RAM Voltage Display Mode": "Mode d'affichage de la tension de la RAM", + "Polling Interval": "Intervalle d'interrogation", + "CPU Governor Minimum Frequency": "Fréquence minimale du gouverneur du processeur", + "refresh rates may cause stress": "les taux de rafraîchissement peuvent causer du stress", + "or damage to your display! ": "ou endommager votre écran !", + "Proceed at your own risk!": "Procédez à vos propres risques !", + "Max Handheld Display": "Affichage portable maximum", + "Display Clock": "Affichage de l'horloge", + "Official Rating": "Classement officiel", + "TDP Threshold": "Seuil TDP", + "Power": "Puissance", + "Thermal Throttle Limit": "Limite d'accélérateur thermique", + "HP Mode": "Mode HP", + "Default (Mariko)": "Par défaut (Mariko)", + "Default (Erista)": "Par défaut (Erista)", + "Rating": "Note", + "Safe Max (Mariko)": "Coffre-fort Max (Mariko)", + "Safe Max (Erista)": "Coffre-fort Max (Erista)", + "RAM VDD2 Voltage": "Tension de la RAM VDD2", + "Voltage": "Tension", + "RAM VDDQ Voltage": "Tension VDDQ de la RAM", + "RAM Frequency Editor": "Éditeur de fréquence RAM", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Besoin d'un speedo haut !", + "3333MHz (Needs extreme Speedo/PLL)": "3333 MHz (nécessite un Speedo/PLL extrême)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (nécessite un Speedo/PLL extrême)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (nécessite un Speedo/PLL extrême)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 MHz (nécessite un Speedo/PLL ridicule)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 MHz (nécessite un Speedo/PLL ridicule)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (nécessite un Speedo/PLL ridicule)", + "Ram Max Clock": "Ram Max Horloge", + "RAM Latency Editor": "Éditeur de latence RAM", + "RAM Timing Reductions": "Réductions de synchronisation de la RAM", + "Memory Timings": "Horaires de mémoire", + "Advanced": "Avancé", + "t6 tRTW Fine Tune": "t6 tRTW réglage fin", + "tRTW Fine Tune": "tRTW Réglage fin", + "t7 tWTR Fine Tune": "t7 tWTR réglage fin", + "tWTR Fine Tune": "Réglage fin du tWTR", + "Memory Latencies": "Latences de mémoire", + "Read Latency": "Latence de lecture", + "Write Latency": "Latence d'écriture", + "CPU Boost Clock": "Horloge d'augmentation du processeur", + "CPU UV": "UV du processeur", + "CPU Unlock": "Déverrouillage du processeur", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "Tension maximale du processeur", + "CPU Max Clock": "Horloge maximale du processeur", + "Extreme UV Table": "Table UV Extrême", + "CPU UV Table": "Tableau UV du processeur", + "CPU Low UV": "CPU faible UV", + "CPU High UV": "CPU UV élevé", + "CPU Low VMIN": "CPU faible VMIN", + "CPU High VMIN": "Processeur VMIN élevé", + "No Undervolt": "Pas de sous-tension", + "SLT Table": "Tableau SLT", + "HiOPT Table": "Tableau HiOPT", + "GPU Undervolt Table": "Tableau de sous-tension GPU", + "GPU Minimum Voltage": "Tension minimale du GPU", + "Calculate GPU Vmin": "Calculer la Vmin du GPU", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "Tension maximale du GPU", + "GPU Voltage Offset": "Décalage de tension du GPU", + "Do not override": "Ne remplacez pas", + "Enabled (Default)": "Activé (par défaut)", + "96.6% limit": "Limite de 96,6 %", + "99.7% limit": "Limite de 99,7 %", + "GPU Scheduling Override": "Remplacement de la planification GPU", + "Official Service": "Service officiel", + "GPU DVFS Mode": "Mode GPU DVFS", + "GPU DVFS Offset": "Décalage GPU DVFS", + "GPU Voltage Table": "Tableau de tension du GPU", + "GPU Custom Table (mV)": "Tableau personnalisé GPU (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075 MHz sans UV, 1152 MHz sur SLT", + "or 1228MHz on HiOPT can cause ": "ou 1228 MHz sur HiOPT peut provoquer", + "permanent damage to your Switch!": "dommages permanents à votre Switch !", + "921MHz without UV and 960MHz on": "921 MHz sans UV et 960 MHz activé", + "SLT or HiOPT can cause ": "SLT ou HiOPT peuvent provoquer" +} diff --git a/Source/hoc-clk/overlay/lang/it.json b/Source/hoc-clk/overlay/lang/it.json new file mode 100644 index 00000000..d7056f36 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/it.json @@ -0,0 +1,141 @@ +{ + "Information": "Informazioni", + "IDDQ:": "IDDQ:", + "Module: ": "Modulo:", + "sys-dock status:": "stato del dock di sistema:", + "SaltyNX status:": "Stato di SaltyNX:", + "RR Display status:": "Stato di visualizzazione RR:", + "Wafer Position:": "Posizione del wafer:", + "Credits": "Crediti", + "Developers": "Sviluppatori", + "Contributors": "Collaboratori", + "Testers": "Tester", + "Special Thanks": "Un ringraziamento speciale", + "Unknown": "Sconosciuto", + "Installed": "Installato", + "Not Installed": "Non installato", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "LA LICENZA PER GLI ARTICOLI DI BIRRA", + "Default": "Predefinito", + "Do Not Override": "Non sovrascrivere", + "Disabled": "Disabilitato", + "Enabled": "Abilitato", + " \\ue0e3 Reset": "\\ue0e3 Ripristina", + "Display": "Visualizzazione", + "Application changed\\n\\n": "Applicazione modificata\\n\\n", + "The running application changed\\n\\n": "L'applicazione in esecuzione è cambiata\\n\\n", + "while editing was going on.": "mentre era in corso la modifica.", + "Board": "Consiglio", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Impossibile connettersi al modulo di sistema hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Assicurati che tutto sia\\n\\n", + "correctly installed and enabled.": "correttamente installato e abilitato.", + "Fatal error": "Errore fatale", + "Temporary Overrides ": "Sostituzioni temporanee", + "Sleep Mode": "Modalità di sospensione", + "Stock": "Magazzino", + "Dev OC": "OC di sviluppo", + "Boost Mode": "Modalità potenziamento", + "Safe Max": "Sicuro massimo", + "Unsafe Max": "Non sicuro Max", + "Absolute Max": "Massimo assoluto", + "Handheld Safe Max": "Cassaforte portatile max", + "Enable": "Abilita", + "Edit App Profile": "Modifica profilo dell'app", + "Edit Global Profile": "Modifica profilo globale", + "Temporary Overrides": "Sostituzioni temporanee", + "Settings": "Impostazioni", + "About": "Circa", + "Compiling with minimal features": "Compilazione con funzionalità minime", + "General Settings": "Impostazioni generali", + "Governor Settings": "Impostazioni del governatore", + "Safety Settings": "Impostazioni di sicurezza", + "Save KIP Settings": "Salva le impostazioni KIP", + "RAM Settings": "Impostazioni della RAM", + "CPU Settings": "Impostazioni della CPU", + "GPU Settings": "Impostazioni della GPU", + "Display Settings": "Impostazioni di visualizzazione", + "Experimental": "Sperimentale", + "GPU Scheduling Override Method": "Metodo di override della pianificazione GPU", + "can be dangerous and may cause": "può essere pericoloso e può causare", + "damage to your battery or charger!": "danni alla batteria o al caricabatterie!", + "Charge Current Override": "Override della corrente di carica", + "RAM Voltage Display Mode": "Modalità di visualizzazione della tensione RAM", + "Polling Interval": "Intervallo di polling", + "CPU Governor Minimum Frequency": "Frequenza minima del governatore della CPU", + "refresh rates may cause stress": "le frequenze di aggiornamento possono causare stress", + "or damage to your display! ": "o danni al display!", + "Proceed at your own risk!": "Procedi a tuo rischio e pericolo!", + "Max Handheld Display": "Display portatile massimo", + "Display Clock": "Visualizza orologio", + "Official Rating": "Valutazione ufficiale", + "TDP Threshold": "Soglia TDP", + "Power": "Potenza", + "Thermal Throttle Limit": "Limite della valvola termica", + "HP Mode": "Modalità HP", + "Default (Mariko)": "Predefinito (Mariko)", + "Default (Erista)": "Predefinito (Erista)", + "Rating": "Valutazione", + "Safe Max (Mariko)": "Safe Max (Mariko)", + "Safe Max (Erista)": "Safe Max (Erista)", + "RAM VDD2 Voltage": "Tensione RAM VDD2", + "Voltage": "Voltaggio", + "RAM VDDQ Voltage": "Voltaggio VDDQ della RAM", + "RAM Frequency Editor": "Editor della frequenza RAM", + "JEDEC.": "JEDEC.", + "High speedo needed!": "È necessaria l'alta velocità!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 MHz (richiede Speedo/PLL estremo)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (richiede Speedo/PLL estremo)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (richiede Speedo/PLL estremo)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 MHz (è necessario un ridicolo Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 MHz (è necessario un ridicolo Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (è necessario un ridicolo Speedo/PLL)", + "Ram Max Clock": "Orologio Ram Max", + "RAM Latency Editor": "Editor della latenza RAM", + "RAM Timing Reductions": "Riduzioni della temporizzazione della RAM", + "Memory Timings": "Tempi di memoria", + "Advanced": "Avanzato", + "t6 tRTW Fine Tune": "t6 tRTW Sintonia fine", + "tRTW Fine Tune": "tRTW Sintonia fine", + "t7 tWTR Fine Tune": "t7 tWTR Sintonia fine", + "tWTR Fine Tune": "tWTR Sintonia fine", + "Memory Latencies": "Latenza della memoria", + "Read Latency": "Leggi latenza", + "Write Latency": "Scrivi latenza", + "CPU Boost Clock": "Orologio di potenziamento della CPU", + "CPU UV": "UV della CPU", + "CPU Unlock": "Sblocco della CPU", + "CPU VMIN": "CPUVMIN", + "CPU Max Voltage": "Voltaggio massimo della CPU", + "CPU Max Clock": "Orologio massimo della CPU", + "Extreme UV Table": "Tavolo UV estremo", + "CPU UV Table": "Tabella UV della CPU", + "CPU Low UV": "CPU con raggi UV bassi", + "CPU High UV": "UV elevato della CPU", + "CPU Low VMIN": "VMIN CPU basso", + "CPU High VMIN": "CPU alta VMIN", + "No Undervolt": "Nessuna sottotensione", + "SLT Table": "Tabella SLT", + "HiOPT Table": "Tabella HiOPT", + "GPU Undervolt Table": "Tabella di sottotensione GPU", + "GPU Minimum Voltage": "Voltaggio minimo della GPU", + "Calculate GPU Vmin": "Calcola GPU Vmin", + "GPU VMIN": "GPUVMIN", + "GPU Maximum Voltage": "Voltaggio massimo della GPU", + "GPU Voltage Offset": "Offset di tensione della GPU", + "Do not override": "Non sovrascrivere", + "Enabled (Default)": "Abilitato (impostazione predefinita)", + "96.6% limit": "Limite del 96,6%.", + "99.7% limit": "Limite del 99,7%.", + "GPU Scheduling Override": "Override della pianificazione GPU", + "Official Service": "Servizio ufficiale", + "GPU DVFS Mode": "Modalità DVFS GPU", + "GPU DVFS Offset": "Offset DVFS della GPU", + "GPU Voltage Table": "Tabella delle tensioni della GPU", + "GPU Custom Table (mV)": "Tabella personalizzata GPU (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075 MHz senza UV, 1152 MHz su SLT", + "or 1228MHz on HiOPT can cause ": "o 1228 MHz su HiOPT possono causare", + "permanent damage to your Switch!": "danni permanenti al tuo Switch!", + "921MHz without UV and 960MHz on": "921 MHz senza UV e 960 MHz attivi", + "SLT or HiOPT can cause ": "SLT o HiOPT possono causare" +} diff --git a/Source/hoc-clk/overlay/lang/ja.json b/Source/hoc-clk/overlay/lang/ja.json new file mode 100644 index 00000000..fe415367 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/ja.json @@ -0,0 +1,141 @@ +{ + "Information": "情報", + "IDDQ:": "IDQ:", + "Module: ": "モジュール:", + "sys-dock status:": "システムドックのステータス:", + "SaltyNX status:": "SaltyNX ステータス:", + "RR Display status:": "RR 表示ステータス:", + "Wafer Position:": "ウェーハの位置:", + "Credits": "クレジット", + "Developers": "開発者", + "Contributors": "貢献者", + "Testers": "テスター", + "Special Thanks": "特別な感謝の気持ち", + "Unknown": "不明", + "Installed": "インストール済み", + "Not Installed": "インストールされていません", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "ビール製品ライセンス", + "Default": "デフォルト", + "Do Not Override": "上書きしないでください", + "Disabled": "障害者", + "Enabled": "有効", + " \\ue0e3 Reset": "\\ue0e3 リセット", + "Display": "ディスプレイ", + "Application changed\\n\\n": "アプリケーションが変更されました\\n\\n", + "The running application changed\\n\\n": "実行中のアプリケーションが変更されました\\n\\n", + "while editing was going on.": "編集を進めている最中でした。", + "Board": "理事会", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "hoc-clk sysmodule に接続できませんでした。\\n\\n", + "Please make sure everything is\\n\\n": "すべてが正しいことを確認してください\\n\\n", + "correctly installed and enabled.": "正しくインストールされ、有効になっています。", + "Fatal error": "致命的なエラー", + "Temporary Overrides ": "一時的なオーバーライド", + "Sleep Mode": "スリープモード", + "Stock": "在庫", + "Dev OC": "開発OC", + "Boost Mode": "ブーストモード", + "Safe Max": "セーフマックス", + "Unsafe Max": "危険なマックス", + "Absolute Max": "絶対最大値", + "Handheld Safe Max": "手持ち金庫マックス", + "Enable": "有効にする", + "Edit App Profile": "アプリプロファイルの編集", + "Edit Global Profile": "グローバルプロファイルの編集", + "Temporary Overrides": "一時的なオーバーライド", + "Settings": "設定", + "About": "について", + "Compiling with minimal features": "最小限の機能でコンパイルする", + "General Settings": "一般設定", + "Governor Settings": "ガバナーの設定", + "Safety Settings": "安全設定", + "Save KIP Settings": "KIP 設定の保存", + "RAM Settings": "RAM設定", + "CPU Settings": "CPUの設定", + "GPU Settings": "GPU設定", + "Display Settings": "表示設定", + "Experimental": "実験的", + "GPU Scheduling Override Method": "GPU スケジューリング オーバーライド メソッド", + "can be dangerous and may cause": "危険であり、原因となる可能性があります", + "damage to your battery or charger!": "バッテリーまたは充電器が損傷します。", + "Charge Current Override": "充電電流オーバーライド", + "RAM Voltage Display Mode": "RAM電圧表示モード", + "Polling Interval": "ポーリング間隔", + "CPU Governor Minimum Frequency": "CPU ガバナの最小周波数", + "refresh rates may cause stress": "リフレッシュレートがストレスを引き起こす可能性がある", + "or damage to your display! ": "ディスプレイに損傷を与えてしまいます。", + "Proceed at your own risk!": "自己責任で進めてください!", + "Max Handheld Display": "最大ハンドヘルドディスプレイ", + "Display Clock": "時計の表示", + "Official Rating": "公式評価", + "TDP Threshold": "TDP しきい値", + "Power": "パワー", + "Thermal Throttle Limit": "サーマルスロットル制限", + "HP Mode": "HPモード", + "Default (Mariko)": "デフォルト(マリコ)", + "Default (Erista)": "デフォルト(エリスタ)", + "Rating": "評価", + "Safe Max (Mariko)": "セーフマックス(マリコ)", + "Safe Max (Erista)": "セーフマックス(エリスタ)", + "RAM VDD2 Voltage": "RAM VDD2 電圧", + "Voltage": "電圧", + "RAM VDDQ Voltage": "RAM VDDQ 電圧", + "RAM Frequency Editor": "RAM周波数エディター", + "JEDEC.": "JEDEC。", + "High speedo needed!": "ハイスピードが必要です!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (エクストリーム Speedo/PLL が必要)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz (エクストリーム Speedo/PLL が必要)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz (エクストリーム Speedo/PLL が必要)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (とんでもない Speedo/PLL が必要)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (とんでもない Speedo/PLL が必要)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz (とんでもない Speedo/PLL が必要)", + "Ram Max Clock": "ラムマックスクロック", + "RAM Latency Editor": "RAM レイテンシ エディター", + "RAM Timing Reductions": "RAM タイミングの削減", + "Memory Timings": "メモリタイミング", + "Advanced": "上級者向け", + "t6 tRTW Fine Tune": "t6 tRTW 微調整", + "tRTW Fine Tune": "tRTW 微調整", + "t7 tWTR Fine Tune": "t7 tWTR ファインチューン", + "tWTR Fine Tune": "tWTR ファインチューン", + "Memory Latencies": "メモリレイテンシ", + "Read Latency": "読み取りレイテンシー", + "Write Latency": "書き込みレイテンシ", + "CPU Boost Clock": "CPUブーストクロック", + "CPU UV": "CPU UV", + "CPU Unlock": "CPUロック解除", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "CPU最大電圧", + "CPU Max Clock": "CPU最大クロック", + "Extreme UV Table": "エクストリーム UV テーブル", + "CPU UV Table": "CPU UV テーブル", + "CPU Low UV": "CPU 低 UV", + "CPU High UV": "CPU 高紫外線", + "CPU Low VMIN": "CPU 低 VMIN", + "CPU High VMIN": "CPU の高い VMIN", + "No Undervolt": "不足電圧なし", + "SLT Table": "SLTテーブル", + "HiOPT Table": "HiOPT テーブル", + "GPU Undervolt Table": "GPUアンダーボルトテーブル", + "GPU Minimum Voltage": "GPUの最小電圧", + "Calculate GPU Vmin": "GPU Vmin を計算する", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "GPU最大電圧", + "GPU Voltage Offset": "GPU電圧オフセット", + "Do not override": "上書きしないでください", + "Enabled (Default)": "有効 (デフォルト)", + "96.6% limit": "96.6%制限", + "99.7% limit": "99.7%制限", + "GPU Scheduling Override": "GPU スケジュールのオーバーライド", + "Official Service": "正式サービス", + "GPU DVFS Mode": "GPU DVFS モード", + "GPU DVFS Offset": "GPU DVFS オフセット", + "GPU Voltage Table": "GPU電圧テーブル", + "GPU Custom Table (mV)": "GPUカスタムテーブル(mV)", + "1075MHz without UV, 1152MHz on SLT": "UVなしで1075MHz、SLTで1152MHz", + "or 1228MHz on HiOPT can cause ": "HiOPT で 1228MHz を使用すると、次のような問題が発生する可能性があります。", + "permanent damage to your Switch!": "Switch に永久的なダメージを与えます!", + "921MHz without UV and 960MHz on": "921MHz(UVなし)、960MHz(UVあり)", + "SLT or HiOPT can cause ": "SLT または HiOPT が原因となる可能性があります" +} diff --git a/Source/hoc-clk/overlay/lang/jp.json b/Source/hoc-clk/overlay/lang/jp.json new file mode 100644 index 00000000..af92cbf7 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/jp.json @@ -0,0 +1,146 @@ +{ + "Information": "Information", + "IDDQ:": "IDDQ:", + "Module: ": "Module:", + "sys-dock status:": "sys-dock status:", + "SaltyNX status:": "SaltyNX status:", + "RR Display status:": "RR Display status:", + "Wafer Position:": "Wafer Position:", + "Credits": "Credits", + "Developers": "Developers", + "Contributors": "Contributors", + "Testers": "Testers", + "Special Thanks": "Special Thanks", + "Unknown": "Unknown", + "Installed": "Installed", + "Not Installed": "Not Installed", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "THE BEER-WARE LICENSE", + "Default": "Default", + "Do Not Override": "Do Not Override", + "Disabled": "Disabled", + "Enabled": "Enabled", + " \\ue0e3 Reset": "\\ue0e3 Reset", + "Display": "Display", + "Application changed\\n\\n": "Application changed\\n\\n", + "The running application changed\\n\\n": "The running application changed\\n\\n", + "while editing was going on.": "while editing was going on.", + "App ID": "App ID", + "Profile": "Profile", + "Board": "Board", + "USB Charger": "USB Charger", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Could not connect to hoc-clk sysmodule.\\n\\n", + "Please make sure everything is\\n\\n": "Please make sure everything is\\n\\n", + "correctly installed and enabled.": "correctly installed and enabled.", + "Fatal error": "Fatal error", + "Temporary Overrides ": "Temporary Overrides", + "Sleep Mode": "Sleep Mode", + "Stock": "Stock", + "Dev OC": "Dev OC", + "Boost Mode": "Boost Mode", + "Safe Max": "Safe Max", + "Unsafe Max": "Unsafe Max", + "Absolute Max": "Absolute Max", + "Handheld": "Handheld", + "Handheld Safe Max": "Handheld Safe Max", + "Docked": "Docked", + "Enable": "Enable", + "Edit App Profile": "Edit App Profile", + "Edit Global Profile": "Edit Global Profile", + "Temporary Overrides": "Temporary Overrides", + "Settings": "Settings", + "About": "About", + "Compiling with minimal features": "Compiling with minimal features", + "General Settings": "General Settings", + "Governor Settings": "Governor Settings", + "Safety Settings": "Safety Settings", + "Save KIP Settings": "Save KIP Settings", + "RAM Settings": "RAM Settings", + "CPU Settings": "CPU Settings", + "GPU Settings": "GPU Settings", + "Display Settings": "Display Settings", + "Experimental": "Experimental", + "GPU Scheduling Override Method": "GPU Scheduling Override Method", + "can be dangerous and may cause": "can be dangerous and may cause", + "damage to your battery or charger!": "damage to your battery or charger!", + "Charge Current Override": "Charge Current Override", + "RAM Voltage Display Mode": "RAM Voltage Display Mode", + "Polling Interval": "Polling Interval", + "CPU Governor Minimum Frequency": "CPU Governor Minimum Frequency", + "refresh rates may cause stress": "refresh rates may cause stress", + "or damage to your display! ": "or damage to your display!", + "Proceed at your own risk!": "Proceed at your own risk!", + "Max Handheld Display": "Max Handheld Display", + "Display Clock": "Display Clock", + "Official Rating": "Official Rating", + "TDP Threshold": "TDP Threshold", + "Power": "Power", + "Thermal Throttle Limit": "Thermal Throttle Limit", + "HP Mode": "HP Mode", + "Default (Mariko)": "Default (Mariko)", + "Default (Erista)": "Default (Erista)", + "Rating": "Rating", + "Safe Max (Mariko)": "Safe Max (Mariko)", + "Safe Max (Erista)": "Safe Max (Erista)", + "RAM VDD2 Voltage": "RAM VDD2 Voltage", + "Voltage": "Voltage", + "RAM VDDQ Voltage": "RAM VDDQ Voltage", + "RAM Frequency Editor": "RAM Frequency Editor", + "JEDEC.": "JEDEC.", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (Needs extreme Speedo/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz (Needs extreme Speedo/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz (Needs extreme Speedo/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (Needs ridiculous Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (Needs ridiculous Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz (Needs ridiculous Speedo/PLL)", + "Ram Max Clock": "Ram Max Clock", + "RAM Latency Editor": "RAM Latency Editor", + "RAM Timing Reductions": "RAM Timing Reductions", + "Memory Timings": "Memory Timings", + "tREFI": "tREFI", + "Advanced": "Advanced", + "t6 tRTW Fine Tune": "t6 tRTW Fine Tune", + "tRTW Fine Tune": "tRTW Fine Tune", + "t7 tWTR Fine Tune": "t7 tWTR Fine Tune", + "tWTR Fine Tune": "tWTR Fine Tune", + "Memory Latencies": "Memory Latencies", + "Read Latency": "Read Latency", + "Write Latency": "Write Latency", + "CPU Boost Clock": "CPU Boost Clock", + "CPU UV": "CPU UV", + "CPU Unlock": "CPU Unlock", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "CPU Max Voltage", + "CPU Max Clock": "CPU Max Clock", + "Extreme UV Table": "Extreme UV Table", + "CPU UV Table": "CPU UV Table", + "CPU Low UV": "CPU Low UV", + "CPU High UV": "CPU High UV", + "CPU Low VMIN": "CPU Low VMIN", + "CPU High VMIN": "CPU High VMIN", + "No Undervolt": "No Undervolt", + "SLT Table": "SLT Table", + "HiOPT Table": "HiOPT Table", + "GPU Undervolt Table": "GPU Undervolt Table", + "GPU Minimum Voltage": "GPU Minimum Voltage", + "Calculate GPU Vmin": "Calculate GPU Vmin", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "GPU Maximum Voltage", + "GPU Voltage Offset": "GPU Voltage Offset", + "Do not override": "Do not override", + "Enabled (Default)": "Enabled (Default)", + "96.6% limit": "96.6% limit", + "99.7% limit": "99.7% limit", + "GPU Scheduling Override": "GPU Scheduling Override", + "Official Service": "Official Service", + "GPU DVFS Mode": "GPU DVFS Mode", + "GPU DVFS Offset": "GPU DVFS Offset", + "GPU Voltage Table": "GPU Voltage Table", + "GPU Custom Table (mV)": "GPU Custom Table (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075MHz without UV, 1152MHz on SLT", + "or 1228MHz on HiOPT can cause ": "or 1228MHz on HiOPT can cause", + "permanent damage to your Switch!": "permanent damage to your Switch!", + "921MHz without UV and 960MHz on": "921MHz without UV and 960MHz on", + "SLT or HiOPT can cause ": "SLT or HiOPT can cause" +} diff --git a/Source/hoc-clk/overlay/lang/ko.json b/Source/hoc-clk/overlay/lang/ko.json new file mode 100644 index 00000000..09e73e66 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/ko.json @@ -0,0 +1,141 @@ +{ + "Information": "정보", + "IDDQ:": "IDDQ:", + "Module: ": "모듈:", + "sys-dock status:": "sys-dock 상태:", + "SaltyNX status:": "SaltyNX 상태:", + "RR Display status:": "RR 표시 상태:", + "Wafer Position:": "웨이퍼 위치:", + "Credits": "크레딧", + "Developers": "개발자", + "Contributors": "기여자", + "Testers": "테스터", + "Special Thanks": "특별한 분", + "Unknown": "알 수 없음", + "Installed": "설치됨", + "Not Installed": "설치되지 않음", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "맥주 제품 라이센스", + "Default": "기본값", + "Do Not Override": "재정의하지 마십시오", + "Disabled": "비활성화", + "Enabled": "활성화됨", + " \\ue0e3 Reset": "\\ue0e3 재설정", + "Display": "디스플레이", + "Application changed\\n\\n": "애플리케이션이 변경되었습니다.\\n\\n", + "The running application changed\\n\\n": "실행 중인 애플리케이션이 변경되었습니다.\\n\\n", + "while editing was going on.": "편집이 진행되는 동안.", + "Board": "보드", + "%u.%u%u mV": "%u.%u%umV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "hoc-clk 시스템 모듈에 연결할 수 없습니다.\\n\\n", + "Please make sure everything is\\n\\n": "모든 것이 올바른지 확인하십시오.\\n\\n", + "correctly installed and enabled.": "올바르게 설치되고 활성화되었습니다.", + "Fatal error": "치명적인 오류", + "Temporary Overrides ": "임시 재정의", + "Sleep Mode": "절전 모드", + "Stock": "주식", + "Dev OC": "개발 OC", + "Overwrite Boost Mode": "부스트 모드 덮어쓰기", + "Safe Max": "안전함 최대값", + "Unsafe Max": "불안정 최대값", + "Absolute Max": "절대 최대값", + "Handheld Safe Max": "휴대모드 안전함 최대값", + "Enable": "활성화", + "Edit App Profile": "앱 프로필 편집", + "Edit Global Profile": "글로벌 프로필 편집", + "Temporary Overrides": "임시 재정의", + "Settings": "설정", + "About": "소개", + "Compiling with minimal features": "최소한의 기능으로 컴파일하기", + "General Settings": "일반 설정", + "Governor Settings": "거버너 설정", + "Safety Settings": "안전 설정", + "Save KIP Settings": "KIP 설정 저장", + "RAM Settings": "RAM 설정", + "CPU Settings": "CPU 설정", + "GPU Settings": "GPU 설정", + "Display Settings": "디스플레이 설정", + "Experimental": "실험적", + "GPU Scheduling Override Method": "GPU 스케줄링 재정의 방법", + "can be dangerous and may cause": "위험할 수 있고 원인이 될 수 있습니다.", + "damage to your battery or charger!": "배터리나 충전기가 손상되었습니다!", + "Charge Current Override": "충전 전류 오버라이드", + "RAM Voltage Display Mode": "RAM 전압 표시 모드", + "Polling Interval": "폴링 간격", + "CPU Governor Minimum Frequency": "CPU 거버너 최소 주파수", + "refresh rates may cause stress": "디스플레이 주사율 빈도 변경은", + "or damage to your display! ": "기기에 손상이 발생될 수 있습니다!", + "Proceed at your own risk!": "책임하에 주의해서 사용하십시오!", + "Max Handheld Display": "최대 휴대용 디스플레이", + "Display Clock": "디스플레이 클럭", + "Official Rating": "공식 등급", + "TDP Threshold": "TDP 임계값", + "Power": "힘", + "Thermal Throttle Limit": "열 스로틀 한계", + "HP Mode": "HP 모드", + "Default (Mariko)": "기본값(마리코)", + "Default (Erista)": "기본값(에리스타)", + "Rating": "표준값", + "Safe Max (Mariko)": "안전함 최대치(마리코)", + "Safe Max (Erista)": "안전함 최대치(에리스타)", + "RAM VDD2 Voltage": "RAM VDD2 전압", + "Voltage": "전압", + "RAM VDDQ Voltage": "RAM VDDQ 전압", + "RAM Frequency Editor": "RAM 주파수 편집기", + "JEDEC.": "JEDEC.", + "High speedo needed!": "높은 스피도값이 필요합니다!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz(극단적인 Speedo/PLL 필요)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz(극단적인 Speedo/PLL 필요)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz(극단적인 Speedo/PLL 필요)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (말도 안 되는 Speedo/PLL 필요)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz(터무니없는 Speedo/PLL 필요)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz(터무니없는 Speedo/PLL 필요)", + "Ram Max Clock": "RAM 최대 클럭", + "RAM Latency Editor": "RAM 지연 시간 편집기", + "RAM Timing Reductions": "RAM 타이밍 편집기", + "Memory Timings": "메모리 타이밍", + "Advanced": "고급", + "t6 tRTW Fine Tune": "t6 tRTW 미세 조정", + "tRTW Fine Tune": "tRTW 미세 조정", + "t7 tWTR Fine Tune": "t7 tWTR 미세 조정", + "tWTR Fine Tune": "tWTR 미세 조정", + "Memory Latencies": "메모리 지연 시간", + "Read Latency": "읽기 지연 시간", + "Write Latency": "쓰기 지연 시간", + "CPU Boost Clock": "CPU 부스트 클럭", + "CPU UV": "CPU 언더볼트", + "CPU Unlock": "CPU 잠금 해제", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "CPU 최대 전압", + "CPU Max Clock": "CPU 최대 클럭", + "Extreme UV Table": "익스트림 테이블", + "CPU UV Table": "CPU 언더볼트 테이블", + "CPU Low UV": "CPU 저주파 언더볼트", + "CPU High UV": "CPU 고주파 언더볼트", + "CPU Low VMIN": "CPU 저주파 최소 전압", + "CPU High VMIN": "CPU 고주파 최소 전압", + "No Undervolt": "언더볼트 없음", + "SLT Table": "SLT 테이블", + "HiOPT Table": "HiOPT 테이블", + "GPU Undervolt Table": "GPU 언더볼트 테이블", + "GPU Minimum Voltage": "GPU 최소 전압", + "Calculate GPU Vmin": "GPU Vmin 계산", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "GPU 최대 전압", + "GPU Voltage Offset": "GPU 전압 오프셋", + "Do not override": "재정의하지 않음", + "Enabled (Default)": "활성화됨(기본값)", + "96.6% limit": "96.6% 한도", + "99.7% limit": "99.7% 한도", + "GPU Scheduling Override": "GPU 스케줄링 재정의", + "Official Service": "공식 서비스", + "GPU DVFS Mode": "GPU DVFS 모드", + "GPU DVFS Offset": "GPU DVFS 오프셋", + "GPU Voltage Table": "GPU 전압 테이블", + "GPU Custom Table (mV)": "GPU 사용자 정의 테이블(mV)", + "1075MHz without UV, 1152MHz on SLT": "UV 없이 1075MHz, SLT에서 1152MHz", + "or 1228MHz on HiOPT can cause ": "또는 HiOPT에서 1228MHz를 사용하면", + "permanent damage to your Switch!": "스위치가 영구적으로 손상될 수 있습니다!", + "921MHz without UV and 960MHz on": "UV가 없는 경우 921MHz, 켜진 경우에는 960MHz", + "SLT or HiOPT can cause ": "SLT 또는 HiOPT는 다음을 유발할 수 있습니다." +} diff --git a/Source/hoc-clk/overlay/lang/nl.json b/Source/hoc-clk/overlay/lang/nl.json new file mode 100644 index 00000000..1005d3c2 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/nl.json @@ -0,0 +1,141 @@ +{ + "Information": "Informatie", + "IDDQ:": "IDDQ:", + "Module: ": "module:", + "sys-dock status:": "sys-dock-status:", + "SaltyNX status:": "SaltyNX-status:", + "RR Display status:": "RR Weergavestatus:", + "Wafer Position:": "Waferpositie:", + "Credits": "Kredieten", + "Developers": "Ontwikkelaars", + "Contributors": "Bijdragers", + "Testers": "Testers", + "Special Thanks": "Speciale dank", + "Unknown": "Onbekend", + "Installed": "Geïnstalleerd", + "Not Installed": "Niet geïnstalleerd", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "DE LICENTIE VOOR BIERWAREN", + "Default": "Standaard", + "Do Not Override": "Niet overschrijven", + "Disabled": "Uitgeschakeld", + "Enabled": "Ingeschakeld", + " \\ue0e3 Reset": "\\ue0e3 Opnieuw instellen", + "Display": "Weergave", + "Application changed\\n\\n": "Applicatie gewijzigd\\n\\n", + "The running application changed\\n\\n": "De actieve applicatie is gewijzigd\\n\\n", + "while editing was going on.": "terwijl er werd bewerkt.", + "Board": "Bord", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Kan geen verbinding maken met hoc-clk sysmodule.\\n\\n", + "Please make sure everything is\\n\\n": "Zorg ervoor dat alles in orde is\\n\\n", + "correctly installed and enabled.": "correct geïnstalleerd en ingeschakeld.", + "Fatal error": "Fatale fout", + "Temporary Overrides ": "Tijdelijke overschrijvingen", + "Sleep Mode": "Slaapmodus", + "Stock": "Voorraad", + "Dev OC": "Ontwikkelaar OC", + "Boost Mode": "Boost-modus", + "Safe Max": "Veilig Max", + "Unsafe Max": "OnveiligMax", + "Absolute Max": "Absoluut Max", + "Handheld Safe Max": "Handkluis Max", + "Enable": "Inschakelen", + "Edit App Profile": "App-profiel bewerken", + "Edit Global Profile": "Globaal profiel bewerken", + "Temporary Overrides": "Tijdelijke overschrijvingen", + "Settings": "Instellingen", + "About": "Over", + "Compiling with minimal features": "Compileren met minimale functies", + "General Settings": "Algemene instellingen", + "Governor Settings": "Gouverneur instellingen", + "Safety Settings": "Veiligheidsinstellingen", + "Save KIP Settings": "Sla KIP-instellingen op", + "RAM Settings": "RAM-instellingen", + "CPU Settings": "CPU-instellingen", + "GPU Settings": "GPU-instellingen", + "Display Settings": "Weergave-instellingen", + "Experimental": "Experimenteel", + "GPU Scheduling Override Method": "Methode voor het overschrijven van GPU-planning", + "can be dangerous and may cause": "kan gevaarlijk zijn en kan veroorzaken", + "damage to your battery or charger!": "schade aan uw accu of lader!", + "Charge Current Override": "Laadstroom overschrijven", + "RAM Voltage Display Mode": "Weergavemodus RAM-spanning", + "Polling Interval": "Polling-interval", + "CPU Governor Minimum Frequency": "Minimale frequentie CPU-regelaar", + "refresh rates may cause stress": "vernieuwingsfrequenties kunnen stress veroorzaken", + "or damage to your display! ": "of schade aan uw display!", + "Proceed at your own risk!": "Ga verder op eigen risico!", + "Max Handheld Display": "Maximaal handheld-display", + "Display Clock": "Klok weergeven", + "Official Rating": "Officiële beoordeling", + "TDP Threshold": "TDP-drempel", + "Power": "Macht", + "Thermal Throttle Limit": "Thermische gaslimiet", + "HP Mode": "HP-modus", + "Default (Mariko)": "Standaard (Mariko)", + "Default (Erista)": "Standaard (Erista)", + "Rating": "Beoordeling", + "Safe Max (Mariko)": "Veilig Max (Mariko)", + "Safe Max (Erista)": "Veilige Max (Erista)", + "RAM VDD2 Voltage": "RAM VDD2-spanning", + "Voltage": "Spanning", + "RAM VDDQ Voltage": "RAM VDDQ-spanning", + "RAM Frequency Editor": "RAM-frequentie-editor", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Hoge snelheid nodig!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 MHz (vereist extreme snelheidsmeter/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (vereist extreme snelheidsmeter/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (vereist extreme snelheidsmeter/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (heeft een belachelijke snelheidsmeter/PLL nodig)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (heeft een belachelijke snelheidsmeter/PLL nodig)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (heeft een belachelijke snelheidsmeter/PLL nodig)", + "Ram Max Clock": "Ram Max-klok", + "RAM Latency Editor": "RAM-latentie-editor", + "RAM Timing Reductions": "RAM-timingreducties", + "Memory Timings": "Geheugentijden", + "Advanced": "Geavanceerd", + "t6 tRTW Fine Tune": "t6 tRTW Fijnafstemming", + "tRTW Fine Tune": "tRTW Fijnafstemming", + "t7 tWTR Fine Tune": "t7 tWTR Fijnafstemming", + "tWTR Fine Tune": "tWTR Fijnafstemming", + "Memory Latencies": "Geheugenlatenties", + "Read Latency": "Lees Latentie", + "Write Latency": "Schrijf latentie", + "CPU Boost Clock": "CPU-boostklok", + "CPU UV": "CPU-UV", + "CPU Unlock": "CPU-ontgrendeling", + "CPU VMIN": "CPU-VMIN", + "CPU Max Voltage": "Maximale CPU-spanning", + "CPU Max Clock": "CPU maximale klok", + "Extreme UV Table": "Extreme UV-tafel", + "CPU UV Table": "CPU UV-tabel", + "CPU Low UV": "CPU Lage UV", + "CPU High UV": "CPU Hoge UV", + "CPU Low VMIN": "CPU Lage VMIN", + "CPU High VMIN": "CPU Hoge VMIN", + "No Undervolt": "Geen ondervolt", + "SLT Table": "SLT-tabel", + "HiOPT Table": "HiOPT-tabel", + "GPU Undervolt Table": "GPU-undervolttabel", + "GPU Minimum Voltage": "GPU-minimale spanning", + "Calculate GPU Vmin": "Bereken GPU Vmin", + "GPU VMIN": "GPU-VMIN", + "GPU Maximum Voltage": "GPU maximale spanning", + "GPU Voltage Offset": "GPU-spanningsoffset", + "Do not override": "Niet overschrijven", + "Enabled (Default)": "Ingeschakeld (standaard)", + "96.6% limit": "96,6% limiet", + "99.7% limit": "99,7% limiet", + "GPU Scheduling Override": "GPU-planning negeren", + "Official Service": "Officiële dienst", + "GPU DVFS Mode": "GPU DVFS-modus", + "GPU DVFS Offset": "GPU DVFS-offset", + "GPU Voltage Table": "GPU-spanningstabel", + "GPU Custom Table (mV)": "Aangepaste GPU-tabel (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075MHz zonder UV, 1152MHz op SLT", + "or 1228MHz on HiOPT can cause ": "of 1228MHz op HiOPT kan dit veroorzaken", + "permanent damage to your Switch!": "blijvende schade aan uw Switch!", + "921MHz without UV and 960MHz on": "921MHz zonder UV en 960MHz aan", + "SLT or HiOPT can cause ": "SLT of HiOPT kunnen dit veroorzaken" +} diff --git a/Source/hoc-clk/overlay/lang/pl.json b/Source/hoc-clk/overlay/lang/pl.json new file mode 100644 index 00000000..1233aa93 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/pl.json @@ -0,0 +1,141 @@ +{ + "Information": "Informacje", + "IDDQ:": "IDDQ:", + "Module: ": "Moduł:", + "sys-dock status:": "stan sys-dock:", + "SaltyNX status:": "Stan SaltyNX:", + "RR Display status:": "Stan wyświetlacza:", + "Wafer Position:": "Pozycja wafla:", + "Credits": "Kredyty", + "Developers": "Deweloperzy", + "Contributors": "Współautorzy", + "Testers": "Testery", + "Special Thanks": "Specjalne podziękowania", + "Unknown": "Nieznany", + "Installed": "Zainstalowany", + "Not Installed": "Nie zainstalowano", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "LICENCJA NA WYROBY PIWNE", + "Default": "Domyślne", + "Do Not Override": "Nie zastępuj", + "Disabled": "Niepełnosprawny", + "Enabled": "Włączone", + " \\ue0e3 Reset": "\\ue0e3 Zresetuj", + "Display": "Wyświetlacz", + "Application changed\\n\\n": "Aplikacja została zmieniona\\n\\n", + "The running application changed\\n\\n": "Działająca aplikacja została zmieniona\\n\\n", + "while editing was going on.": "podczas gdy edycja była w toku.", + "Board": "Deska", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Nie można połączyć się z modułem sysmodule hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Upewnij się, że wszystko jest\\n\\n", + "correctly installed and enabled.": "poprawnie zainstalowany i włączony.", + "Fatal error": "Fatalny błąd", + "Temporary Overrides ": "Tymczasowe nadpisania", + "Sleep Mode": "Tryb uśpienia", + "Stock": "Zapas", + "Dev OC": "Dev OC", + "Boost Mode": "Tryb wzmocnienia", + "Safe Max": "Bezpieczny maks", + "Unsafe Max": "Niebezpieczny maks", + "Absolute Max": "Absolutny maks", + "Handheld Safe Max": "Sejf ręczny Max", + "Enable": "Włącz", + "Edit App Profile": "Edytuj profil aplikacji", + "Edit Global Profile": "Edytuj profil globalny", + "Temporary Overrides": "Tymczasowe nadpisania", + "Settings": "Ustawienia", + "About": "O", + "Compiling with minimal features": "Kompilacja z minimalnymi funkcjami", + "General Settings": "Ustawienia ogólne", + "Governor Settings": "Ustawienia gubernatora", + "Safety Settings": "Ustawienia bezpieczeństwa", + "Save KIP Settings": "Zapisz ustawienia KIP", + "RAM Settings": "Ustawienia pamięci RAM", + "CPU Settings": "Ustawienia procesora", + "GPU Settings": "Ustawienia GPU", + "Display Settings": "Ustawienia wyświetlania", + "Experimental": "Eksperymentalny", + "GPU Scheduling Override Method": "Metoda obejścia harmonogramu GPU", + "can be dangerous and may cause": "może być niebezpieczne i powodować", + "damage to your battery or charger!": "uszkodzenie akumulatora lub ładowarki!", + "Charge Current Override": "Obejście prądu ładowania", + "RAM Voltage Display Mode": "Tryb wyświetlania napięcia RAM", + "Polling Interval": "Interwał odpytywania", + "CPU Governor Minimum Frequency": "Minimalna częstotliwość regulatora procesora", + "refresh rates may cause stress": "częstotliwości odświeżania mogą powodować stres", + "or damage to your display! ": "lub uszkodzenie wyświetlacza!", + "Proceed at your own risk!": "Postępuj na własne ryzyko!", + "Max Handheld Display": "Maksymalny wyświetlacz ręczny", + "Display Clock": "Wyświetl zegar", + "Official Rating": "Oficjalna ocena", + "TDP Threshold": "Próg TDP", + "Power": "Moc", + "Thermal Throttle Limit": "Limit przepustnicy termicznej", + "HP Mode": "Tryb HP", + "Default (Mariko)": "Domyślny (Mariko)", + "Default (Erista)": "Domyślny (Erista)", + "Rating": "Ocena", + "Safe Max (Mariko)": "Bezpieczny Max (Mariko)", + "Safe Max (Erista)": "Bezpieczny Max (Erista)", + "RAM VDD2 Voltage": "Napięcie pamięci RAM VDD2", + "Voltage": "Napięcie", + "RAM VDDQ Voltage": "Napięcie RAM VDDQ", + "RAM Frequency Editor": "Edytor częstotliwości RAM", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Potrzebna duża prędkość!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 MHz (wymaga ekstremalnego Speedo/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (wymaga ekstremalnego Speedo/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (wymaga ekstremalnego Speedo/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 MHz (potrzebuje śmiesznego Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 MHz (potrzebuje śmiesznego Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (potrzebuje śmiesznego Speedo/PLL)", + "Ram Max Clock": "Zegar Ram Max", + "RAM Latency Editor": "Edytor opóźnień pamięci RAM", + "RAM Timing Reductions": "Zmniejszenie taktowania pamięci RAM", + "Memory Timings": "Taktowanie pamięci", + "Advanced": "Zaawansowane", + "t6 tRTW Fine Tune": "t6 tRTW Dostrój", + "tRTW Fine Tune": "tRTW Dostosuj", + "t7 tWTR Fine Tune": "t7 tWTR Dostosuj", + "tWTR Fine Tune": "tWTR Dostosuj", + "Memory Latencies": "Opóźnienia pamięci", + "Read Latency": "Przeczytaj Opóźnienie", + "Write Latency": "Opóźnienie zapisu", + "CPU Boost Clock": "Zegar wzmocnienia procesora", + "CPU UV": "Procesor UV", + "CPU Unlock": "Odblokowanie procesora", + "CPU VMIN": "Procesor VMIN", + "CPU Max Voltage": "Maksymalne napięcie procesora", + "CPU Max Clock": "Maks. zegar procesora", + "Extreme UV Table": "Ekstremalny stół UV", + "CPU UV Table": "Tabela UV procesora", + "CPU Low UV": "Niskie promieniowanie UV procesora", + "CPU High UV": "Wysokie promieniowanie UV procesora", + "CPU Low VMIN": "Niski poziom VMIN procesora", + "CPU High VMIN": "Wysoki poziom VMIN procesora", + "No Undervolt": "Brak Undervolta", + "SLT Table": "Stół SLT", + "HiOPT Table": "Stół HiOPT", + "GPU Undervolt Table": "Tabela niedoboru napięcia GPU", + "GPU Minimum Voltage": "Minimalne napięcie procesora graficznego", + "Calculate GPU Vmin": "Oblicz Vmin GPU", + "GPU VMIN": "VMIN GPU", + "GPU Maximum Voltage": "Maksymalne napięcie procesora graficznego", + "GPU Voltage Offset": "Przesunięcie napięcia GPU", + "Do not override": "Nie zastępuj", + "Enabled (Default)": "Włączone (domyślnie)", + "96.6% limit": "Limit 96,6%.", + "99.7% limit": "Limit 99,7%.", + "GPU Scheduling Override": "Zastąpienie harmonogramu GPU", + "Official Service": "Oficjalny serwis", + "GPU DVFS Mode": "Tryb DVFS procesora graficznego", + "GPU DVFS Offset": "Przesunięcie DVFS GPU", + "GPU Voltage Table": "Tabela napięć GPU", + "GPU Custom Table (mV)": "Tabela niestandardowa GPU (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075 MHz bez UV, 1152 MHz na SLT", + "or 1228MHz on HiOPT can cause ": "lub 1228 MHz na HiOPT może powodować", + "permanent damage to your Switch!": "trwałe uszkodzenie Switcha!", + "921MHz without UV and 960MHz on": "921 MHz bez UV i 960 MHz włączone", + "SLT or HiOPT can cause ": "Przyczyną mogą być SLT lub HiOPT" +} diff --git a/Source/hoc-clk/overlay/lang/pt.json b/Source/hoc-clk/overlay/lang/pt.json new file mode 100644 index 00000000..fbddab17 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/pt.json @@ -0,0 +1,141 @@ +{ + "Information": "Informação", + "IDDQ:": "IDDQ:", + "Module: ": "Módulo:", + "sys-dock status:": "status do dock do sistema:", + "SaltyNX status:": "Status do SaltyNX:", + "RR Display status:": "Status de exibição do RR:", + "Wafer Position:": "Posição da bolacha:", + "Credits": "Créditos", + "Developers": "Desenvolvedores", + "Contributors": "Colaboradores", + "Testers": "Testadores", + "Special Thanks": "Agradecimentos especiais", + "Unknown": "Desconhecido", + "Installed": "Instalado", + "Not Installed": "Não instalado", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "A LICENÇA DE CERVEJA", + "Default": "Padrão", + "Do Not Override": "Não substituir", + "Disabled": "Desativado", + "Enabled": "Habilitado", + " \\ue0e3 Reset": "\\ue0e3 Redefinir", + "Display": "Exibição", + "Application changed\\n\\n": "Aplicativo alterado\\n\\n", + "The running application changed\\n\\n": "O aplicativo em execução foi alterado\\n\\n", + "while editing was going on.": "enquanto a edição estava acontecendo.", + "Board": "Conselho", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Não foi possível conectar-se ao sysmodule hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Verifique se tudo está\\n\\n", + "correctly installed and enabled.": "corretamente instalado e ativado.", + "Fatal error": "Erro fatal", + "Temporary Overrides ": "Substituições temporárias", + "Sleep Mode": "Modo de suspensão", + "Stock": "Estoque", + "Dev OC": "Desenvolvedor OC", + "Boost Mode": "Modo de reforço", + "Safe Max": "Máx. Seguro", + "Unsafe Max": "Máximo inseguro", + "Absolute Max": "Máximo absoluto", + "Handheld Safe Max": "Portátil Seguro Máx.", + "Enable": "Habilitar", + "Edit App Profile": "Editar perfil do aplicativo", + "Edit Global Profile": "Editar perfil global", + "Temporary Overrides": "Substituições temporárias", + "Settings": "Configurações", + "About": "Sobre", + "Compiling with minimal features": "Compilando com recursos mínimos", + "General Settings": "Configurações Gerais", + "Governor Settings": "Configurações do Governador", + "Safety Settings": "Configurações de segurança", + "Save KIP Settings": "Salvar configurações KIP", + "RAM Settings": "Configurações de RAM", + "CPU Settings": "Configurações de CPU", + "GPU Settings": "Configurações de GPU", + "Display Settings": "Configurações de exibição", + "Experimental": "Experimental", + "GPU Scheduling Override Method": "Método de substituição de agendamento de GPU", + "can be dangerous and may cause": "pode ser perigoso e causar", + "damage to your battery or charger!": "danos à sua bateria ou carregador!", + "Charge Current Override": "Substituição de corrente de carga", + "RAM Voltage Display Mode": "Modo de exibição de tensão RAM", + "Polling Interval": "Intervalo de votação", + "CPU Governor Minimum Frequency": "Frequência Mínima do Governador da CPU", + "refresh rates may cause stress": "taxas de atualização podem causar estresse", + "or damage to your display! ": "ou danos ao seu monitor!", + "Proceed at your own risk!": "Prossiga por sua conta e risco!", + "Max Handheld Display": "Visor portátil máximo", + "Display Clock": "Exibir relógio", + "Official Rating": "Classificação Oficial", + "TDP Threshold": "Limite de TDP", + "Power": "Poder", + "Thermal Throttle Limit": "Limite de aceleração térmica", + "HP Mode": "Modo HP", + "Default (Mariko)": "Padrão (Mariko)", + "Default (Erista)": "Padrão (Erista)", + "Rating": "Avaliação", + "Safe Max (Mariko)": "Máximo Seguro (Mariko)", + "Safe Max (Erista)": "Seguro Max (Erista)", + "RAM VDD2 Voltage": "Tensão RAM VDD2", + "Voltage": "Tensão", + "RAM VDDQ Voltage": "Tensão RAM VDDQ", + "RAM Frequency Editor": "Editor de frequência RAM", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Alta velocidade necessária!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (precisa de Speedo/PLL extremo)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 MHz (precisa de Speedo/PLL extremo)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 MHz (precisa de Speedo/PLL extremo)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (precisa de Speedo/PLL ridículo)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 MHz (precisa de Speedo/PLL ridículo)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 MHz (precisa de Speedo/PLL ridículo)", + "Ram Max Clock": "Relógio máximo de Ram", + "RAM Latency Editor": "Editor de latência de RAM", + "RAM Timing Reductions": "Reduções de tempo de RAM", + "Memory Timings": "Tempos de memória", + "Advanced": "Avançado", + "t6 tRTW Fine Tune": "t6 tRTW Ajuste fino", + "tRTW Fine Tune": "Ajuste fino tRTW", + "t7 tWTR Fine Tune": "t7 tWTR Ajuste fino", + "tWTR Fine Tune": "Ajuste fino tWTR", + "Memory Latencies": "Latências de memória", + "Read Latency": "Latência de leitura", + "Write Latency": "Latência de gravação", + "CPU Boost Clock": "Relógio de aumento da CPU", + "CPU UV": "UV da CPU", + "CPU Unlock": "Desbloqueio da CPU", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "Tensão máxima da CPU", + "CPU Max Clock": "Relógio máximo da CPU", + "Extreme UV Table": "Mesa UV Extrema", + "CPU UV Table": "Tabela UV da CPU", + "CPU Low UV": "UV baixo da CPU", + "CPU High UV": "CPU alta UV", + "CPU Low VMIN": "CPU baixa VMIN", + "CPU High VMIN": "VMIN alto da CPU", + "No Undervolt": "Sem subtensão", + "SLT Table": "Tabela SLT", + "HiOPT Table": "Tabela HiOPT", + "GPU Undervolt Table": "Tabela de subtensão da GPU", + "GPU Minimum Voltage": "Tensão mínima da GPU", + "Calculate GPU Vmin": "Calcular Vmin da GPU", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "Tensão máxima da GPU", + "GPU Voltage Offset": "Compensação de tensão da GPU", + "Do not override": "Não substitua", + "Enabled (Default)": "Habilitado (padrão)", + "96.6% limit": "Limite de 96,6%", + "99.7% limit": "Limite de 99,7%", + "GPU Scheduling Override": "Substituição de agendamento de GPU", + "Official Service": "Serviço Oficial", + "GPU DVFS Mode": "Modo GPU DVFS", + "GPU DVFS Offset": "Deslocamento DVFS da GPU", + "GPU Voltage Table": "Tabela de tensão da GPU", + "GPU Custom Table (mV)": "Tabela personalizada de GPU (mV)", + "1075MHz without UV, 1152MHz on SLT": "1075 MHz sem UV, 1152 MHz em SLT", + "or 1228MHz on HiOPT can cause ": "ou 1228 MHz em HiOPT pode causar", + "permanent damage to your Switch!": "danos permanentes ao seu Switch!", + "921MHz without UV and 960MHz on": "921 MHz sem UV e 960 MHz ativado", + "SLT or HiOPT can cause ": "SLT ou HiOPT podem causar" +} diff --git a/Source/hoc-clk/overlay/lang/ru.json b/Source/hoc-clk/overlay/lang/ru.json new file mode 100644 index 00000000..4cfdb1bd --- /dev/null +++ b/Source/hoc-clk/overlay/lang/ru.json @@ -0,0 +1,141 @@ +{ + "Information": "Информация", + "IDDQ:": "ИДДК:", + "Module: ": "Модуль:", + "sys-dock status:": "Статус системной док-станции:", + "SaltyNX status:": "Статус SaltyNX:", + "RR Display status:": "Статус отображения RR:", + "Wafer Position:": "Позиция вафли:", + "Credits": "Кредиты", + "Developers": "Разработчики", + "Contributors": "Авторы", + "Testers": "Тестеры", + "Special Thanks": "Особая благодарность", + "Unknown": "Неизвестно", + "Installed": "Установлено", + "Not Installed": "Не установлено", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "ЛИЦЕНЗИЯ НА ПРОДАЖУ ПИВА", + "Default": "По умолчанию", + "Do Not Override": "Не переопределять", + "Disabled": "Отключено", + "Enabled": "Включено", + " \\ue0e3 Reset": "\\ue0e3 Сброс", + "Display": "Дисплей", + "Application changed\\n\\n": "Приложение изменено\\n\\n", + "The running application changed\\n\\n": "Запущенное приложение изменилось\\n\\n", + "while editing was going on.": "пока шло редактирование.", + "Board": "Совет", + "%u.%u%u mV": "%u.%u%u мВ", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Не удалось подключиться к системному модулю hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Пожалуйста, убедитесь, что все в порядке\\n\\n", + "correctly installed and enabled.": "правильно установлен и включен.", + "Fatal error": "Неустранимая ошибка", + "Temporary Overrides ": "Временные переопределения", + "Sleep Mode": "Спящий режим", + "Stock": "Акции", + "Dev OC": "Разработчик OC", + "Boost Mode": "Режим повышения", + "Safe Max": "Сейф Макс", + "Unsafe Max": "Небезопасный Макс", + "Absolute Max": "Абсолютный Макс", + "Handheld Safe Max": "Ручной сейф Макс", + "Enable": "Включить", + "Edit App Profile": "Редактировать профиль приложения", + "Edit Global Profile": "Редактировать глобальный профиль", + "Temporary Overrides": "Временные переопределения", + "Settings": "Настройки", + "About": "О", + "Compiling with minimal features": "Компиляция с минимальными возможностями", + "General Settings": "Общие настройки", + "Governor Settings": "Настройки губернатора", + "Safety Settings": "Настройки безопасности", + "Save KIP Settings": "Сохранить настройки КИП", + "RAM Settings": "Настройки ОЗУ", + "CPU Settings": "Настройки процессора", + "GPU Settings": "Настройки графического процессора", + "Display Settings": "Настройки дисплея", + "Experimental": "Экспериментальный", + "GPU Scheduling Override Method": "Метод переопределения планирования графического процессора", + "can be dangerous and may cause": "может быть опасным и может вызвать", + "damage to your battery or charger!": "повреждение аккумулятора или зарядного устройства!", + "Charge Current Override": "Блокировка зарядного тока", + "RAM Voltage Display Mode": "Режим отображения напряжения ОЗУ", + "Polling Interval": "Интервал опроса", + "CPU Governor Minimum Frequency": "Минимальная частота регулятора ЦП", + "refresh rates may cause stress": "частота обновления может вызвать стресс", + "or damage to your display! ": "или повреждение дисплея!", + "Proceed at your own risk!": "Действуйте на свой страх и риск!", + "Max Handheld Display": "Макс. портативный дисплей", + "Display Clock": "Дисплей Часы", + "Official Rating": "Официальный рейтинг", + "TDP Threshold": "Порог TDP", + "Power": "Мощность", + "Thermal Throttle Limit": "Температурный предел дроссельной заслонки", + "HP Mode": "Режим HP", + "Default (Mariko)": "По умолчанию (Марико)", + "Default (Erista)": "По умолчанию (Эриста)", + "Rating": "Рейтинг", + "Safe Max (Mariko)": "Сейф Макс (Марико)", + "Safe Max (Erista)": "Сейф Макс (Эриста)", + "RAM VDD2 Voltage": "Напряжение ОЗУ VDD2", + "Voltage": "Напряжение", + "RAM VDDQ Voltage": "Напряжение ОЗУ VDDQ", + "RAM Frequency Editor": "Редактор частоты оперативной памяти", + "JEDEC.": "ДЖЕДЕК.", + "High speedo needed!": "Нужен высокий спидометр!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 МГц (требуется экстремальный спидометр/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 МГц (требуется экстремальный спидометр/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 МГц (требуется экстремальный спидометр/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 МГц (нужен нелепый спидометр/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 МГц (нужен нелепый спидометр/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 МГц (нужен нелепый спидометр/PLL)", + "Ram Max Clock": "Рам Макс Часы", + "RAM Latency Editor": "Редактор задержки оперативной памяти", + "RAM Timing Reductions": "Сокращение таймингов ОЗУ", + "Memory Timings": "Тайминги памяти", + "Advanced": "Расширенный", + "t6 tRTW Fine Tune": "t6 tRTW Точная настройка", + "tRTW Fine Tune": "tRTW Точная настройка", + "t7 tWTR Fine Tune": "t7 tWTR Тонкая настройка", + "tWTR Fine Tune": "tWTR Тонкая настройка", + "Memory Latencies": "Задержки памяти", + "Read Latency": "Задержка чтения", + "Write Latency": "Задержка записи", + "CPU Boost Clock": "Тактовая частота процессора", + "CPU UV": "УФ процессора", + "CPU Unlock": "Разблокировка процессора", + "CPU VMIN": "ЦП VMIN", + "CPU Max Voltage": "Максимальное напряжение процессора", + "CPU Max Clock": "Максимальная частота процессора", + "Extreme UV Table": "Стол для экстремального УФ-излучения", + "CPU UV Table": "UV-таблица процессора", + "CPU Low UV": "ЦП с низким УФ-излучением", + "CPU High UV": "Процессор с высоким УФ", + "CPU Low VMIN": "Низкий VMIN процессора", + "CPU High VMIN": "Высокий VMIN процессора", + "No Undervolt": "Нет Андервольта", + "SLT Table": "Таблица ТА", + "HiOPT Table": "Таблица HiOPT", + "GPU Undervolt Table": "Таблица пониженного напряжения графического процессора", + "GPU Minimum Voltage": "Минимальное напряжение графического процессора", + "Calculate GPU Vmin": "Рассчитать Vmin графического процессора", + "GPU VMIN": "Вмин графического процессора", + "GPU Maximum Voltage": "Максимальное напряжение графического процессора", + "GPU Voltage Offset": "Смещение напряжения графического процессора", + "Do not override": "Не переопределять", + "Enabled (Default)": "Включено (по умолчанию)", + "96.6% limit": "Предел 96,6%", + "99.7% limit": "лимит 99,7%", + "GPU Scheduling Override": "Переопределение планирования графического процессора", + "Official Service": "Официальная служба", + "GPU DVFS Mode": "Режим графического процессора DVFS", + "GPU DVFS Offset": "Смещение DVFS графического процессора", + "GPU Voltage Table": "Таблица напряжений графического процессора", + "GPU Custom Table (mV)": "Пользовательская таблица графического процессора (мВ)", + "1075MHz without UV, 1152MHz on SLT": "1075 МГц без УФ, 1152 МГц на SLT", + "or 1228MHz on HiOPT can cause ": "или 1228 МГц на HiOPT может привести к", + "permanent damage to your Switch!": "необратимое повреждение вашего коммутатора!", + "921MHz without UV and 960MHz on": "921 МГц без УФ и 960 МГц с включенным", + "SLT or HiOPT can cause ": "SLT или HiOPT могут вызвать" +} diff --git a/Source/hoc-clk/overlay/lang/uk.json b/Source/hoc-clk/overlay/lang/uk.json new file mode 100644 index 00000000..c0239f8a --- /dev/null +++ b/Source/hoc-clk/overlay/lang/uk.json @@ -0,0 +1,141 @@ +{ + "Information": "Інформація", + "IDDQ:": "IDDQ:", + "Module: ": "Модуль:", + "sys-dock status:": "стан sys-dock:", + "SaltyNX status:": "Статус SaltyNX:", + "RR Display status:": "Статус дисплея RR:", + "Wafer Position:": "Позиція пластини:", + "Credits": "Кредити", + "Developers": "Розробники", + "Contributors": "Дописувачі", + "Testers": "Тестери", + "Special Thanks": "Особлива подяка", + "Unknown": "Невідомий", + "Installed": "встановлено", + "Not Installed": "Не встановлено", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "ЛІЦЕНЗІЯ НА ПИВНИЙ ПОСУД", + "Default": "За замовчуванням", + "Do Not Override": "Не перевизначати", + "Disabled": "Вимкнено", + "Enabled": "Увімкнено", + " \\ue0e3 Reset": "\\ue0e3 Скидання", + "Display": "Дисплей", + "Application changed\\n\\n": "Додаток змінено\\n\\n", + "The running application changed\\n\\n": "Запущена програма змінена\\n\\n", + "while editing was going on.": "поки йшло редагування.", + "Board": "дошка", + "%u.%u%u mV": "%u.%u%u мВ", + "Could not connect to hoc-clk sysmodule.\\n\\n": "Не вдалося підключитися до системного модуля hoc-clk.\\n\\n", + "Please make sure everything is\\n\\n": "Переконайтеся, що все\\n\\n", + "correctly installed and enabled.": "правильно встановлено та включено.", + "Fatal error": "Фатальна помилка", + "Temporary Overrides ": "Тимчасові перевизначення", + "Sleep Mode": "Режим сну", + "Stock": "Запас", + "Dev OC": "Розробник OC", + "Boost Mode": "Режим посилення", + "Safe Max": "Безпечний макс", + "Unsafe Max": "Небезпечний макс", + "Absolute Max": "Абсолютний макс", + "Handheld Safe Max": "Портативний сейф Макс", + "Enable": "Увімкнути", + "Edit App Profile": "Редагувати профіль програми", + "Edit Global Profile": "Редагувати глобальний профіль", + "Temporary Overrides": "Тимчасові перевизначення", + "Settings": "Налаштування", + "About": "про", + "Compiling with minimal features": "Компіляція з мінімальними можливостями", + "General Settings": "Загальні налаштування", + "Governor Settings": "Налаштування губернатора", + "Safety Settings": "Налаштування безпеки", + "Save KIP Settings": "Зберегти налаштування KIP", + "RAM Settings": "Налаштування оперативної пам'яті", + "CPU Settings": "Налаштування ЦП", + "GPU Settings": "Налаштування GPU", + "Display Settings": "Налаштування дисплея", + "Experimental": "Експериментальний", + "GPU Scheduling Override Method": "Метод перевизначення планування GPU", + "can be dangerous and may cause": "може бути небезпечним і може спричинити", + "damage to your battery or charger!": "пошкодження акумулятора або зарядного пристрою!", + "Charge Current Override": "Перевизначення струму заряду", + "RAM Voltage Display Mode": "Режим відображення напруги RAM", + "Polling Interval": "Інтервал опитування", + "CPU Governor Minimum Frequency": "Мінімальна частота регулятора ЦП", + "refresh rates may cause stress": "частоти оновлення можуть викликати стрес", + "or damage to your display! ": "або пошкодження дисплея!", + "Proceed at your own risk!": "Продовжуйте на свій страх і ризик!", + "Max Handheld Display": "Максимальний портативний дисплей", + "Display Clock": "Відображення годинника", + "Official Rating": "Офіційний рейтинг", + "TDP Threshold": "Поріг TDP", + "Power": "потужність", + "Thermal Throttle Limit": "Термічний дросельний ліміт", + "HP Mode": "Режим HP", + "Default (Mariko)": "За замовчуванням (Маріко)", + "Default (Erista)": "За замовчуванням (Erista)", + "Rating": "Рейтинг", + "Safe Max (Mariko)": "Сейф Макс (Маріко)", + "Safe Max (Erista)": "Сейф Макс (Еріста)", + "RAM VDD2 Voltage": "Напруга RAM VDD2", + "Voltage": "Напруга", + "RAM VDDQ Voltage": "Напруга RAM VDDQ", + "RAM Frequency Editor": "Редактор частоти оперативної пам'яті", + "JEDEC.": "JEDEC.", + "High speedo needed!": "Потрібна висока швидкість!", + "3333MHz (Needs extreme Speedo/PLL)": "3333 МГц (потрібна екстремальна швидкість/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366 МГц (потрібна екстремальна швидкість/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400 МГц (потрібна екстремальна швидкість/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433 МГц (потрібен смішний Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466 МГц (потрібен смішний Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500 МГц (потрібен смішний Speedo/PLL)", + "Ram Max Clock": "Годинник Ram Max", + "RAM Latency Editor": "Редактор затримки оперативної пам'яті", + "RAM Timing Reductions": "Скорочення оперативної пам'яті", + "Memory Timings": "Таймінг пам'яті", + "Advanced": "Просунутий", + "t6 tRTW Fine Tune": "t6 tRTW Точне налаштування", + "tRTW Fine Tune": "Точне налаштування tRTW", + "t7 tWTR Fine Tune": "t7 tWTR Точне налаштування", + "tWTR Fine Tune": "Точна настройка tWTR", + "Memory Latencies": "Затримки пам'яті", + "Read Latency": "Прочитати затримку", + "Write Latency": "Затримка запису", + "CPU Boost Clock": "CPU Boost Clock", + "CPU UV": "CPU UV", + "CPU Unlock": "Розблокування ЦП", + "CPU VMIN": "CPU VMIN", + "CPU Max Voltage": "Максимальна напруга ЦП", + "CPU Max Clock": "Максимальна частота ЦП", + "Extreme UV Table": "Екстремальний ультрафіолетовий стіл", + "CPU UV Table": "CPU UV Таблиця", + "CPU Low UV": "CPU Low UV", + "CPU High UV": "CPU High UV", + "CPU Low VMIN": "CPU Low VMIN", + "CPU High VMIN": "CPU High VMIN", + "No Undervolt": "Без андервольта", + "SLT Table": "Таблиця SLT", + "HiOPT Table": "Таблиця HiOPT", + "GPU Undervolt Table": "Таблиця зниження напруги GPU", + "GPU Minimum Voltage": "Мінімальна напруга GPU", + "Calculate GPU Vmin": "Розрахувати GPU Vmin", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "Максимальна напруга GPU", + "GPU Voltage Offset": "Зсув напруги GPU", + "Do not override": "Не перевизначати", + "Enabled (Default)": "Увімкнено (за замовчуванням)", + "96.6% limit": "96,6% обмеження", + "99.7% limit": "Обмеження 99,7%.", + "GPU Scheduling Override": "Перевизначення планування GPU", + "Official Service": "Офіційний сервіс", + "GPU DVFS Mode": "Режим GPU DVFS", + "GPU DVFS Offset": "GPU DVFS Offset", + "GPU Voltage Table": "Таблиця напруги GPU", + "GPU Custom Table (mV)": "Спеціальна таблиця GPU (мВ)", + "1075MHz without UV, 1152MHz on SLT": "1075 МГц без УФ, 1152 МГц на SLT", + "or 1228MHz on HiOPT can cause ": "або 1228 МГц на HiOPT може спричинити", + "permanent damage to your Switch!": "незворотне пошкодження вашого комутатора!", + "921MHz without UV and 960MHz on": "921 МГц без УФ і 960 МГц увімкнено", + "SLT or HiOPT can cause ": "SLT або HiOPT можуть спричинити" +} diff --git a/Source/hoc-clk/overlay/lang/zh-cn.json b/Source/hoc-clk/overlay/lang/zh-cn.json new file mode 100644 index 00000000..53989929 --- /dev/null +++ b/Source/hoc-clk/overlay/lang/zh-cn.json @@ -0,0 +1,157 @@ +{ + "Information": "信息", + "IDDQ:": "IDDQ:", + "Module: ": "模块: ", + "sys-dock status:": "sys-dock 状态:", + "SaltyNX status:": "SaltyNX 状态:", + "RR Display status:": "RR 显示状态:", + "Wafer Position:": "晶圆位置:", + "Credits": "致谢", + "Developers": "开发者", + "Contributors": "贡献者", + "Testers": "测试者", + "Special Thanks": "特别感谢", + "Unknown": "未知", + "Installed": "已安装", + "Not Installed": "未安装", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "啤酒软件许可协议", + "Default": "默认", + "Do Not Override": "不修改", + "Disabled": "已禁用", + "Enabled": "已启用", + " \\ue0e3 Reset": " \\ue0e3 重置", + "Display": "显示", + "Application changed\\n\\n": "应用已变更\\n\\n", + "The running application changed\\n\\n": "正在运行的应用已变更\\n\\n", + "while editing was going on.": "编辑过程中发生变更。", + "Board": "主板", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "无法连接到 hoc-clk 系统模块。\\n\\n", + "Please make sure everything is\\n\\n": "请确保所有内容均已\\n\\n", + "correctly installed and enabled.": "正确安装并启用。", + "Fatal error": "致命错误", + "Temporary Overrides ": "临时配置 ", + "Sleep Mode": "睡眠模式", + "Stock": "原厂默认", + "Dev OC": "开发者超频", + "Boost Mode": "加速模式", + "Safe Max": "安全最大值", + "Unsafe Max": "危险最大值", + "Absolute Max": "绝对最大值", + "Handheld Safe Max": "掌机模式安全最大值", + "Enable": "启用", + "Edit App Profile": "编辑应用配置", + "Edit Global Profile": "编辑全局配置", + "Temporary Overrides": "临时配置", + "Settings": "设置", + "About": "关于", + "Compiling with minimal features": "以最小功能编译", + "General Settings": "通用设置", + "Governor Settings": "调频器设置", + "Safety Settings": "安全设置", + "Save KIP Settings": "保存 KIP 设置", + "RAM Settings": "内存设置", + "CPU Settings": "CPU 设置", + "GPU Settings": "GPU 设置", + "Display Settings": "显示设置", + "Experimental": "实验性功能", + "GPU Scheduling Override Method": "GPU 调度覆盖方式", + "can be dangerous and may cause": "存在风险,可能导致", + "damage to your battery or charger!": "电池或充电器损坏!", + "Charge Current Override": "充电电流修改", + "RAM Voltage Display Mode": "内存电压显示模式", + "Polling Interval": "刷新间隔", + "CPU Governor Minimum Frequency": "CPU 调频器最低频率", + "\uE150 Usage of unsafe display": "\uE150 不安全的显示屏", + "refresh rates may cause stress": "刷新率可能会对", + "or damage to your display! ": "显示屏造成压力或损坏! ", + "Proceed at your own risk!": "操作风险自负!", + "Max Handheld Display": "掌机模式最大显示率", + "Display Clock": "显示时钟", + "Official Rating": "官方额定值", + "TDP Threshold": "TDP 阈值", + "Power": "电源", + "Thermal Throttle Limit": "温控设置", + "HP Mode": "高性能模式", + "Default (Mariko)": "默认 (Mariko)", + "Default (Erista)": "默认 (Erista)", + "Rating": "额定值", + "Safe Max (Mariko)": "安全最大值 (Mariko)", + "Safe Max (Erista)": "安全最大值 (Erista)", + "RAM VDD2 Voltage": "内存 VDD2 电压", + "Voltage": "电压", + "RAM VDDQ Voltage": "内存 VDDQ 电压", + "RAM Frequency Editor": "内存频率编辑器", + "JEDEC.": "JEDEC 标准。", + "High speedo needed!": "需要高 Speedo 配置!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz (需要极限 Speedo/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz (需要极限 Speedo/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz (需要极限 Speedo/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz (需要极端 Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz (需要极端 Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz (需要极端 Speedo/PLL)", + "Ram Max Clock": "内存最大频率", + "RAM Latency Editor": "内存延迟编辑器", + "RAM Timing Reductions": "内存时序优化", + "Memory Timings": "内存时序", + "Memory": "内存", + "mem": "内存", + "Governor": "调频器", + "Advanced": "高级", + "Docked": "底座模式", + "Handheld": "掌机模式", + "Charging": "充电中", + "USB Charger": "USB 充电器", + "PD Charger": "PD 充电器", + "Handheld TDP": "掌机模式功耗限制", + "Thermal Throttle": "温度控制", + "Uncapped Clocks": "解除频率上限", + "Soc DVB Shift": "SoC DVB偏移", + "Overwrite Boost Mode": "接管官方CPU调度", + "Display Refresh Rate Changing": "显示刷新率变更", + "t6 tRTW Fine Tune": "t6 tRTW 微调", + "tRTW Fine Tune": "tRTW 微调", + "t7 tWTR Fine Tune": "t7 tWTR 微调", + "tWTR Fine Tune": "tWTR 微调", + "Memory Latencies": "内存延迟", + "Read Latency": "读取延迟", + "Write Latency": "写入延迟", + "CPU Boost Clock": "CPU 超频频率", + "CPU UV": "CPU 降压", + "CPU Unlock": "CPU 解锁", + "CPU VMIN": "CPU 最低电压", + "CPU Max Voltage": "CPU 最大电压", + "CPU Max Clock": "CPU 最大频率", + "Extreme UV Table": "极限降压表", + "CPU UV Table": "CPU 降压表", + "CPU Low UV": "CPU 低压降压", + "CPU High UV": "CPU 高压降压", + "CPU Low VMIN": "CPU 低压最低电压", + "CPU High VMIN": "CPU 高压最低电压", + "No Undervolt": "不降压", + "SLT Table": "SLT 表", + "HiOPT Table": "HiOPT 表", + "GPU Undervolt Table": "GPU 降压表", + "GPU Minimum Voltage": "GPU 最低电压", + "Calculate GPU Vmin": "计算 GPU 最低电压", + "GPU VMIN": "GPU 最低电压", + "GPU Maximum Voltage": "GPU 最大电压", + "GPU Voltage Offset": "GPU 电压偏移", + "Do not override": "不修改", + "Enabled (Default)": "已启用 (默认)", + "96.6% limit": "96.6% 限制", + "99.7% limit": "99.7% 限制", + "GPU Scheduling Override": "GPU 调度修改", + "Official Service": "官方服务", + "GPU DVFS Mode": "GPU DVFS 模式", + "GPU DVFS Offset": "GPU DVFS 偏移", + "GPU Voltage Table": "GPU 电压表", + "GPU Custom Table (mV)": "GPU 自定义表 (mV)", + "\uE150 Setting GPU Clocks past": "\uE150 将 GPU 频率设置超过", + "1075MHz without UV, 1152MHz on SLT": "1075MHz 无降压,SLT 表下 1152MHz", + "or 1228MHz on HiOPT can cause ": "或 HiOPT 表下 1228MHz 可能导致 ", + "permanent damage to your Switch!": "Switch 永久损坏!", + "921MHz without UV and 960MHz on": "921MHz 无降压,SLT/HiOPT 表下 960MHz", + "SLT or HiOPT can cause ": "可能导致 " +} diff --git a/Source/hoc-clk/overlay/lang/zh-tw.json b/Source/hoc-clk/overlay/lang/zh-tw.json new file mode 100644 index 00000000..5a8a5dfa --- /dev/null +++ b/Source/hoc-clk/overlay/lang/zh-tw.json @@ -0,0 +1,141 @@ +{ + "Information": "資訊", + "IDDQ:": "國際電話號碼:", + "Module: ": "模組:", + "sys-dock status:": "系統塢站狀態:", + "SaltyNX status:": "SaltyNX 狀態:", + "RR Display status:": "RR 顯示狀態:", + "Wafer Position:": "晶圓位置:", + "Credits": "製作人員", + "Developers": "開發商", + "Contributors": "貢獻者", + "Testers": "測試人員", + "Special Thanks": "特別感謝", + "Unknown": "未知", + "Installed": "已安裝", + "Not Installed": "未安裝", + "X: %u Y: %u": "X: %u Y: %u", + "THE BEER-WARE LICENSE": "啤酒製品許可證", + "Default": "預設", + "Do Not Override": "不要覆蓋", + "Disabled": "殘障人士", + "Enabled": "啟用", + " \\ue0e3 Reset": "\\ue0e3 重設", + "Display": "顯示", + "Application changed\\n\\n": "應用程式已更改\\n\\n", + "The running application changed\\n\\n": "正在運行的應用程式已更改\\n\\n", + "while editing was going on.": "當編輯正在進行時。", + "Board": "董事會", + "%u.%u%u mV": "%u.%u%u mV", + "Could not connect to hoc-clk sysmodule.\\n\\n": "無法連接到 hoc-clk 系統模組。 \\n\\n", + "Please make sure everything is\\n\\n": "請確保一切正常\\n\\n", + "correctly installed and enabled.": "正確安裝並啟用。", + "Fatal error": "致命錯誤", + "Temporary Overrides ": "臨時覆蓋", + "Sleep Mode": "睡眠模式", + "Stock": "庫存", + "Dev OC": "開發OC", + "Boost Mode": "升壓模式", + "Safe Max": "安全最大值", + "Unsafe Max": "不安全最大值", + "Absolute Max": "絕對最大值", + "Handheld Safe Max": "手持式安全最大", + "Enable": "啟用", + "Edit App Profile": "編輯應用程式設定檔", + "Edit Global Profile": "編輯全域設定檔", + "Temporary Overrides": "臨時覆蓋", + "Settings": "設定", + "About": "關於", + "Compiling with minimal features": "使用最少的功能進行編譯", + "General Settings": "常規設定", + "Governor Settings": "調速器設定", + "Safety Settings": "安全設定", + "Save KIP Settings": "儲存 KIP 設定", + "RAM Settings": "記憶體設定", + "CPU Settings": "中央處理器設定", + "GPU Settings": "GPU設定", + "Display Settings": "顯示設定", + "Experimental": "實驗性的", + "GPU Scheduling Override Method": "GPU調度覆蓋方法", + "can be dangerous and may cause": "可能很危險並可能導致", + "damage to your battery or charger!": "損壞電池或充電器!", + "Charge Current Override": "充電電流覆蓋", + "RAM Voltage Display Mode": "RAM電壓顯示模式", + "Polling Interval": "輪詢間隔", + "CPU Governor Minimum Frequency": "CPU調速器最低頻率", + "refresh rates may cause stress": "刷新率可能會造成壓力", + "or damage to your display! ": "或損壞您的顯示器!", + "Proceed at your own risk!": "請自行承擔風險!", + "Max Handheld Display": "最大手持顯示器", + "Display Clock": "顯示時鐘", + "Official Rating": "官方評級", + "TDP Threshold": "TDP閾值", + "Power": "電源", + "Thermal Throttle Limit": "熱油門限制", + "HP Mode": "惠普模式", + "Default (Mariko)": "預設(真理子)", + "Default (Erista)": "預設(埃里斯塔)", + "Rating": "評級", + "Safe Max (Mariko)": "安全最大(真理子)", + "Safe Max (Erista)": "安全最大(埃里斯塔)", + "RAM VDD2 Voltage": "RAM VDD2 電壓", + "Voltage": "電壓", + "RAM VDDQ Voltage": "RAM VDDQ 電壓", + "RAM Frequency Editor": "RAM頻率編輯器", + "JEDEC.": "JEDEC。", + "High speedo needed!": "需要高速!", + "3333MHz (Needs extreme Speedo/PLL)": "3333MHz(需要極高的 Speedo/PLL)", + "3366MHz (Needs extreme Speedo/PLL)": "3366MHz(需要極高的 Speedo/PLL)", + "3400MHz (Needs extreme Speedo/PLL)": "3400MHz(需要極高的 Speedo/PLL)", + "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz(需要荒謬的 Speedo/PLL)", + "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz(需要荒謬的 Speedo/PLL)", + "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz(需要荒謬的 Speedo/PLL)", + "Ram Max Clock": "記憶體最大時鐘", + "RAM Latency Editor": "RAM 延遲編輯器", + "RAM Timing Reductions": "RAM 時序減少", + "Memory Timings": "記憶體時序", + "Advanced": "進階", + "t6 tRTW Fine Tune": "t6 tRTW 微調", + "tRTW Fine Tune": "tRTW 微調", + "t7 tWTR Fine Tune": "t7 tWTR 微調", + "tWTR Fine Tune": "tWTR 微調", + "Memory Latencies": "記憶體延遲", + "Read Latency": "讀取延遲", + "Write Latency": "寫入延遲", + "CPU Boost Clock": "CPU 升壓時鐘", + "CPU UV": "中央處理器紫外線", + "CPU Unlock": "CPU解鎖", + "CPU VMIN": "CPU最低電壓", + "CPU Max Voltage": "CPU最大電壓", + "CPU Max Clock": "CPU 最大時脈", + "Extreme UV Table": "極端紫外線表", + "CPU UV Table": "CPU UV表", + "CPU Low UV": "CPU低紫外線", + "CPU High UV": "CPU高紫外線", + "CPU Low VMIN": "CPU 低 VMIN", + "CPU High VMIN": "CPU 高 VMIN", + "No Undervolt": "無欠壓", + "SLT Table": "SLT表", + "HiOPT Table": "HiOPT表", + "GPU Undervolt Table": "GPU 欠壓表", + "GPU Minimum Voltage": "GPU最低電壓", + "Calculate GPU Vmin": "計算 GPU Vmin", + "GPU VMIN": "GPU VMIN", + "GPU Maximum Voltage": "GPU最大電壓", + "GPU Voltage Offset": "GPU電壓偏移", + "Do not override": "不要覆蓋", + "Enabled (Default)": "啟用(預設)", + "96.6% limit": "96.6%限制", + "99.7% limit": "99.7%限制", + "GPU Scheduling Override": "GPU 調度覆蓋", + "Official Service": "官方服務", + "GPU DVFS Mode": "GPU DVFS 模式", + "GPU DVFS Offset": "GPU DVFS 偏移", + "GPU Voltage Table": "GPU電壓表", + "GPU Custom Table (mV)": "GPU 自訂表 (mV)", + "1075MHz without UV, 1152MHz on SLT": "無 UV 時為 1075MHz,SLT 時為 1152MHz", + "or 1228MHz on HiOPT can cause ": "或 HiOPT 上的 1228MHz 可能會導致", + "permanent damage to your Switch!": "對您的 Switch 造成永久性損壞!", + "921MHz without UV and 960MHz on": "無 UV 時為 921MHz,開啟時為 960MHz", + "SLT or HiOPT can cause ": "SLT 或 HiOPT 可能會導致" +} diff --git a/Source/hoc-clk/overlay/scripts/make_logo.sh b/Source/hoc-clk/overlay/scripts/make_logo.sh new file mode 100644 index 00000000..bbd01a7f --- /dev/null +++ b/Source/hoc-clk/overlay/scripts/make_logo.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +DEST="$CURRENT_DIR/../data/logo_rgba.bin" +FONT="$CURRENT_DIR/../../manager/resources/fira/FiraSans-Medium-rnx.ttf" +FONT_SIZE="30.5" +TEXT="sys-clk" + +function render() { + convert -background transparent -colorspace RGB -depth 8 -fill white -font "$1" -pointsize "$2" "label:$3" "$4" +} + +render "$FONT" "$FONT_SIZE" "$TEXT" info: +render "$FONT" "$FONT_SIZE" "$TEXT" "RGBA:$DEST" \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ipc.h b/Source/hoc-clk/overlay/src/ipc.h new file mode 100644 index 00000000..8186849d --- /dev/null +++ b/Source/hoc-clk/overlay/src/ipc.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#if defined(__cplusplus) +#include "cpp_util.hpp" + +extern "C" +{ +#endif + +#include +#include + +#if defined(__cplusplus) +} +#endif diff --git a/Source/hoc-clk/overlay/src/main.cpp b/Source/hoc-clk/overlay/src/main.cpp new file mode 100644 index 00000000..ec2fd36a --- /dev/null +++ b/Source/hoc-clk/overlay/src/main.cpp @@ -0,0 +1,97 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#define TESLA_INIT_IMPL +#include +#include "ui/gui/fatal_gui.h" +#include "ui/gui/main_gui.h" +#include "rgltr_services.h" // for extern Service g_rgltrSrv, etc. + +class AppOverlay : public tsl::Overlay +{ + public: + AppOverlay() {} + ~AppOverlay() {} + + //virtual void initServices() override { + // rgltrInitialize(); + //} + + virtual void exitServices() override { + rgltrExit(); + sysclkIpcExit(); + } + + virtual std::unique_ptr loadInitialGui() override + { + uint32_t apiVersion; + smInitialize(); + + tsl::hlp::ScopeGuard smGuard([] { smExit(); }); + + if(!sysclkIpcRunning()) + { + return initially( + "hoc-clk is not running.\n\n" + "\n" + "Please make sure it is correctly\n\n" + "installed and enabled.", + "" + ); + } + + if(R_FAILED(sysclkIpcInitialize()) || R_FAILED(sysclkIpcGetAPIVersion(&apiVersion))) + { + return initially( + "Could not connect to hoc-clk.\n\n" + "\n" + "Please make sure it is correctly\n\n" + "installed and enabled.", + "" + ); + } + + if(SYSCLK_IPC_API_VERSION != apiVersion) + { + return initially( + "Overlay not compatible with\n\n" + "the running hoc-clk version.\n\n" + "\n" + "Please make sure everything is\n\n" + "installed and up to date.", + "" + ); + } + + return initially(); + } +}; + +int main(int argc, char **argv) +{ + return tsl::loop(argc, argv); +} diff --git a/Source/hoc-clk/overlay/src/ui/elements/base_frame.h b/Source/hoc-clk/overlay/src/ui/elements/base_frame.h new file mode 100644 index 00000000..58f6025f --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/elements/base_frame.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include +#include "../gui/base_gui.h" + +class BaseFrame : public tsl::elm::HeaderOverlayFrame +{ + public: + BaseFrame(BaseGui* gui) : tsl::elm::HeaderOverlayFrame(234) { + this->gui = gui; + } + + void draw(tsl::gfx::Renderer* renderer) override + { + tsl::elm::HeaderOverlayFrame::draw(renderer); + this->gui->preDraw(renderer); + } + + protected: + BaseGui* gui; +}; diff --git a/Source/hoc-clk/overlay/src/ui/format.h b/Source/hoc-clk/overlay/src/ui/format.h new file mode 100644 index 00000000..008c6a40 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/format.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include +#include +#include + +#define FREQ_DEFAULT_TEXT "Do not override" + +static inline std::string formatListFreqMHz(std::uint32_t mhz) +{ + if(mhz == 0) + { + return FREQ_DEFAULT_TEXT; + } + + char buf[10]; + return std::string(buf, snprintf(buf, sizeof(buf), "%u MHz", mhz)); +} + +static inline std::string formatListFreqHz(std::uint32_t hz) { return formatListFreqMHz(hz / 1000000); } diff --git a/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp new file mode 100644 index 00000000..f4632ba6 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/about_gui.cpp @@ -0,0 +1,309 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 "about_gui.h" +#include "../format.h" +#include +#include +#include "cat.h" +#include "ult_ext.h" + +tsl::elm::ListItem* SpeedoItem = NULL; +tsl::elm::ListItem* IddqItem = NULL; +tsl::elm::ListItem* DramModule = NULL; +tsl::elm::ListItem* sysdockStatusItem = NULL; +tsl::elm::ListItem* saltyNXStatusItem = NULL; +tsl::elm::ListItem* RETROStatusItem = NULL; +tsl::elm::ListItem* waferCordsItem = NULL; + +ImageElement* CatImage = NULL; +HideableCategoryHeader* CatHeader = NULL; +HideableCustomDrawer* CatSpacer = NULL; +int lightosClickCount = 0; + +AboutGui::AboutGui() +{ + memset(strings, 0, sizeof(strings)); +} + +AboutGui::~AboutGui() +{ +} + +void AboutGui::listUI() +{ + this->listElement->addItem( + new tsl::elm::CategoryHeader("Information") + ); + + SpeedoItem = + new tsl::elm::ListItem("Speedo:"); + this->listElement->addItem(SpeedoItem); + + IddqItem = + new tsl::elm::ListItem("IDDQ:"); + this->listElement->addItem(IddqItem); + + DramModule = + new tsl::elm::ListItem("Module: "); + this->listElement->addItem(DramModule); + + if(!IsHoag()) { + sysdockStatusItem = + new tsl::elm::ListItem("sys-dock status:"); + this->listElement->addItem(sysdockStatusItem); + } + + saltyNXStatusItem = + new tsl::elm::ListItem("SaltyNX status:"); + this->listElement->addItem(saltyNXStatusItem); + + if(IsHoag()) { + RETROStatusItem = + new tsl::elm::ListItem("RR Display status:"); + this->listElement->addItem(RETROStatusItem); + } + + waferCordsItem = + new tsl::elm::ListItem("Wafer Position:"); + this->listElement->addItem(waferCordsItem); + + this->listElement->addItem( + new tsl::elm::CategoryHeader("Credits") + ); + + this->listElement->addItem( + new tsl::elm::CategoryHeader("Developers") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Souldbminer") + ); + + // Create special clickable item for Lightos + auto lightosItem = new tsl::elm::ListItem("Lightos_"); + lightosItem->setClickListener([this](u64 keys) -> bool { + if (keys & HidNpadButton_A) { + lightosClickCount++; + if (lightosClickCount >= 10) { + if (CatImage != NULL) CatImage->setVisible(true); + if (CatHeader != NULL) CatHeader->setVisible(true); + if (CatSpacer != NULL) CatSpacer->setVisible(true); + } + return true; + } + return false; + }); + this->listElement->addItem(lightosItem); + + // ---- Contributors ---- + this->listElement->addItem( + new tsl::elm::CategoryHeader("Contributors") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Dom") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Blaise25") + ); + + // ---- Testers ---- + this->listElement->addItem( + new tsl::elm::CategoryHeader("Testers") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Dom") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Samybigio2011") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Delta") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Miki1305") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Happy") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Flopsider") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Winnerboi77") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Blaise25") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("WE1ZARD") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Alvise") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("TDRR") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("agjeococh") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Xenshen") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("Frost") + ); + + // ---- Special Thanks ---- + this->listElement->addItem( + new tsl::elm::CategoryHeader("Special Thanks") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("ScriesM - Atmosphere CFW") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("KazushiMe - Switch OC Suite") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("hanai3bi - Switch OC Suite & EOS") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("NaGaa95 - L4T-OC-Kernel") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("B3711 - EOS") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("RetroNX - sys-clk") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("b0rd2death - Ultrahand") + ); + + this->listElement->addItem( + new tsl::elm::ListItem("MasaGratoR - Status Monitor") + ); + + // Create cat elements but hide them initially + CatHeader = new HideableCategoryHeader("Cat"); + CatHeader->setVisible(false); + this->listElement->addItem(CatHeader); + + CatImage = new ImageElement(CAT_DATA, CAT_WIDTH, CAT_HEIGHT); + CatImage->setVisible(false); + this->listElement->addItem(CatImage); + + CatSpacer = new HideableCustomDrawer(75); + CatSpacer->setVisible(false); + this->listElement->addItem(CatSpacer); +} + +std::string AboutGui::formatRamModule() { + switch (this->context->dramID) { + case 0: return "HB-MGCH 4GB"; + case 4: return "HM-MGCH 6GB"; + case 7: return "HM-MGXX 8GB"; + + case 1: return "NLE 4GB"; + case 2: return "WT:C 4GB"; + + case 3: + case 5 ... 6: return "NEE 4GB"; + + case 8: + case 12: return "AM-MGCJ 4GB"; + case 9: + case 13: return "AM-MGCJ 8GB"; + + case 10: + case 14: return "NME 4GB"; + + case 11: + case 15: return "WT:E 4GB"; + + case 17: + case 19: + case 24: return "AA-MGCL 4GB"; + + case 18: + case 23: + case 28: return "AA-MGCL 8GB"; + + case 20 ... 22: return "AB-MGCL 4GB"; + + case 25 ... 27: return "WT:F 4GB"; + + case 29 ... 31: return "x267 4GB"; + + case 32 ... 34: return "WT:B 4GB"; + + default: return "Unknown"; + } +} + +void AboutGui::update() +{ + BaseMenuGui::update(); +} + +void AboutGui::refresh() +{ + BaseMenuGui::refresh(); + + if (!this->context) + return; + // Format strings once per refresh + sprintf(strings[0], "%u/%u/%u", this->context->speedos[HorizonOCSpeedo_CPU], this->context->speedos[HorizonOCSpeedo_GPU], this->context->speedos[HorizonOCSpeedo_SOC]); + // This is how hekate does it + sprintf(strings[1], "%u/%u/%u", this->context->iddq[HorizonOCSpeedo_CPU], this->context->iddq[HorizonOCSpeedo_GPU], this->context->iddq[HorizonOCSpeedo_SOC]); + SpeedoItem->setValue(strings[0]); + IddqItem->setValue(strings[1]); + DramModule->setValue(formatRamModule()); + if(!IsHoag()) + sysdockStatusItem->setValue(this->context->isSysDockInstalled ? "Installed" : "Not Installed"); + + saltyNXStatusItem->setValue(this->context->isSaltyNXInstalled ? "Installed" : "Not Installed"); + + if(IsHoag()) + RETROStatusItem->setValue(this->context->isUsingRetroSuper ? "Installed" : "Not Installed"); + + sprintf(strings[2], "X: %u Y: %u", this->context->waferX, this->context->waferY); + waferCordsItem->setValue(strings[2]); +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/about_gui.h b/Source/hoc-clk/overlay/src/ui/gui/about_gui.h new file mode 100644 index 00000000..f2fef93a --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/about_gui.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include "../../ipc.h" +#include "base_menu_gui.h" +#include "freq_choice_gui.h" +#include "value_choice_gui.h" +#include "fatal_gui.h" +#include +#include + +class AboutGui : public BaseMenuGui +{ +protected: + char strings[32][32]; + +public: + AboutGui(); + ~AboutGui(); + + void listUI() override; + void update() override; + void refresh() override; + +private: + std::string formatRamModule(); +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp new file mode 100644 index 00000000..44a903e7 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.cpp @@ -0,0 +1,468 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#include "app_profile_gui.h" + +#include "../format.h" +#include "fatal_gui.h" +#include "labels.h" +AppProfileGui::AppProfileGui(std::uint64_t applicationId, SysClkTitleProfileList* profileList) +{ + this->applicationId = applicationId; + this->profileList = profileList; +} + +AppProfileGui::~AppProfileGui() +{ + delete this->profileList; +} + +void AppProfileGui::openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfile profile, SysClkModule module) +{ + std::uint32_t hzList[SYSCLK_FREQ_LIST_MAX]; + std::uint32_t hzCount; + Result rc = sysclkIpcGetFreqList(module, &hzList[0], SYSCLK_FREQ_LIST_MAX, &hzCount); + if(R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc); + return; + } + std::map labels = {}; + + if (module == SysClkModule_CPU) { + bool isUsingUv = IsMariko() ? configList.values[KipConfigValue_marikoCpuUVHigh] : configList.values[KipConfigValue_eristaCpuUV]; + labels = IsMariko() ? (isUsingUv ? cpu_freq_label_m_uv : cpu_freq_label_m) : (isUsingUv ? cpu_freq_label_e_uv : cpu_freq_label_e); + } else if (module == SysClkModule_GPU) { + labels = IsMariko() ? *(marikoUV[configList.values[KipConfigValue_marikoGpuUV]]) : *(eristaUV[configList.values[KipConfigValue_eristaGpuUV]]); + } + tsl::changeTo(this->profileList->mhzMap[profile][module] * 1000000, hzList, hzCount, module, [this, listItem, profile, module](std::uint32_t hz) { + this->profileList->mhzMap[profile][module] = hz / 1000000; + listItem->setValue(formatListFreqMHz(this->profileList->mhzMap[profile][module])); + Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList); + if(R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + return false; + } + + return true; + }, true, labels + ); +} + +void AppProfileGui::openValueChoiceGui( + tsl::elm::ListItem* listItem, + std::uint32_t currentValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds, + bool enableThresholds, + const std::map& labels, + const std::vector& namedValues, + bool showDefaultValue +) +{ + tsl::changeTo( + currentValue, + range, + categoryName, + listener, + thresholds, + enableThresholds, + labels, + namedValues, + showDefaultValue, + true + ); +} + +void AppProfileGui::addModuleListItem(SysClkProfile profile, SysClkModule module) +{ + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(sysclkFormatModule(module, true)); + listItem->setValue(formatListFreqMHz(this->profileList->mhzMap[profile][module])); + listItem->setClickListener([this, listItem, profile, module](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A) + { + this->openFreqChoiceGui(listItem, profile, module); + return true; + } + else if((keys & HidNpadButton_Y) == HidNpadButton_Y) + { + // Reset to "Default" (0 MHz) + this->profileList->mhzMap[profile][module] = 0; + listItem->setValue(formatListFreqMHz(0)); + + Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList); + if(R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + return false; + } + return true; + } + return false; + }); + this->listElement->addItem(listItem); +} + +void AppProfileGui::addModuleListItemToggle(SysClkProfile profile, SysClkModule module) +{ + const char* moduleName = sysclkFormatModule(module, true); + std::uint32_t currentValue = this->profileList->mhzMap[profile][module]; + + tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(moduleName, currentValue != 0); + + toggle->setStateChangedListener([this, profile, module](bool state) { + this->profileList->mhzMap[profile][module] = state ? 1 : 0; + + Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList); + if(R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + } + }); + + this->listElement->addItem(toggle); +} + +std::string AppProfileGui::formatValueDisplay( + std::uint32_t value, + const std::vector& namedValues, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces +) +{ + if (value == 0) { + return FREQ_DEFAULT_TEXT; + } + + if (!namedValues.empty()) { + for (const auto& namedValue : namedValues) { + if (namedValue.value == value) { + return namedValue.name; + } + } + } + + char buf[32]; + if (decimalPlaces > 0) { + double displayValue = (double)value / divisor; + snprintf(buf, sizeof(buf), "%.*f%s", decimalPlaces, displayValue, suffix.c_str()); + } else { + snprintf(buf, sizeof(buf), "%u%s", value / divisor, suffix.c_str()); + } + return std::string(buf); +} + +void AppProfileGui::addModuleListItemValue( + SysClkProfile profile, + SysClkModule module, + const std::string& categoryName, + std::uint32_t min, + std::uint32_t max, + std::uint32_t step, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces, + ValueThresholds thresholds, + std::vector namedValues, + bool showDefaultValue +) +{ + tsl::elm::ListItem* listItem = + new tsl::elm::ListItem(sysclkFormatModule(module, true)); + std::uint32_t storedValue = this->profileList->mhzMap[profile][module]; + + listItem->setValue(this->formatValueDisplay(storedValue, namedValues, suffix, divisor, decimalPlaces)); + + listItem->setClickListener( + [this, + listItem, + profile, + module, + categoryName, + min, + max, + step, + suffix, + divisor, + decimalPlaces, + thresholds, + namedValues, + showDefaultValue](u64 keys) + { + if ((keys & HidNpadButton_A) == HidNpadButton_A) + { + std::uint32_t currentValue = + this->profileList->mhzMap[profile][module] * divisor; + ValueRange range( + min, + max, + step, + suffix, + divisor, + decimalPlaces + ); + this->openValueChoiceGui( + listItem, + currentValue, + range, + categoryName, + [this, listItem, profile, module, divisor, suffix, decimalPlaces, thresholds, namedValues](std::uint32_t value) -> bool + { + this->profileList->mhzMap[profile][module] = value / divisor; + listItem->setValue(this->formatValueDisplay(value / divisor, namedValues, suffix, divisor, decimalPlaces)); + + Result rc = + sysclkIpcSetProfiles(this->applicationId, + this->profileList); + if (R_FAILED(rc)) + { + FatalGui::openWithResultCode( + "sysclkIpcSetProfiles", rc); + return false; + } + return true; + }, + thresholds, + false, + {}, + namedValues, + showDefaultValue + ); + return true; + } + else if ((keys & HidNpadButton_Y) == HidNpadButton_Y) + { + this->profileList->mhzMap[profile][module] = 0; + listItem->setValue(FREQ_DEFAULT_TEXT); + Result rc = + sysclkIpcSetProfiles(this->applicationId, + this->profileList); + if (R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + return false; + } + return true; + } + return false; + }); + this->listElement->addItem(listItem); +} + +class GovernorProfileSubMenuGui : public BaseMenuGui { + uint64_t applicationId; + SysClkTitleProfileList* profileList; + SysClkProfile profile; +public: + GovernorProfileSubMenuGui(uint64_t appId, SysClkTitleProfileList* pList, SysClkProfile prof) + : applicationId(appId), profileList(pList), profile(prof) {} + + void listUI() override { + Result rc = sysclkIpcGetConfigValues(&configList); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + this->listElement->addItem(new tsl::elm::CategoryHeader("Governor")); + + static constexpr struct { const char* label; int shift; } kAll[] = { + {"CPU", 0}, {"GPU", 8}, {"VRR", 16} + }; + int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 3 : 2; + + for (int i = 0; i < count; i++) { + u8 cur = (this->profileList->mhzMap[this->profile][HorizonOCModule_Governor] >> kAll[i].shift) & 0xFF; + auto* bar = new tsl::elm::NamedStepTrackBar( + "", {"Do Not Override", "Disabled", "Enabled"}, + true, kAll[i].label + ); + bar->setProgress(cur); + int shift = kAll[i].shift; + bar->setValueChangedListener([this, shift](u8 value) { + u32& packed = this->profileList->mhzMap[this->profile][HorizonOCModule_Governor]; + packed = (packed & ~(0xFFu << shift)) | ((u32)value << shift); + Result rc = sysclkIpcSetProfiles(this->applicationId, this->profileList); + if (R_FAILED(rc)) FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + }); + this->listElement->addItem(bar); + } + } +}; + +void AppProfileGui::addGovernorSection(SysClkProfile profile) { + auto* item = new tsl::elm::ListItem("Governor"); + item->setValue("\u2192"); // Right arrow + item->setClickListener([this, profile](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo( + this->applicationId, this->profileList, profile + ); + return true; + } + return false; + }); + this->listElement->addItem(item); +} + +void AppProfileGui::addProfileUI(SysClkProfile profile) +{ + BaseMenuGui::refresh(); + if(!this->context) + return; + Result rc = sysclkIpcGetConfigValues(&configList); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + if((profile == SysClkProfile_Docked && IsHoag()) || profile == SysClkProfile_HandheldCharging) + return; + this->listElement->addItem(new tsl::elm::CategoryHeader(sysclkFormatProfile(profile, true) + std::string(" ") + ult::DIVIDER_SYMBOL + " \ue0e3 Reset")); + this->addModuleListItem(profile, SysClkModule_CPU); + this->addModuleListItem(profile, SysClkModule_GPU); + this->addModuleListItem(profile, SysClkModule_MEM); + #if IS_MINIMAL == 0 + ValueThresholds lcdThresholds(60, 65); + ValueThresholds DThresholdsOLED(120, 500); // nothing is dangerous, past 120hz you can get applet crashes + + if(configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) { + if(profile != SysClkProfile_Docked) { + this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", IsAula() ? 45 : 40, configList.values[HorizonOCConfigValue_MaxDisplayClockH], this->context->isUsingRetroSuper ? 5 : 1, " Hz", 1, 0, lcdThresholds); + } else { + if(IsAula() && this->context->isSysDockInstalled) { + std::vector dockedFreqs = { + NamedValue("40 Hz", 40), + NamedValue("45 Hz", 45), + NamedValue("50 Hz", 50), + NamedValue("55 Hz", 55), + NamedValue("60 Hz", 60), + NamedValue("70 Hz", 70), + NamedValue("72 Hz", 72), + NamedValue("75 Hz", 75), + NamedValue("80 Hz", 80), + NamedValue("90 Hz", 90), + NamedValue("95 Hz", 95), + NamedValue("100 Hz", 100), + NamedValue("110 Hz", 110), + NamedValue("120 Hz", 120), + NamedValue("130 Hz", 130), + NamedValue("140 Hz", 140), + NamedValue("144 Hz", 144), + NamedValue("150 Hz", 150), + NamedValue("160 Hz", 160), + NamedValue("165 Hz", 165), + NamedValue("170 Hz", 170), + NamedValue("180 Hz", 180), + NamedValue("190 Hz", 190), + NamedValue("200 Hz", 200), + NamedValue("210 Hz", 210), + NamedValue("220 Hz", 220), + NamedValue("230 Hz", 230), + NamedValue("240 Hz", 240) + }; + + this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 40, 240, 1, " Hz", 1, 0, DThresholdsOLED, dockedFreqs); + } else if (IsAula() && !this->context->isSysDockInstalled) { + std::vector dockedFreqsLimited = { + NamedValue("50 Hz", 50), + NamedValue("55 Hz", 55), + NamedValue("60 Hz", 60), + NamedValue("65 Hz", 65), + NamedValue("70 Hz", 70), + NamedValue("72 Hz", 72), + NamedValue("75 Hz", 75) + }; + + this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 75, 1, " Hz", 1, 0, DThresholdsOLED, dockedFreqsLimited); + } else { + std::vector dockedFreqsStandard = { + NamedValue("50 Hz", 50), + NamedValue("55 Hz", 55), + NamedValue("60 Hz", 60), + NamedValue("65 Hz", 65), + NamedValue("70 Hz", 70), + NamedValue("72 Hz", 72), + NamedValue("75 Hz", 75), + NamedValue("80 Hz", 80), + NamedValue("85 Hz", 85), + NamedValue("90 Hz", 90), + NamedValue("95 Hz", 95), + NamedValue("100 Hz", 100), + NamedValue("105 Hz", 105), + NamedValue("110 Hz", 110), + NamedValue("115 Hz", 115), + NamedValue("120 Hz", 120) + }; + this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 1, " Hz", 1, 0, ValueThresholds(), dockedFreqsStandard); + } + } + } + #endif + this->addGovernorSection(profile); +} + +void AppProfileGui::listUI() +{ + this->addProfileUI(SysClkProfile_Docked); + this->addProfileUI(SysClkProfile_Handheld); + this->addProfileUI(SysClkProfile_HandheldCharging); + this->addProfileUI(SysClkProfile_HandheldChargingOfficial); + this->addProfileUI(SysClkProfile_HandheldChargingUSB); +} + +void AppProfileGui::changeTo(std::uint64_t applicationId) +{ + SysClkTitleProfileList* profileList = new SysClkTitleProfileList; + Result rc = sysclkIpcGetProfiles(applicationId, profileList); + if(R_FAILED(rc)) + { + delete profileList; + FatalGui::openWithResultCode("sysclkIpcGetProfiles", rc); + return; + } + + tsl::changeTo(applicationId, profileList); +} + +void AppProfileGui::update() +{ + BaseMenuGui::update(); + + if((this->context && this->applicationId != this->context->applicationId) && this->applicationId != SYSCLK_GLOBAL_PROFILE_TID) + { + tsl::changeTo( + "Application changed\n\n" + "\n" + "The running application changed\n\n" + "while editing was going on.", + "" + ); + } +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h new file mode 100644 index 00000000..e261282f --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/app_profile_gui.h @@ -0,0 +1,81 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ +#pragma once +#include "../../ipc.h" +#include "base_menu_gui.h" +#include "freq_choice_gui.h" +#include "value_choice_gui.h" +#define SYSCLK_GLOBAL_PROFILE_TID 0xA111111111111111 +class AppProfileGui : public BaseMenuGui +{ + protected: + std::uint64_t applicationId; + SysClkTitleProfileList* profileList; + void openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfile profile, SysClkModule module); + void addModuleListItem(SysClkProfile profile, SysClkModule module); + void addModuleListItemToggle(SysClkProfile profile, SysClkModule module); + void openValueChoiceGui( + tsl::elm::ListItem* listItem, + std::uint32_t currentValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds = ValueThresholds(), + bool enableThresholds = false, + const std::map& labels = {}, + const std::vector& namedValues = {}, + bool showDefaultValue = true + ); + std::string formatValueDisplay( + std::uint32_t value, + const std::vector& namedValues, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces + ); + void addModuleListItemValue( + SysClkProfile profile, + SysClkModule module, + const std::string& categoryName, + std::uint32_t min, + std::uint32_t max, + std::uint32_t step, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces, + ValueThresholds thresholds, + std::vector namedValues = {}, + bool showDefaultValue = true + ); + void addGovernorSection(SysClkProfile profile); + void addProfileUI(SysClkProfile profile); + public: + AppProfileGui(std::uint64_t applicationId, SysClkTitleProfileList* profileList); + ~AppProfileGui(); + void listUI() override; + static void changeTo(std::uint64_t applicationId); + void update() override; +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/base_gui.cpp new file mode 100644 index 00000000..b98865f7 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/base_gui.cpp @@ -0,0 +1,144 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + +#include "base_gui.h" + +#include "../elements/base_frame.h" + +#include +#include + +#define LOGO_X 20 +#define LOGO_Y 50 +#define LOGO_LABEL_FONT_SIZE 45 + +#define VERSION_X (LOGO_X + 250) +#define VERSION_Y (LOGO_Y - 40) +#define VERSION_FONT_SIZE 15 + +std::string getVersionString() { + char buf[0x100] = ""; + Result rc = sysclkIpcGetVersionString(buf, sizeof(buf)); + if (R_FAILED(rc) || buf[0] == '\0') { + return "Unknown"; + } + return std::string(buf); +} + +static constexpr tsl::Color dynamicLogoRGB1 = tsl::Color(0, 4, 8, 15); +static constexpr tsl::Color dynamicLogoRGB2 = tsl::Color(7, 15, 15, 15); +static constexpr tsl::Color STATIC_AQUA = tsl::Color(2, 10, 12, 15); +const std::string name = "Horizon OC Zeus"; + +static s32 drawDynamicUltraText( + tsl::gfx::Renderer* renderer, + s32 startX, + s32 y, + u32 fontSize, + const tsl::Color& staticColor, + bool useNotificationMethod = false) +{ + static constexpr double cycleDuration = 1.6; + + s32 currentX = startX; + + const u64 currentTime_ns = armTicksToNs(armGetSystemTick()); + const double timeNow = static_cast(currentTime_ns) / 1e9; + const double timeBase = fmod(timeNow, cycleDuration); + + const double waveScale = 2.0 * M_PI / cycleDuration; + + for (size_t i = 0; i < name.size(); i++) + { + char letter = name[i]; + if (letter == '\0') break; + + double phase = waveScale * (timeBase + i * 0.12); + + double raw = cos(phase); + double n = (raw + 1.0) * 0.5; + double s1 = n * n * (3.0 - 2.0 * n); + double blend = std::clamp(s1, 0.0, 1.0); + + double glow = (cos(phase * 1.5) + 1.0) * 0.5; + double brightness = 0.75 + glow * 0.25; + + u8 r = static_cast( + (dynamicLogoRGB1.r + (dynamicLogoRGB2.r - dynamicLogoRGB1.r) * blend) * brightness + ); + u8 g = static_cast( + (dynamicLogoRGB1.g + (dynamicLogoRGB2.g - dynamicLogoRGB1.g) * blend) * brightness + ); + u8 b = static_cast( + (dynamicLogoRGB1.b + (dynamicLogoRGB2.b - dynamicLogoRGB1.b) * blend) * brightness + ); + + r = std::clamp(r, 0, 15); + g = std::clamp(g, 0, 15); + b = std::clamp(b, 0, 15); + + bool lightning = (fmod(timeNow, 5.0) < 0.15); + if (lightning) { + r = std::min(r + 4, 15); + g = std::min(g + 4, 15); + b = std::min(b + 15, 15); + } + + tsl::Color color(r, g, b, 15); + + std::string ls(1, letter); + + if (useNotificationMethod) + currentX += renderer->drawNotificationString(ls, false, currentX, y, fontSize, color).first; + else + currentX += renderer->drawString(ls, false, currentX, y, fontSize, color).first; + } + + return currentX; +} + +void BaseGui::preDraw(tsl::gfx::Renderer* renderer) { + drawDynamicUltraText( + renderer, + LOGO_X, + LOGO_Y, + LOGO_LABEL_FONT_SIZE, + STATIC_AQUA, + false + ); +} + +tsl::elm::Element* BaseGui::createUI() +{ + BaseFrame* rootFrame = new BaseFrame(this); + rootFrame->setContent(this->baseUI()); + return rootFrame; +} + +void BaseGui::update() +{ + this->refresh(); +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_gui.h b/Source/hoc-clk/overlay/src/ui/gui/base_gui.h new file mode 100644 index 00000000..eca76c09 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/base_gui.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include +#include +#include +#include +#include + +#include "../style.h" +#include "../../ipc.h" + +class BaseGui : public tsl::Gui +{ + public: + BaseGui() {} + ~BaseGui() {} + virtual void preDraw(tsl::gfx::Renderer* renderer); + void update() override; + tsl::elm::Element* createUI() override; + virtual tsl::elm::Element* baseUI() = 0; + virtual void refresh() {} + private: +}; + + +extern std::string getVersionString(); diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp new file mode 100644 index 00000000..fdef64f9 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.cpp @@ -0,0 +1,323 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#include "base_menu_gui.h" +#include "fatal_gui.h" + +// Cache hardware model to avoid repeated syscalls + +BaseMenuGui::BaseMenuGui() : tempColors{ tsl::Color(0), tsl::Color(0), tsl::Color(0), tsl::Color(0), tsl::Color(0), tsl::Color(0), tsl::Color(0), } +{ + tsl::initializeThemeVars(); + this->context = nullptr; + this->lastContextUpdate = 0; + this->listElement = nullptr; + + + // Pre-cache hardware model during initialization + IsAula(); + IsMariko(); + IsHoag(); + + // Initialize display strings + memset(displayStrings, 0, sizeof(displayStrings)); +} + +BaseMenuGui::~BaseMenuGui() { + delete this->context; // delete handles nullptr automatically +} + +// Fast preDraw - just renders pre-computed strings +void BaseMenuGui::preDraw(tsl::gfx::Renderer* renderer) { + BaseGui::preDraw(renderer); + if(!this->context) [[unlikely]] return; + + // All constants pre-calculated and cached + static constexpr const char* const labels[] = { + "App ID", "Profile", "CPU", "GPU", "MEM", "SoC", "Board", "Skin", "Now", "Avg", "BAT", "PMIC", "FAN", "DISP", "FPS", "RES" + }; + + static constexpr u32 dataPositions[6] = {63-3+3, 200-1, 344-1-3, 200-1, 342-1, 321-1}; + + static u32 labelWidths[10]; + static bool positionsInitialized = false; + + if (!positionsInitialized) { + for (int i = 0; i < 10; i++) { + labelWidths[i] = renderer->getTextDimensions(labels[i], false, SMALL_TEXT_SIZE).first; + } + positionsInitialized = true; + } + static u32 positions[10] = {24-1, 310-labelWidths[1], 24-1, 192-labelWidths[3], 332-labelWidths[4], 24-1, 192 - labelWidths[6], 332-labelWidths[7], 192 - labelWidths[8], 332-labelWidths[9]}; + + static u32 maxProfileValueWidth = renderer->getTextDimensions("USB Charger", false, SMALL_TEXT_SIZE).first; // longest word + + u32 y = 91; + + // === TOP SECTION === + renderer->drawRoundedRect(14, 70-1, 420, 30+2, 12.0f, renderer->aWithOpacity(tsl::tableBGColor)); + + // App ID - use pre-formatted string + renderer->drawString(labels[0], false, positions[0], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(displayStrings[0], false, positions[0] + labelWidths[0] + 9, y, SMALL_TEXT_SIZE, tsl::infoTextColor); + + // Profile - use pre-formatted string + renderer->drawString(labels[1], false, 423 - maxProfileValueWidth - labelWidths[1] - 9, y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(displayStrings[1], false, 423 - maxProfileValueWidth, y, SMALL_TEXT_SIZE, tsl::infoTextColor); + + y += 38; // Direct assignment instead of += 38 + + // === MAIN DATA SECTION === + // renderer->drawRoundedRect(14, 106, 420, 156, 10.0f, renderer->aWithOpacity(tsl::tableBGColor)); + renderer->drawRoundedRect(14, 106, 420, 136, 12.0f, renderer->aWithOpacity(tsl::tableBGColor)); + // === FREQUENCY SECTION === + // Labels first (better cache locality) + renderer->drawString(labels[2], false, positions[2], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(labels[3], false, positions[3], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(labels[4], false, positions[4], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + + renderer->drawString(displayStrings[5], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // CPU real + renderer->drawString(displayStrings[6], false, dataPositions[1], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // GPU real + renderer->drawString(displayStrings[7], false, dataPositions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // MEM real + + // Current frequencies - use pre-formatted strings + // renderer->drawString(displayStrings[2], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // CPU + // renderer->drawString(displayStrings[3], false, dataPositions[1], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // GPU + // renderer->drawString(displayStrings[4], false, dataPositions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // MEM + + y += 20; // Direct assignment (129 + 20) + + renderer->drawString(displayStrings[19], false, positions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // CPU Usage + renderer->drawString(displayStrings[17], false, positions[3], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // GPU Usage + if(configList.values[HorizonOCConfigValue_RAMVoltUsageDisplayMode] == RamDisplayMode_VDD2Usage || configList.values[HorizonOCConfigValue_RAMVoltUsageDisplayMode] == RamDisplayMode_VDDQUsage) + renderer->drawString(displayStrings[18], false, positions[4], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // RAM Usage + // === REAL FREQUENCIES === + + // y += 20; // Direct assignment (149 + 20) + + // === VOLTAGES === + renderer->drawString(displayStrings[8], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // CPU voltage + renderer->drawString(displayStrings[9], false, dataPositions[1], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // GPU voltage + + renderer->drawStringWithColoredSections(displayStrings[10], false, {""}, configList.values[HorizonOCConfigValue_RAMVoltUsageDisplayMode] == RamDisplayMode_VDD2VDDQ ? dataPositions[5]-16 : dataPositions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor, tsl::separatorColor); + + y += 22; // Direct assignment (169 + 22) + + // === TEMPERATURE SECTION === + // Labels + renderer->drawString(labels[5], false, positions[5], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(labels[6], false, positions[6]-1, y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(labels[7], false, positions[7], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + + // Temperatures with color - use pre-computed colors + renderer->drawString(displayStrings[11], false, dataPositions[0], y, SMALL_TEXT_SIZE, tempColors[SysClkThermalSensor_SOC]); // SOC + renderer->drawString(displayStrings[12], false, dataPositions[1], y, SMALL_TEXT_SIZE, tempColors[SysClkThermalSensor_PCB]); // PCB + renderer->drawString(displayStrings[13], false, dataPositions[2], y, SMALL_TEXT_SIZE, tempColors[SysClkThermalSensor_Skin]); // Skin + + y += 20; // Direct assignment (191 + 20) + + renderer->drawString(displayStrings[14], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); + + // Power labels and values + renderer->drawString(labels[8], false, positions[8]-1, y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + renderer->drawString(labels[9], false, positions[9], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + + renderer->drawString(displayStrings[15], false, dataPositions[3], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Power now + renderer->drawString(displayStrings[16], false, dataPositions[4], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Power avg + + y+=20; + + renderer->drawString(labels[10], false, positions[2], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + + renderer->drawString(displayStrings[20], false, dataPositions[0], y, SMALL_TEXT_SIZE, tempColors[HorizonOCThermalSensor_Battery]); // Battery + + renderer->drawString(labels[13], false, positions[4], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); // disp label + + renderer->drawString(displayStrings[25], false, dataPositions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // disp freq + + renderer->drawString(labels[12], false, positions[3], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); // fan label + + renderer->drawString(displayStrings[24], false, dataPositions[1], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // fan speed + + y+=20; + + renderer->drawString(displayStrings[21], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Bat voltage + renderer->drawString(displayStrings[23], false, positions[2] - 2, y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Bat Age + + if(this->context->isSaltyNXInstalled) { + + renderer->drawString(labels[15], false, positions[3], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); // RES label + renderer->drawString(displayStrings[27], false, dataPositions[1], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // RES + + renderer->drawString(labels[14], false, positions[4], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); // FPS label + renderer->drawString(displayStrings[26], false, dataPositions[2], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // FPS + + } + + y+=20; +} + +// Optimized refresh - now does all the string formatting once per second +void BaseMenuGui::refresh() +{ + const u64 ticks = armGetSystemTick(); + // Use cached comparison - 1 billion nanoseconds + if (armTicksToNs(ticks - this->lastContextUpdate) <= 1000000000UL) [[likely]] { + return; // Early exit for most calls + } + + this->lastContextUpdate = ticks; + + // Lazy context allocation + if (!this->context) [[unlikely]] { + this->context = new SysClkContext; + } + + // === SYSCLK CONTEXT UPDATE === + Result rc = sysclkIpcGetCurrentContext(this->context); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetCurrentContext", rc); + return; + } + + rc = sysclkIpcGetConfigValues(&configList); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + // dockedHighestAllowedRefreshRate = this->context->maxDisplayFreq; + + // === FORMAT ALL DISPLAY STRINGS (once per second) === + // App ID (hex conversion) + sprintf(displayStrings[0], "%016lX", context->applicationId); + + // Profile + strcpy(displayStrings[1], sysclkFormatProfile(context->profile, true)); + + // Current frequencies + u32 hz = context->freqs[SysClkModule_CPU]; // CPU + sprintf(displayStrings[2], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + hz = context->freqs[SysClkModule_GPU]; // GPU + sprintf(displayStrings[3], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + hz = context->freqs[SysClkModule_MEM]; // MEM + sprintf(displayStrings[4], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + // Real frequencies + hz = context->realFreqs[SysClkModule_CPU]; // CPU + sprintf(displayStrings[5], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + hz = context->realFreqs[SysClkModule_GPU]; // GPU + sprintf(displayStrings[6], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + hz = context->realFreqs[SysClkModule_MEM]; // MEM + sprintf(displayStrings[7], "%u.%u MHz", hz / 1000000U, (hz / 100000U) % 10U); + + // Voltages + sprintf(displayStrings[8], "%.1f mV", context->voltages[HocClkVoltage_CPU] / 1000.0); + sprintf(displayStrings[9], "%.1f mV", context->voltages[HocClkVoltage_GPU] / 1000.0); + + switch(configList.values[HorizonOCConfigValue_RAMVoltUsageDisplayMode]) { + case RamDisplayMode_VDD2VDDQ: + sprintf(displayStrings[10], "%u.%u%u mV", context->voltages[HocClkVoltage_EMCVDD2] / 1000U, (context->voltages[HocClkVoltage_EMCVDD2] % 1000U) / 100U, context->voltages[HocClkVoltage_EMCVDDQ_MarikoOnly] / 1000U); + break; + case RamDisplayMode_VDD2Usage: + sprintf(displayStrings[10], "%u.%u mV", context->voltages[HocClkVoltage_EMCVDD2] / 1000U, (context->voltages[HocClkVoltage_EMCVDD2] % 1000U) / 100U); + break; + case RamDisplayMode_VDDQUsage: + sprintf(displayStrings[10], "%u.%u mV", context->voltages[HocClkVoltage_EMCVDDQ_MarikoOnly] / 1000U, (context->voltages[HocClkVoltage_EMCVDDQ_MarikoOnly] % 1000U) / 100U); + break; + default: + strcpy(displayStrings[10], "N/A"); + break; + } + + // Temperatures and pre-compute colors + u32 millis = context->temps[SysClkThermalSensor_SOC]; // SOC + sprintf(displayStrings[11], "%u.%u °C", millis / 1000U, (millis % 1000U) / 100U); + tempColors[SysClkThermalSensor_SOC] = tsl::GradientColor(millis * 0.001f); + + millis = context->temps[SysClkThermalSensor_PCB]; // PCB + sprintf(displayStrings[12], "%u.%u °C", millis / 1000U, (millis % 1000U) / 100U); + tempColors[SysClkThermalSensor_PCB] = tsl::GradientColor(millis * 0.001f); + + millis = context->temps[SysClkThermalSensor_Skin]; // Skin + sprintf(displayStrings[13], "%u.%u °C", millis / 1000U, (millis % 1000U) / 100U); + tempColors[SysClkThermalSensor_Skin] = tsl::GradientColor(millis * 0.001f); + + // SOC voltage (if available) + sprintf(displayStrings[14], "%u mV", context->voltages[HocClkVoltage_SOC] / 1000U); + + // Power + sprintf(displayStrings[15], "%d mW", context->power[0]); // Now + sprintf(displayStrings[16], "%d mW", context->power[1]); // Avg + + sprintf(displayStrings[17], "%u%%", context->partLoad[HocClkPartLoad_GPU] / 10); + sprintf(displayStrings[18], "%u%%", context->partLoad[SysClkPartLoad_EMC] / 10); + sprintf(displayStrings[19], "%u%%", context->partLoad[HocClkPartLoad_CPUMax] / 10); + + millis = context->temps[HorizonOCThermalSensor_Battery]; // Battery + sprintf(displayStrings[20], "%u.%u °C", millis / 1000U, (millis % 1000U) / 100U); + tempColors[HorizonOCThermalSensor_Battery] = tsl::GradientColor(millis * 0.001f); + + sprintf(displayStrings[21], "%d mV", context->voltages[HocClkVoltage_Battery]); // BAT AVG + + sprintf(displayStrings[23], "%u%%", context->partLoad[HocClkPartLoad_BAT] / 1000); + + sprintf(displayStrings[24], "%u%%", context->partLoad[HocClkPartLoad_FAN]); + + sprintf(displayStrings[25], "%u Hz", context->realFreqs[HorizonOCModule_Display]); + if(this->context->isSaltyNXInstalled) { + if(context->fps == 254) { + strcpy(displayStrings[26], "N/A"); + } else { + memset(displayStrings[26], 0, sizeof(displayStrings[26])); + sprintf(displayStrings[26], "%u", context->fps); + } + } + + if(this->context->isSaltyNXInstalled) { + if(context->resolutionHeight == 0) { + strcpy(displayStrings[27], "N/A"); + } else { + memset(displayStrings[27], 0, sizeof(displayStrings[27])); + sprintf(displayStrings[27], "%up", context->resolutionHeight); + } + } + +} + +tsl::elm::Element* BaseMenuGui::baseUI() +{ + auto* list = new tsl::elm::List(); + list->addItem(new tsl::elm::CustomDrawer([](tsl::gfx::Renderer*, s32, s32, s32, s32) {}), 10); // add a bit of space + this->listElement = list; + this->listUI(); + + return list; +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h new file mode 100644 index 00000000..50650986 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/base_menu_gui.h @@ -0,0 +1,91 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include "../../ipc.h" +#include "base_gui.h" + +class BaseMenuGui : public BaseGui +{ + protected: + + public: + // u8 dockedHighestAllowedRefreshRate = 60; + SysClkContext* context; + std::uint64_t lastContextUpdate; + SysClkConfigValueList configList; + bool g_hardwareModelCached = false; + bool g_isMariko = false; + bool g_isAula = false; + bool g_isHoag = false; + SetSysProductModel HWmodel = SetSysProductModel_Invalid; + + bool IsAula() { + if (!g_hardwareModelCached) { + setsysGetProductModel(&HWmodel); + g_hardwareModelCached = true; + } + g_isAula = (HWmodel == SetSysProductModel_Aula); + return g_isAula; + } + bool IsHoag() { + if (!g_hardwareModelCached) { + setsysGetProductModel(&HWmodel); + g_hardwareModelCached = true; + } + g_isHoag = (HWmodel == SetSysProductModel_Hoag); + return g_isHoag; + } + bool IsMariko() { + if (!g_hardwareModelCached) { + setsysGetProductModel(&HWmodel); + g_hardwareModelCached = true; + } + g_isMariko = (HWmodel == SetSysProductModel_Iowa || + HWmodel == SetSysProductModel_Hoag || + HWmodel == SetSysProductModel_Calcio || + HWmodel == SetSysProductModel_Aula); + + return g_isMariko; + } + + bool IsErista() { + return !IsMariko(); + } + BaseMenuGui(); + ~BaseMenuGui(); + void preDraw(tsl::gfx::Renderer* renderer) override; + tsl::elm::List* listElement; + tsl::elm::Element* baseUI() override; + void refresh() override; + virtual void listUI() = 0; + + private: + char displayStrings[32][32]; // Pre-formatted display strings + tsl::Color tempColors[7]; // Pre-computed temperature colors +}; diff --git a/Source/hoc-clk/overlay/src/ui/gui/cat.h b/Source/hoc-clk/overlay/src/ui/gui/cat.h new file mode 100644 index 00000000..a4c56ff4 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/cat.h @@ -0,0 +1,4118 @@ +/* + * Copyright (c) Lightos and Souldbminer + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ +// this is a generated file, do not edit manually. +// cat.png - 96x128 +static const unsigned int CAT_WIDTH = 96; +static const unsigned int CAT_HEIGHT = 128; +static const unsigned char CAT_DATA[] = { + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE2, 0xE3, 0xDE, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE7, 0xE7, 0xE5, 0xFF, + 0xE9, 0xE9, 0xE7, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xD6, 0xD7, 0xD4, 0xFF, 0x56, 0x57, 0x54, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x1F, 0x1F, 0x21, 0xFF, 0x39, 0x39, 0x3B, 0xFF, + 0xB7, 0xB7, 0xB7, 0xFF, 0xE5, 0xE5, 0xE5, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, 0xE4, 0xE5, 0xDE, 0xFF, + 0xE4, 0xE5, 0xDE, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xEA, 0xEB, 0xE6, 0xFF, + 0xD5, 0xD6, 0xD1, 0xFF, 0xEA, 0xEB, 0xE6, 0xFF, 0xD2, 0xD2, 0xCE, 0xFF, + 0xDF, 0xDD, 0xD9, 0xFF, 0xF0, 0xEF, 0xEB, 0xFF, 0xDF, 0xDD, 0xD9, 0xFF, + 0xE1, 0xE0, 0xDC, 0xFF, 0xDE, 0xDA, 0xD7, 0xFF, 0xD5, 0xD1, 0xCE, 0xFF, + 0xE7, 0xE3, 0xE0, 0xFF, 0xE9, 0xE5, 0xE1, 0xFF, 0xDA, 0xD3, 0xD1, 0xFF, + 0xEC, 0xE6, 0xE4, 0xFF, 0xEC, 0xE6, 0xE4, 0xFF, 0xDA, 0xD3, 0xD1, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE2, 0xE3, 0xDE, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE6, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xA3, 0xA3, 0xA1, 0xFF, 0x22, 0x22, 0x20, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x0A, 0x0A, 0x0C, 0xFF, 0x22, 0x21, 0x24, 0xFF, + 0x6A, 0x6A, 0x6A, 0xFF, 0xD3, 0xD3, 0xD3, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE5, 0xE7, 0xDF, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xEE, 0xEF, 0xE7, 0xFF, + 0xF0, 0xF1, 0xEA, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xEA, 0xEB, 0xE6, 0xFF, 0xEE, 0xEE, 0xE9, 0xFF, + 0xE6, 0xE4, 0xE0, 0xFF, 0xE6, 0xE4, 0xE0, 0xFF, 0xD7, 0xD5, 0xD1, 0xFF, + 0xD2, 0xD0, 0xCC, 0xFF, 0x9F, 0x9B, 0x98, 0xFF, 0x9D, 0x99, 0x96, 0xFF, + 0xB7, 0xB2, 0xAF, 0xFF, 0xE7, 0xE3, 0xE0, 0xFF, 0xEB, 0xE5, 0xE3, 0xFF, + 0xD9, 0xD2, 0xD0, 0xFF, 0xD9, 0xD2, 0xD0, 0xFF, 0xEB, 0xE5, 0xE3, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xEA, 0xEA, 0xE8, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xEC, 0xED, 0xEA, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0x77, 0x77, 0x75, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x0F, 0x0F, 0x11, 0xFF, 0x13, 0x12, 0x15, 0xFF, + 0x1E, 0x1E, 0x1E, 0xFF, 0x9D, 0x9D, 0x9D, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE4, 0xE5, 0xDE, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xDD, 0xDE, 0xD7, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, + 0xEE, 0xEF, 0xE7, 0xFF, 0xF1, 0xF2, 0xEB, 0xFF, 0xF1, 0xF2, 0xED, 0xFF, + 0xF0, 0xF1, 0xEC, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE0, 0xDE, 0xDA, 0xFF, 0xBB, 0xB9, 0xB5, 0xFF, 0x7D, 0x7B, 0x77, 0xFF, + 0x37, 0x36, 0x32, 0xFF, 0x24, 0x20, 0x1D, 0xFF, 0x73, 0x6F, 0x6C, 0xFF, + 0xC4, 0xC0, 0xBD, 0xFF, 0xEE, 0xEA, 0xE7, 0xFF, 0xF2, 0xEC, 0xE9, 0xFF, + 0xE0, 0xD9, 0xD7, 0xFF, 0xE0, 0xD9, 0xD7, 0xFF, 0xF2, 0xEC, 0xE9, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE4, 0xE5, 0xE0, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xDD, 0xDE, 0xDB, 0xFF, 0xE9, 0xE9, 0xE7, 0xFF, 0xEC, 0xED, 0xEA, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0x5C, 0x5C, 0x5A, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x13, 0x12, 0x15, 0xFF, 0x13, 0x12, 0x15, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x5D, 0x5D, 0x5D, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, + 0xE4, 0xE5, 0xDE, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, 0xD2, 0xD2, 0xCE, 0xFF, + 0xEC, 0xED, 0xE8, 0xFF, 0xDB, 0xDC, 0xD7, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, + 0x70, 0x6F, 0x6B, 0xFF, 0x31, 0x30, 0x2C, 0xFF, 0x1B, 0x1A, 0x16, 0xFF, + 0x10, 0x0E, 0x0A, 0xFF, 0x43, 0x3F, 0x3C, 0xFF, 0xB2, 0xAE, 0xAB, 0xFF, + 0xF4, 0xF0, 0xED, 0xFF, 0xE6, 0xE2, 0xDF, 0xFF, 0xD8, 0xD1, 0xCF, 0xFF, + 0xEA, 0xE4, 0xE1, 0xFF, 0xEA, 0xE4, 0xE1, 0xFF, 0xD8, 0xD1, 0xCF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, 0xEE, 0xEE, 0xEC, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xC4, 0xC4, 0xC2, 0xFF, + 0x30, 0x30, 0x2E, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x16, 0x16, 0x18, 0xFF, 0x0A, 0x0A, 0x0C, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x9D, 0x9E, 0x9B, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE4, 0xE5, 0xDE, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xD9, 0xD9, 0xD5, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xEC, 0xED, 0xE8, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xEF, 0xEF, 0xEB, 0xFF, 0xDB, 0xDC, 0xD7, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x5A, 0x5A, 0x56, 0xFF, 0x33, 0x34, 0x2F, 0xFF, + 0x21, 0x1F, 0x1B, 0xFF, 0x25, 0x23, 0x1F, 0xFF, 0x28, 0x26, 0x22, 0xFF, + 0x46, 0x45, 0x41, 0xFF, 0xBB, 0xB7, 0xB4, 0xFF, 0xED, 0xE9, 0xE6, 0xFF, + 0xEA, 0xE6, 0xE3, 0xFF, 0xDC, 0xD8, 0xD5, 0xFF, 0xE0, 0xD9, 0xD7, 0xFF, + 0xDC, 0xD6, 0xD3, 0xFF, 0xE3, 0xDD, 0xDA, 0xFF, 0xF1, 0xEB, 0xE8, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE6, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xEB, 0xEC, 0xE9, 0xFF, 0xAD, 0xAE, 0xAB, 0xFF, + 0x24, 0x24, 0x22, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x10, 0x10, 0x12, 0xFF, 0x15, 0x15, 0x17, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x53, 0x53, 0x51, 0xFF, + 0xCF, 0xD0, 0xCB, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, 0xF1, 0xF2, 0xEB, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xE8, 0xE9, 0xE2, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xF5, 0xF5, 0xF0, 0xFF, 0xEF, 0xEF, 0xEB, 0xFF, + 0xD4, 0xD5, 0xD0, 0xFF, 0xB4, 0xB5, 0xB0, 0xFF, 0x77, 0x78, 0x73, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x0E, 0x0D, 0x09, 0xFF, 0x0E, 0x0D, 0x09, 0xFF, 0x2E, 0x2C, 0x28, 0xFF, + 0x9B, 0x9A, 0x96, 0xFF, 0xDD, 0xD9, 0xD6, 0xFF, 0xE3, 0xDF, 0xDC, 0xFF, + 0xDC, 0xD8, 0xD5, 0xFF, 0xE0, 0xDC, 0xD9, 0xFF, 0xF6, 0xEF, 0xED, 0xFF, + 0xF5, 0xEE, 0xEC, 0xFF, 0xE8, 0xE1, 0xDF, 0xFF, 0xD5, 0xCF, 0xCC, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xEA, 0xEA, 0xE8, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE8, 0xE8, 0xE6, 0xFF, 0xEB, 0xEC, 0xE9, 0xFF, 0x8C, 0x8C, 0x8A, 0xFF, + 0x1E, 0x1F, 0x1C, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x11, 0x11, 0x13, 0xFF, 0x1A, 0x19, 0x1C, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x26, 0x27, 0x24, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, 0xEB, 0xEC, 0xE5, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xEA, 0xEB, 0xE4, 0xFF, 0xEA, 0xEB, 0xE4, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xEB, 0xEC, 0xE7, 0xFF, 0xF2, 0xF3, 0xEE, 0xFF, 0xEE, 0xEE, 0xE9, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x30, 0x31, 0x2C, 0xFF, 0x10, 0x11, 0x0C, 0xFF, + 0x07, 0x08, 0x03, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x30, 0x31, 0x2C, 0xFF, + 0x17, 0x15, 0x11, 0xFF, 0x1C, 0x1B, 0x17, 0xFF, 0x63, 0x62, 0x5E, 0xFF, + 0xC4, 0xC2, 0xBE, 0xFF, 0xE8, 0xE7, 0xE3, 0xFF, 0xE1, 0xE0, 0xDC, 0xFF, + 0xE6, 0xE4, 0xE0, 0xFF, 0xE7, 0xE3, 0xE0, 0xFF, 0xD9, 0xD5, 0xD2, 0xFF, + 0xD0, 0xCC, 0xC9, 0xFF, 0xB7, 0xB2, 0xAF, 0xFF, 0x9C, 0x98, 0x94, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE6, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xD3, 0xD3, 0xD1, 0xFF, 0x63, 0x63, 0x61, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x18, 0x18, 0x1A, 0xFF, 0x17, 0x17, 0x19, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x5D, 0x5E, 0x59, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE8, 0xE0, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE8, 0xE8, 0xE4, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xEA, 0xEB, 0xE4, 0xFF, 0xEA, 0xEB, 0xE4, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, + 0xE9, 0xEA, 0xE3, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xD6, 0xD7, 0xD2, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xC5, 0xC6, 0xC1, 0xFF, + 0x97, 0x98, 0x93, 0xFF, 0x57, 0x58, 0x53, 0xFF, 0x31, 0x32, 0x2D, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x10, 0x11, 0x0C, 0xFF, + 0x1B, 0x1A, 0x16, 0xFF, 0x42, 0x40, 0x3C, 0xFF, 0xAE, 0xAC, 0xA8, 0xFF, + 0xE1, 0xE0, 0xDC, 0xFF, 0xE1, 0xE0, 0xDC, 0xFF, 0xDF, 0xDD, 0xD9, 0xFF, + 0xD6, 0xD4, 0xD0, 0xFF, 0xC5, 0xC4, 0xC0, 0xFF, 0x97, 0x93, 0x90, 0xFF, + 0x96, 0x92, 0x8F, 0xFF, 0xA3, 0x9F, 0x9B, 0xFF, 0xB4, 0xB0, 0xAD, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xEC, 0xED, 0xEA, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0xE9, 0xE9, 0xE7, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0x4B, 0x4B, 0x48, 0xFF, + 0x1E, 0x1F, 0x1C, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x1C, 0x1C, 0x1E, 0xFF, 0x16, 0x16, 0x18, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0A, 0x0A, 0x0A, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x30, 0x31, 0x2C, 0xFF, 0x86, 0x87, 0x80, 0xFF, 0xCE, 0xCF, 0xC8, 0xFF, + 0xC9, 0xCB, 0xC3, 0xFF, 0xC9, 0xCB, 0xC3, 0xFF, 0xCB, 0xCB, 0xC7, 0xFF, + 0xCC, 0xCD, 0xC8, 0xFF, 0xD3, 0xD4, 0xCF, 0xFF, 0xDA, 0xDB, 0xD6, 0xFF, + 0xE5, 0xE7, 0xDF, 0xFF, 0xEC, 0xEE, 0xE6, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xE1, 0xE2, 0xDB, 0xFF, 0xE5, 0xE7, 0xDF, 0xFF, 0xEB, 0xEC, 0xE5, 0xFF, + 0xF0, 0xF1, 0xEC, 0xFF, 0xF2, 0xF3, 0xEE, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xD9, 0xD9, 0xD5, 0xFF, 0xD4, 0xD5, 0xD0, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xEA, 0xEB, 0xE6, 0xFF, 0xD6, 0xD7, 0xD2, 0xFF, 0xB8, 0xB9, 0xB4, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x6F, 0x6F, 0x6B, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, + 0x5D, 0x5E, 0x59, 0xFF, 0x63, 0x64, 0x5F, 0xFF, 0x48, 0x49, 0x44, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x25, 0x26, 0x21, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x0A, 0x0B, 0x06, 0xFF, + 0x10, 0x11, 0x0C, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x4C, 0x4C, 0x48, 0xFF, 0xB4, 0xB5, 0xB0, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xD3, 0xD4, 0xCF, 0xFF, 0xB5, 0xB3, 0xAF, 0xFF, 0xAA, 0xA9, 0xA5, 0xFF, + 0x9E, 0x9C, 0x98, 0xFF, 0x93, 0x92, 0x8E, 0xFF, 0xA6, 0xA4, 0xA0, 0xFF, + 0xBB, 0xB9, 0xB5, 0xFF, 0xD0, 0xCE, 0xCA, 0xFF, 0xD9, 0xD7, 0xD3, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xEA, 0xEA, 0xE8, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE8, 0xE8, 0xE6, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0x4E, 0x4E, 0x4C, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x18, 0x18, 0x1A, 0xFF, 0x18, 0x18, 0x1A, 0xFF, + 0x1A, 0x1A, 0x1A, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, 0x08, 0x09, 0x06, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x2A, 0x2B, 0x24, 0xFF, 0x55, 0x56, 0x4F, 0xFF, + 0x58, 0x5A, 0x52, 0xFF, 0x52, 0x53, 0x4B, 0xFF, 0x48, 0x49, 0x44, 0xFF, + 0x41, 0x42, 0x3D, 0xFF, 0x55, 0x56, 0x51, 0xFF, 0x74, 0x75, 0x70, 0xFF, + 0xA2, 0xA3, 0x9C, 0xFF, 0xC2, 0xC4, 0xBC, 0xFF, 0xE3, 0xE4, 0xDD, 0xFF, + 0xE8, 0xE9, 0xE2, 0xFF, 0xE9, 0xEA, 0xE3, 0xFF, 0xE8, 0xE9, 0xE2, 0xFF, + 0xDB, 0xDC, 0xD7, 0xFF, 0xD4, 0xD5, 0xD0, 0xFF, 0xC5, 0xC6, 0xC1, 0xFF, + 0xB7, 0xB8, 0xB3, 0xFF, 0x86, 0x87, 0x82, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x5E, 0x5F, 0x5A, 0xFF, 0x3D, 0x3D, 0x39, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x21, 0x21, 0x1D, 0xFF, 0x18, 0x19, 0x14, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x22, 0x23, 0x1E, 0xFF, + 0x16, 0x17, 0x12, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x10, 0x11, 0x0C, 0xFF, 0x41, 0x42, 0x3D, 0xFF, + 0xAB, 0xAC, 0xA7, 0xFF, 0xB3, 0xB4, 0xAF, 0xFF, 0x94, 0x95, 0x90, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x9A, 0x98, 0x94, 0xFF, 0xA7, 0xA5, 0xA1, 0xFF, + 0xBA, 0xB8, 0xB4, 0xFF, 0xC6, 0xC5, 0xC1, 0xFF, 0xD0, 0xCE, 0xCA, 0xFF, + 0xD9, 0xD7, 0xD3, 0xFF, 0xE2, 0xE1, 0xDD, 0xFF, 0xE3, 0xE2, 0xDE, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE7, 0xE7, 0xE5, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE7, 0xE7, 0xE5, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0x53, 0x53, 0x51, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x10, 0x10, 0x12, 0xFF, 0x10, 0x10, 0x12, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x1A, 0x1B, 0x14, 0xFF, 0x24, 0x25, 0x1E, 0xFF, + 0x2B, 0x2C, 0x25, 0xFF, 0x2D, 0x2F, 0x27, 0xFF, 0x30, 0x31, 0x2C, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x34, 0x35, 0x30, 0xFF, 0x3B, 0x3C, 0x37, 0xFF, + 0x46, 0x47, 0x40, 0xFF, 0x4E, 0x4F, 0x48, 0xFF, 0x6F, 0x70, 0x69, 0xFF, + 0x8F, 0x90, 0x89, 0xFF, 0xB0, 0xB1, 0xA8, 0xFF, 0xBE, 0xBF, 0xB8, 0xFF, + 0xA5, 0xA7, 0x9F, 0xFF, 0x7A, 0x7B, 0x74, 0xFF, 0x45, 0x46, 0x3F, 0xFF, + 0x22, 0x23, 0x1C, 0xFF, 0x2B, 0x2C, 0x27, 0xFF, 0x31, 0x32, 0x2D, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x21, 0x21, 0x1D, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1E, 0x1F, 0x1A, 0xFF, 0x15, 0x16, 0x11, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x16, 0x17, 0x12, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x0C, 0x0C, 0x08, 0xFF, 0x38, 0x39, 0x34, 0xFF, 0x71, 0x72, 0x6D, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, + 0xB8, 0xB9, 0xB4, 0xFF, 0xCB, 0xCB, 0xC7, 0xFF, 0xD3, 0xD4, 0xCF, 0xFF, + 0xDD, 0xDE, 0xD9, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xE2, 0xE3, 0xDE, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE7, 0xE7, 0xE5, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0x55, 0x55, 0x53, 0xFF, + 0x1A, 0x1A, 0x18, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x1F, 0x1F, 0x21, 0xFF, 0x1A, 0x19, 0x1C, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x15, 0x16, 0x0F, 0xFF, 0x1C, 0x1D, 0x16, 0xFF, + 0x28, 0x29, 0x22, 0xFF, 0x2B, 0x2C, 0x25, 0xFF, 0x31, 0x32, 0x2D, 0xFF, + 0x36, 0x36, 0x32, 0xFF, 0x29, 0x2A, 0x25, 0xFF, 0x2B, 0x2C, 0x27, 0xFF, + 0x2F, 0x30, 0x29, 0xFF, 0x31, 0x32, 0x2B, 0xFF, 0x31, 0x32, 0x2B, 0xFF, + 0x41, 0x42, 0x3B, 0xFF, 0x44, 0x45, 0x3B, 0xFF, 0x37, 0x38, 0x2F, 0xFF, + 0x30, 0x31, 0x2A, 0xFF, 0x25, 0x26, 0x1F, 0xFF, 0x21, 0x22, 0x1B, 0xFF, + 0x26, 0x28, 0x20, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, + 0x22, 0x23, 0x1E, 0xFF, 0x22, 0x23, 0x1E, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x0E, 0x0F, 0x0A, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x10, 0x11, 0x0C, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x30, 0x31, 0x2C, 0xFF, 0x64, 0x65, 0x60, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, + 0xA3, 0xA4, 0x9F, 0xFF, 0xBD, 0xBD, 0xB9, 0xFF, 0xD4, 0xD5, 0xD0, 0xFF, + 0xDA, 0xDB, 0xD6, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE7, 0xE7, 0xE3, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, 0xE3, 0xE4, 0xDF, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, 0x61, 0x61, 0x5F, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x16, 0x16, 0x18, 0xFF, 0x14, 0x13, 0x16, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0A, 0x0B, 0x06, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x22, 0x23, 0x1E, 0xFF, + 0x29, 0x2A, 0x25, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x29, 0x2A, 0x25, 0xFF, + 0x32, 0x33, 0x2C, 0xFF, 0x38, 0x39, 0x32, 0xFF, 0x28, 0x29, 0x22, 0xFF, + 0x2F, 0x30, 0x29, 0xFF, 0x31, 0x32, 0x29, 0xFF, 0x2C, 0x2E, 0x24, 0xFF, + 0x2D, 0x2F, 0x27, 0xFF, 0x28, 0x29, 0x22, 0xFF, 0x22, 0x23, 0x1C, 0xFF, + 0x1C, 0x1D, 0x16, 0xFF, 0x17, 0x18, 0x13, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x17, 0x18, 0x13, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x09, 0x0A, 0x07, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x22, 0x23, 0x1E, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, 0xB8, 0xB9, 0xB4, 0xFF, + 0xDE, 0xDF, 0xDA, 0xFF, 0xF2, 0xF3, 0xEE, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xD2, 0xD2, 0xCE, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, 0xDB, 0xDC, 0xD7, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, 0xE4, 0xE5, 0xE0, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, 0x65, 0x66, 0x63, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x08, 0x08, 0x0A, 0xFF, 0x0C, 0x0B, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x09, 0x0A, 0x07, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x10, 0x11, 0x0C, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x13, 0x13, 0x0F, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x26, 0x27, 0x22, 0xFF, + 0x30, 0x31, 0x2C, 0xFF, 0x31, 0x32, 0x2D, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, + 0x29, 0x2A, 0x23, 0xFF, 0x25, 0x26, 0x1F, 0xFF, 0x36, 0x37, 0x30, 0xFF, + 0x38, 0x39, 0x32, 0xFF, 0x34, 0x36, 0x2C, 0xFF, 0x2A, 0x2B, 0x22, 0xFF, + 0x28, 0x29, 0x22, 0xFF, 0x22, 0x23, 0x1C, 0xFF, 0x1C, 0x1D, 0x16, 0xFF, + 0x16, 0x17, 0x10, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x14, 0x15, 0x10, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x2B, 0x2C, 0x27, 0xFF, 0x85, 0x86, 0x81, 0xFF, + 0xB6, 0xB6, 0xB2, 0xFF, 0xD4, 0xD5, 0xD0, 0xFF, 0xCD, 0xCE, 0xC9, 0xFF, + 0xD9, 0xD9, 0xD5, 0xFF, 0xD2, 0xD2, 0xCE, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xEF, 0xEF, 0xEB, 0xFF, 0xEB, 0xEC, 0xE7, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE3, 0xE4, 0xDF, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xDC, 0xDD, 0xD8, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0x6B, 0x6C, 0x69, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x1A, 0x1A, 0x1A, 0xFF, 0x1A, 0x19, 0x1C, 0xFF, 0x17, 0x17, 0x19, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x09, 0x0A, 0x07, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x10, 0x11, 0x0C, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x13, 0x13, 0x0F, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x22, 0x23, 0x1E, 0xFF, 0x25, 0x26, 0x21, 0xFF, + 0x2A, 0x2B, 0x24, 0xFF, 0x2D, 0x2F, 0x27, 0xFF, 0x22, 0x23, 0x1C, 0xFF, + 0x2B, 0x2C, 0x25, 0xFF, 0x30, 0x31, 0x28, 0xFF, 0x2C, 0x2E, 0x24, 0xFF, + 0x30, 0x31, 0x2A, 0xFF, 0x2A, 0x2B, 0x24, 0xFF, 0x24, 0x25, 0x1E, 0xFF, + 0x1E, 0x1F, 0x18, 0xFF, 0x15, 0x16, 0x11, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x15, 0x16, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x08, 0x09, 0x06, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x07, 0x07, 0x05, 0xFF, + 0x29, 0x2A, 0x25, 0xFF, 0x69, 0x6A, 0x65, 0xFF, 0xD3, 0xD4, 0xCF, 0xFF, + 0xC6, 0xC7, 0xC2, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xDE, 0xDF, 0xDA, 0xFF, 0xE9, 0xEA, 0xE5, 0xFF, + 0xD9, 0xD9, 0xD5, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, + 0xD7, 0xD8, 0xD3, 0xFF, 0xD6, 0xD7, 0xD2, 0xFF, 0xDA, 0xDB, 0xD6, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE8, 0xE8, 0xE4, 0xFF, 0xEC, 0xED, 0xE8, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xDC, 0xDC, 0xDA, 0xFF, 0xE8, 0xE8, 0xE6, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0x70, 0x70, 0x6E, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x0E, 0x0E, 0x10, 0xFF, 0x0F, 0x0F, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x0E, 0x0F, 0x0A, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0C, 0x0C, 0x08, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, 0x13, 0x13, 0x0F, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, 0x23, 0x24, 0x1F, 0xFF, + 0x28, 0x28, 0x24, 0xFF, 0x2B, 0x2C, 0x25, 0xFF, 0x30, 0x31, 0x2A, 0xFF, + 0x34, 0x36, 0x2E, 0xFF, 0x33, 0x34, 0x2D, 0xFF, 0x2C, 0x2D, 0x26, 0xFF, + 0x2A, 0x2B, 0x24, 0xFF, 0x25, 0x26, 0x1F, 0xFF, 0x1E, 0x1F, 0x18, 0xFF, + 0x1A, 0x1B, 0x14, 0xFF, 0x15, 0x16, 0x11, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x13, 0x13, 0x0F, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x53, 0x53, 0x4F, 0xFF, 0xBE, 0xBF, 0xBA, 0xFF, 0xC6, 0xC7, 0xC2, 0xFF, + 0xE5, 0xE6, 0xE1, 0xFF, 0xDE, 0xDF, 0xDA, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, + 0xE9, 0xEA, 0xE5, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE4, 0xE5, 0xE0, 0xFF, 0xE5, 0xE6, 0xE1, 0xFF, 0xE2, 0xE3, 0xDE, 0xFF, + 0xDD, 0xDE, 0xD9, 0xFF, 0xDB, 0xDC, 0xD7, 0xFF, 0xD9, 0xD9, 0xD5, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE5, 0xE6, 0xE3, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE5, 0xE6, 0xE3, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xD5, 0xD5, 0xD5, 0xFF, 0x63, 0x63, 0x63, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x21, 0x21, 0x21, 0xFF, 0x22, 0x22, 0x22, 0xFF, + 0x1C, 0x1C, 0x1C, 0xFF, 0x16, 0x16, 0x16, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x29, 0x2A, 0x25, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x34, 0x36, 0x2E, 0xFF, 0x2F, 0x30, 0x29, 0xFF, + 0x29, 0x2D, 0x27, 0xFF, 0x26, 0x29, 0x24, 0xFF, 0x23, 0x26, 0x20, 0xFF, + 0x1F, 0x22, 0x1D, 0xFF, 0x1F, 0x22, 0x1D, 0xFF, 0x1A, 0x1E, 0x18, 0xFF, + 0x13, 0x17, 0x11, 0xFF, 0x10, 0x13, 0x0D, 0xFF, 0x10, 0x13, 0x0F, 0xFF, + 0x10, 0x13, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x10, 0x12, 0x11, 0xFF, + 0x15, 0x17, 0x16, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x02, 0x05, 0x01, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x5C, 0x5D, 0x58, 0xFF, + 0xC5, 0xC6, 0xC1, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xE2, 0xE3, 0xDC, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDC, 0xDD, 0xD6, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xDC, 0xDD, 0xD6, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xD9, 0xD9, 0xD9, 0xFF, 0x64, 0x64, 0x64, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x1D, 0x1D, 0x1D, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, + 0x22, 0x23, 0x1E, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x2C, 0x2D, 0x28, 0xFF, + 0x30, 0x31, 0x2C, 0xFF, 0x33, 0x34, 0x2D, 0xFF, 0x32, 0x33, 0x2C, 0xFF, + 0x28, 0x2C, 0x26, 0xFF, 0x27, 0x2A, 0x25, 0xFF, 0x26, 0x29, 0x24, 0xFF, + 0x25, 0x28, 0x22, 0xFF, 0x21, 0x25, 0x1F, 0xFF, 0x1D, 0x20, 0x1A, 0xFF, + 0x16, 0x19, 0x13, 0xFF, 0x11, 0x14, 0x0F, 0xFF, 0x10, 0x13, 0x0F, 0xFF, + 0x10, 0x13, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x10, 0x12, 0x11, 0xFF, + 0x09, 0x0B, 0x0A, 0xFF, 0x0A, 0x0C, 0x0C, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x25, 0x27, 0x26, 0xFF, 0x64, 0x65, 0x62, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0xD4, 0xD5, 0xCE, 0xFF, 0xCC, 0xCD, 0xC6, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xE2, 0xE3, 0xDC, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDC, 0xDD, 0xD6, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD9, 0xDA, 0xD3, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, 0xD4, 0xD5, 0xCE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xDD, 0xDD, 0xDD, 0xFF, 0x66, 0x66, 0x66, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0E, 0x0F, 0x0A, 0xFF, 0x0E, 0x0F, 0x0A, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x1E, 0x1F, 0x1A, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x29, 0x2A, 0x25, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x32, 0x33, 0x2C, 0xFF, 0x34, 0x36, 0x2E, 0xFF, + 0x28, 0x2C, 0x26, 0xFF, 0x29, 0x2D, 0x27, 0xFF, 0x2B, 0x2E, 0x28, 0xFF, + 0x2C, 0x2F, 0x29, 0xFF, 0x25, 0x28, 0x22, 0xFF, 0x20, 0x23, 0x1E, 0xFF, + 0x19, 0x1C, 0x17, 0xFF, 0x15, 0x18, 0x12, 0xFF, 0x10, 0x13, 0x0F, 0xFF, + 0x10, 0x13, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x10, 0x12, 0x11, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x0F, 0x11, 0x10, 0xFF, 0x0C, 0x0F, 0x0E, 0xFF, + 0x2C, 0x2E, 0x2D, 0xFF, 0x80, 0x80, 0x7E, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xCE, 0xCF, 0xC8, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xE2, 0xE3, 0xDC, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDC, 0xDD, 0xD6, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD9, 0xDA, 0xD3, 0xFF, 0xD9, 0xDA, 0xD3, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xD4, 0xD5, 0xCE, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, + 0xD3, 0xD3, 0xD1, 0xFF, 0xD3, 0xD3, 0xD1, 0xFF, 0xD3, 0xD3, 0xD1, 0xFF, + 0xD3, 0xD3, 0xD1, 0xFF, 0xD4, 0xD4, 0xD2, 0xFF, 0xD4, 0xD4, 0xD2, 0xFF, + 0xD4, 0xD4, 0xD2, 0xFF, 0xD4, 0xD4, 0xD2, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, 0xE4, 0xE5, 0xE2, 0xFF, + 0xE4, 0xE5, 0xE2, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE0, 0xE0, 0xE0, 0xFF, 0x69, 0x69, 0x69, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x21, 0x21, 0x1D, 0xFF, 0x26, 0x27, 0x22, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x30, 0x31, 0x2C, 0xFF, 0x33, 0x34, 0x2D, 0xFF, + 0x27, 0x2A, 0x25, 0xFF, 0x29, 0x2D, 0x27, 0xFF, 0x2F, 0x33, 0x2D, 0xFF, + 0x32, 0x35, 0x2F, 0xFF, 0x27, 0x2A, 0x25, 0xFF, 0x23, 0x26, 0x20, 0xFF, + 0x1A, 0x1E, 0x18, 0xFF, 0x17, 0x1A, 0x14, 0xFF, 0x10, 0x13, 0x0F, 0xFF, + 0x10, 0x13, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x10, 0x12, 0x11, 0xFF, + 0x08, 0x0A, 0x09, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x32, 0x34, 0x33, 0xFF, 0x81, 0x82, 0x7F, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, + 0xC8, 0xC9, 0xC2, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xE2, 0xE3, 0xDC, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD9, 0xDA, 0xD3, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, + 0xD4, 0xD5, 0xCE, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, 0xCF, 0xD0, 0xC9, 0xFF, + 0xBF, 0xC0, 0xBB, 0xFF, 0xBF, 0xC0, 0xBB, 0xFF, 0xBF, 0xC0, 0xBB, 0xFF, + 0xBF, 0xC0, 0xBB, 0xFF, 0xC0, 0xC1, 0xBC, 0xFF, 0xC0, 0xC1, 0xBC, 0xFF, + 0xC0, 0xC1, 0xBC, 0xFF, 0xC0, 0xC1, 0xBC, 0xFF, 0xCC, 0xCD, 0xC8, 0xFF, + 0xD2, 0xD2, 0xCE, 0xFF, 0xDD, 0xDE, 0xD9, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, + 0xE3, 0xE3, 0xE1, 0xFF, 0xE3, 0xE3, 0xE1, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xDD, 0xDD, 0xDD, 0xFF, 0x6A, 0x6A, 0x6A, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x18, 0x18, 0x1A, 0xFF, 0x18, 0x18, 0x1A, 0xFF, 0x18, 0x18, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, + 0x25, 0x26, 0x23, 0xFF, 0x2C, 0x2D, 0x28, 0xFF, 0x32, 0x33, 0x2E, 0xFF, + 0x29, 0x2D, 0x27, 0xFF, 0x29, 0x2D, 0x27, 0xFF, 0x26, 0x29, 0x24, 0xFF, + 0x25, 0x28, 0x22, 0xFF, 0x2D, 0x30, 0x2D, 0xFF, 0x25, 0x28, 0x24, 0xFF, + 0x1A, 0x1D, 0x1A, 0xFF, 0x11, 0x14, 0x11, 0xFF, 0x11, 0x14, 0x11, 0xFF, + 0x11, 0x14, 0x11, 0xFF, 0x11, 0x13, 0x13, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x0C, 0x0E, 0x10, 0xFF, 0x17, 0x19, 0x1A, 0xFF, 0x17, 0x19, 0x18, 0xFF, + 0x4C, 0x4F, 0x4E, 0xFF, 0x9A, 0x9A, 0x98, 0xFF, 0xB6, 0xB6, 0xB2, 0xFF, + 0xCD, 0xCE, 0xC7, 0xFF, 0xD5, 0xD7, 0xCD, 0xFF, 0xE0, 0xE1, 0xD7, 0xFF, + 0xE0, 0xE1, 0xD7, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xE0, 0xE1, 0xDA, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, + 0xE0, 0xE1, 0xDA, 0xFF, 0xD9, 0xDA, 0xD3, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, + 0xD4, 0xD5, 0xCE, 0xFF, 0xD3, 0xD4, 0xCD, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xC9, 0xCB, 0xC3, 0xFF, 0xBA, 0xBB, 0xB4, 0xFF, 0xAF, 0xB0, 0xA9, 0xFF, + 0xB8, 0xB9, 0xB4, 0xFF, 0xB8, 0xB9, 0xB4, 0xFF, 0xB8, 0xB9, 0xB4, 0xFF, + 0xB8, 0xB9, 0xB4, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, + 0xB9, 0xBA, 0xB5, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, 0xC0, 0xC1, 0xBC, 0xFF, + 0xC7, 0xC8, 0xC3, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, + 0xDC, 0xDD, 0xD8, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, + 0xE2, 0xE2, 0xE0, 0xFF, 0xE2, 0xE2, 0xE0, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xD9, 0xD9, 0xD9, 0xFF, 0x69, 0x69, 0x69, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x15, 0x15, 0x17, 0xFF, 0x15, 0x15, 0x17, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, + 0x23, 0x23, 0x21, 0xFF, 0x2A, 0x2B, 0x26, 0xFF, 0x30, 0x31, 0x2C, 0xFF, + 0x2D, 0x30, 0x2B, 0xFF, 0x29, 0x2D, 0x27, 0xFF, 0x25, 0x28, 0x22, 0xFF, + 0x21, 0x25, 0x1F, 0xFF, 0x29, 0x2C, 0x29, 0xFF, 0x24, 0x26, 0x23, 0xFF, + 0x1A, 0x1D, 0x1A, 0xFF, 0x15, 0x17, 0x14, 0xFF, 0x11, 0x14, 0x11, 0xFF, + 0x11, 0x14, 0x11, 0xFF, 0x11, 0x13, 0x13, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x0C, 0x0E, 0x10, 0xFF, 0x1C, 0x1E, 0x1F, 0xFF, 0x20, 0x23, 0x22, 0xFF, + 0x6C, 0x6E, 0x6D, 0xFF, 0xB6, 0xB6, 0xB4, 0xFF, 0xCE, 0xCF, 0xCA, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xDC, 0xDE, 0xD4, 0xFF, 0xE0, 0xE1, 0xD7, 0xFF, + 0xE0, 0xE1, 0xD7, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, + 0xDE, 0xE0, 0xD8, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xDD, 0xDE, 0xD7, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xD5, 0xD6, 0xCF, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, 0xCE, 0xCF, 0xC8, 0xFF, + 0xC0, 0xC1, 0xBA, 0xFF, 0xAD, 0xAF, 0xA7, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, + 0xB9, 0xBA, 0xB5, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, + 0xB9, 0xBA, 0xB5, 0xFF, 0xBA, 0xBB, 0xB6, 0xFF, 0xBA, 0xBB, 0xB6, 0xFF, + 0xBA, 0xBB, 0xB6, 0xFF, 0xBA, 0xBB, 0xB6, 0xFF, 0xBA, 0xBB, 0xB6, 0xFF, + 0xBE, 0xBF, 0xBA, 0xFF, 0xC4, 0xC4, 0xC0, 0xFF, 0xCD, 0xCE, 0xC9, 0xFF, + 0xD5, 0xD6, 0xD1, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xD3, 0xD3, 0xD3, 0xFF, 0x65, 0x65, 0x65, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x12, 0xFF, 0x10, 0x10, 0x12, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x1F, 0x20, 0x1D, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x2C, 0x2D, 0x28, 0xFF, + 0x32, 0x35, 0x2F, 0xFF, 0x2C, 0x2F, 0x29, 0xFF, 0x23, 0x26, 0x20, 0xFF, + 0x1D, 0x20, 0x1A, 0xFF, 0x25, 0x28, 0x24, 0xFF, 0x21, 0x24, 0x21, 0xFF, + 0x1D, 0x1F, 0x1C, 0xFF, 0x19, 0x1C, 0x19, 0xFF, 0x12, 0x15, 0x12, 0xFF, + 0x12, 0x15, 0x12, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x19, 0x1B, 0x1D, 0xFF, 0x19, 0x1B, 0x1D, 0xFF, 0x29, 0x2C, 0x2B, 0xFF, + 0x91, 0x94, 0x93, 0xFF, 0xCC, 0xCC, 0xCA, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xE2, 0xE3, 0xDA, 0xFF, 0xE0, 0xE1, 0xD7, 0xFF, + 0xE0, 0xE1, 0xD7, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xDB, 0xDC, 0xD5, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xCC, 0xCD, 0xC6, 0xFF, 0xC6, 0xC7, 0xC0, 0xFF, 0xB9, 0xBA, 0xB3, 0xFF, + 0xA8, 0xA9, 0xA2, 0xFF, 0x93, 0x94, 0x8D, 0xFF, 0x82, 0x84, 0x7C, 0xFF, + 0xB1, 0xB2, 0xAD, 0xFF, 0xB1, 0xB2, 0xAD, 0xFF, 0xB1, 0xB2, 0xAD, 0xFF, + 0xB1, 0xB2, 0xAD, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, + 0xB2, 0xB3, 0xAE, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, + 0xB4, 0xB5, 0xB0, 0xFF, 0xBD, 0xBD, 0xB9, 0xFF, 0xC2, 0xC3, 0xBE, 0xFF, + 0xCB, 0xCB, 0xC7, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, + 0xE0, 0xE0, 0xDC, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xE0, 0xE0, 0xDE, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xDD, 0xDE, 0xDB, 0xFF, 0xDD, 0xDE, 0xDB, 0xFF, + 0xDD, 0xDE, 0xDB, 0xFF, 0xCF, 0xCF, 0xCF, 0xFF, 0x63, 0x63, 0x63, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x16, 0x16, 0x16, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0D, 0x0C, 0x0F, 0xFF, 0x0D, 0x0C, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x1D, 0x1D, 0x1B, 0xFF, 0x24, 0x25, 0x20, 0xFF, 0x2A, 0x2B, 0x26, 0xFF, + 0x35, 0x38, 0x33, 0xFF, 0x2D, 0x30, 0x2B, 0xFF, 0x21, 0x25, 0x1F, 0xFF, + 0x19, 0x1C, 0x17, 0xFF, 0x23, 0x25, 0x22, 0xFF, 0x20, 0x23, 0x20, 0xFF, + 0x1E, 0x21, 0x1D, 0xFF, 0x1D, 0x1F, 0x1C, 0xFF, 0x12, 0x15, 0x12, 0xFF, + 0x12, 0x15, 0x12, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x12, 0x14, 0x16, 0xFF, 0x1D, 0x1F, 0x20, 0xFF, 0x4B, 0x4E, 0x4D, 0xFF, + 0xBB, 0xBD, 0xBD, 0xFF, 0xD4, 0xD4, 0xD2, 0xFF, 0xE1, 0xE1, 0xDD, 0xFF, + 0xDC, 0xDD, 0xD6, 0xFF, 0xDC, 0xDE, 0xD4, 0xFF, 0xDE, 0xE0, 0xD6, 0xFF, + 0xDE, 0xE0, 0xD6, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xD3, 0xD4, 0xCD, 0xFF, 0xCB, 0xCC, 0xC5, 0xFF, + 0xBF, 0xC0, 0xB9, 0xFF, 0xB7, 0xB8, 0xB1, 0xFF, 0xA3, 0xA4, 0x9D, 0xFF, + 0x90, 0x92, 0x8A, 0xFF, 0x78, 0x79, 0x72, 0xFF, 0x66, 0x68, 0x60, 0xFF, + 0xB2, 0xB3, 0xAE, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, + 0xB2, 0xB3, 0xAE, 0xFF, 0xB1, 0xB2, 0xAD, 0xFF, 0xB1, 0xB2, 0xAD, 0xFF, + 0xB1, 0xB2, 0xAD, 0xFF, 0xB1, 0xB2, 0xAD, 0xFF, 0xB3, 0xB4, 0xAD, 0xFF, + 0xB2, 0xB3, 0xAC, 0xFF, 0xB3, 0xB4, 0xAD, 0xFF, 0xB7, 0xB8, 0xB1, 0xFF, + 0xBB, 0xBC, 0xB7, 0xFF, 0xC4, 0xC4, 0xC0, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, + 0xE1, 0xE1, 0xDD, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, 0xDA, 0xDB, 0xD6, 0xFF, + 0xDD, 0xDE, 0xD9, 0xFF, 0xE0, 0xE0, 0xDC, 0xFF, 0xDC, 0xDC, 0xDA, 0xFF, + 0xE1, 0xE1, 0xDF, 0xFF, 0xDE, 0xDF, 0xDC, 0xFF, 0xD6, 0xD7, 0xD4, 0xFF, + 0xE0, 0xE0, 0xDE, 0xFF, 0xC5, 0xC5, 0xC3, 0xFF, 0xC2, 0xC3, 0xC0, 0xFF, + 0xDA, 0xDA, 0xD8, 0xFF, 0xAC, 0xAD, 0xAA, 0xFF, 0x3B, 0x3C, 0x39, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x24, 0x25, 0x20, 0xFF, + 0x30, 0x34, 0x2E, 0xFF, 0x2D, 0x30, 0x2B, 0xFF, 0x23, 0x26, 0x20, 0xFF, + 0x1F, 0x22, 0x1D, 0xFF, 0x1F, 0x22, 0x1F, 0xFF, 0x1F, 0x22, 0x1F, 0xFF, + 0x1E, 0x21, 0x1D, 0xFF, 0x1F, 0x22, 0x1F, 0xFF, 0x12, 0x15, 0x12, 0xFF, + 0x12, 0x15, 0x12, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x12, 0x14, 0x16, 0xFF, 0x20, 0x22, 0x24, 0xFF, 0x91, 0x94, 0x93, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xD9, 0xD9, 0xD7, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, + 0xE7, 0xE8, 0xE0, 0xFF, 0xDB, 0xDC, 0xD3, 0xFF, 0xDE, 0xE0, 0xD6, 0xFF, + 0xDE, 0xE0, 0xD6, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, + 0xD2, 0xD3, 0xCC, 0xFF, 0xC7, 0xC8, 0xC1, 0xFF, 0xBE, 0xBF, 0xB8, 0xFF, + 0xB2, 0xB3, 0xAC, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, 0x96, 0x97, 0x90, 0xFF, + 0x7D, 0x7E, 0x77, 0xFF, 0x5E, 0x5F, 0x58, 0xFF, 0x4D, 0x4E, 0x47, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xAF, 0xAF, 0xAB, 0xFF, 0xAF, 0xAF, 0xAB, 0xFF, + 0xAF, 0xAF, 0xAB, 0xFF, 0xAF, 0xAF, 0xAB, 0xFF, 0xAF, 0xB0, 0xA9, 0xFF, + 0xB0, 0xB1, 0xAA, 0xFF, 0xB1, 0xB2, 0xAB, 0xFF, 0xB0, 0xB1, 0xAA, 0xFF, + 0xB6, 0xB6, 0xB2, 0xFF, 0xBD, 0xBD, 0xB9, 0xFF, 0xC6, 0xC7, 0xC2, 0xFF, + 0xCD, 0xCE, 0xC9, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, 0xD3, 0xD4, 0xCF, 0xFF, + 0xD6, 0xD7, 0xD2, 0xFF, 0xD9, 0xD9, 0xD5, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, + 0xDE, 0xDF, 0xDC, 0xFF, 0xD3, 0xD3, 0xD1, 0xFF, 0xC4, 0xC4, 0xC2, 0xFF, + 0xC2, 0xC3, 0xC0, 0xFF, 0xB4, 0xB5, 0xB2, 0xFF, 0xB0, 0xB0, 0xAE, 0xFF, + 0xB7, 0xB7, 0xB5, 0xFF, 0x7E, 0x7E, 0x7C, 0xFF, 0x29, 0x29, 0x27, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x17, 0x18, 0x13, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x29, 0x2D, 0x27, 0xFF, 0x29, 0x2D, 0x27, 0xFF, 0x25, 0x28, 0x22, 0xFF, + 0x21, 0x25, 0x1F, 0xFF, 0x1C, 0x1E, 0x1B, 0xFF, 0x1C, 0x1E, 0x1B, 0xFF, + 0x1C, 0x1E, 0x1B, 0xFF, 0x1C, 0x1E, 0x1B, 0xFF, 0x12, 0x15, 0x12, 0xFF, + 0x12, 0x15, 0x12, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x16, 0x18, 0x19, 0xFF, 0x24, 0x26, 0x27, 0xFF, 0x6F, 0x72, 0x71, 0xFF, + 0x95, 0x97, 0x96, 0xFF, 0xCB, 0xCB, 0xC9, 0xFF, 0xD5, 0xD6, 0xD1, 0xFF, + 0xE1, 0xE2, 0xDB, 0xFF, 0xE2, 0xE3, 0xDA, 0xFF, 0xDD, 0xDF, 0xD5, 0xFF, + 0xDD, 0xDF, 0xD5, 0xFF, 0xDB, 0xDC, 0xD5, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, + 0xC9, 0xCB, 0xC3, 0xFF, 0xBE, 0xBF, 0xB8, 0xFF, 0xB2, 0xB3, 0xAC, 0xFF, + 0xA1, 0xA2, 0x9B, 0xFF, 0x8D, 0x8E, 0x87, 0xFF, 0x74, 0x76, 0x6E, 0xFF, + 0x61, 0x62, 0x5B, 0xFF, 0x52, 0x53, 0x4B, 0xFF, 0x50, 0x52, 0x4A, 0xFF, + 0xAD, 0xAE, 0xA9, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, + 0xAD, 0xAE, 0xA9, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, + 0xAC, 0xAD, 0xA8, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, 0xAB, 0xAC, 0xA5, 0xFF, + 0xAB, 0xAC, 0xA5, 0xFF, 0xAC, 0xAD, 0xA6, 0xFF, 0xAD, 0xAF, 0xA7, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, 0xB6, 0xB6, 0xB2, 0xFF, + 0xBB, 0xBC, 0xB7, 0xFF, 0xBE, 0xBF, 0xBA, 0xFF, 0xC0, 0xC1, 0xBC, 0xFF, + 0xC4, 0xC4, 0xC0, 0xFF, 0xC6, 0xC7, 0xC2, 0xFF, 0xD3, 0xD3, 0xD1, 0xFF, + 0xCE, 0xCE, 0xCC, 0xFF, 0xBF, 0xBF, 0xBD, 0xFF, 0xAD, 0xAE, 0xAB, 0xFF, + 0xAF, 0xAF, 0xAD, 0xFF, 0xB3, 0xB4, 0xB1, 0xFF, 0xAA, 0xAA, 0xA8, 0xFF, + 0x9A, 0x9A, 0x98, 0xFF, 0x4F, 0x50, 0x4D, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x15, 0x16, 0x11, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x1E, 0x21, 0x1B, 0xFF, 0x25, 0x28, 0x22, 0xFF, 0x27, 0x2A, 0x25, 0xFF, + 0x23, 0x26, 0x20, 0xFF, 0x19, 0x1C, 0x19, 0xFF, 0x19, 0x1C, 0x19, 0xFF, + 0x19, 0x1C, 0x19, 0xFF, 0x19, 0x1C, 0x19, 0xFF, 0x13, 0x16, 0x13, 0xFF, + 0x13, 0x16, 0x13, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x0E, 0x10, 0x11, 0xFF, 0x17, 0x19, 0x1A, 0xFF, 0x42, 0x44, 0x44, 0xFF, + 0x71, 0x73, 0x72, 0xFF, 0xBD, 0xBD, 0xBB, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, + 0xCF, 0xD0, 0xC9, 0xFF, 0xDD, 0xDF, 0xD5, 0xFF, 0xDD, 0xDF, 0xD5, 0xFF, + 0xDD, 0xDF, 0xD5, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xD6, 0xD7, 0xD0, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, 0xC9, 0xCB, 0xC3, 0xFF, + 0xC0, 0xC1, 0xBA, 0xFF, 0xB2, 0xB3, 0xAC, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, + 0x8D, 0x8E, 0x87, 0xFF, 0x78, 0x79, 0x72, 0xFF, 0x56, 0x57, 0x50, 0xFF, + 0x4B, 0x4C, 0x44, 0xFF, 0x53, 0x54, 0x4D, 0xFF, 0x69, 0x6A, 0x63, 0xFF, + 0xAD, 0xAE, 0xA9, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, + 0xAD, 0xAE, 0xA9, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, + 0xAB, 0xAC, 0xA7, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, 0xA8, 0xA9, 0xA2, 0xFF, + 0xA8, 0xA9, 0xA2, 0xFF, 0xA9, 0xAA, 0xA3, 0xFF, 0xA9, 0xAA, 0xA3, 0xFF, + 0xA9, 0xAA, 0xA5, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, 0xBA, 0xBB, 0xB8, 0xFF, + 0xB8, 0xB8, 0xB6, 0xFF, 0xAC, 0xAD, 0xAA, 0xFF, 0x9E, 0x9F, 0x9C, 0xFF, + 0x96, 0x97, 0x94, 0xFF, 0xA7, 0xA7, 0xA4, 0xFF, 0x9C, 0x9C, 0x9A, 0xFF, + 0x7A, 0x7B, 0x78, 0xFF, 0x3D, 0x3D, 0x3B, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x15, 0x18, 0x12, 0xFF, 0x1E, 0x21, 0x1B, 0xFF, 0x24, 0x27, 0x21, 0xFF, + 0x25, 0x28, 0x24, 0xFF, 0x17, 0x1A, 0x16, 0xFF, 0x17, 0x1A, 0x16, 0xFF, + 0x17, 0x1A, 0x16, 0xFF, 0x16, 0x18, 0x15, 0xFF, 0x15, 0x17, 0x14, 0xFF, + 0x13, 0x16, 0x13, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x17, 0x19, 0x1A, 0xFF, 0x19, 0x1B, 0x1D, 0xFF, 0x3B, 0x3D, 0x3D, 0xFF, + 0x87, 0x89, 0x86, 0xFF, 0xC9, 0xCA, 0xC5, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xD7, 0xD9, 0xCF, 0xFF, 0xE1, 0xE2, 0xD9, 0xFF, 0xDD, 0xDF, 0xD5, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xD2, 0xD3, 0xCC, 0xFF, 0xC9, 0xCB, 0xC3, 0xFF, 0xC0, 0xC1, 0xBA, 0xFF, + 0xB9, 0xBA, 0xB3, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, 0x8D, 0x8E, 0x87, 0xFF, + 0x78, 0x79, 0x72, 0xFF, 0x69, 0x6A, 0x63, 0xFF, 0x4D, 0x4E, 0x47, 0xFF, + 0x48, 0x49, 0x42, 0xFF, 0x61, 0x62, 0x5B, 0xFF, 0x86, 0x87, 0x80, 0xFF, + 0xAC, 0xAD, 0xA8, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, + 0xAC, 0xAD, 0xA8, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, 0xAA, 0xAB, 0xA4, 0xFF, + 0xA8, 0xA9, 0xA2, 0xFF, 0xA7, 0xA8, 0xA0, 0xFF, 0xA7, 0xA8, 0xA0, 0xFF, + 0xA7, 0xA7, 0xA2, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, 0xA3, 0xA4, 0x9F, 0xFF, + 0xA3, 0xA4, 0x9F, 0xFF, 0xA3, 0xA4, 0x9F, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0xA4, 0xA5, 0xA0, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, 0xA7, 0xA7, 0xA4, 0xFF, + 0xA3, 0xA3, 0xA1, 0xFF, 0x9D, 0x9E, 0x9B, 0xFF, 0x99, 0x99, 0x97, 0xFF, + 0x94, 0x94, 0x92, 0xFF, 0x95, 0x95, 0x93, 0xFF, 0x82, 0x83, 0x80, 0xFF, + 0x4E, 0x4E, 0x4C, 0xFF, 0x1E, 0x1F, 0x1C, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0A, 0x0A, 0x0A, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x15, 0x17, 0x14, 0xFF, 0x19, 0x1C, 0x19, 0xFF, 0x21, 0x24, 0x21, 0xFF, + 0x25, 0x28, 0x24, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x17, 0x19, 0x18, 0xFF, + 0x17, 0x19, 0x18, 0xFF, 0x16, 0x18, 0x17, 0xFF, 0x16, 0x18, 0x17, 0xFF, + 0x18, 0x1A, 0x1A, 0xFF, 0x1C, 0x1E, 0x1D, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, + 0x21, 0x24, 0x23, 0xFF, 0x0F, 0x11, 0x10, 0xFF, 0x4F, 0x51, 0x50, 0xFF, + 0xB3, 0xB6, 0xB2, 0xFF, 0xDC, 0xDD, 0xD8, 0xFF, 0xDE, 0xE0, 0xD8, 0xFF, + 0xE5, 0xE7, 0xDD, 0xFF, 0xD5, 0xD7, 0xCD, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xDB, 0xDC, 0xD5, 0xFF, 0xDD, 0xDE, 0xD9, 0xFF, 0xD6, 0xD7, 0xD2, 0xFF, + 0xCF, 0xD0, 0xCB, 0xFF, 0xC4, 0xC4, 0xC0, 0xFF, 0xB2, 0xB3, 0xAE, 0xFF, + 0x9D, 0x9E, 0x99, 0xFF, 0x8F, 0x92, 0x8C, 0xFF, 0x72, 0x75, 0x6F, 0xFF, + 0x61, 0x65, 0x5F, 0xFF, 0x49, 0x4C, 0x46, 0xFF, 0x3C, 0x3F, 0x3A, 0xFF, + 0x51, 0x54, 0x4F, 0xFF, 0x7C, 0x7F, 0x7A, 0xFF, 0x8C, 0x90, 0x8A, 0xFF, + 0xAB, 0xAC, 0xA7, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, + 0xAB, 0xAC, 0xA7, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, + 0xA8, 0xA8, 0xA4, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, 0xA8, 0xA9, 0xA2, 0xFF, + 0xA5, 0xA7, 0x9F, 0xFF, 0xA4, 0xA5, 0x9E, 0xFF, 0xA4, 0xA5, 0x9E, 0xFF, + 0xA4, 0xA5, 0xA0, 0xFF, 0xA3, 0xA4, 0x9F, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, 0x9C, 0x9C, 0x9A, 0xFF, + 0x9A, 0x9A, 0x98, 0xFF, 0x99, 0x99, 0x97, 0xFF, 0x97, 0x98, 0x95, 0xFF, + 0x9B, 0x9B, 0x99, 0xFF, 0x92, 0x92, 0x90, 0xFF, 0x77, 0x77, 0x75, 0xFF, + 0x41, 0x42, 0x3F, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x12, 0x15, 0x12, 0xFF, 0x17, 0x1A, 0x16, 0xFF, 0x1D, 0x1F, 0x1C, 0xFF, + 0x23, 0x25, 0x22, 0xFF, 0x15, 0x17, 0x16, 0xFF, 0x15, 0x17, 0x16, 0xFF, + 0x15, 0x17, 0x16, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x16, 0x18, 0x17, 0xFF, 0x19, 0x1C, 0x1B, 0xFF, 0x1C, 0x1E, 0x1D, 0xFF, + 0x23, 0x25, 0x24, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x4B, 0x4E, 0x4B, 0xFF, + 0xBD, 0xC0, 0xBD, 0xFF, 0xD6, 0xD7, 0xD2, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, + 0xD7, 0xD9, 0xCF, 0xFF, 0xD6, 0xD8, 0xCE, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xD7, 0xD8, 0xD3, 0xFF, 0xCC, 0xCD, 0xC8, 0xFF, + 0xC4, 0xC4, 0xC0, 0xFF, 0xB6, 0xB6, 0xB2, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, + 0x8B, 0x8B, 0x87, 0xFF, 0x7B, 0x7E, 0x79, 0xFF, 0x60, 0x63, 0x5E, 0xFF, + 0x52, 0x55, 0x50, 0xFF, 0x3C, 0x3F, 0x3A, 0xFF, 0x3A, 0x3D, 0x37, 0xFF, + 0x58, 0x5B, 0x56, 0xFF, 0x83, 0x86, 0x81, 0xFF, 0x8A, 0x8D, 0x88, 0xFF, + 0xA9, 0xAA, 0xA5, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, + 0xA9, 0xAA, 0xA5, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, + 0xA5, 0xA6, 0xA1, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, 0xA5, 0xA7, 0x9F, 0xFF, + 0xA3, 0xA4, 0x9D, 0xFF, 0xA2, 0xA3, 0x9C, 0xFF, 0xA2, 0xA3, 0x9C, 0xFF, + 0xA2, 0xA3, 0x9E, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0x99, 0x99, 0x94, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x94, 0x94, 0x92, 0xFF, + 0x90, 0x91, 0x8E, 0xFF, 0x8C, 0x8C, 0x8A, 0xFF, 0x87, 0x87, 0x85, 0xFF, + 0x87, 0x87, 0x85, 0xFF, 0x7B, 0x7C, 0x79, 0xFF, 0x68, 0x68, 0x66, 0xFF, + 0x3F, 0x3F, 0x3D, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0F, 0x12, 0x0E, 0xFF, 0x15, 0x17, 0x14, 0xFF, 0x19, 0x1C, 0x19, 0xFF, + 0x21, 0x24, 0x21, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x15, 0x17, 0x16, 0xFF, 0x18, 0x1A, 0x1A, 0xFF, 0x1A, 0x1D, 0x1C, 0xFF, + 0x20, 0x23, 0x22, 0xFF, 0x29, 0x2C, 0x2B, 0xFF, 0x44, 0x47, 0x44, 0xFF, + 0xAF, 0xB2, 0xAF, 0xFF, 0xD6, 0xD7, 0xD2, 0xFF, 0xDD, 0xDE, 0xD7, 0xFF, + 0xE0, 0xE1, 0xD7, 0xFF, 0xE0, 0xE1, 0xD7, 0xFF, 0xD7, 0xD9, 0xD1, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xCF, 0xD0, 0xCB, 0xFF, 0xBF, 0xC0, 0xBB, 0xFF, + 0xB2, 0xB3, 0xAE, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x6C, 0x6F, 0x69, 0xFF, 0x53, 0x57, 0x51, 0xFF, + 0x48, 0x4B, 0x45, 0xFF, 0x35, 0x38, 0x33, 0xFF, 0x36, 0x39, 0x34, 0xFF, + 0x63, 0x66, 0x60, 0xFF, 0x8E, 0x91, 0x8B, 0xFF, 0x87, 0x8A, 0x84, 0xFF, + 0xA8, 0xA8, 0xA4, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, + 0xA8, 0xA8, 0xA4, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0xA4, 0xA5, 0xA0, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, 0xA4, 0xA5, 0x9E, 0xFF, + 0xA2, 0xA3, 0x9C, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, 0xA1, 0xA2, 0x9B, 0xFF, + 0xA1, 0xA1, 0x9D, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x92, 0x92, 0x90, 0xFF, + 0x87, 0x87, 0x85, 0xFF, 0x78, 0x78, 0x76, 0xFF, 0x6D, 0x6E, 0x6B, 0xFF, + 0x47, 0x47, 0x45, 0xFF, 0x45, 0x45, 0x43, 0xFF, 0x45, 0x45, 0x43, 0xFF, + 0x2D, 0x2E, 0x2B, 0xFF, 0x1F, 0x20, 0x1D, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x07, 0x07, 0x05, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0C, 0x0F, 0x0C, 0xFF, 0x11, 0x14, 0x11, 0xFF, 0x17, 0x1A, 0x16, 0xFF, + 0x1D, 0x1F, 0x1C, 0xFF, 0x0F, 0x11, 0x10, 0xFF, 0x10, 0x12, 0x11, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x16, 0x18, 0x17, 0xFF, + 0x16, 0x18, 0x17, 0xFF, 0x36, 0x39, 0x38, 0xFF, 0x37, 0x3A, 0x37, 0xFF, + 0x8E, 0x91, 0x8B, 0xFF, 0xC9, 0xCB, 0xC3, 0xFF, 0xE0, 0xE1, 0xDA, 0xFF, + 0xD7, 0xD9, 0xCF, 0xFF, 0xD6, 0xD8, 0xCE, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, + 0xD2, 0xD3, 0xCC, 0xFF, 0xC5, 0xC6, 0xC1, 0xFF, 0xB6, 0xB6, 0xB2, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, 0x7B, 0x7C, 0x77, 0xFF, + 0x72, 0x73, 0x6E, 0xFF, 0x61, 0x65, 0x5F, 0xFF, 0x4B, 0x4E, 0x49, 0xFF, + 0x43, 0x46, 0x41, 0xFF, 0x30, 0x34, 0x2E, 0xFF, 0x34, 0x37, 0x32, 0xFF, + 0x6B, 0x6E, 0x68, 0xFF, 0x96, 0x99, 0x93, 0xFF, 0x84, 0x88, 0x82, 0xFF, + 0xA2, 0xA3, 0x9E, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0xA3, 0xA4, 0x9F, 0xFF, + 0xA7, 0xA7, 0xA2, 0xFF, 0xAA, 0xAB, 0xA6, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0xA1, 0xA1, 0x9D, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0xA5, 0xA6, 0xA1, 0xFF, 0xA3, 0xA4, 0x9F, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0x9B, 0x9C, 0x97, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0xA3, 0xA4, 0x9D, 0xFF, 0x9B, 0x9C, 0x95, 0xFF, + 0x8E, 0x8F, 0x88, 0xFF, 0x7A, 0x7B, 0x76, 0xFF, 0x61, 0x61, 0x5D, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x41, 0x42, 0x3D, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x56, 0x57, 0x52, 0xFF, 0x63, 0x64, 0x5F, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x16, 0x17, 0x14, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x1A, 0x1A, 0x1A, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0E, 0x0E, 0x0E, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x08, 0x08, 0x08, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x22, 0x22, 0x20, 0xFF, 0x26, 0x27, 0x24, 0xFF, 0x4F, 0x50, 0x4D, 0xFF, + 0xA5, 0xA6, 0xA1, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, 0xD6, 0xD7, 0xD0, 0xFF, + 0xCE, 0xCF, 0xC8, 0xFF, 0xD5, 0xD6, 0xCF, 0xFF, 0xC8, 0xC9, 0xC2, 0xFF, + 0xCE, 0xCF, 0xC8, 0xFF, 0xC7, 0xC8, 0xC3, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, + 0x99, 0x99, 0x94, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, 0x7B, 0x7E, 0x79, 0xFF, + 0x63, 0x66, 0x60, 0xFF, 0x47, 0x4A, 0x44, 0xFF, 0x3A, 0x3D, 0x37, 0xFF, + 0x31, 0x37, 0x30, 0xFF, 0x2B, 0x31, 0x2B, 0xFF, 0x2F, 0x34, 0x2E, 0xFF, + 0x60, 0x65, 0x5F, 0xFF, 0x7E, 0x84, 0x7D, 0xFF, 0x77, 0x7D, 0x76, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x9B, 0x9C, 0x97, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0x9B, 0x9C, 0x97, 0xFF, 0x96, 0x97, 0x92, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0x70, 0x71, 0x6A, 0xFF, 0x66, 0x68, 0x60, 0xFF, + 0x50, 0x52, 0x4A, 0xFF, 0x46, 0x47, 0x40, 0xFF, 0x45, 0x45, 0x41, 0xFF, + 0x50, 0x51, 0x4C, 0xFF, 0x65, 0x66, 0x61, 0xFF, 0x77, 0x78, 0x73, 0xFF, + 0x80, 0x81, 0x7C, 0xFF, 0x76, 0x76, 0x72, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x1D, 0x1D, 0x1D, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x1B, 0x1B, 0x1B, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x21, 0x21, 0x1F, 0xFF, 0x44, 0x44, 0x3F, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0xC5, 0xC6, 0xBF, 0xFF, 0xDC, 0xDD, 0xD6, 0xFF, + 0xD7, 0xD9, 0xD1, 0xFF, 0xCC, 0xCD, 0xC6, 0xFF, 0xE1, 0xE2, 0xDB, 0xFF, + 0xD4, 0xD5, 0xCE, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0x86, 0x87, 0x82, 0xFF, 0x7A, 0x7B, 0x76, 0xFF, 0x6B, 0x6E, 0x68, 0xFF, + 0x56, 0x59, 0x53, 0xFF, 0x4E, 0x51, 0x4B, 0xFF, 0x3B, 0x3E, 0x39, 0xFF, + 0x2A, 0x30, 0x29, 0xFF, 0x1F, 0x24, 0x1E, 0xFF, 0x30, 0x36, 0x2F, 0xFF, + 0x5C, 0x62, 0x5B, 0xFF, 0x7B, 0x80, 0x7A, 0xFF, 0x78, 0x7E, 0x77, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, + 0xA1, 0xA1, 0x9D, 0xFF, 0x86, 0x87, 0x82, 0xFF, 0xAB, 0xAC, 0xA7, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x90, 0x91, 0x8C, 0xFF, 0x6D, 0x6E, 0x69, 0xFF, + 0x48, 0x49, 0x44, 0xFF, 0x48, 0x49, 0x42, 0xFF, 0x44, 0x45, 0x3D, 0xFF, + 0x49, 0x4B, 0x43, 0xFF, 0x57, 0x58, 0x51, 0xFF, 0x69, 0x6A, 0x65, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, 0x9B, 0x9C, 0x97, 0xFF, + 0x8B, 0x8B, 0x87, 0xFF, 0x6C, 0x6D, 0x68, 0xFF, 0x42, 0x43, 0x3E, 0xFF, + 0x25, 0x26, 0x21, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x1D, 0x1D, 0x1D, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x0D, 0x0D, 0x0D, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x05, 0x05, 0x05, 0xFF, + 0x08, 0x08, 0x08, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x22, 0x22, 0x20, 0xFF, 0x37, 0x37, 0x35, 0xFF, 0x52, 0x52, 0x4D, 0xFF, + 0x80, 0x81, 0x7C, 0xFF, 0xB7, 0xB8, 0xB1, 0xFF, 0xDA, 0xDB, 0xD4, 0xFF, + 0xDA, 0xDB, 0xD4, 0xFF, 0xC9, 0xCB, 0xC3, 0xFF, 0xCB, 0xCC, 0xC5, 0xFF, + 0xB9, 0xBA, 0xB3, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, + 0x82, 0x83, 0x7E, 0xFF, 0x73, 0x74, 0x6F, 0xFF, 0x68, 0x6C, 0x66, 0xFF, + 0x53, 0x57, 0x51, 0xFF, 0x3C, 0x3F, 0x3A, 0xFF, 0x32, 0x35, 0x2F, 0xFF, + 0x2B, 0x31, 0x2B, 0xFF, 0x28, 0x2D, 0x27, 0xFF, 0x29, 0x2F, 0x28, 0xFF, + 0x4C, 0x52, 0x4B, 0xFF, 0x6A, 0x70, 0x69, 0xFF, 0x71, 0x77, 0x70, 0xFF, + 0xA8, 0xA8, 0xA4, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, 0xA8, 0xA8, 0xA4, 0xFF, + 0xA3, 0xA4, 0x9F, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0xA2, 0xA3, 0x9E, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x9A, 0x9A, 0x96, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, + 0x53, 0x53, 0x4F, 0xFF, 0x40, 0x41, 0x3C, 0xFF, 0x41, 0x42, 0x3D, 0xFF, + 0x54, 0x55, 0x50, 0xFF, 0x5C, 0x5D, 0x56, 0xFF, 0x68, 0x69, 0x62, 0xFF, + 0x7F, 0x80, 0x79, 0xFF, 0x94, 0x95, 0x8E, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0x92, 0x92, 0x8E, 0xFF, 0x7F, 0x80, 0x7B, 0xFF, + 0x6C, 0x6D, 0x68, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, 0x29, 0x2A, 0x25, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x1E, 0x1F, 0x1C, 0xFF, 0x1E, 0x1F, 0x1C, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x24, 0x24, 0x22, 0xFF, 0x40, 0x40, 0x3E, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x73, 0x74, 0x6F, 0xFF, 0xB6, 0xB7, 0xB0, 0xFF, 0xD2, 0xD3, 0xCC, 0xFF, + 0xD4, 0xD5, 0xCE, 0xFF, 0xCF, 0xD0, 0xC9, 0xFF, 0xCD, 0xCE, 0xC7, 0xFF, + 0xB3, 0xB4, 0xAD, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, 0x89, 0x8A, 0x85, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x5F, 0x60, 0x5B, 0xFF, 0x53, 0x57, 0x51, 0xFF, + 0x42, 0x45, 0x3F, 0xFF, 0x43, 0x46, 0x41, 0xFF, 0x33, 0x36, 0x30, 0xFF, + 0x24, 0x2A, 0x24, 0xFF, 0x1C, 0x22, 0x1B, 0xFF, 0x1B, 0x21, 0x1A, 0xFF, + 0x39, 0x3F, 0x39, 0xFF, 0x58, 0x5D, 0x57, 0xFF, 0x63, 0x69, 0x62, 0xFF, + 0xA7, 0xA7, 0xA2, 0xFF, 0xA2, 0xA3, 0x9E, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0xA5, 0xA6, 0xA1, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, + 0x9B, 0x9C, 0x97, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, 0x79, 0x7A, 0x75, 0xFF, + 0x62, 0x63, 0x5E, 0xFF, 0x44, 0x44, 0x3F, 0xFF, 0x45, 0x45, 0x41, 0xFF, + 0x49, 0x4A, 0x45, 0xFF, 0x5B, 0x5C, 0x57, 0xFF, 0x6C, 0x6D, 0x68, 0xFF, + 0x78, 0x79, 0x74, 0xFF, 0x8E, 0x8F, 0x88, 0xFF, 0x97, 0x99, 0x91, 0xFF, + 0xA0, 0xA1, 0x99, 0xFF, 0x99, 0x9A, 0x92, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x84, 0x84, 0x80, 0xFF, 0x6F, 0x6F, 0x6B, 0xFF, 0x63, 0x64, 0x5F, 0xFF, + 0x5A, 0x5A, 0x56, 0xFF, 0x41, 0x42, 0x3D, 0xFF, 0x25, 0x26, 0x21, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x25, 0x26, 0x23, 0xFF, + 0x21, 0x21, 0x1F, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x14, 0x13, 0x16, 0xFF, 0x0E, 0x0E, 0x10, 0xFF, + 0x14, 0x13, 0x16, 0xFF, 0x1E, 0x1E, 0x20, 0xFF, 0x0F, 0x0F, 0x11, 0xFF, + 0x11, 0x11, 0x13, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x3B, 0x3C, 0x39, 0xFF, 0x2C, 0x2D, 0x28, 0xFF, 0x36, 0x36, 0x32, 0xFF, + 0x78, 0x79, 0x74, 0xFF, 0xB7, 0xB8, 0xB3, 0xFF, 0xCF, 0xD0, 0xCB, 0xFF, + 0xCB, 0xCB, 0xC7, 0xFF, 0xD0, 0xD1, 0xCC, 0xFF, 0xB9, 0xBA, 0xB5, 0xFF, + 0x9B, 0x9C, 0x97, 0xFF, 0x7F, 0x80, 0x7B, 0xFF, 0x74, 0x75, 0x70, 0xFF, + 0x62, 0x62, 0x60, 0xFF, 0x66, 0x67, 0x64, 0xFF, 0x6C, 0x6F, 0x6B, 0xFF, + 0x72, 0x74, 0x71, 0xFF, 0x78, 0x7D, 0x79, 0xFF, 0x64, 0x6A, 0x66, 0xFF, + 0x3D, 0x42, 0x3E, 0xFF, 0x19, 0x21, 0x1C, 0xFF, 0x17, 0x1F, 0x1A, 0xFF, + 0x26, 0x2E, 0x29, 0xFF, 0x48, 0x50, 0x4B, 0xFF, 0x6A, 0x71, 0x6D, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, + 0x9A, 0x9A, 0x96, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0x69, 0x6A, 0x65, 0xFF, 0x4D, 0x4E, 0x49, 0xFF, 0x36, 0x36, 0x32, 0xFF, + 0x4D, 0x4E, 0x49, 0xFF, 0x64, 0x65, 0x60, 0xFF, 0x74, 0x75, 0x70, 0xFF, + 0x79, 0x7A, 0x75, 0xFF, 0x88, 0x89, 0x84, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0xA2, 0xA3, 0x9E, 0xFF, 0x95, 0x96, 0x8F, 0xFF, 0x9A, 0x9B, 0x94, 0xFF, + 0x92, 0x93, 0x8B, 0xFF, 0x7F, 0x80, 0x79, 0xFF, 0x70, 0x71, 0x6C, 0xFF, + 0x69, 0x6A, 0x65, 0xFF, 0x62, 0x63, 0x5E, 0xFF, 0x5E, 0x5F, 0x5A, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x39, 0x3A, 0x35, 0xFF, 0x21, 0x21, 0x1D, 0xFF, + 0x22, 0x23, 0x1E, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, + 0x18, 0x19, 0x14, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x21, 0x21, 0x1F, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x09, 0x0A, 0x07, 0xFF, + 0x0A, 0x0B, 0x08, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0A, 0x0B, 0x08, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x16, 0x16, 0x18, 0xFF, 0x0C, 0x0B, 0x0E, 0xFF, + 0x08, 0x08, 0x0A, 0xFF, 0x0D, 0x0C, 0x0F, 0xFF, 0x00, 0x00, 0x02, 0xFF, + 0x15, 0x15, 0x17, 0xFF, 0x32, 0x32, 0x32, 0xFF, 0x46, 0x46, 0x46, 0xFF, + 0x82, 0x83, 0x80, 0xFF, 0x44, 0x44, 0x3F, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x86, 0x87, 0x82, 0xFF, 0xC6, 0xC7, 0xC2, 0xFF, 0xC8, 0xC9, 0xC4, 0xFF, + 0xBA, 0xBB, 0xB6, 0xFF, 0xB4, 0xB5, 0xB0, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x80, 0x81, 0x7C, 0xFF, + 0x88, 0x89, 0x86, 0xFF, 0x90, 0x91, 0x8E, 0xFF, 0x9A, 0x9D, 0x9A, 0xFF, + 0xA3, 0xA5, 0xA2, 0xFF, 0x94, 0x99, 0x95, 0xFF, 0x7D, 0x82, 0x7E, 0xFF, + 0x5C, 0x63, 0x5F, 0xFF, 0x43, 0x4B, 0x46, 0xFF, 0x30, 0x37, 0x32, 0xFF, + 0x2C, 0x34, 0x2F, 0xFF, 0x3A, 0x42, 0x3D, 0xFF, 0x56, 0x5E, 0x59, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0xA2, 0xA3, 0x9E, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, + 0x73, 0x74, 0x6F, 0xFF, 0x4D, 0x4E, 0x49, 0xFF, 0x44, 0x44, 0x3F, 0xFF, + 0x45, 0x45, 0x41, 0xFF, 0x56, 0x57, 0x52, 0xFF, 0x77, 0x78, 0x73, 0xFF, + 0x72, 0x73, 0x6E, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0x85, 0x86, 0x7F, 0xFF, 0x89, 0x8B, 0x83, 0xFF, + 0x7F, 0x80, 0x79, 0xFF, 0x6F, 0x70, 0x69, 0xFF, 0x6C, 0x6D, 0x68, 0xFF, + 0x69, 0x6A, 0x65, 0xFF, 0x65, 0x66, 0x61, 0xFF, 0x63, 0x64, 0x5F, 0xFF, + 0x45, 0x45, 0x41, 0xFF, 0x32, 0x33, 0x2E, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1D, 0x1E, 0x19, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x2F, 0x2F, 0x2B, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, + 0x1F, 0x20, 0x1B, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0A, 0x0B, 0x08, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x16, 0x16, 0x16, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, + 0x08, 0x08, 0x08, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x3A, 0x3A, 0x3A, 0xFF, 0x70, 0x70, 0x70, 0xFF, 0x95, 0x95, 0x95, 0xFF, + 0xAD, 0xAE, 0xAB, 0xFF, 0x4F, 0x50, 0x4B, 0xFF, 0x4C, 0x4C, 0x48, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0xB7, 0xB8, 0xB3, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, + 0xA5, 0xA6, 0xA1, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0xA1, 0xA5, 0x9F, 0xFF, + 0xA7, 0xAA, 0xA5, 0xFF, 0xAB, 0xAE, 0xA8, 0xFF, 0xAB, 0xAE, 0xA8, 0xFF, + 0xAE, 0xB1, 0xAE, 0xFF, 0xAE, 0xB1, 0xAE, 0xFF, 0xAB, 0xAE, 0xAA, 0xFF, + 0xA7, 0xAC, 0xA8, 0xFF, 0xA1, 0xA6, 0xA2, 0xFF, 0x9B, 0xA0, 0x9C, 0xFF, + 0x8D, 0x94, 0x90, 0xFF, 0x6C, 0x74, 0x6F, 0xFF, 0x65, 0x6D, 0x68, 0xFF, + 0x41, 0x49, 0x44, 0xFF, 0x31, 0x38, 0x34, 0xFF, 0x32, 0x3A, 0x35, 0xFF, + 0x72, 0x73, 0x6E, 0xFF, 0x5C, 0x5D, 0x58, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, + 0x47, 0x48, 0x43, 0xFF, 0x5B, 0x5C, 0x57, 0xFF, 0x6B, 0x6C, 0x67, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x88, 0x89, 0x84, 0xFF, 0x93, 0x93, 0x8F, 0xFF, + 0xA3, 0xA4, 0x9F, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, 0x89, 0x8A, 0x85, 0xFF, + 0x85, 0x86, 0x81, 0xFF, 0x80, 0x81, 0x7A, 0xFF, 0x7A, 0x7B, 0x74, 0xFF, + 0x73, 0x74, 0x6D, 0xFF, 0x6D, 0x6F, 0x67, 0xFF, 0x6B, 0x6C, 0x67, 0xFF, + 0x64, 0x65, 0x60, 0xFF, 0x5A, 0x5A, 0x56, 0xFF, 0x53, 0x53, 0x4F, 0xFF, + 0x3F, 0x40, 0x3B, 0xFF, 0x31, 0x32, 0x2D, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x17, 0x18, 0x13, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x2A, 0x2B, 0x26, 0xFF, 0x50, 0x51, 0x4C, 0xFF, 0x72, 0x73, 0x6E, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x24, 0x25, 0x20, 0xFF, 0x31, 0x32, 0x2D, 0xFF, + 0x3A, 0x3B, 0x36, 0xFF, 0x38, 0x38, 0x36, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x09, 0x0A, 0x07, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0A, 0x0B, 0x08, 0xFF, 0x0C, 0x0C, 0x0A, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x1E, 0x1E, 0x1E, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x29, 0x29, 0x29, 0xFF, 0x47, 0x47, 0x47, 0xFF, 0x5C, 0x5C, 0x5A, 0xFF, + 0xA0, 0xA0, 0x9D, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x56, 0x57, 0x52, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, + 0xB4, 0xB5, 0xB0, 0xFF, 0xBB, 0xBC, 0xB7, 0xFF, 0xB4, 0xB7, 0xB2, 0xFF, + 0xC1, 0xC4, 0xBE, 0xFF, 0xC4, 0xC8, 0xC2, 0xFF, 0xBD, 0xC1, 0xBB, 0xFF, + 0xB3, 0xB6, 0xB2, 0xFF, 0xB4, 0xB7, 0xB4, 0xFF, 0xB4, 0xB9, 0xB5, 0xFF, + 0xB4, 0xB9, 0xB5, 0xFF, 0xAA, 0xB0, 0xAB, 0xFF, 0xAD, 0xB2, 0xAE, 0xFF, + 0xA4, 0xAC, 0xA7, 0xFF, 0x8E, 0x96, 0x91, 0xFF, 0x79, 0x81, 0x7C, 0xFF, + 0x55, 0x5C, 0x58, 0xFF, 0x3B, 0x43, 0x3E, 0xFF, 0x35, 0x3D, 0x38, 0xFF, + 0x4D, 0x4E, 0x49, 0xFF, 0x58, 0x59, 0x54, 0xFF, 0x6A, 0x6B, 0x66, 0xFF, + 0x76, 0x76, 0x72, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0xAB, 0xAC, 0xA7, 0xFF, 0xB0, 0xB1, 0xAC, 0xFF, 0xAC, 0xAD, 0xA8, 0xFF, + 0xA2, 0xA3, 0x9E, 0xFF, 0x97, 0x98, 0x93, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8D, 0x8E, 0x89, 0xFF, 0x86, 0x87, 0x82, 0xFF, 0x80, 0x81, 0x7C, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x7D, 0x7E, 0x77, 0xFF, 0x77, 0x78, 0x71, 0xFF, + 0x70, 0x71, 0x6A, 0xFF, 0x6A, 0x6B, 0x64, 0xFF, 0x69, 0x6A, 0x65, 0xFF, + 0x62, 0x63, 0x5E, 0xFF, 0x5A, 0x5A, 0x56, 0xFF, 0x4E, 0x4F, 0x4A, 0xFF, + 0x34, 0x35, 0x30, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, + 0x18, 0x19, 0x14, 0xFF, 0x1C, 0x1C, 0x1A, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x1E, 0x1F, 0x1C, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x21, 0x21, 0x1D, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x23, 0x24, 0x1F, 0xFF, + 0x2B, 0x2C, 0x27, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x76, 0x76, 0x72, 0xFF, + 0x13, 0x13, 0x0F, 0xFF, 0x16, 0x17, 0x12, 0xFF, 0x32, 0x33, 0x2E, 0xFF, + 0x82, 0x83, 0x7E, 0xFF, 0x5B, 0x5C, 0x57, 0xFF, 0x50, 0x51, 0x4C, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x18, 0x19, 0x14, 0xFF, 0x05, 0x05, 0x01, 0xFF, + 0x08, 0x09, 0x04, 0xFF, 0x0C, 0x0C, 0x08, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x1B, 0x1B, 0x1B, 0xFF, 0x16, 0x16, 0x16, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x78, 0x78, 0x78, 0xFF, 0x25, 0x25, 0x25, 0xFF, + 0x09, 0x09, 0x09, 0xFF, 0x37, 0x37, 0x35, 0xFF, 0x7A, 0x7B, 0x78, 0xFF, + 0x88, 0x89, 0x86, 0xFF, 0x48, 0x49, 0x46, 0xFF, 0x66, 0x67, 0x62, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, + 0xBA, 0xBD, 0xB7, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, 0xC3, 0xC6, 0xC3, 0xFF, + 0xC3, 0xC6, 0xC3, 0xFF, 0xC3, 0xC6, 0xC3, 0xFF, 0xC3, 0xC6, 0xC3, 0xFF, + 0xB7, 0xBC, 0xB8, 0xFF, 0xBC, 0xC1, 0xBD, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, + 0xB4, 0xB9, 0xB5, 0xFF, 0xB0, 0xB7, 0xB2, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, + 0xB9, 0xC1, 0xBC, 0xFF, 0xB1, 0xB8, 0xB4, 0xFF, 0xA5, 0xAD, 0xA8, 0xFF, + 0x8A, 0x92, 0x8D, 0xFF, 0x6B, 0x73, 0x6E, 0xFF, 0x51, 0x59, 0x54, 0xFF, + 0x74, 0x75, 0x70, 0xFF, 0x80, 0x81, 0x7C, 0xFF, 0x90, 0x91, 0x8C, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0xA7, 0xA7, 0xA2, 0xFF, 0xA4, 0xA5, 0xA0, 0xFF, + 0xA3, 0xA4, 0x9F, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, 0x94, 0x95, 0x90, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x88, 0x89, 0x84, 0xFF, 0x87, 0x88, 0x83, 0xFF, + 0x82, 0x83, 0x7E, 0xFF, 0x80, 0x81, 0x7C, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x7A, 0x7B, 0x74, 0xFF, 0x74, 0x76, 0x6E, 0xFF, + 0x6D, 0x6F, 0x67, 0xFF, 0x68, 0x69, 0x62, 0xFF, 0x65, 0x66, 0x61, 0xFF, + 0x5E, 0x5F, 0x5A, 0xFF, 0x56, 0x57, 0x52, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x24, 0x25, 0x20, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x16, 0x17, 0x12, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x1E, 0x1F, 0x1A, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, + 0x1E, 0x1F, 0x1A, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x2F, 0x2F, 0x2B, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, 0x71, 0x72, 0x6D, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0C, 0x0C, 0x08, 0xFF, + 0x09, 0x0A, 0x05, 0xFF, 0x0C, 0x0C, 0x08, 0xFF, 0x0C, 0x0C, 0x08, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x06, 0x06, 0x06, 0xFF, 0x1B, 0x1B, 0x1B, 0xFF, + 0x30, 0x30, 0x30, 0xFF, 0x8F, 0x8F, 0x8F, 0xFF, 0x5D, 0x5D, 0x5D, 0xFF, + 0x42, 0x42, 0x42, 0xFF, 0x70, 0x70, 0x6E, 0xFF, 0xAF, 0xAF, 0xAD, 0xFF, + 0x71, 0x71, 0x6F, 0xFF, 0x50, 0x51, 0x4E, 0xFF, 0x7B, 0x7C, 0x77, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, + 0xBB, 0xBE, 0xB9, 0xFF, 0xBB, 0xBE, 0xB9, 0xFF, 0xBB, 0xBE, 0xBB, 0xFF, + 0xBB, 0xBE, 0xBB, 0xFF, 0xBC, 0xBF, 0xBC, 0xFF, 0xBC, 0xBF, 0xBC, 0xFF, + 0xB6, 0xBB, 0xB7, 0xFF, 0xBF, 0xC4, 0xC0, 0xFF, 0xC5, 0xCA, 0xC6, 0xFF, + 0xBC, 0xC1, 0xBD, 0xFF, 0xB4, 0xBC, 0xB7, 0xFF, 0xBD, 0xC4, 0xBF, 0xFF, + 0xBF, 0xC6, 0xC2, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, 0xAD, 0xB5, 0xB0, 0xFF, + 0x98, 0xA0, 0x9B, 0xFF, 0x87, 0x8F, 0x8A, 0xFF, 0x73, 0x7B, 0x76, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0xA2, 0xA3, 0x9E, 0xFF, 0xA7, 0xA7, 0xA2, 0xFF, + 0xAA, 0xAB, 0xA6, 0xFF, 0xA7, 0xA7, 0xA2, 0xFF, 0x9E, 0x9F, 0x9A, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x90, 0x91, 0x8C, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x87, 0x88, 0x83, 0xFF, 0x84, 0x84, 0x80, 0xFF, + 0x80, 0x81, 0x7C, 0xFF, 0x7F, 0x80, 0x7B, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x79, 0x7A, 0x73, 0xFF, 0x73, 0x74, 0x6D, 0xFF, + 0x6C, 0x6D, 0x66, 0xFF, 0x66, 0x68, 0x60, 0xFF, 0x63, 0x64, 0x5F, 0xFF, + 0x5C, 0x5D, 0x58, 0xFF, 0x54, 0x55, 0x50, 0xFF, 0x48, 0x49, 0x44, 0xFF, + 0x2F, 0x2F, 0x2B, 0xFF, 0x21, 0x21, 0x1D, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x13, 0x13, 0x0F, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x44, 0x44, 0x3F, 0xFF, + 0x42, 0x43, 0x3E, 0xFF, 0x68, 0x68, 0x64, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, + 0x3B, 0x3D, 0x35, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x09, 0x02, 0xFF, + 0x2F, 0x30, 0x29, 0xFF, 0x54, 0x55, 0x50, 0xFF, 0x78, 0x79, 0x74, 0xFF, + 0x18, 0x19, 0x14, 0xFF, 0x0E, 0x0F, 0x0A, 0xFF, 0x14, 0x15, 0x10, 0xFF, + 0x0C, 0x0C, 0x08, 0xFF, 0x09, 0x0A, 0x05, 0xFF, 0x08, 0x09, 0x04, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x2D, 0x2E, 0x2B, 0xFF, 0x92, 0x92, 0x90, 0xFF, 0xA9, 0xA9, 0xA7, 0xFF, + 0x94, 0x94, 0x92, 0xFF, 0x8B, 0x8B, 0x89, 0xFF, 0x77, 0x77, 0x75, 0xFF, + 0x50, 0x51, 0x4E, 0xFF, 0x5C, 0x5C, 0x5A, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0xB9, 0xBA, 0xB5, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, 0xBA, 0xBD, 0xB7, 0xFF, + 0xBB, 0xBE, 0xB9, 0xFF, 0xBB, 0xBE, 0xB9, 0xFF, 0xB9, 0xBF, 0xBB, 0xFF, + 0xB9, 0xBF, 0xBB, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, + 0xB2, 0xB8, 0xB4, 0xFF, 0xBE, 0xC5, 0xC0, 0xFF, 0xC2, 0xCA, 0xC5, 0xFF, + 0xBE, 0xC5, 0xC0, 0xFF, 0xBA, 0xC2, 0xBD, 0xFF, 0xC1, 0xC9, 0xC4, 0xFF, + 0xC3, 0xCB, 0xC6, 0xFF, 0xBD, 0xC4, 0xBF, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, + 0xA2, 0xA9, 0xA4, 0xFF, 0x98, 0xA0, 0x9B, 0xFF, 0x93, 0x9A, 0x95, 0xFF, + 0xB1, 0xB2, 0xAD, 0xFF, 0xA9, 0xAA, 0xA5, 0xFF, 0xA0, 0xA0, 0x9B, 0xFF, + 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x93, 0x93, 0x8F, 0xFF, 0x90, 0x91, 0x8C, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, 0x88, 0x89, 0x84, 0xFF, + 0x80, 0x81, 0x7C, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, 0x7B, 0x7C, 0x77, 0xFF, + 0x79, 0x7A, 0x75, 0xFF, 0x77, 0x78, 0x71, 0xFF, 0x71, 0x72, 0x6B, 0xFF, + 0x6A, 0x6B, 0x64, 0xFF, 0x64, 0x65, 0x5E, 0xFF, 0x5F, 0x60, 0x5B, 0xFF, + 0x5A, 0x5A, 0x56, 0xFF, 0x50, 0x51, 0x4C, 0xFF, 0x46, 0x47, 0x42, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x45, 0x45, 0x41, 0xFF, + 0x4B, 0x4B, 0x46, 0xFF, 0x49, 0x4A, 0x45, 0xFF, 0x8F, 0x90, 0x8B, 0xFF, + 0x8E, 0x8F, 0x88, 0xFF, 0x55, 0x56, 0x4F, 0xFF, 0x5C, 0x5D, 0x56, 0xFF, + 0x76, 0x76, 0x72, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, 0x52, 0x52, 0x4D, 0xFF, + 0x03, 0x04, 0x00, 0xFF, 0x16, 0x17, 0x12, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x10, 0x11, 0x0C, 0xFF, 0x08, 0x09, 0x04, 0xFF, 0x05, 0x05, 0x03, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x08, 0x09, 0x06, 0xFF, + 0x17, 0x18, 0x15, 0xFF, 0x44, 0x44, 0x42, 0xFF, 0x53, 0x53, 0x51, 0xFF, + 0x4C, 0x4C, 0x4A, 0xFF, 0x52, 0x52, 0x4F, 0xFF, 0x46, 0x46, 0x44, 0xFF, + 0x38, 0x38, 0x36, 0xFF, 0x64, 0x65, 0x62, 0xFF, 0xAD, 0xAE, 0xA9, 0xFF, + 0xC0, 0xC1, 0xBC, 0xFF, 0xB9, 0xBC, 0xB6, 0xFF, 0xB9, 0xBC, 0xB6, 0xFF, + 0xBA, 0xBD, 0xB7, 0xFF, 0xBD, 0xC1, 0xBB, 0xFF, 0xC0, 0xC6, 0xC2, 0xFF, + 0xC2, 0xC7, 0xC3, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, + 0xB6, 0xBD, 0xB8, 0xFF, 0xBF, 0xC6, 0xC2, 0xFF, 0xBF, 0xC6, 0xC2, 0xFF, + 0xBD, 0xC4, 0xBF, 0xFF, 0xBD, 0xC4, 0xBF, 0xFF, 0xC5, 0xCC, 0xC7, 0xFF, + 0xC8, 0xD0, 0xCB, 0xFF, 0xC1, 0xC9, 0xC4, 0xFF, 0xBA, 0xC2, 0xBD, 0xFF, + 0xAA, 0xB1, 0xAD, 0xFF, 0xA5, 0xAD, 0xA8, 0xFF, 0xA5, 0xAD, 0xA8, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0x9B, 0x9C, 0x97, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x94, 0x95, 0x90, 0xFF, + 0x90, 0x91, 0x8C, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x86, 0x87, 0x82, 0xFF, 0x84, 0x84, 0x80, 0xFF, + 0x80, 0x81, 0x7C, 0xFF, 0x7D, 0x7D, 0x79, 0xFF, 0x79, 0x7A, 0x75, 0xFF, + 0x77, 0x78, 0x73, 0xFF, 0x70, 0x71, 0x6A, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, + 0x64, 0x65, 0x5E, 0xFF, 0x5F, 0x61, 0x59, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, + 0x57, 0x58, 0x53, 0xFF, 0x4E, 0x4F, 0x4A, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x28, 0x28, 0x24, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x15, 0x16, 0x11, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x18, 0x19, 0x14, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, 0x29, 0x2A, 0x25, 0xFF, + 0x48, 0x49, 0x44, 0xFF, 0x33, 0x34, 0x2F, 0xFF, 0x46, 0x47, 0x42, 0xFF, + 0x84, 0x84, 0x80, 0xFF, 0x7A, 0x7B, 0x76, 0xFF, 0x77, 0x78, 0x73, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x4F, 0x50, 0x4D, 0xFF, 0x24, 0x24, 0x22, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x23, 0x23, 0x21, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x0F, 0x12, 0x0E, 0xFF, 0x0A, 0x0D, 0x0A, 0xFF, + 0x0B, 0x0E, 0x0D, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0F, 0x11, 0x10, 0xFF, + 0x11, 0x13, 0x13, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x25, 0x26, 0x23, 0xFF, 0x39, 0x39, 0x37, 0xFF, 0x36, 0x36, 0x34, 0xFF, + 0x2F, 0x2F, 0x2D, 0xFF, 0x4B, 0x4B, 0x48, 0xFF, 0x57, 0x58, 0x55, 0xFF, + 0x3D, 0x3D, 0x3B, 0xFF, 0x82, 0x83, 0x80, 0xFF, 0xBA, 0xBB, 0xB8, 0xFF, + 0xC6, 0xC6, 0xC4, 0xFF, 0xB8, 0xBA, 0xB7, 0xFF, 0xB5, 0xB8, 0xB5, 0xFF, + 0xC3, 0xC6, 0xC3, 0xFF, 0xBD, 0xC0, 0xBD, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xB9, 0xBF, 0xBB, 0xFF, 0xC3, 0xC8, 0xC4, 0xFF, 0xCA, 0xCF, 0xCB, 0xFF, + 0xC5, 0xCA, 0xC6, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, 0xC9, 0xCE, 0xCA, 0xFF, + 0xCC, 0xD1, 0xCD, 0xFF, 0xC6, 0xCB, 0xC7, 0xFF, 0xB8, 0xBD, 0xB9, 0xFF, + 0xB8, 0xBD, 0xB9, 0xFF, 0xB8, 0xBD, 0xB9, 0xFF, 0xB8, 0xBD, 0xB9, 0xFF, + 0x9E, 0x9F, 0x9A, 0xFF, 0x9B, 0x9C, 0x97, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0x96, 0x97, 0x92, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x94, 0x95, 0x90, 0xFF, + 0x90, 0x91, 0x8C, 0xFF, 0x8E, 0x8F, 0x8A, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0x88, 0x89, 0x84, 0xFF, 0x85, 0x86, 0x81, 0xFF, 0x82, 0x83, 0x7E, 0xFF, + 0x7D, 0x7D, 0x79, 0xFF, 0x79, 0x7A, 0x75, 0xFF, 0x77, 0x78, 0x73, 0xFF, + 0x74, 0x75, 0x70, 0xFF, 0x70, 0x71, 0x6A, 0xFF, 0x6A, 0x6B, 0x64, 0xFF, + 0x64, 0x65, 0x5E, 0xFF, 0x5F, 0x61, 0x59, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, + 0x57, 0x58, 0x53, 0xFF, 0x4D, 0x4E, 0x49, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x29, 0x2A, 0x25, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x10, 0x10, 0x10, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x40, 0x41, 0x3C, 0xFF, 0x32, 0x33, 0x2E, 0xFF, 0x33, 0x34, 0x2F, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, 0x2F, 0x2F, 0x2B, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x2A, 0x2A, 0x28, 0xFF, 0x2B, 0x2B, 0x29, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x0F, 0x12, 0x0E, 0xFF, 0x0A, 0x0D, 0x0A, 0xFF, + 0x0B, 0x0E, 0x0D, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0F, 0x11, 0x10, 0xFF, + 0x11, 0x13, 0x13, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x1E, 0x1F, 0x1C, 0xFF, 0x2C, 0x2D, 0x2A, 0xFF, 0x4D, 0x4D, 0x4B, 0xFF, + 0x47, 0x47, 0x45, 0xFF, 0x42, 0x43, 0x40, 0xFF, 0x33, 0x34, 0x31, 0xFF, + 0x64, 0x65, 0x62, 0xFF, 0x99, 0x99, 0x97, 0xFF, 0xB8, 0xB8, 0xB6, 0xFF, + 0xC0, 0xC1, 0xBE, 0xFF, 0xBA, 0xBD, 0xB9, 0xFF, 0xB5, 0xB8, 0xB5, 0xFF, + 0xC1, 0xC4, 0xC0, 0xFF, 0xBC, 0xBF, 0xBC, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBB, 0xC0, 0xBC, 0xFF, 0xC4, 0xC9, 0xC5, 0xFF, 0xCA, 0xCF, 0xCB, 0xFF, + 0xC5, 0xCA, 0xC6, 0xFF, 0xC3, 0xC8, 0xC4, 0xFF, 0xC9, 0xCE, 0xCA, 0xFF, + 0xCB, 0xD0, 0xCC, 0xFF, 0xC6, 0xCB, 0xC7, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, + 0xBB, 0xC0, 0xBC, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, 0xBB, 0xC0, 0xBC, 0xFF, + 0x9D, 0x9E, 0x99, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x93, 0x93, 0x8F, 0xFF, + 0x8F, 0x90, 0x8B, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, 0x8B, 0x8B, 0x87, 0xFF, + 0x88, 0x89, 0x84, 0xFF, 0x85, 0x86, 0x81, 0xFF, 0x82, 0x83, 0x7E, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x77, 0x78, 0x73, 0xFF, 0x74, 0x75, 0x70, 0xFF, + 0x72, 0x73, 0x6E, 0xFF, 0x70, 0x71, 0x6A, 0xFF, 0x6A, 0x6B, 0x64, 0xFF, + 0x63, 0x64, 0x5D, 0xFF, 0x5E, 0x5F, 0x58, 0xFF, 0x5C, 0x5D, 0x58, 0xFF, + 0x57, 0x58, 0x53, 0xFF, 0x4D, 0x4E, 0x49, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x29, 0x2A, 0x25, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x22, 0x23, 0x1E, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, + 0x3E, 0x3E, 0x3A, 0xFF, 0x38, 0x39, 0x34, 0xFF, 0x32, 0x33, 0x2E, 0xFF, + 0x28, 0x28, 0x24, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x1F, 0x20, 0x1D, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x1F, 0x20, 0x1D, 0xFF, 0x22, 0x22, 0x20, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x0F, 0x12, 0x0E, 0xFF, 0x0A, 0x0D, 0x0A, 0xFF, + 0x0E, 0x10, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x12, 0x15, 0x14, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x1A, 0x1A, 0x18, 0xFF, 0x28, 0x28, 0x26, 0xFF, 0x2F, 0x2F, 0x2D, 0xFF, + 0x3F, 0x3F, 0x3D, 0xFF, 0x47, 0x47, 0x45, 0xFF, 0x55, 0x55, 0x53, 0xFF, + 0x92, 0x92, 0x90, 0xFF, 0xB0, 0xB0, 0xAE, 0xFF, 0xB2, 0xB3, 0xB0, 0xFF, + 0xB9, 0xBA, 0xB7, 0xFF, 0xC0, 0xC2, 0xBF, 0xFF, 0xB8, 0xBA, 0xB7, 0xFF, + 0xBF, 0xC1, 0xBE, 0xFF, 0xB6, 0xB9, 0xB6, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBB, 0xC0, 0xBC, 0xFF, 0xC5, 0xCA, 0xC6, 0xFF, 0xCA, 0xCF, 0xCB, 0xFF, + 0xC5, 0xCA, 0xC6, 0xFF, 0xC3, 0xC8, 0xC4, 0xFF, 0xC9, 0xCE, 0xCA, 0xFF, + 0xCB, 0xD0, 0xCC, 0xFF, 0xC6, 0xCB, 0xC7, 0xFF, 0xBF, 0xC4, 0xC0, 0xFF, + 0xBF, 0xC4, 0xC0, 0xFF, 0xBF, 0xC4, 0xC0, 0xFF, 0xBF, 0xC4, 0xC0, 0xFF, + 0x9D, 0x9E, 0x99, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x95, 0x96, 0x91, 0xFF, 0x93, 0x93, 0x8F, 0xFF, + 0x8F, 0x90, 0x8B, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, 0x89, 0x8A, 0x85, 0xFF, + 0x87, 0x88, 0x83, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x78, 0x79, 0x74, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x72, 0x73, 0x6E, 0xFF, + 0x70, 0x71, 0x6C, 0xFF, 0x70, 0x71, 0x6A, 0xFF, 0x69, 0x6A, 0x63, 0xFF, + 0x63, 0x64, 0x5D, 0xFF, 0x5E, 0x5F, 0x58, 0xFF, 0x5C, 0x5D, 0x58, 0xFF, + 0x57, 0x58, 0x53, 0xFF, 0x4C, 0x4C, 0x48, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x2A, 0x2B, 0x26, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x29, 0x29, 0x27, 0xFF, 0x2A, 0x2A, 0x28, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, + 0x2A, 0x2B, 0x26, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x31, 0x32, 0x2D, 0xFF, + 0x34, 0x35, 0x32, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x2B, 0x2B, 0x29, 0xFF, + 0x21, 0x21, 0x1F, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x0F, 0x12, 0x0E, 0xFF, 0x0A, 0x0D, 0x0A, 0xFF, + 0x0E, 0x10, 0x0F, 0xFF, 0x10, 0x12, 0x11, 0xFF, 0x11, 0x13, 0x13, 0xFF, + 0x12, 0x15, 0x14, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x30, 0x30, 0x2E, 0xFF, 0x36, 0x36, 0x34, 0xFF, + 0x36, 0x36, 0x34, 0xFF, 0x37, 0x37, 0x35, 0xFF, 0x5D, 0x5E, 0x5B, 0xFF, + 0xB2, 0xB3, 0xB0, 0xFF, 0xB3, 0xB4, 0xB1, 0xFF, 0xAB, 0xAC, 0xA9, 0xFF, + 0xB4, 0xB5, 0xB2, 0xFF, 0xC3, 0xC6, 0xC3, 0xFF, 0xB9, 0xBC, 0xB8, 0xFF, + 0xBD, 0xC0, 0xBD, 0xFF, 0xB3, 0xB6, 0xB2, 0xFF, 0xBF, 0xC1, 0xBE, 0xFF, + 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, 0xBD, 0xC2, 0xBE, 0xFF, + 0xBB, 0xC0, 0xBC, 0xFF, 0xC5, 0xCA, 0xC6, 0xFF, 0xCA, 0xCF, 0xCB, 0xFF, + 0xC5, 0xCA, 0xC6, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, 0xC6, 0xCB, 0xC7, 0xFF, + 0xCA, 0xCF, 0xCB, 0xFF, 0xC6, 0xCB, 0xC7, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, + 0xC2, 0xC7, 0xC3, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, 0xC2, 0xC7, 0xC3, 0xFF, + 0x9D, 0x9E, 0x99, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x93, 0x93, 0x8F, 0xFF, + 0x8F, 0x90, 0x8B, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, 0x89, 0x8A, 0x85, 0xFF, + 0x87, 0x88, 0x83, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x72, 0x73, 0x6E, 0xFF, + 0x70, 0x71, 0x6C, 0xFF, 0x6A, 0x6B, 0x64, 0xFF, 0x69, 0x6A, 0x63, 0xFF, + 0x62, 0x63, 0x5C, 0xFF, 0x5D, 0x5E, 0x57, 0xFF, 0x5B, 0x5C, 0x57, 0xFF, + 0x50, 0x51, 0x4C, 0xFF, 0x4C, 0x4C, 0x48, 0xFF, 0x41, 0x42, 0x3D, 0xFF, + 0x2A, 0x2B, 0x26, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x1B, 0x1B, 0x1B, 0xFF, 0x21, 0x21, 0x21, 0xFF, 0x25, 0x26, 0x23, 0xFF, + 0x2A, 0x2A, 0x28, 0xFF, 0x2A, 0x2A, 0x28, 0xFF, 0x2A, 0x2A, 0x28, 0xFF, + 0x2A, 0x2A, 0x28, 0xFF, 0x26, 0x26, 0x26, 0xFF, 0x23, 0x23, 0x23, 0xFF, + 0x1E, 0x20, 0x1F, 0xFF, 0x1A, 0x1D, 0x1C, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0B, 0x0E, 0x0D, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x11, 0x13, 0x13, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, + 0x1C, 0x1C, 0x1C, 0xFF, 0x1D, 0x1D, 0x1D, 0xFF, 0x34, 0x34, 0x34, 0xFF, + 0x3A, 0x3A, 0x3A, 0xFF, 0x57, 0x57, 0x57, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0xC5, 0xC5, 0xC5, 0xFF, 0xBB, 0xBB, 0xBB, 0xFF, 0xB3, 0xB3, 0xB3, 0xFF, + 0xBA, 0xBA, 0xBA, 0xFF, 0xB7, 0xB7, 0xB7, 0xFF, 0xB8, 0xB8, 0xB8, 0xFF, + 0xBD, 0xBD, 0xBD, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0x9D, 0x9E, 0x99, 0xFF, 0x9A, 0x9A, 0x96, 0xFF, 0x97, 0x98, 0x93, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x93, 0x93, 0x8F, 0xFF, + 0x8F, 0x90, 0x8B, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, 0x88, 0x89, 0x84, 0xFF, + 0x86, 0x87, 0x82, 0xFF, 0x82, 0x83, 0x7E, 0xFF, 0x80, 0x81, 0x7C, 0xFF, + 0x7A, 0x7B, 0x76, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x72, 0x73, 0x6E, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6A, 0x6B, 0x64, 0xFF, 0x68, 0x69, 0x62, 0xFF, + 0x62, 0x63, 0x5C, 0xFF, 0x5D, 0x5E, 0x57, 0xFF, 0x5B, 0x5C, 0x57, 0xFF, + 0x50, 0x51, 0x4C, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, 0x41, 0x42, 0x3D, 0xFF, + 0x2B, 0x2C, 0x27, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, + 0x22, 0x22, 0x20, 0xFF, 0x22, 0x22, 0x20, 0xFF, 0x22, 0x22, 0x20, 0xFF, + 0x22, 0x22, 0x20, 0xFF, 0x23, 0x23, 0x23, 0xFF, 0x22, 0x22, 0x22, 0xFF, + 0x1F, 0x21, 0x21, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0B, 0x0E, 0x0D, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x11, 0x13, 0x13, 0xFF, 0x12, 0x15, 0x14, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x17, 0x17, 0x17, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x18, 0x18, 0x18, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, 0x3F, 0x3F, 0x3F, 0xFF, + 0x3F, 0x3F, 0x3F, 0xFF, 0x70, 0x70, 0x70, 0xFF, 0xB0, 0xB0, 0xB0, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xBF, 0xBF, 0xBF, 0xFF, 0xBE, 0xBE, 0xBE, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x88, 0x89, 0x84, 0xFF, + 0x86, 0x87, 0x82, 0xFF, 0x82, 0x83, 0x7E, 0xFF, 0x80, 0x81, 0x7C, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x72, 0x73, 0x6E, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x68, 0x69, 0x62, 0xFF, + 0x61, 0x62, 0x5B, 0xFF, 0x5C, 0x5D, 0x56, 0xFF, 0x5A, 0x5A, 0x56, 0xFF, + 0x50, 0x51, 0x4C, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, 0x41, 0x42, 0x3D, 0xFF, + 0x2B, 0x2C, 0x27, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x16, 0x16, 0x16, 0xFF, 0x17, 0x17, 0x17, 0xFF, 0x18, 0x18, 0x18, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x1B, 0x1B, 0x19, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, 0x21, 0x21, 0x21, 0xFF, + 0x20, 0x23, 0x22, 0xFF, 0x21, 0x24, 0x23, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0B, 0x0E, 0x0D, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x44, 0x44, 0x44, 0xFF, + 0x3B, 0x3B, 0x3B, 0xFF, 0x8D, 0x8D, 0x8D, 0xFF, 0xC1, 0xC1, 0xC1, 0xFF, + 0xC8, 0xC8, 0xC8, 0xFF, 0xC2, 0xC2, 0xC2, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xCD, 0xD2, 0xD0, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x87, 0x88, 0x83, 0xFF, + 0x85, 0x86, 0x81, 0xFF, 0x81, 0x82, 0x7D, 0xFF, 0x7F, 0x80, 0x7B, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x71, 0x72, 0x6D, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x66, 0x68, 0x60, 0xFF, + 0x61, 0x62, 0x5B, 0xFF, 0x5C, 0x5D, 0x56, 0xFF, 0x5A, 0x5A, 0x56, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x49, 0x4A, 0x45, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x1F, 0x20, 0x1B, 0xFF, 0x16, 0x17, 0x12, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, + 0x23, 0x25, 0x24, 0xFF, 0x25, 0x27, 0x26, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x0E, 0x10, 0x0F, 0xFF, 0x0B, 0x0E, 0x0D, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x23, 0x23, 0x23, 0xFF, 0x44, 0x44, 0x44, 0xFF, + 0x4D, 0x4D, 0x4D, 0xFF, 0xA4, 0xA4, 0xA4, 0xFF, 0xC8, 0xC8, 0xC8, 0xFF, + 0xCC, 0xCC, 0xCC, 0xFF, 0xCD, 0xCD, 0xCD, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC2, 0xC2, 0xC2, 0xFF, + 0xBD, 0xBD, 0xBD, 0xFF, 0xB9, 0xB9, 0xB9, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, + 0x88, 0x89, 0x84, 0xFF, 0x82, 0x83, 0x7E, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x71, 0x72, 0x6D, 0xFF, + 0x6D, 0x6E, 0x69, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5D, 0x5E, 0x57, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x48, 0x49, 0x44, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x24, 0x25, 0x20, 0xFF, 0x18, 0x19, 0x14, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x16, 0x16, 0x18, 0xFF, 0x1A, 0x19, 0x1C, 0xFF, + 0x1D, 0x1D, 0x1F, 0xFF, 0x1F, 0x1F, 0x21, 0xFF, 0x22, 0x21, 0x24, 0xFF, + 0x1E, 0x1E, 0x20, 0xFF, 0x13, 0x15, 0x17, 0xFF, 0x09, 0x0B, 0x0C, 0xFF, + 0x0B, 0x0D, 0x0F, 0xFF, 0x0F, 0x11, 0x12, 0xFF, 0x12, 0x14, 0x16, 0xFF, + 0x15, 0x17, 0x18, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x1F, 0x1F, 0x1F, 0xFF, + 0x1D, 0x1D, 0x1D, 0xFF, 0x2B, 0x2B, 0x2B, 0xFF, 0x4E, 0x4E, 0x4E, 0xFF, + 0x50, 0x50, 0x50, 0xFF, 0xA3, 0xA3, 0xA3, 0xFF, 0xB9, 0xB9, 0xB9, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, + 0xCD, 0xCD, 0xCD, 0xFF, 0xCE, 0xCE, 0xCE, 0xFF, 0xC9, 0xC9, 0xC9, 0xFF, + 0xC2, 0xC2, 0xC2, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC3, 0xC6, 0xC5, 0xFF, 0xD5, 0xD7, 0xD6, 0xFF, 0xD1, 0xD4, 0xD3, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, + 0x88, 0x89, 0x84, 0xFF, 0x82, 0x83, 0x7E, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, + 0x7B, 0x7C, 0x77, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x70, 0x71, 0x6C, 0xFF, + 0x6D, 0x6E, 0x69, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5D, 0x5E, 0x57, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x48, 0x49, 0x44, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x34, 0x35, 0x30, 0xFF, 0x25, 0x26, 0x21, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x16, 0x17, 0x12, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x14, 0x13, 0x16, 0xFF, 0x16, 0x16, 0x18, 0xFF, + 0x1A, 0x19, 0x1C, 0xFF, 0x1D, 0x1D, 0x1F, 0xFF, 0x2D, 0x2D, 0x2F, 0xFF, + 0x31, 0x31, 0x33, 0xFF, 0x21, 0x23, 0x25, 0xFF, 0x11, 0x13, 0x15, 0xFF, + 0x09, 0x0B, 0x0C, 0xFF, 0x10, 0x12, 0x13, 0xFF, 0x16, 0x18, 0x19, 0xFF, + 0x19, 0x1B, 0x1D, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, 0x1B, 0x1B, 0x1B, 0xFF, + 0x2B, 0x2B, 0x2B, 0xFF, 0x3B, 0x3B, 0x3B, 0xFF, 0x47, 0x47, 0x47, 0xFF, + 0x48, 0x48, 0x48, 0xFF, 0x8C, 0x8C, 0x8C, 0xFF, 0xA2, 0xA2, 0xA2, 0xFF, + 0xB8, 0xB8, 0xB8, 0xFF, 0xBF, 0xBF, 0xBF, 0xFF, 0xC5, 0xC5, 0xC5, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xD2, 0xD2, 0xD2, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, + 0xC5, 0xC5, 0xC5, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xC1, 0xC3, 0xC2, 0xFF, 0xC1, 0xC3, 0xC2, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, + 0x7D, 0x7D, 0x79, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x70, 0x71, 0x6C, 0xFF, + 0x6D, 0x6E, 0x69, 0xFF, 0x6C, 0x6D, 0x66, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5D, 0x5E, 0x57, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x48, 0x49, 0x44, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x37, 0x37, 0x33, 0xFF, 0x29, 0x2A, 0x25, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x18, 0x19, 0x14, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, 0x32, 0x32, 0x32, 0xFF, + 0x36, 0x36, 0x36, 0xFF, 0x2C, 0x2E, 0x2D, 0xFF, 0x17, 0x19, 0x18, 0xFF, + 0x0B, 0x0E, 0x0D, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, + 0x24, 0x26, 0x25, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x1D, 0x1D, 0x1D, 0xFF, + 0x3D, 0x3D, 0x3D, 0xFF, 0x49, 0x49, 0x49, 0xFF, 0x45, 0x45, 0x45, 0xFF, + 0x4E, 0x4E, 0x4E, 0xFF, 0x87, 0x87, 0x87, 0xFF, 0xA4, 0xA4, 0xA4, 0xFF, + 0xB8, 0xB8, 0xB8, 0xFF, 0xBF, 0xBF, 0xBF, 0xFF, 0xC5, 0xC5, 0xC5, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xD0, 0xD0, 0xD0, 0xFF, 0xCF, 0xCF, 0xCF, 0xFF, + 0xC7, 0xC7, 0xC7, 0xFF, 0xC2, 0xC2, 0xC2, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, + 0xBD, 0xC0, 0xBF, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, + 0x9C, 0x9D, 0x98, 0xFF, 0x99, 0x99, 0x94, 0xFF, 0x96, 0x97, 0x92, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x94, 0x95, 0x90, 0xFF, 0x92, 0x92, 0x8E, 0xFF, + 0x8E, 0x8F, 0x8A, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, 0x8C, 0x8C, 0x88, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x7E, 0x7F, 0x7A, 0xFF, + 0x7D, 0x7D, 0x79, 0xFF, 0x74, 0x75, 0x70, 0xFF, 0x70, 0x71, 0x6C, 0xFF, + 0x6D, 0x6E, 0x69, 0xFF, 0x6C, 0x6D, 0x66, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5D, 0x5E, 0x57, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x48, 0x49, 0x44, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, + 0x38, 0x39, 0x34, 0xFF, 0x2A, 0x2B, 0x26, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, 0x0E, 0x0E, 0x0C, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x13, 0x13, 0x13, 0xFF, + 0x11, 0x11, 0x11, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x15, 0x15, 0x15, 0xFF, 0x17, 0x17, 0x17, 0xFF, 0x2F, 0x2F, 0x2F, 0xFF, + 0x30, 0x30, 0x30, 0xFF, 0x26, 0x28, 0x28, 0xFF, 0x18, 0x1A, 0x1A, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x1B, 0x1B, 0x1B, 0xFF, 0x28, 0x28, 0x28, 0xFF, + 0x30, 0x30, 0x30, 0xFF, 0x33, 0x33, 0x33, 0xFF, 0x26, 0x26, 0x26, 0xFF, + 0x48, 0x48, 0x48, 0xFF, 0x4C, 0x4C, 0x4C, 0xFF, 0x49, 0x49, 0x49, 0xFF, + 0x5D, 0x5D, 0x5D, 0xFF, 0x96, 0x96, 0x96, 0xFF, 0xBF, 0xBF, 0xBF, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, + 0xCD, 0xCD, 0xCD, 0xFF, 0xD0, 0xD0, 0xD0, 0xFF, 0xCD, 0xCD, 0xCD, 0xFF, + 0xCC, 0xCC, 0xCC, 0xFF, 0xC5, 0xC5, 0xC5, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xBA, 0xBC, 0xBB, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xB3, 0xB5, 0xB4, 0xFF, 0xB9, 0xBB, 0xBA, 0xFF, 0xC1, 0xC3, 0xC2, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xA2, 0xA3, 0x9E, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, 0x99, 0x99, 0x94, 0xFF, + 0x95, 0x96, 0x91, 0xFF, 0x97, 0x98, 0x93, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x93, 0x93, 0x8F, 0xFF, 0x92, 0x92, 0x8E, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x78, 0x79, 0x74, 0xFF, 0x73, 0x74, 0x6F, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5E, 0x5F, 0x58, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x37, 0x37, 0x33, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1D, 0x1E, 0x19, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x10, 0x11, 0x0C, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x0C, 0x0C, 0x08, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0A, 0x0B, 0x06, 0xFF, 0x0A, 0x0B, 0x06, 0xFF, + 0x0A, 0x0B, 0x06, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, 0x08, 0x09, 0x06, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x14, 0x12, 0x13, 0xFF, 0x1B, 0x19, 0x1A, 0xFF, + 0x1A, 0x1A, 0x1A, 0xFF, 0x13, 0x13, 0x13, 0xFF, 0x22, 0x22, 0x22, 0xFF, + 0x2F, 0x2F, 0x2F, 0xFF, 0x2A, 0x2A, 0x2A, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x17, 0x17, 0x17, 0xFF, 0x19, 0x16, 0x17, 0xFF, 0x22, 0x20, 0x21, 0xFF, + 0x2D, 0x2D, 0x2D, 0xFF, 0x34, 0x34, 0x34, 0xFF, 0x3A, 0x3A, 0x3A, 0xFF, + 0x53, 0x53, 0x53, 0xFF, 0x4B, 0x4B, 0x4B, 0xFF, 0x3F, 0x3F, 0x3F, 0xFF, + 0x69, 0x69, 0x69, 0xFF, 0xA0, 0xA0, 0xA0, 0xFF, 0xB7, 0xB7, 0xB7, 0xFF, + 0xBD, 0xBD, 0xBD, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, + 0xCE, 0xCE, 0xCE, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, 0xCD, 0xCD, 0xCD, 0xFF, + 0xCC, 0xCC, 0xCC, 0xFF, 0xC9, 0xC9, 0xC9, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, + 0xBD, 0xC0, 0xBF, 0xFF, 0xC1, 0xC3, 0xC2, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xA0, 0xA0, 0x9B, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, + 0x9B, 0x9C, 0x97, 0xFF, 0x97, 0x98, 0x93, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x93, 0x93, 0x8F, 0xFF, 0x92, 0x92, 0x8E, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, + 0x89, 0x8A, 0x85, 0xFF, 0x84, 0x84, 0x80, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x78, 0x79, 0x74, 0xFF, 0x73, 0x74, 0x6F, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5E, 0x5F, 0x58, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x36, 0x36, 0x32, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1D, 0x1E, 0x19, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x14, 0x15, 0x10, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x10, 0x11, 0x0C, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, + 0x0D, 0x0E, 0x09, 0xFF, 0x0D, 0x0E, 0x09, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x16, 0x17, 0x14, 0xFF, 0x17, 0x18, 0x15, 0xFF, + 0x1A, 0x1A, 0x18, 0xFF, 0x1E, 0x1B, 0x1C, 0xFF, 0x25, 0x22, 0x23, 0xFF, + 0x23, 0x23, 0x23, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, 0x28, 0x28, 0x28, 0xFF, + 0x31, 0x31, 0x31, 0xFF, 0x2F, 0x2F, 0x2F, 0xFF, 0x24, 0x24, 0x24, 0xFF, + 0x21, 0x1F, 0x1F, 0xFF, 0x1E, 0x1B, 0x1C, 0xFF, 0x21, 0x1F, 0x1F, 0xFF, + 0x2A, 0x28, 0x29, 0xFF, 0x3E, 0x3E, 0x3E, 0xFF, 0x37, 0x37, 0x37, 0xFF, + 0x42, 0x42, 0x42, 0xFF, 0x4B, 0x4B, 0x4B, 0xFF, 0x62, 0x62, 0x62, 0xFF, + 0x89, 0x89, 0x89, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, 0xAF, 0xAF, 0xAF, 0xFF, + 0xA9, 0xA9, 0xA9, 0xFF, 0xAC, 0xAC, 0xAC, 0xFF, 0xB9, 0xB9, 0xB9, 0xFF, + 0xC6, 0xC6, 0xC6, 0xFF, 0xD4, 0xD4, 0xD4, 0xFF, 0xD0, 0xD0, 0xD0, 0xFF, + 0xC8, 0xC8, 0xC8, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xC0, 0xC2, 0xC1, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xCB, 0xCE, 0xCD, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCF, 0xD1, 0xD0, 0xFF, + 0xCF, 0xD1, 0xD0, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xA5, 0xA6, 0xA1, 0xFF, 0xA1, 0xA1, 0x9D, 0xFF, 0x9D, 0x9E, 0x99, 0xFF, + 0x9A, 0x9A, 0x96, 0xFF, 0x97, 0x98, 0x93, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x93, 0x93, 0x8F, 0xFF, 0x92, 0x92, 0x8E, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, + 0x8B, 0x8B, 0x87, 0xFF, 0x85, 0x86, 0x81, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x78, 0x79, 0x74, 0xFF, 0x73, 0x74, 0x6F, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x65, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5E, 0x5F, 0x58, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x36, 0x36, 0x32, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1D, 0x1E, 0x19, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x10, 0x11, 0x0C, 0xFF, + 0x10, 0x11, 0x0C, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x0F, 0x10, 0x0B, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x11, 0x12, 0x0F, 0xFF, + 0x18, 0x19, 0x16, 0xFF, 0x17, 0x18, 0x15, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x15, 0x15, 0x13, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, 0x28, 0x26, 0x24, 0xFF, + 0x26, 0x27, 0x24, 0xFF, 0x1F, 0x20, 0x1D, 0xFF, 0x28, 0x28, 0x26, 0xFF, + 0x2B, 0x2B, 0x29, 0xFF, 0x2D, 0x2E, 0x2B, 0xFF, 0x2B, 0x2B, 0x29, 0xFF, + 0x2E, 0x2C, 0x2A, 0xFF, 0x25, 0x22, 0x21, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, + 0x25, 0x22, 0x21, 0xFF, 0x36, 0x36, 0x36, 0xFF, 0x39, 0x39, 0x39, 0xFF, + 0x3E, 0x3E, 0x3E, 0xFF, 0x50, 0x50, 0x50, 0xFF, 0x80, 0x80, 0x80, 0xFF, + 0xA9, 0xA9, 0xA9, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF, + 0xA9, 0xA9, 0xA9, 0xFF, 0xAA, 0xAA, 0xAA, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF, + 0xBB, 0xBB, 0xBB, 0xFF, 0xD4, 0xD4, 0xD4, 0xFF, 0xD0, 0xD0, 0xD0, 0xFF, + 0xC8, 0xC8, 0xC8, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xCF, 0xD1, 0xD0, 0xFF, 0xD0, 0xD2, 0xD2, 0xFF, 0xD0, 0xD2, 0xD2, 0xFF, + 0xD0, 0xD2, 0xD2, 0xFF, 0xCF, 0xD1, 0xD0, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC3, 0xC6, 0xC5, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xB0, 0xB1, 0xAC, 0xFF, 0xA7, 0xA7, 0xA2, 0xFF, 0x9C, 0x9D, 0x98, 0xFF, + 0x94, 0x95, 0x90, 0xFF, 0x97, 0x98, 0x93, 0xFF, 0x95, 0x96, 0x91, 0xFF, + 0x93, 0x93, 0x8F, 0xFF, 0x92, 0x92, 0x8E, 0xFF, 0x8D, 0x8E, 0x89, 0xFF, + 0x8B, 0x8B, 0x87, 0xFF, 0x85, 0x86, 0x81, 0xFF, 0x81, 0x82, 0x7D, 0xFF, + 0x7E, 0x7F, 0x7A, 0xFF, 0x78, 0x79, 0x74, 0xFF, 0x73, 0x74, 0x6F, 0xFF, + 0x71, 0x72, 0x6D, 0xFF, 0x6B, 0x6C, 0x67, 0xFF, 0x65, 0x66, 0x5F, 0xFF, + 0x5E, 0x5F, 0x58, 0xFF, 0x58, 0x5A, 0x52, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x36, 0x36, 0x32, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x17, 0x18, 0x13, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x14, 0x15, 0x10, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, + 0x11, 0x12, 0x0D, 0xFF, 0x11, 0x12, 0x0D, 0xFF, 0x10, 0x11, 0x0E, 0xFF, + 0x11, 0x12, 0x0F, 0xFF, 0x14, 0x14, 0x12, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x18, 0x19, 0x16, 0xFF, 0x15, 0x15, 0x13, 0xFF, + 0x13, 0x11, 0x0F, 0xFF, 0x1E, 0x1C, 0x1A, 0xFF, 0x23, 0x21, 0x20, 0xFF, + 0x23, 0x21, 0x20, 0xFF, 0x1E, 0x1C, 0x1A, 0xFF, 0x22, 0x20, 0x1F, 0xFF, + 0x22, 0x20, 0x1F, 0xFF, 0x27, 0x25, 0x23, 0xFF, 0x2D, 0x2B, 0x29, 0xFF, + 0x37, 0x35, 0x34, 0xFF, 0x2A, 0x28, 0x27, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, + 0x21, 0x1F, 0x1D, 0xFF, 0x3C, 0x39, 0x3A, 0xFF, 0x5B, 0x5B, 0x5B, 0xFF, + 0x63, 0x63, 0x63, 0xFF, 0x74, 0x74, 0x74, 0xFF, 0x95, 0x95, 0x95, 0xFF, + 0xB2, 0xB2, 0xB2, 0xFF, 0xBA, 0xBA, 0xBA, 0xFF, 0xC0, 0xC0, 0xC0, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xB8, 0xB8, 0xB8, 0xFF, 0xB4, 0xB4, 0xB4, 0xFF, + 0xB7, 0xB7, 0xB7, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, + 0xCC, 0xCC, 0xCC, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xCA, 0xCD, 0xCC, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, 0xC1, 0xC3, 0xC2, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC0, 0xC1, 0xBE, 0xFF, 0xB3, 0xB4, 0xB1, 0xFF, 0xA5, 0xA6, 0xA3, 0xFF, + 0x9C, 0x9C, 0x9A, 0xFF, 0x9B, 0x9B, 0x99, 0xFF, 0x99, 0x99, 0x97, 0xFF, + 0x94, 0x94, 0x92, 0xFF, 0x92, 0x92, 0x90, 0xFF, 0x8E, 0x90, 0x8D, 0xFF, + 0x8A, 0x8D, 0x8A, 0xFF, 0x87, 0x89, 0x86, 0xFF, 0x82, 0x85, 0x82, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, 0x78, 0x7A, 0x77, 0xFF, + 0x74, 0x77, 0x74, 0xFF, 0x70, 0x71, 0x6C, 0xFF, 0x6A, 0x6B, 0x66, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, 0x57, 0x58, 0x53, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x46, 0x47, 0x42, 0xFF, 0x3D, 0x3D, 0x39, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x1A, 0x1A, 0x16, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, 0x1B, 0x1A, 0x16, 0xFF, + 0x1B, 0x1A, 0x16, 0xFF, 0x1A, 0x18, 0x14, 0xFF, 0x1A, 0x18, 0x14, 0xFF, + 0x1F, 0x1D, 0x19, 0xFF, 0x1C, 0x1B, 0x17, 0xFF, 0x1A, 0x18, 0x14, 0xFF, + 0x19, 0x17, 0x13, 0xFF, 0x19, 0x17, 0x13, 0xFF, 0x19, 0x17, 0x13, 0xFF, + 0x17, 0x15, 0x11, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x0E, 0x0C, 0x0B, 0xFF, + 0x10, 0x0E, 0x0C, 0xFF, 0x14, 0x12, 0x11, 0xFF, 0x1C, 0x1A, 0x19, 0xFF, + 0x23, 0x21, 0x20, 0xFF, 0x20, 0x1E, 0x1C, 0xFF, 0x1C, 0x1A, 0x19, 0xFF, + 0x19, 0x17, 0x15, 0xFF, 0x24, 0x1F, 0x1F, 0xFF, 0x27, 0x23, 0x22, 0xFF, + 0x24, 0x1F, 0x1F, 0xFF, 0x1F, 0x1B, 0x1A, 0xFF, 0x20, 0x1C, 0x1B, 0xFF, + 0x21, 0x1D, 0x1C, 0xFF, 0x24, 0x1F, 0x1F, 0xFF, 0x2B, 0x26, 0x26, 0xFF, + 0x3A, 0x35, 0x35, 0xFF, 0x36, 0x32, 0x31, 0xFF, 0x38, 0x33, 0x32, 0xFF, + 0x3D, 0x39, 0x38, 0xFF, 0x6A, 0x68, 0x69, 0xFF, 0x83, 0x80, 0x81, 0xFF, + 0x9B, 0x99, 0x9A, 0xFF, 0x9C, 0x9A, 0x9B, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, + 0xA5, 0xA5, 0xA5, 0xFF, 0xAC, 0xAC, 0xAC, 0xFF, 0xBF, 0xBF, 0xBF, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, 0xB7, 0xB7, 0xB7, 0xFF, + 0xC0, 0xC0, 0xC0, 0xFF, 0xC1, 0xC1, 0xC1, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, + 0xCE, 0xCE, 0xCE, 0xFF, 0xD2, 0xD2, 0xD2, 0xFF, 0xD7, 0xD9, 0xD9, 0xFF, + 0xCF, 0xD1, 0xD0, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, 0xBB, 0xBD, 0xBD, 0xFF, + 0xBF, 0xC1, 0xC0, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xBF, 0xC1, 0xC0, 0xFF, 0xD3, 0xD6, 0xD5, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xCE, 0xCE, 0xCC, 0xFF, 0xC2, 0xC3, 0xC0, 0xFF, 0xB2, 0xB3, 0xB0, 0xFF, + 0xA3, 0xA3, 0xA1, 0xFF, 0x9D, 0x9E, 0x9B, 0xFF, 0x9B, 0x9B, 0x99, 0xFF, + 0x97, 0x98, 0x95, 0xFF, 0x93, 0x93, 0x91, 0xFF, 0x8F, 0x92, 0x8E, 0xFF, + 0x8C, 0x8F, 0x8C, 0xFF, 0x88, 0x8B, 0x87, 0xFF, 0x84, 0x87, 0x84, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, 0x78, 0x7A, 0x77, 0xFF, + 0x74, 0x77, 0x74, 0xFF, 0x70, 0x71, 0x6C, 0xFF, 0x6A, 0x6B, 0x66, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, 0x57, 0x58, 0x53, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x46, 0x47, 0x42, 0xFF, 0x3D, 0x3D, 0x39, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x1E, 0x1C, 0x18, 0xFF, + 0x1E, 0x1C, 0x18, 0xFF, 0x1E, 0x1C, 0x18, 0xFF, 0x1F, 0x1D, 0x19, 0xFF, + 0x1F, 0x1D, 0x19, 0xFF, 0x1F, 0x1D, 0x19, 0xFF, 0x1C, 0x1B, 0x17, 0xFF, + 0x1B, 0x1A, 0x16, 0xFF, 0x1A, 0x18, 0x14, 0xFF, 0x19, 0x17, 0x13, 0xFF, + 0x17, 0x15, 0x11, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x13, 0x11, 0x0F, 0xFF, + 0x17, 0x15, 0x13, 0xFF, 0x1C, 0x1A, 0x19, 0xFF, 0x20, 0x1E, 0x1C, 0xFF, + 0x22, 0x20, 0x1F, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, 0x20, 0x1E, 0x1C, 0xFF, + 0x1F, 0x1D, 0x1B, 0xFF, 0x26, 0x22, 0x21, 0xFF, 0x2A, 0x25, 0x24, 0xFF, + 0x26, 0x22, 0x21, 0xFF, 0x21, 0x1D, 0x1C, 0xFF, 0x24, 0x1F, 0x1F, 0xFF, + 0x27, 0x23, 0x22, 0xFF, 0x2D, 0x29, 0x28, 0xFF, 0x35, 0x31, 0x30, 0xFF, + 0x44, 0x40, 0x3F, 0xFF, 0x3F, 0x3A, 0x39, 0xFF, 0x44, 0x40, 0x3F, 0xFF, + 0x51, 0x4D, 0x4C, 0xFF, 0x86, 0x84, 0x85, 0xFF, 0x95, 0x93, 0x94, 0xFF, + 0xAF, 0xAD, 0xAD, 0xFF, 0xAD, 0xAA, 0xAB, 0xFF, 0xAB, 0xAB, 0xAB, 0xFF, + 0xA8, 0xA8, 0xA8, 0xFF, 0xAD, 0xAD, 0xAD, 0xFF, 0xB8, 0xB8, 0xB8, 0xFF, + 0xC1, 0xC1, 0xC1, 0xFF, 0xBB, 0xBB, 0xBB, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, + 0xC5, 0xC5, 0xC5, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, 0xC9, 0xC9, 0xC9, 0xFF, + 0xD0, 0xD0, 0xD0, 0xFF, 0xD3, 0xD3, 0xD3, 0xFF, 0xD3, 0xD6, 0xD5, 0xFF, + 0xCE, 0xD0, 0xCF, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xCF, 0xD1, 0xD0, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xCC, 0xD1, 0xCF, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xDB, 0xDB, 0xD9, 0xFF, 0xD5, 0xD5, 0xD3, 0xFF, 0xC7, 0xC7, 0xC5, 0xFF, + 0xB6, 0xB6, 0xB4, 0xFF, 0xA4, 0xA5, 0xA2, 0xFF, 0x9D, 0x9E, 0x9B, 0xFF, + 0x9B, 0x9B, 0x99, 0xFF, 0x96, 0x97, 0x94, 0xFF, 0x90, 0x93, 0x90, 0xFF, + 0x8E, 0x90, 0x8D, 0xFF, 0x8A, 0x8D, 0x8A, 0xFF, 0x87, 0x89, 0x86, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, 0x78, 0x7A, 0x77, 0xFF, + 0x74, 0x77, 0x74, 0xFF, 0x70, 0x71, 0x6C, 0xFF, 0x6A, 0x6B, 0x66, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, 0x57, 0x58, 0x53, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x46, 0x47, 0x42, 0xFF, 0x3D, 0x3D, 0x39, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x26, 0x27, 0x22, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, 0x23, 0x22, 0x1E, 0xFF, + 0x23, 0x22, 0x1E, 0xFF, 0x23, 0x22, 0x1E, 0xFF, 0x23, 0x22, 0x1E, 0xFF, + 0x22, 0x21, 0x1D, 0xFF, 0x21, 0x1F, 0x1B, 0xFF, 0x1F, 0x1D, 0x19, 0xFF, + 0x1C, 0x1B, 0x17, 0xFF, 0x1F, 0x1D, 0x19, 0xFF, 0x19, 0x17, 0x13, 0xFF, + 0x17, 0x15, 0x11, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x1C, 0x1A, 0x19, 0xFF, + 0x21, 0x1F, 0x1D, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, 0x22, 0x20, 0x1F, 0xFF, + 0x22, 0x20, 0x1F, 0xFF, 0x23, 0x21, 0x20, 0xFF, 0x25, 0x22, 0x21, 0xFF, + 0x26, 0x24, 0x22, 0xFF, 0x2A, 0x25, 0x24, 0xFF, 0x2D, 0x29, 0x28, 0xFF, + 0x2A, 0x25, 0x24, 0xFF, 0x25, 0x21, 0x20, 0xFF, 0x2B, 0x26, 0x26, 0xFF, + 0x31, 0x2C, 0x2B, 0xFF, 0x39, 0x34, 0x34, 0xFF, 0x44, 0x40, 0x3F, 0xFF, + 0x4D, 0x48, 0x47, 0xFF, 0x3D, 0x39, 0x38, 0xFF, 0x3F, 0x3A, 0x39, 0xFF, + 0x50, 0x4C, 0x4B, 0xFF, 0x88, 0x85, 0x86, 0xFF, 0x97, 0x94, 0x95, 0xFF, + 0xAE, 0xAC, 0xAC, 0xFF, 0xA8, 0xA6, 0xA7, 0xFF, 0xA2, 0xA2, 0xA2, 0xFF, + 0xA5, 0xA5, 0xA5, 0xFF, 0xAB, 0xAB, 0xAB, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xBB, 0xBB, 0xBB, 0xFF, 0xC2, 0xC2, 0xC2, 0xFF, + 0xCB, 0xCB, 0xCB, 0xFF, 0xC9, 0xC9, 0xC9, 0xFF, 0xC9, 0xC9, 0xC9, 0xFF, + 0xD0, 0xD0, 0xD0, 0xFF, 0xD3, 0xD3, 0xD3, 0xFF, 0xCF, 0xD1, 0xD0, 0xFF, + 0xCB, 0xCE, 0xCD, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xCE, 0xD0, 0xCF, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xDD, 0xDE, 0xDB, 0xFF, 0xE1, 0xE1, 0xDF, 0xFF, 0xD9, 0xD9, 0xD7, 0xFF, + 0xC8, 0xC9, 0xC6, 0xFF, 0xB1, 0xB1, 0xAF, 0xFF, 0xA0, 0xA0, 0x9D, 0xFF, + 0x9C, 0x9C, 0x9A, 0xFF, 0x9A, 0x9A, 0x98, 0xFF, 0x92, 0x95, 0x92, 0xFF, + 0x8F, 0x92, 0x8E, 0xFF, 0x8C, 0x8F, 0x8C, 0xFF, 0x88, 0x8B, 0x87, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, 0x78, 0x7A, 0x77, 0xFF, + 0x74, 0x77, 0x74, 0xFF, 0x70, 0x71, 0x6C, 0xFF, 0x6A, 0x6B, 0x66, 0xFF, + 0x63, 0x64, 0x5F, 0xFF, 0x5D, 0x5E, 0x59, 0xFF, 0x57, 0x58, 0x53, 0xFF, + 0x4F, 0x50, 0x4B, 0xFF, 0x46, 0x47, 0x42, 0xFF, 0x3D, 0x3D, 0x39, 0xFF, + 0x30, 0x31, 0x2C, 0xFF, 0x25, 0x26, 0x21, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x1B, 0x1C, 0x17, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, 0x27, 0x25, 0x21, 0xFF, + 0x27, 0x25, 0x21, 0xFF, 0x27, 0x25, 0x21, 0xFF, 0x27, 0x25, 0x21, 0xFF, + 0x25, 0x23, 0x1F, 0xFF, 0x22, 0x21, 0x1D, 0xFF, 0x20, 0x1E, 0x1A, 0xFF, + 0x1F, 0x1D, 0x19, 0xFF, 0x21, 0x1F, 0x1B, 0xFF, 0x1A, 0x18, 0x14, 0xFF, + 0x17, 0x15, 0x11, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x28, 0x26, 0x24, 0xFF, + 0x28, 0x26, 0x24, 0xFF, 0x26, 0x24, 0x22, 0xFF, 0x25, 0x22, 0x21, 0xFF, + 0x21, 0x1F, 0x1D, 0xFF, 0x25, 0x22, 0x21, 0xFF, 0x29, 0x27, 0x26, 0xFF, + 0x2C, 0x29, 0x28, 0xFF, 0x2C, 0x28, 0x27, 0xFF, 0x2F, 0x2B, 0x2A, 0xFF, + 0x2C, 0x28, 0x27, 0xFF, 0x27, 0x23, 0x22, 0xFF, 0x2E, 0x2A, 0x29, 0xFF, + 0x36, 0x32, 0x31, 0xFF, 0x42, 0x3E, 0x3D, 0xFF, 0x4F, 0x4A, 0x4A, 0xFF, + 0x4E, 0x49, 0x48, 0xFF, 0x33, 0x2E, 0x2E, 0xFF, 0x2B, 0x26, 0x26, 0xFF, + 0x3A, 0x35, 0x35, 0xFF, 0x9A, 0x98, 0x99, 0xFF, 0xA8, 0xA6, 0xA7, 0xFF, + 0xBB, 0xB8, 0xB9, 0xFF, 0xB8, 0xB6, 0xB7, 0xFF, 0x97, 0x97, 0x97, 0xFF, + 0x9E, 0x9E, 0x9E, 0xFF, 0xA9, 0xA9, 0xA9, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, + 0xBE, 0xBE, 0xBE, 0xFF, 0xC1, 0xC1, 0xC1, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, + 0xC9, 0xC9, 0xC9, 0xFF, 0xC8, 0xC8, 0xC8, 0xFF, 0xC8, 0xC8, 0xC8, 0xFF, + 0xD0, 0xD0, 0xD0, 0xFF, 0xD3, 0xD3, 0xD3, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xCA, 0xCD, 0xCC, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xD1, 0xD4, 0xD3, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xD7, 0xD7, 0xD7, 0xFF, 0xDB, 0xDB, 0xDB, 0xFF, 0xDD, 0xDD, 0xDD, 0xFF, + 0xDC, 0xDC, 0xDC, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, + 0x9F, 0xA2, 0xA1, 0xFF, 0x99, 0x9C, 0x9B, 0xFF, 0x96, 0x98, 0x97, 0xFF, + 0x91, 0x94, 0x93, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x80, 0x82, 0x7F, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, 0x78, 0x7A, 0x77, 0xFF, + 0x73, 0x76, 0x72, 0xFF, 0x6F, 0x73, 0x6D, 0xFF, 0x71, 0x74, 0x6E, 0xFF, + 0x67, 0x6A, 0x65, 0xFF, 0x59, 0x5C, 0x57, 0xFF, 0x55, 0x56, 0x51, 0xFF, + 0x4B, 0x4B, 0x46, 0xFF, 0x3F, 0x40, 0x3B, 0xFF, 0x33, 0x34, 0x2F, 0xFF, + 0x2B, 0x2C, 0x27, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x1E, 0x1F, 0x1A, 0xFF, + 0x1E, 0x1F, 0x1A, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, + 0x1C, 0x1B, 0x15, 0xFF, 0x1E, 0x1C, 0x16, 0xFF, 0x27, 0x26, 0x1F, 0xFF, + 0x2C, 0x2A, 0x24, 0xFF, 0x2C, 0x2A, 0x24, 0xFF, 0x2C, 0x2A, 0x24, 0xFF, + 0x27, 0x24, 0x1E, 0xFF, 0x25, 0x21, 0x1C, 0xFF, 0x23, 0x1F, 0x19, 0xFF, + 0x21, 0x1E, 0x18, 0xFF, 0x23, 0x22, 0x1C, 0xFF, 0x13, 0x12, 0x0B, 0xFF, + 0x14, 0x13, 0x0D, 0xFF, 0x26, 0x24, 0x20, 0xFF, 0x33, 0x31, 0x2D, 0xFF, + 0x2E, 0x2C, 0x28, 0xFF, 0x2A, 0x29, 0x25, 0xFF, 0x27, 0x25, 0x21, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x35, 0x33, 0x2F, 0xFF, 0x38, 0x37, 0x33, 0xFF, + 0x31, 0x30, 0x2C, 0xFF, 0x2C, 0x28, 0x25, 0xFF, 0x2F, 0x2B, 0x28, 0xFF, + 0x2A, 0x26, 0x22, 0xFF, 0x21, 0x1D, 0x1A, 0xFF, 0x35, 0x31, 0x2E, 0xFF, + 0x41, 0x3D, 0x3A, 0xFF, 0x47, 0x43, 0x3F, 0xFF, 0x46, 0x42, 0x3E, 0xFF, + 0x33, 0x2E, 0x2E, 0xFF, 0x1F, 0x1B, 0x1A, 0xFF, 0x2C, 0x28, 0x27, 0xFF, + 0x52, 0x4E, 0x4D, 0xFF, 0x93, 0x91, 0x90, 0xFF, 0xA0, 0x9E, 0x9C, 0xFF, + 0xA7, 0xA5, 0xA3, 0xFF, 0xA5, 0xA3, 0xA1, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0xA5, 0xA5, 0xA5, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0xB6, 0xB6, 0xB6, 0xFF, 0xBB, 0xBB, 0xBB, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, + 0xC9, 0xC9, 0xC9, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xC7, 0xC7, 0xC7, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xD1, 0xD4, 0xD3, 0xFF, 0xD0, 0xD2, 0xD2, 0xFF, + 0xC4, 0xC7, 0xC6, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xE1, 0xE1, 0xE1, 0xFF, 0xDE, 0xDE, 0xDE, 0xFF, 0xDA, 0xDA, 0xDA, 0xFF, + 0xD3, 0xD3, 0xD3, 0xFF, 0xCB, 0xCB, 0xCB, 0xFF, 0xBA, 0xBA, 0xBA, 0xFF, + 0xAB, 0xAD, 0xAC, 0xFF, 0xA0, 0xA3, 0xA2, 0xFF, 0x8E, 0x90, 0x8F, 0xFF, + 0x8A, 0x8D, 0x8C, 0xFF, 0x84, 0x89, 0x87, 0xFF, 0x82, 0x86, 0x85, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x7D, 0x80, 0x7D, 0xFF, 0x7A, 0x7D, 0x79, 0xFF, + 0x74, 0x77, 0x74, 0xFF, 0x6A, 0x6D, 0x67, 0xFF, 0x6C, 0x6F, 0x69, 0xFF, + 0x66, 0x69, 0x64, 0xFF, 0x5A, 0x5E, 0x58, 0xFF, 0x4F, 0x50, 0x4B, 0xFF, + 0x41, 0x42, 0x3D, 0xFF, 0x31, 0x32, 0x2D, 0xFF, 0x23, 0x24, 0x1F, 0xFF, + 0x2C, 0x2D, 0x28, 0xFF, 0x23, 0x24, 0x1F, 0xFF, 0x1D, 0x1E, 0x19, 0xFF, + 0x1C, 0x1D, 0x18, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, + 0x1C, 0x1B, 0x15, 0xFF, 0x1E, 0x1C, 0x16, 0xFF, 0x23, 0x22, 0x1C, 0xFF, + 0x28, 0x27, 0x20, 0xFF, 0x2A, 0x29, 0x23, 0xFF, 0x2A, 0x29, 0x23, 0xFF, + 0x2A, 0x26, 0x20, 0xFF, 0x26, 0x22, 0x1D, 0xFF, 0x24, 0x20, 0x1B, 0xFF, + 0x21, 0x1E, 0x18, 0xFF, 0x19, 0x18, 0x11, 0xFF, 0x17, 0x15, 0x0F, 0xFF, + 0x1F, 0x1D, 0x17, 0xFF, 0x2F, 0x2E, 0x27, 0xFF, 0x2F, 0x2D, 0x29, 0xFF, + 0x2E, 0x2C, 0x28, 0xFF, 0x2C, 0x2A, 0x26, 0xFF, 0x27, 0x25, 0x21, 0xFF, + 0x2A, 0x29, 0x25, 0xFF, 0x33, 0x31, 0x2D, 0xFF, 0x34, 0x32, 0x2E, 0xFF, + 0x31, 0x30, 0x2C, 0xFF, 0x2A, 0x26, 0x22, 0xFF, 0x2B, 0x27, 0x24, 0xFF, + 0x2C, 0x28, 0x25, 0xFF, 0x31, 0x2D, 0x29, 0xFF, 0x44, 0x40, 0x3D, 0xFF, + 0x4B, 0x47, 0x44, 0xFF, 0x4A, 0x46, 0x43, 0xFF, 0x40, 0x3C, 0x39, 0xFF, + 0x2B, 0x26, 0x26, 0xFF, 0x21, 0x1D, 0x1C, 0xFF, 0x36, 0x32, 0x31, 0xFF, + 0x5D, 0x58, 0x58, 0xFF, 0x89, 0x87, 0x85, 0xFF, 0x97, 0x95, 0x93, 0xFF, + 0xA1, 0x9F, 0x9D, 0xFF, 0xA1, 0x9F, 0x9D, 0xFF, 0xA3, 0xA3, 0xA3, 0xFF, + 0xA8, 0xA8, 0xA8, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, 0xB7, 0xB7, 0xB7, 0xFF, + 0xB0, 0xB0, 0xB0, 0xFF, 0xB6, 0xB6, 0xB6, 0xFF, 0xBE, 0xBE, 0xBE, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xCE, 0xD0, 0xCF, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xD4, 0xD4, 0xD4, 0xFF, 0xDA, 0xDA, 0xDA, 0xFF, 0xDE, 0xDE, 0xDE, 0xFF, + 0xE0, 0xE0, 0xE0, 0xFF, 0xE1, 0xE1, 0xE1, 0xFF, 0xCD, 0xCD, 0xCD, 0xFF, + 0xAF, 0xB2, 0xB1, 0xFF, 0x92, 0x95, 0x94, 0xFF, 0x97, 0x99, 0x99, 0xFF, + 0x92, 0x95, 0x94, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x7C, 0x7F, 0x7C, 0xFF, 0x79, 0x7B, 0x78, 0xFF, 0x74, 0x77, 0x74, 0xFF, + 0x6B, 0x6D, 0x6A, 0xFF, 0x56, 0x59, 0x53, 0xFF, 0x5C, 0x5F, 0x59, 0xFF, + 0x5A, 0x5E, 0x58, 0xFF, 0x51, 0x54, 0x4F, 0xFF, 0x4B, 0x4B, 0x46, 0xFF, + 0x48, 0x49, 0x44, 0xFF, 0x47, 0x48, 0x43, 0xFF, 0x42, 0x43, 0x3E, 0xFF, + 0x32, 0x33, 0x2E, 0xFF, 0x25, 0x26, 0x21, 0xFF, 0x1B, 0x1C, 0x17, 0xFF, + 0x16, 0x17, 0x12, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, + 0x1C, 0x1B, 0x15, 0xFF, 0x1F, 0x1D, 0x17, 0xFF, 0x20, 0x1F, 0x18, 0xFF, + 0x23, 0x22, 0x1C, 0xFF, 0x28, 0x27, 0x20, 0xFF, 0x28, 0x27, 0x20, 0xFF, + 0x2C, 0x28, 0x23, 0xFF, 0x27, 0x24, 0x1E, 0xFF, 0x25, 0x21, 0x1C, 0xFF, + 0x23, 0x1F, 0x19, 0xFF, 0x1E, 0x1C, 0x16, 0xFF, 0x21, 0x20, 0x19, 0xFF, + 0x28, 0x27, 0x20, 0xFF, 0x2C, 0x2A, 0x24, 0xFF, 0x28, 0x26, 0x22, 0xFF, + 0x2F, 0x2D, 0x29, 0xFF, 0x2E, 0x2C, 0x28, 0xFF, 0x29, 0x28, 0x24, 0xFF, + 0x2D, 0x2B, 0x27, 0xFF, 0x2D, 0x2B, 0x27, 0xFF, 0x2E, 0x2C, 0x28, 0xFF, + 0x33, 0x31, 0x2D, 0xFF, 0x27, 0x23, 0x20, 0xFF, 0x28, 0x24, 0x21, 0xFF, + 0x34, 0x30, 0x2D, 0xFF, 0x43, 0x3F, 0x3C, 0xFF, 0x48, 0x44, 0x41, 0xFF, + 0x4A, 0x46, 0x43, 0xFF, 0x44, 0x40, 0x3D, 0xFF, 0x36, 0x32, 0x2F, 0xFF, + 0x1E, 0x1A, 0x19, 0xFF, 0x24, 0x1F, 0x1F, 0xFF, 0x43, 0x3F, 0x3E, 0xFF, + 0x6C, 0x68, 0x67, 0xFF, 0x83, 0x81, 0x7F, 0xFF, 0x94, 0x92, 0x91, 0xFF, + 0xA3, 0xA1, 0xA0, 0xFF, 0xA6, 0xA4, 0xA2, 0xFF, 0xA3, 0xA3, 0xA3, 0xFF, + 0xA8, 0xA8, 0xA8, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, 0xB7, 0xB7, 0xB7, 0xFF, + 0xA8, 0xA8, 0xA8, 0xFF, 0xAD, 0xAD, 0xAD, 0xFF, 0xB6, 0xB6, 0xB6, 0xFF, + 0xBB, 0xBB, 0xBB, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC5, 0xC5, 0xC5, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, + 0xBF, 0xC1, 0xC0, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xDD, 0xDD, 0xDD, 0xFF, 0xDD, 0xDD, 0xDD, 0xFF, 0xDB, 0xDB, 0xDB, 0xFF, + 0xD6, 0xD6, 0xD6, 0xFF, 0xD9, 0xD9, 0xD9, 0xFF, 0xD7, 0xD7, 0xD7, 0xFF, + 0xBF, 0xC1, 0xC0, 0xFF, 0x9D, 0x9F, 0x9E, 0xFF, 0x8F, 0x91, 0x90, 0xFF, + 0x8A, 0x8D, 0x8C, 0xFF, 0x85, 0x8A, 0x88, 0xFF, 0x80, 0x85, 0x84, 0xFF, + 0x6F, 0x72, 0x71, 0xFF, 0x6C, 0x6F, 0x6B, 0xFF, 0x66, 0x69, 0x66, 0xFF, + 0x59, 0x5C, 0x59, 0xFF, 0x5E, 0x61, 0x5D, 0xFF, 0x66, 0x69, 0x64, 0xFF, + 0x67, 0x6A, 0x65, 0xFF, 0x61, 0x65, 0x5F, 0xFF, 0x54, 0x55, 0x50, 0xFF, + 0x4E, 0x4F, 0x4A, 0xFF, 0x48, 0x49, 0x44, 0xFF, 0x40, 0x41, 0x3C, 0xFF, + 0x36, 0x36, 0x32, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1A, 0x1A, 0x16, 0xFF, + 0x13, 0x13, 0x0F, 0xFF, 0x1B, 0x1A, 0x14, 0xFF, 0x1B, 0x1A, 0x14, 0xFF, + 0x1B, 0x1A, 0x14, 0xFF, 0x1C, 0x1B, 0x15, 0xFF, 0x1E, 0x1C, 0x16, 0xFF, + 0x1F, 0x1D, 0x17, 0xFF, 0x23, 0x22, 0x1C, 0xFF, 0x27, 0x24, 0x1E, 0xFF, + 0x2C, 0x28, 0x23, 0xFF, 0x2A, 0x26, 0x20, 0xFF, 0x26, 0x22, 0x1D, 0xFF, + 0x24, 0x20, 0x1B, 0xFF, 0x2D, 0x29, 0x24, 0xFF, 0x2F, 0x2E, 0x27, 0xFF, + 0x29, 0x28, 0x22, 0xFF, 0x1E, 0x1C, 0x18, 0xFF, 0x23, 0x22, 0x1E, 0xFF, + 0x2F, 0x2D, 0x29, 0xFF, 0x31, 0x30, 0x2C, 0xFF, 0x2F, 0x2D, 0x29, 0xFF, + 0x2F, 0x2D, 0x29, 0xFF, 0x28, 0x26, 0x22, 0xFF, 0x29, 0x28, 0x24, 0xFF, + 0x32, 0x2E, 0x2B, 0xFF, 0x2B, 0x27, 0x24, 0xFF, 0x2E, 0x2A, 0x27, 0xFF, + 0x3D, 0x39, 0x36, 0xFF, 0x52, 0x4E, 0x4B, 0xFF, 0x3D, 0x39, 0x36, 0xFF, + 0x41, 0x3D, 0x3A, 0xFF, 0x3D, 0x39, 0x36, 0xFF, 0x35, 0x31, 0x2E, 0xFF, + 0x1A, 0x16, 0x15, 0xFF, 0x2B, 0x26, 0x26, 0xFF, 0x52, 0x4E, 0x4D, 0xFF, + 0x7B, 0x77, 0x76, 0xFF, 0x86, 0x84, 0x83, 0xFF, 0x9A, 0x98, 0x97, 0xFF, + 0xAD, 0xAB, 0xA9, 0xFF, 0xB1, 0xAF, 0xAE, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0xA5, 0xA5, 0xA5, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0xA2, 0xA2, 0xA2, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, + 0xB6, 0xB6, 0xB6, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, + 0xE1, 0xE0, 0xE3, 0xFF, 0xE3, 0xE3, 0xE5, 0xFF, 0xE5, 0xE5, 0xE7, 0xFF, + 0xE3, 0xE3, 0xE5, 0xFF, 0xDE, 0xDE, 0xE0, 0xFF, 0xD5, 0xD5, 0xD7, 0xFF, + 0xB8, 0xBA, 0xBB, 0xFF, 0x9A, 0x9C, 0x9E, 0xFF, 0x7E, 0x82, 0x83, 0xFF, + 0x78, 0x7D, 0x7D, 0xFF, 0x76, 0x7A, 0x7B, 0xFF, 0x6F, 0x73, 0x74, 0xFF, + 0x5D, 0x62, 0x61, 0xFF, 0x64, 0x69, 0x68, 0xFF, 0x64, 0x69, 0x68, 0xFF, + 0x5D, 0x62, 0x61, 0xFF, 0x6D, 0x70, 0x6D, 0xFF, 0x67, 0x6A, 0x67, 0xFF, + 0x6D, 0x70, 0x6D, 0xFF, 0x78, 0x7A, 0x77, 0xFF, 0x68, 0x68, 0x66, 0xFF, + 0x4B, 0x4B, 0x48, 0xFF, 0x3E, 0x3E, 0x3C, 0xFF, 0x3E, 0x3E, 0x3C, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x28, 0x28, 0x24, 0xFF, 0x1C, 0x1D, 0x18, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x19, 0x18, 0x11, 0xFF, 0x19, 0x18, 0x11, 0xFF, + 0x19, 0x18, 0x11, 0xFF, 0x19, 0x18, 0x11, 0xFF, 0x19, 0x16, 0x10, 0xFF, + 0x19, 0x16, 0x10, 0xFF, 0x1C, 0x18, 0x12, 0xFF, 0x1D, 0x19, 0x14, 0xFF, + 0x2B, 0x25, 0x22, 0xFF, 0x2E, 0x27, 0x25, 0xFF, 0x29, 0x22, 0x20, 0xFF, + 0x23, 0x1D, 0x1A, 0xFF, 0x3B, 0x37, 0x34, 0xFF, 0x35, 0x31, 0x2E, 0xFF, + 0x27, 0x23, 0x20, 0xFF, 0x1C, 0x18, 0x14, 0xFF, 0x23, 0x1E, 0x1D, 0xFF, + 0x3B, 0x37, 0x36, 0xFF, 0x40, 0x3B, 0x3B, 0xFF, 0x33, 0x2E, 0x2E, 0xFF, + 0x32, 0x2D, 0x2D, 0xFF, 0x2D, 0x29, 0x28, 0xFF, 0x32, 0x2D, 0x2D, 0xFF, + 0x3D, 0x39, 0x38, 0xFF, 0x40, 0x39, 0x39, 0xFF, 0x40, 0x39, 0x39, 0xFF, + 0x3F, 0x38, 0x38, 0xFF, 0x3F, 0x38, 0x38, 0xFF, 0x31, 0x2A, 0x2A, 0xFF, + 0x3F, 0x38, 0x38, 0xFF, 0x3C, 0x38, 0x37, 0xFF, 0x2D, 0x29, 0x28, 0xFF, + 0x22, 0x1B, 0x1B, 0xFF, 0x3C, 0x35, 0x35, 0xFF, 0x72, 0x6D, 0x6D, 0xFF, + 0x96, 0x91, 0x91, 0xFF, 0x9E, 0x99, 0x9B, 0xFF, 0xA4, 0x9F, 0xA1, 0xFF, + 0xA8, 0xA6, 0xA7, 0xFF, 0xA9, 0xA7, 0xA8, 0xFF, 0xA2, 0xA0, 0xA1, 0xFF, + 0x9B, 0x99, 0x9A, 0xFF, 0x9E, 0x9E, 0x9E, 0xFF, 0xAA, 0xAA, 0xAA, 0xFF, + 0xB4, 0xB4, 0xB4, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, 0x9D, 0x9D, 0x9D, 0xFF, + 0x9D, 0x9D, 0x9D, 0xFF, 0xAF, 0xAF, 0xAF, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, + 0xC7, 0xC7, 0xC7, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xC1, 0xC3, 0xC2, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xDC, 0xDC, 0xDE, 0xFF, 0xDD, 0xDD, 0xDF, 0xFF, 0xDD, 0xDD, 0xDF, 0xFF, + 0xDB, 0xDA, 0xDD, 0xFF, 0xC9, 0xC9, 0xCB, 0xFF, 0xBD, 0xBC, 0xBF, 0xFF, + 0xA1, 0xA3, 0xA5, 0xFF, 0x8B, 0x8D, 0x8F, 0xFF, 0x84, 0x88, 0x89, 0xFF, + 0x7B, 0x7F, 0x80, 0xFF, 0x74, 0x7B, 0x7B, 0xFF, 0x6B, 0x72, 0x72, 0xFF, + 0x67, 0x6C, 0x6A, 0xFF, 0x6F, 0x74, 0x72, 0xFF, 0x6F, 0x74, 0x72, 0xFF, + 0x67, 0x6C, 0x6A, 0xFF, 0x5E, 0x61, 0x5D, 0xFF, 0x5A, 0x5D, 0x5A, 0xFF, + 0x66, 0x69, 0x66, 0xFF, 0x76, 0x79, 0x76, 0xFF, 0x73, 0x74, 0x71, 0xFF, + 0x5A, 0x5A, 0x58, 0xFF, 0x41, 0x42, 0x3F, 0xFF, 0x36, 0x36, 0x34, 0xFF, + 0x33, 0x34, 0x2F, 0xFF, 0x2D, 0x2E, 0x29, 0xFF, 0x22, 0x23, 0x1E, 0xFF, + 0x15, 0x16, 0x11, 0xFF, 0x1A, 0x19, 0x12, 0xFF, 0x1A, 0x19, 0x12, 0xFF, + 0x1A, 0x19, 0x12, 0xFF, 0x1A, 0x19, 0x12, 0xFF, 0x16, 0x12, 0x0D, 0xFF, + 0x17, 0x13, 0x0E, 0xFF, 0x18, 0x14, 0x0F, 0xFF, 0x19, 0x16, 0x10, 0xFF, + 0x1E, 0x18, 0x16, 0xFF, 0x24, 0x1E, 0x1B, 0xFF, 0x28, 0x21, 0x1F, 0xFF, + 0x27, 0x20, 0x1E, 0xFF, 0x33, 0x2F, 0x2C, 0xFF, 0x2F, 0x2B, 0x28, 0xFF, + 0x27, 0x23, 0x20, 0xFF, 0x1F, 0x1B, 0x18, 0xFF, 0x2F, 0x2B, 0x2A, 0xFF, + 0x41, 0x3C, 0x3C, 0xFF, 0x42, 0x3E, 0x3D, 0xFF, 0x38, 0x33, 0x32, 0xFF, + 0x3D, 0x39, 0x38, 0xFF, 0x41, 0x3C, 0x3C, 0xFF, 0x49, 0x45, 0x44, 0xFF, + 0x52, 0x4E, 0x4D, 0xFF, 0x4D, 0x46, 0x46, 0xFF, 0x45, 0x3E, 0x3E, 0xFF, + 0x39, 0x32, 0x32, 0xFF, 0x30, 0x29, 0x29, 0xFF, 0x35, 0x2E, 0x2E, 0xFF, + 0x3A, 0x34, 0x34, 0xFF, 0x34, 0x30, 0x2F, 0xFF, 0x26, 0x22, 0x21, 0xFF, + 0x28, 0x21, 0x21, 0xFF, 0x4C, 0x45, 0x45, 0xFF, 0x7F, 0x7A, 0x79, 0xFF, + 0x98, 0x94, 0x93, 0xFF, 0xA5, 0xA0, 0xA2, 0xFF, 0x9E, 0x99, 0x9B, 0xFF, + 0x97, 0x94, 0x95, 0xFF, 0x95, 0x93, 0x94, 0xFF, 0x98, 0x95, 0x96, 0xFF, + 0x9C, 0x9A, 0x9B, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, 0xB4, 0xB4, 0xB4, 0xFF, + 0xBF, 0xBF, 0xBF, 0xFF, 0xAD, 0xAD, 0xAD, 0xFF, 0x9E, 0x9E, 0x9E, 0xFF, + 0x9C, 0x9C, 0x9C, 0xFF, 0xA3, 0xA3, 0xA3, 0xFF, 0xB4, 0xB4, 0xB4, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC6, 0xC6, 0xC6, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, + 0xC9, 0xCB, 0xCB, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xDF, 0xE1, 0xE3, 0xFF, 0xD2, 0xD4, 0xD6, 0xFF, 0xBD, 0xBF, 0xC1, 0xFF, + 0xAB, 0xAD, 0xAE, 0xFF, 0x9A, 0x9C, 0x9E, 0xFF, 0x9D, 0x9F, 0xA0, 0xFF, + 0xA6, 0xA8, 0xAA, 0xFF, 0xAF, 0xB3, 0xB4, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0x94, 0x99, 0x97, 0xFF, 0x88, 0x8F, 0x8D, 0xFF, 0x7B, 0x83, 0x80, 0xFF, + 0x6B, 0x70, 0x6F, 0xFF, 0x74, 0x79, 0x75, 0xFF, 0x74, 0x79, 0x75, 0xFF, + 0x6B, 0x71, 0x6D, 0xFF, 0x5C, 0x61, 0x5D, 0xFF, 0x5F, 0x64, 0x60, 0xFF, + 0x63, 0x68, 0x64, 0xFF, 0x6A, 0x6C, 0x69, 0xFF, 0x65, 0x68, 0x64, 0xFF, + 0x63, 0x65, 0x62, 0xFF, 0x4F, 0x52, 0x4E, 0xFF, 0x37, 0x3A, 0x37, 0xFF, + 0x3B, 0x3C, 0x37, 0xFF, 0x36, 0x36, 0x32, 0xFF, 0x2A, 0x2B, 0x26, 0xFF, + 0x1D, 0x1E, 0x19, 0xFF, 0x1F, 0x1D, 0x17, 0xFF, 0x1F, 0x1D, 0x17, 0xFF, + 0x1F, 0x1D, 0x17, 0xFF, 0x1F, 0x1D, 0x17, 0xFF, 0x19, 0x16, 0x10, 0xFF, + 0x18, 0x14, 0x0F, 0xFF, 0x16, 0x12, 0x0D, 0xFF, 0x17, 0x13, 0x0E, 0xFF, + 0x19, 0x12, 0x10, 0xFF, 0x20, 0x19, 0x17, 0xFF, 0x26, 0x22, 0x1F, 0xFF, + 0x2C, 0x28, 0x25, 0xFF, 0x38, 0x34, 0x30, 0xFF, 0x34, 0x30, 0x2D, 0xFF, + 0x2A, 0x29, 0x25, 0xFF, 0x22, 0x21, 0x1D, 0xFF, 0x2F, 0x2D, 0x2B, 0xFF, + 0x3E, 0x3C, 0x3B, 0xFF, 0x42, 0x40, 0x3E, 0xFF, 0x3E, 0x3C, 0x3B, 0xFF, + 0x3D, 0x3B, 0x39, 0xFF, 0x44, 0x42, 0x40, 0xFF, 0x49, 0x47, 0x45, 0xFF, + 0x4B, 0x47, 0x46, 0xFF, 0x3D, 0x39, 0x38, 0xFF, 0x38, 0x33, 0x32, 0xFF, + 0x30, 0x29, 0x29, 0xFF, 0x2A, 0x23, 0x23, 0xFF, 0x37, 0x30, 0x30, 0xFF, + 0x39, 0x32, 0x32, 0xFF, 0x35, 0x31, 0x30, 0xFF, 0x32, 0x2D, 0x2D, 0xFF, + 0x40, 0x39, 0x39, 0xFF, 0x69, 0x62, 0x62, 0xFF, 0x8F, 0x8A, 0x8A, 0xFF, + 0x9B, 0x96, 0x95, 0xFF, 0xA1, 0x9F, 0xA0, 0xFF, 0x8E, 0x8C, 0x8D, 0xFF, + 0x84, 0x82, 0x82, 0xFF, 0x87, 0x87, 0x87, 0xFF, 0x99, 0x97, 0x97, 0xFF, + 0xA6, 0xA3, 0xA4, 0xFF, 0xB0, 0xB0, 0xB0, 0xFF, 0xB4, 0xB4, 0xB4, 0xFF, + 0xB6, 0xB6, 0xB6, 0xFF, 0xA7, 0xA6, 0xA7, 0xFF, 0x9D, 0x9D, 0x9D, 0xFF, + 0x9D, 0x9D, 0x9D, 0xFF, 0xA1, 0xA1, 0xA1, 0xFF, 0xAF, 0xAF, 0xAF, 0xFF, + 0xB9, 0xB9, 0xB9, 0xFF, 0xB8, 0xB8, 0xB8, 0xFF, 0xC3, 0xC6, 0xC5, 0xFF, + 0xBD, 0xC0, 0xBF, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, 0xC7, 0xC9, 0xC8, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xA4, 0xA6, 0xA7, 0xFF, 0xAC, 0xAE, 0xB0, 0xFF, 0xB6, 0xB8, 0xBA, 0xFF, + 0xBB, 0xBD, 0xBF, 0xFF, 0xB8, 0xBA, 0xBB, 0xFF, 0xAB, 0xAD, 0xAE, 0xFF, + 0xA4, 0xA9, 0xAA, 0xFF, 0xAA, 0xAF, 0xB0, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x88, 0x8F, 0x8D, 0xFF, 0x7A, 0x81, 0x7F, 0xFF, + 0x67, 0x6C, 0x68, 0xFF, 0x6F, 0x74, 0x70, 0xFF, 0x6F, 0x74, 0x70, 0xFF, + 0x67, 0x6C, 0x68, 0xFF, 0x4F, 0x55, 0x51, 0xFF, 0x56, 0x5C, 0x58, 0xFF, + 0x4F, 0x55, 0x51, 0xFF, 0x40, 0x46, 0x42, 0xFF, 0x5D, 0x60, 0x5C, 0xFF, + 0x7B, 0x7E, 0x7B, 0xFF, 0x7E, 0x81, 0x7E, 0xFF, 0x6B, 0x6D, 0x6A, 0xFF, + 0x41, 0x42, 0x3D, 0xFF, 0x3B, 0x3C, 0x37, 0xFF, 0x30, 0x31, 0x2C, 0xFF, + 0x23, 0x24, 0x1F, 0xFF, 0x21, 0x20, 0x19, 0xFF, 0x21, 0x20, 0x19, 0xFF, + 0x21, 0x20, 0x19, 0xFF, 0x22, 0x21, 0x1B, 0xFF, 0x1D, 0x19, 0x14, 0xFF, + 0x1C, 0x18, 0x12, 0xFF, 0x19, 0x16, 0x10, 0xFF, 0x18, 0x14, 0x0F, 0xFF, + 0x1B, 0x14, 0x12, 0xFF, 0x1E, 0x18, 0x16, 0xFF, 0x26, 0x22, 0x1F, 0xFF, + 0x2F, 0x2B, 0x28, 0xFF, 0x43, 0x3F, 0x3C, 0xFF, 0x3D, 0x39, 0x36, 0xFF, + 0x2E, 0x2C, 0x28, 0xFF, 0x22, 0x21, 0x1D, 0xFF, 0x22, 0x20, 0x1F, 0xFF, + 0x33, 0x30, 0x2F, 0xFF, 0x3D, 0x3B, 0x39, 0xFF, 0x42, 0x40, 0x3E, 0xFF, + 0x33, 0x30, 0x2F, 0xFF, 0x38, 0x36, 0x35, 0xFF, 0x34, 0x32, 0x30, 0xFF, + 0x28, 0x26, 0x24, 0xFF, 0x1C, 0x17, 0x16, 0xFF, 0x21, 0x1D, 0x1C, 0xFF, + 0x2A, 0x25, 0x24, 0xFF, 0x2E, 0x2A, 0x29, 0xFF, 0x35, 0x31, 0x30, 0xFF, + 0x39, 0x34, 0x34, 0xFF, 0x3F, 0x3D, 0x3C, 0xFF, 0x47, 0x45, 0x44, 0xFF, + 0x68, 0x64, 0x63, 0xFF, 0x89, 0x85, 0x84, 0xFF, 0x9A, 0x98, 0x97, 0xFF, + 0x98, 0x96, 0x94, 0xFF, 0x95, 0x93, 0x94, 0xFF, 0x81, 0x7E, 0x7F, 0xFF, + 0x79, 0x79, 0x79, 0xFF, 0x87, 0x87, 0x87, 0xFF, 0xA2, 0xA0, 0xA1, 0xFF, + 0xAF, 0xAD, 0xAD, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF, 0xAB, 0xAB, 0xAB, 0xFF, + 0x9D, 0x9D, 0x9D, 0xFF, 0x97, 0x97, 0x97, 0xFF, 0x99, 0x99, 0x99, 0xFF, + 0xA1, 0xA1, 0xA1, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, 0xAF, 0xAF, 0xAF, 0xFF, + 0xAD, 0xAD, 0xAD, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, 0xC9, 0xCB, 0xCB, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xD3, 0xD6, 0xD5, 0xFF, + 0xCE, 0xD0, 0xCF, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBE, 0xC3, 0xC3, 0xFF, 0xB4, 0xB8, 0xB9, 0xFF, 0xB1, 0xB6, 0xB6, 0xFF, + 0xB7, 0xBC, 0xBC, 0xFF, 0xBB, 0xBF, 0xC0, 0xFF, 0xA8, 0xAC, 0xAD, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xA6, 0xAE, 0xA9, 0xFF, 0x8F, 0x97, 0x92, 0xFF, + 0x69, 0x70, 0x6D, 0xFF, 0x5E, 0x65, 0x63, 0xFF, 0x5A, 0x61, 0x5E, 0xFF, + 0x5D, 0x64, 0x62, 0xFF, 0x67, 0x6C, 0x6A, 0xFF, 0x62, 0x67, 0x65, 0xFF, + 0x5B, 0x60, 0x5E, 0xFF, 0x56, 0x5B, 0x5A, 0xFF, 0x5D, 0x5F, 0x5E, 0xFF, + 0x64, 0x66, 0x65, 0xFF, 0x7A, 0x7D, 0x79, 0xFF, 0x87, 0x89, 0x86, 0xFF, + 0x61, 0x64, 0x61, 0xFF, 0x40, 0x42, 0x3F, 0xFF, 0x2D, 0x30, 0x2B, 0xFF, + 0x24, 0x25, 0x20, 0xFF, 0x15, 0x14, 0x10, 0xFF, 0x21, 0x1F, 0x1B, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x26, 0x24, 0x20, 0xFF, 0x21, 0x1F, 0x1B, 0xFF, + 0x1F, 0x1D, 0x19, 0xFF, 0x1C, 0x1B, 0x17, 0xFF, 0x1C, 0x18, 0x14, 0xFF, + 0x27, 0x23, 0x20, 0xFF, 0x2A, 0x26, 0x22, 0xFF, 0x25, 0x21, 0x1E, 0xFF, + 0x21, 0x1D, 0x1A, 0xFF, 0x2D, 0x2B, 0x27, 0xFF, 0x23, 0x22, 0x1E, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x2A, 0x29, 0x25, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, + 0x25, 0x22, 0x21, 0xFF, 0x29, 0x27, 0x26, 0xFF, 0x2D, 0x2B, 0x29, 0xFF, + 0x1B, 0x19, 0x18, 0xFF, 0x1B, 0x19, 0x18, 0xFF, 0x17, 0x15, 0x13, 0xFF, + 0x0E, 0x0C, 0x0B, 0xFF, 0x17, 0x15, 0x13, 0xFF, 0x1E, 0x1C, 0x1A, 0xFF, + 0x26, 0x27, 0x24, 0xFF, 0x2D, 0x2E, 0x2B, 0xFF, 0x33, 0x34, 0x31, 0xFF, + 0x32, 0x32, 0x30, 0xFF, 0x4B, 0x4E, 0x4B, 0xFF, 0x68, 0x6B, 0x68, 0xFF, + 0x78, 0x78, 0x76, 0xFF, 0x8E, 0x8E, 0x8C, 0xFF, 0x9B, 0x9B, 0x99, 0xFF, + 0x97, 0x98, 0x95, 0xFF, 0x85, 0x85, 0x85, 0xFF, 0x80, 0x80, 0x80, 0xFF, + 0x85, 0x85, 0x85, 0xFF, 0x8E, 0x8E, 0x8E, 0xFF, 0x9B, 0x9B, 0x9B, 0xFF, + 0x9A, 0x9A, 0x9A, 0xFF, 0x99, 0x99, 0x99, 0xFF, 0x97, 0x97, 0x97, 0xFF, + 0x8E, 0x8E, 0x8E, 0xFF, 0x8C, 0x8C, 0x8C, 0xFF, 0xA2, 0xA2, 0xA2, 0xFF, + 0xA1, 0xA1, 0xA1, 0xFF, 0xA2, 0xA2, 0xA2, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, + 0xAD, 0xAD, 0xAD, 0xFF, 0xAF, 0xAF, 0xAF, 0xFF, 0xBC, 0xBF, 0xBE, 0xFF, + 0xCD, 0xCF, 0xCE, 0xFF, 0xD0, 0xD2, 0xD2, 0xFF, 0xCE, 0xD0, 0xCF, 0xFF, + 0xC0, 0xC2, 0xC1, 0xFF, 0xBB, 0xBD, 0xBD, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xB4, 0xB8, 0xB9, 0xFF, 0xB5, 0xB9, 0xBA, 0xFF, 0xBC, 0xC0, 0xC1, 0xFF, + 0xC2, 0xC6, 0xC7, 0xFF, 0xB9, 0xBE, 0xBF, 0xFF, 0xA9, 0xAE, 0xAE, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0x98, 0xA0, 0x9B, 0xFF, 0x94, 0x9B, 0x97, 0xFF, + 0x81, 0x88, 0x86, 0xFF, 0x79, 0x80, 0x7E, 0xFF, 0x78, 0x7F, 0x7D, 0xFF, + 0x80, 0x87, 0x85, 0xFF, 0x74, 0x78, 0x77, 0xFF, 0x6D, 0x71, 0x70, 0xFF, + 0x67, 0x6C, 0x6A, 0xFF, 0x62, 0x67, 0x65, 0xFF, 0x5C, 0x5E, 0x5D, 0xFF, + 0x5D, 0x5F, 0x5E, 0xFF, 0x6C, 0x6F, 0x6B, 0xFF, 0x7A, 0x7D, 0x79, 0xFF, + 0x7D, 0x80, 0x7D, 0xFF, 0x67, 0x6A, 0x67, 0xFF, 0x43, 0x46, 0x41, 0xFF, + 0x2D, 0x2E, 0x29, 0xFF, 0x17, 0x15, 0x11, 0xFF, 0x22, 0x21, 0x1D, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x27, 0x25, 0x21, 0xFF, 0x28, 0x26, 0x22, 0xFF, + 0x27, 0x25, 0x21, 0xFF, 0x26, 0x24, 0x20, 0xFF, 0x26, 0x24, 0x20, 0xFF, + 0x33, 0x2F, 0x2C, 0xFF, 0x2C, 0x28, 0x25, 0xFF, 0x26, 0x22, 0x1F, 0xFF, + 0x21, 0x1D, 0x1A, 0xFF, 0x1C, 0x1B, 0x17, 0xFF, 0x14, 0x13, 0x0F, 0xFF, + 0x1A, 0x18, 0x14, 0xFF, 0x1A, 0x18, 0x14, 0xFF, 0x14, 0x12, 0x11, 0xFF, + 0x18, 0x16, 0x14, 0xFF, 0x1C, 0x1A, 0x19, 0xFF, 0x20, 0x1E, 0x1C, 0xFF, + 0x11, 0x0F, 0x0D, 0xFF, 0x14, 0x12, 0x11, 0xFF, 0x13, 0x11, 0x0F, 0xFF, + 0x0E, 0x0C, 0x0B, 0xFF, 0x14, 0x12, 0x11, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x23, 0x25, 0x22, 0xFF, 0x29, 0x2C, 0x29, 0xFF, 0x2E, 0x31, 0x2E, 0xFF, + 0x44, 0x47, 0x44, 0xFF, 0x69, 0x6E, 0x6A, 0xFF, 0x7F, 0x84, 0x80, 0xFF, + 0x81, 0x84, 0x80, 0xFF, 0x85, 0x88, 0x85, 0xFF, 0x8C, 0x8F, 0x8C, 0xFF, + 0x92, 0x95, 0x92, 0xFF, 0x7A, 0x7A, 0x7A, 0xFF, 0x76, 0x76, 0x76, 0xFF, + 0x7A, 0x7A, 0x7A, 0xFF, 0x85, 0x85, 0x85, 0xFF, 0x8F, 0x8F, 0x8F, 0xFF, + 0x90, 0x90, 0x90, 0xFF, 0x93, 0x93, 0x93, 0xFF, 0x94, 0x94, 0x94, 0xFF, + 0x8F, 0x8F, 0x8F, 0xFF, 0x96, 0x96, 0x96, 0xFF, 0xAA, 0xAA, 0xAA, 0xFF, + 0xB1, 0xB1, 0xB1, 0xFF, 0xA4, 0xA4, 0xA4, 0xFF, 0xA0, 0xA0, 0xA0, 0xFF, + 0xA3, 0xA3, 0xA3, 0xFF, 0xA7, 0xA6, 0xA7, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xCA, 0xCD, 0xCC, 0xFF, 0xCE, 0xD0, 0xCF, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xD1, 0xD4, 0xD3, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, + 0xB2, 0xB9, 0xB9, 0xFF, 0xBB, 0xC2, 0xC2, 0xFF, 0xC2, 0xC9, 0xC9, 0xFF, + 0xC0, 0xC7, 0xC7, 0xFF, 0xB4, 0xBB, 0xBB, 0xFF, 0xAA, 0xB1, 0xB1, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, 0x98, 0xA0, 0x9B, 0xFF, + 0x8E, 0x96, 0x91, 0xFF, 0x91, 0x99, 0x94, 0xFF, 0xA1, 0xA8, 0xA3, 0xFF, + 0x9E, 0xA6, 0xA1, 0xFF, 0x8C, 0x93, 0x8E, 0xFF, 0x7B, 0x83, 0x7E, 0xFF, + 0x78, 0x7F, 0x7B, 0xFF, 0x80, 0x87, 0x85, 0xFF, 0x79, 0x80, 0x7E, 0xFF, + 0x72, 0x79, 0x77, 0xFF, 0x6D, 0x71, 0x70, 0xFF, 0x68, 0x6D, 0x6B, 0xFF, + 0x62, 0x67, 0x65, 0xFF, 0x5B, 0x60, 0x5C, 0xFF, 0x62, 0x67, 0x63, 0xFF, + 0x83, 0x86, 0x83, 0xFF, 0x8B, 0x8E, 0x8B, 0xFF, 0x6C, 0x6F, 0x69, 0xFF, + 0x3D, 0x3D, 0x39, 0xFF, 0x1A, 0x18, 0x14, 0xFF, 0x23, 0x22, 0x1E, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x27, 0x25, 0x21, 0xFF, 0x2A, 0x29, 0x25, 0xFF, + 0x2C, 0x2A, 0x26, 0xFF, 0x2D, 0x2B, 0x27, 0xFF, 0x2E, 0x2C, 0x28, 0xFF, + 0x39, 0x35, 0x32, 0xFF, 0x2A, 0x26, 0x22, 0xFF, 0x1B, 0x1A, 0x16, 0xFF, + 0x1A, 0x18, 0x14, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x0C, 0x0A, 0x06, 0xFF, + 0x10, 0x11, 0x0C, 0xFF, 0x10, 0x11, 0x0C, 0xFF, 0x0A, 0x0B, 0x08, 0xFF, + 0x0E, 0x0E, 0x0C, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0F, 0x10, 0x0D, 0xFF, 0x16, 0x17, 0x14, 0xFF, + 0x1F, 0x22, 0x1F, 0xFF, 0x27, 0x2A, 0x27, 0xFF, 0x36, 0x39, 0x36, 0xFF, + 0x4C, 0x4F, 0x4C, 0xFF, 0x6B, 0x71, 0x6D, 0xFF, 0x85, 0x8A, 0x86, 0xFF, + 0x7C, 0x7F, 0x7C, 0xFF, 0x7C, 0x7F, 0x7C, 0xFF, 0x7B, 0x7E, 0x7B, 0xFF, + 0x7B, 0x7E, 0x7B, 0xFF, 0x75, 0x78, 0x77, 0xFF, 0x6F, 0x72, 0x71, 0xFF, + 0x74, 0x76, 0x76, 0xFF, 0x7E, 0x81, 0x80, 0xFF, 0x89, 0x89, 0x89, 0xFF, + 0x8E, 0x8E, 0x8E, 0xFF, 0x95, 0x95, 0x95, 0xFF, 0x9A, 0x9A, 0x9A, 0xFF, + 0xA9, 0xA9, 0xA9, 0xFF, 0xB4, 0xB4, 0xB4, 0xFF, 0xB9, 0xB9, 0xB9, 0xFF, + 0xC4, 0xC4, 0xC4, 0xFF, 0xC4, 0xC4, 0xC4, 0xFF, 0xB3, 0xB3, 0xB3, 0xFF, + 0xAA, 0xAA, 0xAA, 0xFF, 0xAA, 0xAA, 0xAA, 0xFF, 0xB6, 0xB9, 0xB8, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, + 0xD5, 0xD7, 0xD6, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xBD, 0xC3, 0xC3, 0xFF, 0xC6, 0xCD, 0xCD, 0xFF, 0xC3, 0xCA, 0xCA, 0xFF, + 0xB7, 0xBE, 0xBD, 0xFF, 0xB3, 0xBA, 0xBA, 0xFF, 0xAB, 0xB2, 0xB2, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0x93, 0x9A, 0x97, 0xFF, 0xA8, 0xAF, 0xAA, 0xFF, + 0xA4, 0xAC, 0xA7, 0xFF, 0xA3, 0xAB, 0xA4, 0xFF, 0xA4, 0xAC, 0xA5, 0xFF, + 0xA6, 0xAE, 0xA9, 0xFF, 0x97, 0x9F, 0x9A, 0xFF, 0x8C, 0x93, 0x8E, 0xFF, + 0x8C, 0x93, 0x8E, 0xFF, 0x86, 0x8D, 0x8B, 0xFF, 0x82, 0x8A, 0x87, 0xFF, + 0x80, 0x87, 0x85, 0xFF, 0x79, 0x80, 0x7E, 0xFF, 0x7C, 0x81, 0x7F, 0xFF, + 0x68, 0x6D, 0x6B, 0xFF, 0x5A, 0x5F, 0x5D, 0xFF, 0x5B, 0x60, 0x5C, 0xFF, + 0x79, 0x7B, 0x78, 0xFF, 0x91, 0x94, 0x91, 0xFF, 0x88, 0x8B, 0x85, 0xFF, + 0x58, 0x5B, 0x56, 0xFF, 0x21, 0x21, 0x1D, 0xFF, 0x25, 0x23, 0x1F, 0xFF, + 0x2A, 0x29, 0x25, 0xFF, 0x27, 0x25, 0x21, 0xFF, 0x27, 0x25, 0x21, 0xFF, + 0x29, 0x28, 0x24, 0xFF, 0x2D, 0x2B, 0x27, 0xFF, 0x2F, 0x2D, 0x29, 0xFF, + 0x36, 0x32, 0x2F, 0xFF, 0x23, 0x1F, 0x1B, 0xFF, 0x12, 0x10, 0x0C, 0xFF, + 0x0D, 0x0C, 0x08, 0xFF, 0x14, 0x13, 0x0F, 0xFF, 0x0B, 0x09, 0x05, 0xFF, + 0x0F, 0x10, 0x0B, 0xFF, 0x10, 0x11, 0x0E, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, + 0x10, 0x11, 0x0E, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x18, 0x19, 0x16, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x13, 0x13, 0x11, 0xFF, 0x13, 0x13, 0x11, 0xFF, + 0x0D, 0x0D, 0x0B, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x1D, 0x1F, 0x1C, 0xFF, 0x24, 0x26, 0x23, 0xFF, 0x2F, 0x32, 0x2F, 0xFF, + 0x34, 0x37, 0x34, 0xFF, 0x43, 0x48, 0x44, 0xFF, 0x58, 0x5D, 0x59, 0xFF, + 0x6C, 0x6F, 0x6B, 0xFF, 0x74, 0x77, 0x74, 0xFF, 0x6F, 0x72, 0x6F, 0xFF, + 0x5E, 0x61, 0x5D, 0xFF, 0x7A, 0x7C, 0x7B, 0xFF, 0x75, 0x78, 0x77, 0xFF, + 0x79, 0x7B, 0x7A, 0xFF, 0x83, 0x86, 0x85, 0xFF, 0x8E, 0x8E, 0x8E, 0xFF, + 0x95, 0x95, 0x95, 0xFF, 0x9E, 0x9E, 0x9E, 0xFF, 0xA4, 0xA4, 0xA4, 0xFF, + 0xB0, 0xB0, 0xB0, 0xFF, 0xB8, 0xB8, 0xB8, 0xFF, 0xAA, 0xAA, 0xAA, 0xFF, + 0xB2, 0xB2, 0xB2, 0xFF, 0xCC, 0xCC, 0xCC, 0xFF, 0xBD, 0xBD, 0xBD, 0xFF, + 0xA7, 0xA6, 0xA7, 0xFF, 0x9E, 0x9E, 0x9E, 0xFF, 0xB4, 0xB6, 0xB6, 0xFF, + 0xC3, 0xC6, 0xC5, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, 0xC6, 0xC8, 0xC7, 0xFF, + 0xC8, 0xCA, 0xC9, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xCE, 0xD3, 0xD2, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xAF, 0xB5, 0xB5, 0xFF, 0xB1, 0xB8, 0xB8, 0xFF, 0xB1, 0xB8, 0xB8, 0xFF, + 0xAF, 0xB5, 0xB5, 0xFF, 0xB0, 0xB7, 0xB6, 0xFF, 0xB7, 0xBE, 0xBD, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xAD, 0xB5, 0xB0, 0xFF, + 0xB1, 0xB8, 0xB4, 0xFF, 0xA9, 0xB0, 0xAB, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, + 0x8E, 0x96, 0x91, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, 0x9B, 0xA2, 0x9D, 0xFF, + 0x93, 0x9A, 0x95, 0xFF, 0x8C, 0x93, 0x90, 0xFF, 0x87, 0x8E, 0x8C, 0xFF, + 0x7F, 0x86, 0x84, 0xFF, 0x79, 0x80, 0x7E, 0xFF, 0x79, 0x7E, 0x7F, 0xFF, + 0x72, 0x77, 0x78, 0xFF, 0x61, 0x66, 0x64, 0xFF, 0x52, 0x57, 0x55, 0xFF, + 0x6F, 0x72, 0x6F, 0xFF, 0x93, 0x96, 0x93, 0xFF, 0x9A, 0x9D, 0x9A, 0xFF, + 0x75, 0x78, 0x75, 0xFF, 0x24, 0x24, 0x22, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x1D, 0x1D, 0x1B, 0xFF, 0x1E, 0x1F, 0x1C, 0xFF, 0x28, 0x26, 0x24, 0xFF, + 0x23, 0x21, 0x20, 0xFF, 0x22, 0x20, 0x1F, 0xFF, 0x26, 0x24, 0x22, 0xFF, + 0x30, 0x2E, 0x2D, 0xFF, 0x19, 0x17, 0x15, 0xFF, 0x0A, 0x08, 0x06, 0xFF, + 0x0E, 0x0C, 0x0B, 0xFF, 0x0E, 0x0C, 0x0B, 0xFF, 0x0C, 0x0A, 0x08, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x09, 0x09, 0x09, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x10, 0x10, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, + 0x17, 0x19, 0x18, 0xFF, 0x1A, 0x1D, 0x1C, 0xFF, 0x24, 0x26, 0x25, 0xFF, + 0x1F, 0x21, 0x21, 0xFF, 0x12, 0x17, 0x15, 0xFF, 0x1D, 0x22, 0x21, 0xFF, + 0x3C, 0x3F, 0x3E, 0xFF, 0x51, 0x53, 0x53, 0xFF, 0x5D, 0x5F, 0x5E, 0xFF, + 0x64, 0x66, 0x65, 0xFF, 0x78, 0x7A, 0x79, 0xFF, 0x7E, 0x81, 0x80, 0xFF, + 0x84, 0x87, 0x86, 0xFF, 0x85, 0x88, 0x87, 0xFF, 0x87, 0x89, 0x88, 0xFF, + 0x96, 0x98, 0x97, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, 0x9F, 0xA2, 0xA1, 0xFF, + 0xAD, 0xAF, 0xAF, 0xFF, 0xAD, 0xAF, 0xAF, 0xFF, 0xAD, 0xAF, 0xAF, 0xFF, + 0xAD, 0xAF, 0xAF, 0xFF, 0xD2, 0xD5, 0xD4, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xA8, 0xAB, 0xAA, 0xFF, 0xA7, 0xAA, 0xA9, 0xFF, 0xB5, 0xB8, 0xB7, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, 0xC2, 0xC4, 0xC4, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xD5, 0xDA, 0xD9, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xD0, 0xD8, 0xD5, 0xFF, + 0xCF, 0xD6, 0xD4, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xA8, 0xAE, 0xAE, 0xFF, 0xAA, 0xB1, 0xB1, 0xFF, 0xB2, 0xB9, 0xB9, 0xFF, + 0xBB, 0xC2, 0xC2, 0xFF, 0xB6, 0xBC, 0xBC, 0xFF, 0xB7, 0xBE, 0xBD, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, 0x93, 0x9A, 0x95, 0xFF, + 0x9D, 0xA5, 0xA0, 0xFF, 0xA5, 0xAD, 0xA8, 0xFF, 0xA6, 0xAE, 0xA9, 0xFF, + 0x95, 0x9D, 0x98, 0xFF, 0x9B, 0xA2, 0x9D, 0xFF, 0x9C, 0xA4, 0x9F, 0xFF, + 0x98, 0xA0, 0x9B, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0x94, 0x9B, 0x99, 0xFF, + 0x82, 0x8A, 0x87, 0xFF, 0x74, 0x7C, 0x79, 0xFF, 0x78, 0x7D, 0x7D, 0xFF, + 0x76, 0x7A, 0x7B, 0xFF, 0x6F, 0x74, 0x72, 0xFF, 0x5D, 0x62, 0x61, 0xFF, + 0x7A, 0x7D, 0x79, 0xFF, 0x8F, 0x92, 0x8E, 0xFF, 0x98, 0x9B, 0x98, 0xFF, + 0x83, 0x86, 0x83, 0xFF, 0x29, 0x29, 0x27, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, + 0x1C, 0x1C, 0x1A, 0xFF, 0x1B, 0x1B, 0x19, 0xFF, 0x20, 0x1E, 0x1C, 0xFF, + 0x1C, 0x1A, 0x19, 0xFF, 0x1F, 0x1D, 0x1B, 0xFF, 0x26, 0x24, 0x22, 0xFF, + 0x2A, 0x28, 0x27, 0xFF, 0x15, 0x13, 0x12, 0xFF, 0x09, 0x07, 0x05, 0xFF, + 0x10, 0x0E, 0x0C, 0xFF, 0x0E, 0x0C, 0x0B, 0xFF, 0x0C, 0x0A, 0x08, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x09, 0x09, 0x09, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x15, 0x15, 0x15, 0xFF, + 0x16, 0x18, 0x17, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x13, 0x16, 0x15, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x06, 0x0B, 0x09, 0xFF, 0x0D, 0x12, 0x10, 0xFF, + 0x1E, 0x20, 0x1F, 0xFF, 0x36, 0x39, 0x38, 0xFF, 0x51, 0x53, 0x53, 0xFF, + 0x6A, 0x6C, 0x6B, 0xFF, 0x76, 0x79, 0x78, 0xFF, 0x82, 0x84, 0x84, 0xFF, + 0x8C, 0x8F, 0x8E, 0xFF, 0x90, 0x92, 0x92, 0xFF, 0x92, 0x95, 0x94, 0xFF, + 0x9C, 0x9E, 0x9D, 0xFF, 0x9C, 0x9E, 0x9D, 0xFF, 0x98, 0x9B, 0x9A, 0xFF, + 0xAA, 0xAC, 0xAB, 0xFF, 0xAF, 0xB2, 0xB1, 0xFF, 0xB8, 0xBA, 0xB9, 0xFF, + 0xBD, 0xC0, 0xBF, 0xFF, 0xCF, 0xD1, 0xD0, 0xFF, 0xCB, 0xCE, 0xCD, 0xFF, + 0xCF, 0xD1, 0xD0, 0xFF, 0xD9, 0xDC, 0xDB, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xC2, 0xC4, 0xC4, 0xFF, 0xC0, 0xC2, 0xC1, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, + 0xD2, 0xD5, 0xD4, 0xFF, 0xD3, 0xD6, 0xD5, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, + 0xCD, 0xD4, 0xD2, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xAB, 0xB2, 0xB2, 0xFF, 0xA5, 0xAC, 0xAC, 0xFF, 0xAD, 0xB4, 0xB4, 0xFF, + 0xBF, 0xC6, 0xC6, 0xFF, 0xBE, 0xC5, 0xC4, 0xFF, 0xB7, 0xBE, 0xBD, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0x9D, 0xA5, 0xA0, 0xFF, + 0x9E, 0xA6, 0xA1, 0xFF, 0xA6, 0xAE, 0xA9, 0xFF, 0xB1, 0xB8, 0xB4, 0xFF, + 0xB4, 0xBC, 0xB7, 0xFF, 0xA9, 0xB0, 0xAB, 0xFF, 0xA1, 0xA8, 0xA3, 0xFF, + 0x9E, 0xA6, 0xA1, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x87, 0x8E, 0x8C, 0xFF, 0x75, 0x7D, 0x7A, 0xFF, 0x76, 0x7A, 0x7B, 0xFF, + 0x75, 0x79, 0x7A, 0xFF, 0x72, 0x77, 0x76, 0xFF, 0x6B, 0x70, 0x6F, 0xFF, + 0x76, 0x79, 0x76, 0xFF, 0x7D, 0x80, 0x7D, 0xFF, 0x90, 0x93, 0x90, 0xFF, + 0x96, 0x99, 0x95, 0xFF, 0x2D, 0x2E, 0x2B, 0xFF, 0x1E, 0x1F, 0x1C, 0xFF, + 0x1A, 0x1A, 0x18, 0xFF, 0x15, 0x15, 0x13, 0xFF, 0x19, 0x17, 0x15, 0xFF, + 0x1A, 0x18, 0x16, 0xFF, 0x21, 0x1F, 0x1D, 0xFF, 0x2C, 0x29, 0x28, 0xFF, + 0x30, 0x2E, 0x2D, 0xFF, 0x19, 0x17, 0x15, 0xFF, 0x0A, 0x08, 0x06, 0xFF, + 0x0E, 0x0C, 0x0B, 0xFF, 0x0E, 0x0C, 0x0B, 0xFF, 0x0C, 0x0A, 0x08, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x09, 0x09, 0x09, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x18, 0x18, 0x18, 0xFF, 0x17, 0x17, 0x17, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x12, 0x15, 0x14, 0xFF, 0x09, 0x0B, 0x0A, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x01, 0x06, 0x05, 0xFF, 0x03, 0x07, 0x06, 0xFF, + 0x10, 0x12, 0x11, 0xFF, 0x1F, 0x21, 0x21, 0xFF, 0x43, 0x46, 0x45, 0xFF, + 0x66, 0x68, 0x68, 0xFF, 0x68, 0x6B, 0x6A, 0xFF, 0x7C, 0x7F, 0x7E, 0xFF, + 0x8B, 0x8E, 0x8D, 0xFF, 0x95, 0x97, 0x96, 0xFF, 0x9F, 0xA2, 0xA1, 0xFF, + 0xA8, 0xAB, 0xAA, 0xFF, 0xA8, 0xAB, 0xAA, 0xFF, 0xA4, 0xA6, 0xA5, 0xFF, + 0x93, 0x96, 0x95, 0xFF, 0x99, 0x9C, 0x9B, 0xFF, 0xA1, 0xA4, 0xA3, 0xFF, + 0xA7, 0xAA, 0xA9, 0xFF, 0xB6, 0xB9, 0xB8, 0xFF, 0xB3, 0xB5, 0xB4, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xD5, 0xD7, 0xD6, 0xFF, 0xC8, 0xCA, 0xC9, 0xFF, + 0xC3, 0xC6, 0xC5, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, 0xBB, 0xBD, 0xBD, 0xFF, + 0xCB, 0xCE, 0xCD, 0xFF, 0xCD, 0xCF, 0xCE, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xB8, 0xBF, 0xBF, 0xFF, 0xA6, 0xAD, 0xAD, 0xFF, 0xA6, 0xAD, 0xAD, 0xFF, + 0xB8, 0xBF, 0xBF, 0xFF, 0xC3, 0xCA, 0xCA, 0xFF, 0xB7, 0xBE, 0xBD, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xAA, 0xB1, 0xAD, 0xFF, + 0x9A, 0xA1, 0x9C, 0xFF, 0x91, 0x99, 0x94, 0xFF, 0x96, 0x9E, 0x99, 0xFF, + 0x98, 0xA0, 0x9B, 0xFF, 0x93, 0x9A, 0x95, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, + 0xA8, 0xAF, 0xAA, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, + 0x8F, 0x96, 0x94, 0xFF, 0x82, 0x8A, 0x87, 0xFF, 0x79, 0x7E, 0x7F, 0xFF, + 0x72, 0x77, 0x78, 0xFF, 0x71, 0x76, 0x74, 0xFF, 0x6F, 0x74, 0x72, 0xFF, + 0x6E, 0x71, 0x6E, 0xFF, 0x66, 0x69, 0x66, 0xFF, 0x7C, 0x7F, 0x7C, 0xFF, + 0x97, 0x9A, 0x97, 0xFF, 0x32, 0x32, 0x30, 0xFF, 0x1F, 0x20, 0x1D, 0xFF, + 0x1A, 0x1A, 0x18, 0xFF, 0x11, 0x12, 0x0F, 0xFF, 0x19, 0x17, 0x15, 0xFF, + 0x1C, 0x1A, 0x19, 0xFF, 0x29, 0x27, 0x26, 0xFF, 0x35, 0x33, 0x31, 0xFF, + 0x3F, 0x3D, 0x3C, 0xFF, 0x22, 0x20, 0x1F, 0xFF, 0x0C, 0x0A, 0x08, 0xFF, + 0x0C, 0x0A, 0x08, 0xFF, 0x0E, 0x0C, 0x0B, 0xFF, 0x0C, 0x0A, 0x08, 0xFF, + 0x0C, 0x0C, 0x0A, 0xFF, 0x0D, 0x0D, 0x0B, 0xFF, 0x09, 0x09, 0x09, 0xFF, + 0x0F, 0x0F, 0x0F, 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, + 0x0A, 0x0A, 0x0A, 0xFF, 0x0E, 0x0E, 0x0E, 0xFF, 0x11, 0x11, 0x11, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, 0x18, 0x18, 0x18, 0xFF, + 0x12, 0x15, 0x14, 0xFF, 0x0F, 0x11, 0x10, 0xFF, 0x08, 0x0A, 0x09, 0xFF, + 0x13, 0x16, 0x15, 0xFF, 0x06, 0x0B, 0x09, 0xFF, 0x01, 0x06, 0x05, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, 0x33, 0x35, 0x34, 0xFF, + 0x4E, 0x50, 0x4F, 0xFF, 0x5C, 0x5E, 0x5D, 0xFF, 0x72, 0x74, 0x73, 0xFF, + 0x84, 0x87, 0x86, 0xFF, 0x92, 0x95, 0x94, 0xFF, 0xA6, 0xA8, 0xA8, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, 0xB9, 0xBB, 0xBA, 0xFF, + 0x95, 0x97, 0x96, 0xFF, 0x95, 0x97, 0x96, 0xFF, 0x95, 0x97, 0x96, 0xFF, + 0x95, 0x97, 0x96, 0xFF, 0xA1, 0xA4, 0xA3, 0xFF, 0xAB, 0xAD, 0xAC, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xCA, 0xCD, 0xCC, 0xFF, + 0xC6, 0xC8, 0xC7, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xB4, 0xB6, 0xB6, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, + 0xA5, 0xAC, 0xAA, 0xFF, 0xA1, 0xA8, 0xA3, 0xFF, 0xA4, 0xAC, 0xA7, 0xFF, + 0xA5, 0xAC, 0xAA, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x7B, 0x7F, 0x7E, 0xFF, + 0x70, 0x75, 0x73, 0xFF, 0x6A, 0x6F, 0x6D, 0xFF, 0x6A, 0x6F, 0x6D, 0xFF, + 0x70, 0x75, 0x73, 0xFF, 0x74, 0x78, 0x77, 0xFF, 0x75, 0x7A, 0x76, 0xFF, + 0x7A, 0x7D, 0x79, 0xFF, 0x37, 0x3A, 0x37, 0xFF, 0x1D, 0x1F, 0x1C, 0xFF, + 0x1A, 0x1D, 0x1A, 0xFF, 0x1D, 0x1D, 0x1B, 0xFF, 0x14, 0x14, 0x12, 0xFF, + 0x07, 0x07, 0x05, 0xFF, 0x2A, 0x2A, 0x28, 0xFF, 0x45, 0x45, 0x43, 0xFF, + 0x7C, 0x79, 0x7A, 0xFF, 0x4C, 0x4A, 0x4B, 0xFF, 0x47, 0x47, 0x47, 0xFF, + 0x29, 0x29, 0x29, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x09, 0x09, 0x09, 0xFF, 0x01, 0x01, 0x01, 0xFF, + 0x10, 0x10, 0x10, 0xFF, 0x15, 0x15, 0x15, 0xFF, 0x0C, 0x0C, 0x0C, 0xFF, + 0x0C, 0x0C, 0x0C, 0xFF, 0x0D, 0x0D, 0x0D, 0xFF, 0x1A, 0x1A, 0x1A, 0xFF, + 0x2B, 0x2B, 0x2B, 0xFF, 0x2B, 0x2B, 0x2B, 0xFF, 0x1C, 0x1C, 0x1C, 0xFF, + 0x12, 0x15, 0x14, 0xFF, 0x15, 0x17, 0x16, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, + 0x01, 0x03, 0x02, 0xFF, 0x06, 0x0B, 0x09, 0xFF, 0x0C, 0x11, 0x0F, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x27, 0x2C, 0x2A, 0xFF, 0x46, 0x4B, 0x49, 0xFF, + 0x58, 0x5C, 0x5B, 0xFF, 0x49, 0x4D, 0x4C, 0xFF, 0x5A, 0x5F, 0x5D, 0xFF, + 0x72, 0x77, 0x76, 0xFF, 0x84, 0x89, 0x87, 0xFF, 0x9A, 0x9D, 0x9C, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0xBB, 0xBD, 0xBD, 0xFF, 0xB8, 0xBA, 0xB9, 0xFF, + 0xAF, 0xB2, 0xB1, 0xFF, 0xA6, 0xA8, 0xA8, 0xFF, 0x95, 0x97, 0x96, 0xFF, + 0x8B, 0x8E, 0x8D, 0xFF, 0x98, 0x9B, 0x9A, 0xFF, 0xA5, 0xA7, 0xA7, 0xFF, + 0xAE, 0xB1, 0xB0, 0xFF, 0xB3, 0xB5, 0xB4, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, + 0xA6, 0xAE, 0xAB, 0xFF, 0xAC, 0xB4, 0xAF, 0xFF, 0xB0, 0xB7, 0xB2, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x7F, 0x84, 0x82, 0xFF, 0x74, 0x78, 0x77, 0xFF, 0x68, 0x6D, 0x6B, 0xFF, + 0x63, 0x68, 0x66, 0xFF, 0x68, 0x6D, 0x6B, 0xFF, 0x6D, 0x72, 0x6E, 0xFF, + 0x70, 0x75, 0x71, 0xFF, 0x35, 0x38, 0x35, 0xFF, 0x1A, 0x1D, 0x1A, 0xFF, + 0x1A, 0x1D, 0x1A, 0xFF, 0x1A, 0x1D, 0x1A, 0xFF, 0x23, 0x23, 0x21, 0xFF, + 0x13, 0x13, 0x11, 0xFF, 0x28, 0x28, 0x26, 0xFF, 0x4B, 0x4B, 0x48, 0xFF, + 0x8A, 0x87, 0x88, 0xFF, 0x6E, 0x6B, 0x6C, 0xFF, 0x8B, 0x8B, 0x8B, 0xFF, + 0x9A, 0x9A, 0x9A, 0xFF, 0x9A, 0x9A, 0x9A, 0xFF, 0x96, 0x96, 0x96, 0xFF, + 0x78, 0x78, 0x78, 0xFF, 0x4E, 0x4E, 0x4E, 0xFF, 0x30, 0x30, 0x30, 0xFF, + 0x24, 0x24, 0x24, 0xFF, 0x25, 0x25, 0x25, 0xFF, 0x31, 0x31, 0x31, 0xFF, + 0x4F, 0x4F, 0x4F, 0xFF, 0x65, 0x65, 0x65, 0xFF, 0x77, 0x77, 0x77, 0xFF, + 0x79, 0x79, 0x79, 0xFF, 0x74, 0x74, 0x74, 0xFF, 0x6C, 0x6C, 0x6C, 0xFF, + 0x53, 0x56, 0x55, 0xFF, 0x3A, 0x3C, 0x3B, 0xFF, 0x15, 0x17, 0x16, 0xFF, + 0x1F, 0x21, 0x21, 0xFF, 0x24, 0x29, 0x28, 0xFF, 0x03, 0x07, 0x06, 0xFF, + 0x2F, 0x34, 0x32, 0xFF, 0x4C, 0x51, 0x4F, 0xFF, 0x4A, 0x4E, 0x4D, 0xFF, + 0x69, 0x6E, 0x6C, 0xFF, 0x5A, 0x5F, 0x5D, 0xFF, 0x58, 0x5C, 0x5B, 0xFF, + 0x66, 0x6A, 0x69, 0xFF, 0x78, 0x7D, 0x7B, 0xFF, 0x8F, 0x91, 0x90, 0xFF, + 0x93, 0x96, 0x95, 0xFF, 0x9F, 0xA2, 0xA1, 0xFF, 0xB4, 0xB6, 0xB6, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xB8, 0xBA, 0xB9, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, + 0xA1, 0xA4, 0xA3, 0xFF, 0x9F, 0xA2, 0xA1, 0xFF, 0xA4, 0xA6, 0xA5, 0xFF, + 0xA3, 0xA5, 0xA4, 0xFF, 0xA3, 0xA5, 0xA4, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, 0x9A, 0xA1, 0x9E, 0xFF, + 0x94, 0x9B, 0x99, 0xFF, 0x95, 0x9C, 0x9A, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, 0x71, 0x76, 0x74, 0xFF, + 0x63, 0x68, 0x66, 0xFF, 0x64, 0x69, 0x68, 0xFF, 0x66, 0x6B, 0x67, 0xFF, + 0x6B, 0x71, 0x6D, 0xFF, 0x33, 0x36, 0x32, 0xFF, 0x19, 0x1C, 0x19, 0xFF, + 0x19, 0x1C, 0x19, 0xFF, 0x1C, 0x1E, 0x1B, 0xFF, 0x1A, 0x1A, 0x18, 0xFF, + 0x14, 0x14, 0x12, 0xFF, 0x30, 0x30, 0x2E, 0xFF, 0x71, 0x71, 0x6F, 0xFF, + 0x97, 0x94, 0x95, 0xFF, 0x7F, 0x7D, 0x7E, 0xFF, 0x8D, 0x8D, 0x8D, 0xFF, + 0xAB, 0xAB, 0xAB, 0xFF, 0xB0, 0xB0, 0xB0, 0xFF, 0xA5, 0xA5, 0xA5, 0xFF, + 0x9E, 0x9E, 0x9E, 0xFF, 0x9D, 0x9D, 0x9D, 0xFF, 0x8E, 0x8E, 0x8E, 0xFF, + 0x8D, 0x8D, 0x8D, 0xFF, 0x88, 0x88, 0x88, 0xFF, 0x82, 0x82, 0x82, 0xFF, + 0x7D, 0x7D, 0x7D, 0xFF, 0x87, 0x87, 0x87, 0xFF, 0x86, 0x86, 0x86, 0xFF, + 0x7D, 0x7D, 0x7D, 0xFF, 0x73, 0x73, 0x73, 0xFF, 0x78, 0x78, 0x78, 0xFF, + 0x71, 0x73, 0x72, 0xFF, 0x64, 0x66, 0x65, 0xFF, 0x88, 0x8A, 0x89, 0xFF, + 0x66, 0x68, 0x68, 0xFF, 0x6B, 0x70, 0x6F, 0xFF, 0x76, 0x7B, 0x79, 0xFF, + 0x5F, 0x63, 0x62, 0xFF, 0x80, 0x85, 0x84, 0xFF, 0x7E, 0x83, 0x81, 0xFF, + 0x76, 0x7B, 0x79, 0xFF, 0x75, 0x7A, 0x78, 0xFF, 0x78, 0x7D, 0x7B, 0xFF, + 0x82, 0x86, 0x85, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, 0x90, 0x92, 0x92, 0xFF, + 0x89, 0x8B, 0x8B, 0xFF, 0x93, 0x96, 0x95, 0xFF, 0xA8, 0xAB, 0xAA, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, 0xB6, 0xB9, 0xB8, 0xFF, + 0xB2, 0xB4, 0xB3, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, 0xB3, 0xB5, 0xB4, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0xAA, 0xAC, 0xAB, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xD3, 0xD8, 0xD6, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0x88, 0x8F, 0x8D, 0xFF, 0x89, 0x90, 0x8E, 0xFF, 0x9A, 0xA1, 0x9E, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x84, 0x89, 0x87, 0xFF, + 0x76, 0x7B, 0x79, 0xFF, 0x71, 0x76, 0x74, 0xFF, 0x6E, 0x73, 0x6F, 0xFF, + 0x6F, 0x74, 0x70, 0xFF, 0x33, 0x36, 0x32, 0xFF, 0x1A, 0x1D, 0x1A, 0xFF, + 0x19, 0x1C, 0x19, 0xFF, 0x21, 0x24, 0x21, 0xFF, 0x29, 0x29, 0x27, 0xFF, + 0x1F, 0x20, 0x1D, 0xFF, 0x2B, 0x2B, 0x29, 0xFF, 0x77, 0x77, 0x75, 0xFF, + 0x8A, 0x87, 0x88, 0xFF, 0x8C, 0x8A, 0x8B, 0xFF, 0x95, 0x95, 0x95, 0xFF, + 0xAA, 0xAA, 0xAA, 0xFF, 0x99, 0x99, 0x99, 0xFF, 0xAB, 0xAB, 0xAB, 0xFF, + 0xB7, 0xB7, 0xB7, 0xFF, 0xB1, 0xB1, 0xB1, 0xFF, 0x8C, 0x8C, 0x8C, 0xFF, + 0x70, 0x70, 0x70, 0xFF, 0x68, 0x68, 0x68, 0xFF, 0x77, 0x77, 0x77, 0xFF, + 0x7D, 0x7D, 0x7D, 0xFF, 0x78, 0x78, 0x78, 0xFF, 0x7D, 0x7D, 0x7D, 0xFF, + 0x88, 0x88, 0x88, 0xFF, 0x86, 0x86, 0x86, 0xFF, 0x7D, 0x7D, 0x7D, 0xFF, + 0x7A, 0x7C, 0x7B, 0xFF, 0x82, 0x84, 0x84, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, + 0x6D, 0x6F, 0x6F, 0xFF, 0x72, 0x77, 0x76, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0x75, 0x7A, 0x78, 0xFF, 0x6F, 0x74, 0x72, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x7C, 0x81, 0x7F, 0xFF, 0x74, 0x78, 0x77, 0xFF, 0x91, 0x96, 0x94, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, 0x9D, 0x9F, 0x9E, 0xFF, + 0x97, 0x99, 0x99, 0xFF, 0x97, 0x99, 0x99, 0xFF, 0x9C, 0x9E, 0x9D, 0xFF, + 0xAD, 0xAF, 0xAF, 0xFF, 0xB3, 0xB5, 0xB4, 0xFF, 0xB9, 0xBB, 0xBA, 0xFF, + 0xBC, 0xBF, 0xBE, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, 0xC4, 0xC7, 0xC6, 0xFF, + 0xC7, 0xC9, 0xC8, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xD4, 0xD9, 0xD7, 0xFF, 0xD1, 0xD6, 0xD4, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0x96, 0x9D, 0x9B, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0x9B, 0xA0, 0x9E, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0x79, 0x7E, 0x7D, 0xFF, 0x72, 0x77, 0x76, 0xFF, 0x77, 0x7C, 0x7A, 0xFF, + 0x71, 0x76, 0x74, 0xFF, 0x27, 0x2A, 0x29, 0xFF, 0x16, 0x18, 0x17, 0xFF, + 0x0E, 0x10, 0x0F, 0xFF, 0x17, 0x19, 0x18, 0xFF, 0x1D, 0x1F, 0x1E, 0xFF, + 0x1F, 0x21, 0x21, 0xFF, 0x1D, 0x1F, 0x1E, 0xFF, 0x76, 0x76, 0x76, 0xFF, + 0x87, 0x87, 0x87, 0xFF, 0x9C, 0x9C, 0x9C, 0xFF, 0xA7, 0xA6, 0xA7, 0xFF, + 0x9E, 0x9E, 0x9E, 0xFF, 0x97, 0x97, 0x97, 0xFF, 0x9A, 0x9A, 0x9A, 0xFF, + 0x96, 0x96, 0x96, 0xFF, 0x81, 0x81, 0x81, 0xFF, 0x72, 0x72, 0x72, 0xFF, + 0x76, 0x76, 0x76, 0xFF, 0x7B, 0x7B, 0x7B, 0xFF, 0x86, 0x86, 0x86, 0xFF, + 0x77, 0x77, 0x77, 0xFF, 0x74, 0x74, 0x74, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, + 0x9A, 0x9A, 0x9A, 0xFF, 0x94, 0x94, 0x94, 0xFF, 0x92, 0x92, 0x92, 0xFF, + 0x8F, 0x91, 0x90, 0xFF, 0x98, 0x9B, 0x9A, 0xFF, 0xA4, 0xA6, 0xA5, 0xFF, + 0xA5, 0xA7, 0xA7, 0xFF, 0x61, 0x66, 0x64, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0x83, 0x88, 0x86, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xDE, 0xE2, 0xE1, 0xFF, 0xDC, 0xE1, 0xE0, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0x9D, 0xA4, 0xA2, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0x7E, 0x83, 0x81, 0xFF, 0x6D, 0x71, 0x70, 0xFF, 0x69, 0x6E, 0x6C, 0xFF, + 0x62, 0x67, 0x65, 0xFF, 0x2B, 0x2D, 0x2C, 0xFF, 0x19, 0x1C, 0x1B, 0xFF, + 0x0F, 0x11, 0x10, 0xFF, 0x1F, 0x21, 0x21, 0xFF, 0x18, 0x1A, 0x1A, 0xFF, + 0x17, 0x19, 0x18, 0xFF, 0x1F, 0x21, 0x21, 0xFF, 0x73, 0x75, 0x74, 0xFF, + 0x8C, 0x8C, 0x8C, 0xFF, 0xAC, 0xAC, 0xAC, 0xFF, 0xA8, 0xA8, 0xA8, 0xFF, + 0x90, 0x90, 0x90, 0xFF, 0xBB, 0xBB, 0xBB, 0xFF, 0x99, 0x99, 0x99, 0xFF, + 0x7D, 0x7D, 0x7D, 0xFF, 0x6B, 0x6B, 0x6B, 0xFF, 0x7F, 0x7F, 0x7F, 0xFF, + 0x7E, 0x7E, 0x7E, 0xFF, 0x7D, 0x7D, 0x7D, 0xFF, 0x79, 0x79, 0x79, 0xFF, + 0x8C, 0x8C, 0x8C, 0xFF, 0x9A, 0x9A, 0x9A, 0xFF, 0x99, 0x99, 0x99, 0xFF, + 0x85, 0x85, 0x85, 0xFF, 0x87, 0x87, 0x87, 0xFF, 0xA4, 0xA4, 0xA4, 0xFF, + 0xAB, 0xAD, 0xAC, 0xFF, 0x97, 0x99, 0x99, 0xFF, 0x8A, 0x8D, 0x8C, 0xFF, + 0xC3, 0xC6, 0xC5, 0xFF, 0x80, 0x85, 0x84, 0xFF, 0x71, 0x76, 0x74, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x87, 0x8C, 0x8B, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0x85, 0x8A, 0x88, 0xFF, 0x64, 0x69, 0x68, 0xFF, 0x55, 0x5A, 0x58, 0xFF, + 0x4E, 0x53, 0x52, 0xFF, 0x21, 0x24, 0x23, 0xFF, 0x1F, 0x21, 0x21, 0xFF, + 0x11, 0x13, 0x13, 0xFF, 0x1E, 0x20, 0x1F, 0xFF, 0x2B, 0x30, 0x2F, 0xFF, + 0x1B, 0x20, 0x1E, 0xFF, 0x29, 0x2E, 0x2C, 0xFF, 0x6F, 0x72, 0x71, 0xFF, + 0x9F, 0xA2, 0xA1, 0xFF, 0xB9, 0xBB, 0xBA, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xA7, 0xAA, 0xA9, 0xFF, 0x64, 0x64, 0x64, 0xFF, 0x6C, 0x6C, 0x6C, 0xFF, + 0x6F, 0x6F, 0x6F, 0xFF, 0x70, 0x70, 0x70, 0xFF, 0x72, 0x72, 0x72, 0xFF, + 0x7D, 0x7D, 0x7D, 0xFF, 0x8C, 0x8C, 0x8C, 0xFF, 0x95, 0x95, 0x95, 0xFF, + 0x8E, 0x90, 0x8F, 0xFF, 0xA7, 0xAA, 0xA9, 0xFF, 0xAC, 0xAE, 0xAD, 0xFF, + 0x96, 0x98, 0x97, 0xFF, 0x90, 0x92, 0x92, 0xFF, 0xB2, 0xB4, 0xB3, 0xFF, + 0xB4, 0xB6, 0xB6, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x79, 0x7B, 0x7A, 0xFF, + 0xA7, 0xAA, 0xA9, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x83, 0x88, 0x86, 0xFF, + 0x89, 0x8D, 0x8C, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0x8E, 0x93, 0x92, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xD7, 0xDB, 0xDA, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xA5, 0xAC, 0xAA, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0xA1, 0xA8, 0xA5, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0x8A, 0x8F, 0x8D, 0xFF, 0x5F, 0x63, 0x62, 0xFF, 0x47, 0x4C, 0x4B, 0xFF, + 0x3F, 0x44, 0x42, 0xFF, 0x13, 0x16, 0x15, 0xFF, 0x20, 0x23, 0x22, 0xFF, + 0x11, 0x13, 0x13, 0xFF, 0x18, 0x1A, 0x1A, 0xFF, 0x26, 0x2A, 0x29, 0xFF, + 0x1F, 0x23, 0x22, 0xFF, 0x4C, 0x51, 0x4F, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0x9F, 0xA2, 0xA1, 0xFF, 0x9C, 0x9E, 0x9D, 0xFF, 0x85, 0x88, 0x87, 0xFF, + 0x67, 0x6A, 0x69, 0xFF, 0x61, 0x61, 0x61, 0xFF, 0x62, 0x62, 0x62, 0xFF, + 0x69, 0x69, 0x69, 0xFF, 0x73, 0x73, 0x73, 0xFF, 0x72, 0x72, 0x72, 0xFF, + 0x7F, 0x7F, 0x7F, 0xFF, 0x92, 0x92, 0x92, 0xFF, 0x9E, 0x9E, 0x9E, 0xFF, + 0x9A, 0x9D, 0x9C, 0xFF, 0xA7, 0xAA, 0xA9, 0xFF, 0xAA, 0xAC, 0xAB, 0xFF, + 0xA0, 0xA3, 0xA2, 0xFF, 0x99, 0x9C, 0x9B, 0xFF, 0xAE, 0xB1, 0xB0, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x85, 0x88, 0x87, 0xFF, + 0x90, 0x92, 0x92, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0x85, 0x8A, 0x88, 0xFF, + 0x7B, 0x7F, 0x7E, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0x75, 0x7A, 0x78, 0xFF, 0x83, 0x88, 0x86, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xD3, 0xD8, 0xD6, 0xFF, + 0xD4, 0xD9, 0xD7, 0xFF, 0xD1, 0xD6, 0xD4, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, 0x9D, 0xA4, 0xA2, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0x9C, 0xA3, 0xA1, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0x94, 0x9B, 0x99, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0x61, 0x66, 0x64, 0xFF, 0x34, 0x38, 0x37, 0xFF, + 0x24, 0x29, 0x28, 0xFF, 0x18, 0x1C, 0x1B, 0xFF, 0x0B, 0x10, 0x0E, 0xFF, + 0x0E, 0x13, 0x11, 0xFF, 0x28, 0x2D, 0x2B, 0xFF, 0x26, 0x2A, 0x29, 0xFF, + 0x23, 0x28, 0x26, 0xFF, 0x6E, 0x73, 0x71, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0x74, 0x76, 0x76, 0xFF, 0x59, 0x5C, 0x5B, 0xFF, 0x49, 0x4B, 0x4B, 0xFF, + 0x56, 0x58, 0x57, 0xFF, 0x64, 0x66, 0x65, 0xFF, 0x59, 0x5C, 0x5B, 0xFF, + 0x6F, 0x72, 0x71, 0xFF, 0x6C, 0x6E, 0x6D, 0xFF, 0x6C, 0x6E, 0x6D, 0xFF, + 0x83, 0x86, 0x85, 0xFF, 0xAB, 0xAD, 0xAC, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0x9E, 0xA2, 0xA1, 0xFF, 0x94, 0x99, 0x97, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0x85, 0x8A, 0x88, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xD0, 0xD8, 0xD5, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, + 0xDA, 0xE1, 0xDE, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xA6, 0xAE, 0xAB, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0x8E, 0x93, 0x92, 0xFF, 0x53, 0x58, 0x56, 0xFF, 0x2A, 0x2F, 0x2D, 0xFF, + 0x19, 0x1E, 0x1C, 0xFF, 0x14, 0x19, 0x17, 0xFF, 0x0F, 0x14, 0x13, 0xFF, + 0x14, 0x19, 0x17, 0xFF, 0x20, 0x25, 0x23, 0xFF, 0x21, 0x26, 0x24, 0xFF, + 0x28, 0x2D, 0x2B, 0xFF, 0x55, 0x5A, 0x58, 0xFF, 0x56, 0x5B, 0x5A, 0xFF, + 0x4E, 0x50, 0x4F, 0xFF, 0x56, 0x58, 0x57, 0xFF, 0x53, 0x56, 0x55, 0xFF, + 0x50, 0x52, 0x52, 0xFF, 0x68, 0x6B, 0x6A, 0xFF, 0x65, 0x67, 0x66, 0xFF, + 0x72, 0x74, 0x73, 0xFF, 0x74, 0x76, 0x76, 0xFF, 0x6E, 0x71, 0x70, 0xFF, + 0x8C, 0x8F, 0x8E, 0xFF, 0xAB, 0xAD, 0xAC, 0xFF, 0xA5, 0xA7, 0xA7, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, + 0xB1, 0xB3, 0xB2, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0x95, 0x9A, 0x99, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x8D, 0x92, 0x90, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0x8A, 0x8F, 0x8D, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, 0xD3, 0xDA, 0xD7, 0xFF, + 0xD6, 0xDD, 0xDB, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xD1, 0xD9, 0xD6, 0xFF, + 0xCE, 0xD5, 0xD3, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0x5C, 0x61, 0x5F, 0xFF, 0x32, 0x37, 0x36, 0xFF, 0x18, 0x1C, 0x1B, 0xFF, + 0x0B, 0x10, 0x0E, 0xFF, 0x12, 0x17, 0x15, 0xFF, 0x15, 0x1A, 0x18, 0xFF, + 0x1A, 0x1F, 0x1D, 0xFF, 0x19, 0x1E, 0x1C, 0xFF, 0x25, 0x2C, 0x2A, 0xFF, + 0x26, 0x2E, 0x2B, 0xFF, 0x40, 0x47, 0x45, 0xFF, 0x3F, 0x44, 0x42, 0xFF, + 0x40, 0x45, 0x44, 0xFF, 0x52, 0x57, 0x55, 0xFF, 0x5A, 0x5F, 0x5D, 0xFF, + 0x53, 0x58, 0x56, 0xFF, 0x71, 0x73, 0x72, 0xFF, 0x74, 0x76, 0x76, 0xFF, + 0x75, 0x78, 0x77, 0xFF, 0x81, 0x83, 0x82, 0xFF, 0x74, 0x76, 0x76, 0xFF, + 0x9C, 0x9E, 0x9D, 0xFF, 0xAD, 0xAF, 0xAF, 0xFF, 0xAF, 0xB2, 0xB1, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, + 0x87, 0x8C, 0x8B, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0x93, 0x98, 0x96, 0xFF, 0x80, 0x85, 0x84, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, 0xD4, 0xDB, 0xD9, 0xFF, + 0xCE, 0xD5, 0xD3, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, 0x9D, 0xA4, 0xA2, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xCC, 0xD3, 0xD0, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0x7B, 0x7F, 0x7E, 0xFF, + 0x30, 0x35, 0x33, 0xFF, 0x18, 0x1C, 0x1B, 0xFF, 0x0F, 0x14, 0x13, 0xFF, + 0x0A, 0x0E, 0x0D, 0xFF, 0x0E, 0x13, 0x11, 0xFF, 0x1D, 0x22, 0x21, 0xFF, + 0x1D, 0x22, 0x21, 0xFF, 0x1A, 0x1F, 0x1D, 0xFF, 0x2B, 0x32, 0x30, 0xFF, + 0x23, 0x2A, 0x28, 0xFF, 0x3A, 0x41, 0x3F, 0xFF, 0x57, 0x5E, 0x5C, 0xFF, + 0x5A, 0x5F, 0x5D, 0xFF, 0x5C, 0x61, 0x5F, 0xFF, 0x6D, 0x71, 0x70, 0xFF, + 0x82, 0x86, 0x85, 0xFF, 0x75, 0x78, 0x77, 0xFF, 0x80, 0x82, 0x81, 0xFF, + 0x78, 0x7A, 0x79, 0xFF, 0x89, 0x8B, 0x8B, 0xFF, 0x78, 0x7A, 0x79, 0xFF, + 0xA5, 0xA7, 0xA7, 0xFF, 0xAF, 0xB2, 0xB1, 0xFF, 0xB5, 0xB8, 0xB7, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0x7B, 0x7F, 0x7E, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x5C, 0x61, 0x5F, 0xFF, + 0x16, 0x1B, 0x1A, 0xFF, 0x0B, 0x10, 0x0E, 0xFF, 0x12, 0x17, 0x15, 0xFF, + 0x08, 0x0D, 0x0C, 0xFF, 0x07, 0x0C, 0x0A, 0xFF, 0x0D, 0x12, 0x10, 0xFF, + 0x08, 0x0D, 0x0C, 0xFF, 0x08, 0x0D, 0x0C, 0xFF, 0x0E, 0x15, 0x13, 0xFF, + 0x25, 0x2C, 0x2A, 0xFF, 0x40, 0x47, 0x45, 0xFF, 0x5F, 0x67, 0x64, 0xFF, + 0x6A, 0x6F, 0x6D, 0xFF, 0x6D, 0x71, 0x70, 0xFF, 0x7B, 0x7F, 0x7E, 0xFF, + 0x8E, 0x93, 0x92, 0xFF, 0x81, 0x83, 0x82, 0xFF, 0x82, 0x84, 0x84, 0xFF, + 0x92, 0x95, 0x94, 0xFF, 0x83, 0x86, 0x85, 0xFF, 0x9C, 0x9E, 0x9D, 0xFF, + 0x93, 0x96, 0x95, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, 0xBD, 0xC0, 0xBF, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0x90, 0x94, 0x93, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, + 0xCF, 0xD6, 0xD4, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x59, 0x5E, 0x5C, 0xFF, + 0x1A, 0x1F, 0x1D, 0xFF, 0x0F, 0x14, 0x13, 0xFF, 0x13, 0x18, 0x16, 0xFF, + 0x0C, 0x11, 0x0F, 0xFF, 0x01, 0x06, 0x05, 0xFF, 0x08, 0x0D, 0x0C, 0xFF, + 0x07, 0x0C, 0x0A, 0xFF, 0x08, 0x0D, 0x0C, 0xFF, 0x0F, 0x16, 0x14, 0xFF, + 0x46, 0x4D, 0x4B, 0xFF, 0x61, 0x68, 0x65, 0xFF, 0x6B, 0x72, 0x70, 0xFF, + 0x6F, 0x74, 0x72, 0xFF, 0x82, 0x86, 0x85, 0xFF, 0x91, 0x96, 0x94, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0x9C, 0x9E, 0x9D, 0xFF, 0x98, 0x9B, 0x9A, 0xFF, + 0x9A, 0x9D, 0x9C, 0xFF, 0x8A, 0x8D, 0x8C, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, + 0x9A, 0x9D, 0x9C, 0xFF, 0xAD, 0xAF, 0xAF, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, + 0xD1, 0xD9, 0xD6, 0xFF, 0xD1, 0xD9, 0xD6, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xC7, 0xCE, 0xCC, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xCC, 0xD3, 0xD0, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0x68, 0x6D, 0x6B, 0xFF, + 0x22, 0x27, 0x25, 0xFF, 0x16, 0x1B, 0x1A, 0xFF, 0x16, 0x1B, 0x1A, 0xFF, + 0x13, 0x18, 0x16, 0xFF, 0x04, 0x09, 0x07, 0xFF, 0x0E, 0x13, 0x11, 0xFF, + 0x0F, 0x14, 0x13, 0xFF, 0x14, 0x19, 0x17, 0xFF, 0x2D, 0x35, 0x32, 0xFF, + 0x6B, 0x72, 0x70, 0xFF, 0x7A, 0x81, 0x7F, 0xFF, 0x7F, 0x86, 0x84, 0xFF, + 0x80, 0x85, 0x84, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0xA4, 0xA6, 0xA5, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, + 0x92, 0x95, 0x94, 0xFF, 0x97, 0x99, 0x99, 0xFF, 0xA3, 0xA5, 0xA4, 0xFF, + 0xA3, 0xA5, 0xA4, 0xFF, 0xA4, 0xA6, 0xA5, 0xFF, 0xB6, 0xB9, 0xB8, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xCF, 0xD6, 0xD4, 0xFF, 0xD5, 0xDC, 0xDA, 0xFF, 0xD6, 0xDD, 0xDB, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xD0, 0xD8, 0xD5, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xD0, 0xD8, 0xD5, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xCD, 0xD4, 0xD2, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0x83, 0x88, 0x86, 0xFF, + 0x29, 0x2E, 0x2C, 0xFF, 0x1C, 0x21, 0x1F, 0xFF, 0x1D, 0x22, 0x21, 0xFF, + 0x14, 0x19, 0x17, 0xFF, 0x08, 0x0D, 0x0C, 0xFF, 0x14, 0x19, 0x17, 0xFF, + 0x19, 0x1E, 0x1C, 0xFF, 0x1F, 0x23, 0x22, 0xFF, 0x61, 0x68, 0x65, 0xFF, + 0x7E, 0x85, 0x82, 0xFF, 0x78, 0x7F, 0x7D, 0xFF, 0x93, 0x9A, 0x97, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xA1, 0xA4, 0xA3, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, + 0x8E, 0x90, 0x8F, 0xFF, 0xA5, 0xA7, 0xA7, 0xFF, 0xA5, 0xA7, 0xA7, 0xFF, + 0xAA, 0xAC, 0xAB, 0xFF, 0x9E, 0xA0, 0xA0, 0xFF, 0xB4, 0xB6, 0xB6, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0x9B, 0xA0, 0x9E, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0x93, 0x98, 0x96, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xD3, 0xDA, 0xD7, 0xFF, 0xDA, 0xE1, 0xDE, 0xFF, + 0xD0, 0xD8, 0xD5, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xCE, 0xD5, 0xD3, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xD3, 0xD8, 0xD6, 0xFF, + 0xDC, 0xE1, 0xE0, 0xFF, 0xD9, 0xDE, 0xDC, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xC7, 0xCE, 0xCC, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xD8, 0xE0, 0xDD, 0xFF, 0xCC, 0xD3, 0xD0, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xD3, 0xD8, 0xD6, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0x85, 0x8A, 0x88, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x79, 0x7E, 0x7D, 0xFF, 0x36, 0x3B, 0x39, 0xFF, 0x19, 0x1E, 0x1C, 0xFF, + 0x1B, 0x20, 0x1E, 0xFF, 0x14, 0x19, 0x17, 0xFF, 0x2D, 0x31, 0x30, 0xFF, + 0x3B, 0x3F, 0x3E, 0xFF, 0x69, 0x6E, 0x6C, 0xFF, 0x7D, 0x82, 0x80, 0xFF, + 0x87, 0x8C, 0x8B, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0x91, 0x96, 0x94, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xCE, 0xD3, 0xD2, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xDE, 0xE2, 0xE1, 0xFF, 0xD7, 0xDB, 0xDA, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xD9, 0xDE, 0xDC, 0xFF, 0xD8, 0xDD, 0xDB, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xBE, 0xC5, 0xC2, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xCC, 0xD3, 0xD0, 0xFF, 0xD1, 0xD9, 0xD6, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xD1, 0xD9, 0xD6, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, + 0xD2, 0xD7, 0xD5, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0x89, 0x8D, 0x8C, 0xFF, 0x90, 0x94, 0x93, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0x82, 0x86, 0x85, 0xFF, 0x52, 0x57, 0x55, 0xFF, 0x58, 0x5C, 0x5B, 0xFF, + 0x67, 0x6C, 0x6A, 0xFF, 0x64, 0x69, 0x68, 0xFF, 0x64, 0x69, 0x68, 0xFF, + 0x68, 0x6D, 0x6B, 0xFF, 0x7C, 0x81, 0x7F, 0xFF, 0x7B, 0x7F, 0x7E, 0xFF, + 0x84, 0x89, 0x87, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x95, 0x9A, 0x99, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xCC, 0xD1, 0xCF, 0xFF, 0xD1, 0xD6, 0xD4, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, + 0xD9, 0xDE, 0xDC, 0xFF, 0xDB, 0xE0, 0xDE, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xD4, 0xD9, 0xD7, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xD4, 0xD9, 0xD7, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0x86, 0x8B, 0x89, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0x8D, 0x92, 0x90, 0xFF, 0x78, 0x7D, 0x7B, 0xFF, + 0x7C, 0x81, 0x7F, 0xFF, 0x84, 0x89, 0x87, 0xFF, 0x7D, 0x82, 0x80, 0xFF, + 0x84, 0x89, 0x87, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, 0x92, 0x97, 0x95, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, + 0x86, 0x8B, 0x89, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0x86, 0x8B, 0x89, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0x93, 0x98, 0x96, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, 0xD3, 0xD8, 0xD6, 0xFF, + 0xD8, 0xDD, 0xDB, 0xFF, 0xD7, 0xDB, 0xDA, 0xFF, 0xD7, 0xDB, 0xDA, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, 0x71, 0x76, 0x74, 0xFF, + 0x87, 0x8C, 0x8B, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x86, 0x8B, 0x89, 0xFF, + 0x8A, 0x8F, 0x8D, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x92, 0x97, 0x95, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0x86, 0x8B, 0x89, 0xFF, + 0x7E, 0x83, 0x81, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0x86, 0x8B, 0x89, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0x91, 0x96, 0x94, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x94, 0x99, 0x97, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xCA, 0xCF, 0xCD, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, + 0xDB, 0xE0, 0xDE, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xD3, 0xD8, 0xD6, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0x80, 0x85, 0x84, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x94, 0x99, 0x97, 0xFF, 0x82, 0x86, 0x85, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0x94, 0x99, 0x97, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x9B, 0xA0, 0x9E, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x8B, 0x90, 0x8E, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0x7D, 0x82, 0x80, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0x8C, 0x91, 0x8F, 0xFF, 0x90, 0x94, 0x93, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, 0xD5, 0xDA, 0xD9, 0xFF, + 0xCE, 0xD3, 0xD2, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xCE, 0xD3, 0xD2, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA2, 0xA9, 0xA7, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0x93, 0x98, 0x96, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0x85, 0x8A, 0x88, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0x91, 0x96, 0x94, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0x91, 0x96, 0x94, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xD4, 0xD9, 0xD7, 0xFF, + 0xD1, 0xD6, 0xD4, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0xA2, 0xA9, 0xA7, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0x82, 0x86, 0x85, 0xFF, 0x8D, 0x92, 0x90, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x92, 0x97, 0x95, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x9E, 0xA2, 0xA1, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, + 0x94, 0x9B, 0x99, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0x8E, 0x95, 0x93, 0xFF, 0x82, 0x8A, 0x87, 0xFF, + 0x98, 0xA0, 0x9D, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xD0, 0xD8, 0xD5, 0xFF, + 0xD1, 0xD9, 0xD6, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0x9A, 0xA1, 0x9E, 0xFF, 0x9B, 0xA2, 0xA0, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0x9F, 0xA7, 0xA4, 0xFF, 0x9A, 0xA1, 0x9E, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x93, 0x98, 0x96, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x91, 0x96, 0x94, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0x83, 0x88, 0x86, 0xFF, + 0x88, 0x8F, 0x8D, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xA2, 0xA9, 0xA7, 0xFF, 0x94, 0x9B, 0x99, 0xFF, 0x83, 0x8B, 0x88, 0xFF, + 0x98, 0xA0, 0x9D, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, + 0xD3, 0xDA, 0xD7, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0x94, 0x9B, 0x99, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0x98, 0xA0, 0x9D, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xA8, 0xAF, 0xAC, 0xFF, 0x9D, 0xA4, 0xA2, 0xFF, 0x98, 0xA0, 0x9D, 0xFF, + 0x9B, 0xA2, 0xA0, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xB4, 0xB6, 0xB6, 0xFF, 0xB1, 0xB3, 0xB2, 0xFF, + 0xAE, 0xB1, 0xB0, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xCB, 0xD0, 0xCE, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x92, 0x97, 0x95, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x8A, 0x8F, 0x8D, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0x90, 0x94, 0x93, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0x9E, 0xA2, 0xA1, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0x89, 0x8D, 0x8C, 0xFF, 0x8A, 0x8F, 0x8D, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0x91, 0x96, 0x94, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0x93, 0x9A, 0x97, 0xFF, + 0x97, 0x9E, 0x9C, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, 0xA6, 0xB0, 0xAC, 0xFF, + 0xD8, 0xE2, 0xDE, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, 0x80, 0x89, 0x86, 0xFF, + 0xAF, 0xB9, 0xB6, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, 0xC8, 0xD1, 0xCE, 0xFF, + 0xCB, 0xD5, 0xD2, 0xFF, 0xD3, 0xDD, 0xDA, 0xFF, 0xD5, 0xDE, 0xDB, 0xFF, + 0xB3, 0xBC, 0xB9, 0xFF, 0x99, 0xA3, 0xA0, 0xFF, 0x90, 0x99, 0x96, 0xFF, + 0x8F, 0x98, 0x95, 0xFF, 0x9F, 0xA9, 0xA5, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, + 0xC0, 0xC9, 0xC6, 0xFF, 0xB3, 0xBC, 0xB9, 0xFF, 0xA1, 0xAB, 0xA8, 0xFF, + 0x9D, 0xA6, 0xA3, 0xFF, 0x98, 0xA2, 0x9E, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, + 0x8E, 0x95, 0x93, 0xFF, 0x9A, 0xA1, 0x9E, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xBF, 0xC1, 0xC0, 0xFF, 0xBA, 0xBC, 0xBB, 0xFF, + 0xAC, 0xAE, 0xAD, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA2, 0xA7, 0xA5, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0x97, 0x9B, 0x9A, 0xFF, 0x8D, 0x92, 0x90, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0x7E, 0x83, 0x81, 0xFF, 0x72, 0x77, 0x76, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0x71, 0x76, 0x74, 0xFF, 0x83, 0x88, 0x86, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0x96, 0x9D, 0x9B, 0xFF, + 0x86, 0x8D, 0x8B, 0xFF, 0x81, 0x88, 0x86, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, + 0xD5, 0xDE, 0xDB, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, 0x9E, 0xA7, 0xA4, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0x97, 0xA0, 0x9D, 0xFF, 0x92, 0x9C, 0x99, 0xFF, + 0xAC, 0xB5, 0xB2, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, 0xD2, 0xDC, 0xD9, 0xFF, + 0xC0, 0xC9, 0xC6, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, 0x9E, 0xA7, 0xA4, 0xFF, + 0x8D, 0x97, 0x94, 0xFF, 0x8B, 0x95, 0x92, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, + 0xBA, 0xC3, 0xC0, 0xFF, 0xAB, 0xB4, 0xB1, 0xFF, 0x9B, 0xA5, 0xA2, 0xFF, + 0x9A, 0xA4, 0xA1, 0xFF, 0x98, 0xA2, 0x9E, 0xFF, 0x96, 0x9F, 0x9C, 0xFF, + 0x8A, 0x92, 0x8F, 0xFF, 0x95, 0x9C, 0x9A, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xB5, 0xB8, 0xB7, 0xFF, 0xB2, 0xB4, 0xB3, 0xFF, + 0xAC, 0xAE, 0xAD, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xCE, 0xD3, 0xD2, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0x93, 0x98, 0x96, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0x91, 0x96, 0x94, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0x91, 0x96, 0x94, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0x9B, 0xA0, 0x9E, 0xFF, + 0x8B, 0x90, 0x8E, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x80, 0x85, 0x84, 0xFF, + 0x77, 0x7C, 0x7A, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0x80, 0x85, 0x84, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x87, 0x90, 0x8D, 0xFF, 0x85, 0x8F, 0x8C, 0xFF, 0x97, 0xA0, 0x9D, 0xFF, + 0xC8, 0xD4, 0xD0, 0xFF, 0xC4, 0xD0, 0xCC, 0xFF, 0xB8, 0xC4, 0xC0, 0xFF, + 0xBE, 0xCA, 0xC6, 0xFF, 0x96, 0xA2, 0x9E, 0xFF, 0x79, 0x85, 0x81, 0xFF, + 0x9C, 0xA8, 0xA4, 0xFF, 0xBE, 0xCA, 0xC6, 0xFF, 0xCE, 0xDA, 0xD6, 0xFF, + 0xD2, 0xDE, 0xDA, 0xFF, 0xD6, 0xE2, 0xDE, 0xFF, 0xB9, 0xC5, 0xC1, 0xFF, + 0x96, 0xA2, 0x9E, 0xFF, 0x76, 0x82, 0x7E, 0xFF, 0x9A, 0xA6, 0xA2, 0xFF, + 0xAB, 0xB7, 0xB3, 0xFF, 0xA9, 0xB5, 0xB1, 0xFF, 0x9D, 0xA9, 0xA5, 0xFF, + 0x9F, 0xAB, 0xA7, 0xFF, 0xA1, 0xAD, 0xA9, 0xFF, 0xA2, 0xAE, 0xAA, 0xFF, + 0x91, 0x99, 0x96, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, + 0xA5, 0xAC, 0xAA, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB5, 0xB8, 0xB7, 0xFF, 0xA1, 0xA4, 0xA3, 0xFF, 0x9D, 0x9F, 0x9E, 0xFF, + 0xAC, 0xAE, 0xAD, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0x93, 0x98, 0x96, 0xFF, + 0x7E, 0x83, 0x81, 0xFF, 0x80, 0x85, 0x84, 0xFF, 0x86, 0x8B, 0x89, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, 0x84, 0x89, 0x87, 0xFF, + 0x72, 0x77, 0x76, 0xFF, 0x7E, 0x83, 0x81, 0xFF, 0x7F, 0x84, 0x82, 0xFF, + 0x7F, 0x84, 0x82, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x93, 0x98, 0x96, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xA0, 0xA5, 0xA3, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, + 0x9C, 0xA1, 0xA0, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, + 0x99, 0xA3, 0xA0, 0xFF, 0xA5, 0xAE, 0xAB, 0xFF, 0xA9, 0xB5, 0xB1, 0xFF, + 0xC0, 0xCC, 0xC8, 0xFF, 0xBC, 0xC8, 0xC4, 0xFF, 0xB9, 0xC5, 0xC1, 0xFF, + 0xCC, 0xD8, 0xD4, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, 0x96, 0xA2, 0x9E, 0xFF, + 0xA7, 0xB3, 0xAF, 0xFF, 0xC3, 0xCF, 0xCB, 0xFF, 0xCF, 0xDB, 0xD7, 0xFF, + 0xD3, 0xDF, 0xDB, 0xFF, 0xCF, 0xDB, 0xD7, 0xFF, 0xBD, 0xC9, 0xC5, 0xFF, + 0x9A, 0xA6, 0xA2, 0xFF, 0x73, 0x7F, 0x7B, 0xFF, 0x88, 0x94, 0x90, 0xFF, + 0x9A, 0xA6, 0xA2, 0xFF, 0xA6, 0xB2, 0xAD, 0xFF, 0xA7, 0xB3, 0xAF, 0xFF, + 0xAA, 0xB6, 0xB2, 0xFF, 0xB0, 0xBC, 0xB8, 0xFF, 0xB3, 0xC0, 0xBB, 0xFF, + 0xA8, 0xAF, 0xAA, 0xFF, 0x9B, 0xA2, 0x9D, 0xFF, 0x95, 0x9D, 0x98, 0xFF, + 0x9B, 0xA2, 0x9D, 0xFF, 0xA9, 0xAE, 0xAA, 0xFF, 0xB9, 0xBF, 0xBB, 0xFF, + 0xC4, 0xC9, 0xC5, 0xFF, 0xC0, 0xC6, 0xC2, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xB6, 0xB9, 0xB6, 0xFF, 0xB8, 0xBA, 0xB7, 0xFF, + 0xC6, 0xC8, 0xC5, 0xFF, 0xAF, 0xB2, 0xAF, 0xFF, 0x9F, 0xA4, 0xA0, 0xFF, + 0x9F, 0xA4, 0xA0, 0xFF, 0x82, 0x87, 0x83, 0xFF, 0x75, 0x7A, 0x76, 0xFF, + 0x8E, 0x94, 0x90, 0xFF, 0x9B, 0xA0, 0x9C, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0x91, 0x96, 0x94, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x82, 0x86, 0x85, 0xFF, 0x7E, 0x83, 0x81, 0xFF, + 0x76, 0x7B, 0x79, 0xFF, 0x83, 0x88, 0x86, 0xFF, 0x7E, 0x83, 0x81, 0xFF, + 0x86, 0x8B, 0x89, 0xFF, 0x92, 0x97, 0x95, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0x90, 0x94, 0x93, 0xFF, 0x90, 0x94, 0x93, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC0, 0xC5, 0xC4, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, + 0x89, 0x90, 0x8E, 0xFF, 0x80, 0x87, 0x85, 0xFF, 0x9A, 0xA1, 0x9E, 0xFF, + 0x8D, 0x97, 0x94, 0xFF, 0x99, 0xA3, 0xA0, 0xFF, 0x98, 0xA4, 0xA0, 0xFF, + 0x8A, 0x96, 0x92, 0xFF, 0x8E, 0x9A, 0x96, 0xFF, 0xBA, 0xC7, 0xC2, 0xFF, + 0xD4, 0xE0, 0xDC, 0xFF, 0xCD, 0xD9, 0xD5, 0xFF, 0xC6, 0xD2, 0xCE, 0xFF, + 0xC1, 0xCE, 0xC9, 0xFF, 0xC6, 0xD2, 0xCE, 0xFF, 0xCF, 0xDB, 0xD7, 0xFF, + 0xC5, 0xD1, 0xCD, 0xFF, 0xB0, 0xBC, 0xB8, 0xFF, 0xA4, 0xB0, 0xAC, 0xFF, + 0x9F, 0xAB, 0xA7, 0xFF, 0x8C, 0x96, 0x93, 0xFF, 0x7B, 0x84, 0x81, 0xFF, + 0x90, 0x99, 0x96, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, + 0x9B, 0xA5, 0xA2, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, 0xD0, 0xD9, 0xD6, 0xFF, + 0xA6, 0xAE, 0xA9, 0xFF, 0xA2, 0xA9, 0xA4, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, + 0xA2, 0xA9, 0xA4, 0xFF, 0xB1, 0xB6, 0xB2, 0xFF, 0xB4, 0xB9, 0xB5, 0xFF, + 0xB2, 0xB8, 0xB4, 0xFF, 0xAD, 0xB2, 0xAE, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xA1, 0xA6, 0xA4, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xC8, 0xCB, 0xC7, 0xFF, 0xC0, 0xC2, 0xBF, 0xFF, + 0xC0, 0xC2, 0xBF, 0xFF, 0xA0, 0xA3, 0xA0, 0xFF, 0x87, 0x8D, 0x89, 0xFF, + 0x91, 0x96, 0x92, 0xFF, 0x80, 0x86, 0x82, 0xFF, 0x80, 0x86, 0x82, 0xFF, + 0x90, 0x95, 0x91, 0xFF, 0xA6, 0xAB, 0xA7, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0x99, 0x9E, 0x9C, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x83, 0x88, 0x86, 0xFF, 0x7B, 0x7F, 0x7E, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x92, 0x97, 0x95, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0x95, 0x9A, 0x99, 0xFF, 0x86, 0x8B, 0x89, 0xFF, + 0x94, 0x99, 0x97, 0xFF, 0x8E, 0x93, 0x92, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x94, 0x99, 0x97, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0x8C, 0x93, 0x90, 0xFF, 0x86, 0x8D, 0x8B, 0xFF, 0x93, 0x9A, 0x97, 0xFF, + 0x8A, 0x94, 0x90, 0xFF, 0x98, 0xA2, 0x9E, 0xFF, 0x91, 0x9D, 0x99, 0xFF, + 0x79, 0x85, 0x81, 0xFF, 0x91, 0x9D, 0x99, 0xFF, 0xB5, 0xC1, 0xBD, 0xFF, + 0xCC, 0xD8, 0xD4, 0xFF, 0xC8, 0xD4, 0xD0, 0xFF, 0xD1, 0xDD, 0xD9, 0xFF, + 0xC8, 0xD4, 0xD0, 0xFF, 0xCA, 0xD6, 0xD2, 0xFF, 0xCE, 0xDA, 0xD6, 0xFF, + 0xC3, 0xCF, 0xCB, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, 0xA3, 0xAF, 0xAB, 0xFF, + 0xA0, 0xAC, 0xA8, 0xFF, 0x96, 0x9F, 0x9C, 0xFF, 0x82, 0x8B, 0x88, 0xFF, + 0x84, 0x8E, 0x8B, 0xFF, 0x99, 0xA3, 0xA0, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, + 0xA0, 0xAA, 0xA7, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, 0xD0, 0xD9, 0xD6, 0xFF, + 0xA6, 0xAE, 0xA9, 0xFF, 0xAB, 0xB3, 0xAE, 0xFF, 0xAD, 0xB5, 0xB0, 0xFF, + 0xAB, 0xB3, 0xAE, 0xFF, 0xAF, 0xB4, 0xB0, 0xFF, 0xA6, 0xAB, 0xA7, 0xFF, + 0xA0, 0xA5, 0xA1, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xA7, 0xAC, 0xAA, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xBF, 0xC1, 0xBE, 0xFF, 0xA8, 0xAB, 0xA8, 0xFF, + 0x9F, 0xA2, 0x9F, 0xFF, 0x87, 0x89, 0x86, 0xFF, 0x75, 0x7A, 0x76, 0xFF, + 0x80, 0x86, 0x82, 0xFF, 0x77, 0x7C, 0x78, 0xFF, 0x89, 0x8E, 0x8A, 0xFF, + 0x8B, 0x90, 0x8C, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0x9F, 0xA3, 0xA2, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, 0x89, 0x8D, 0x8C, 0xFF, + 0x7E, 0x83, 0x81, 0xFF, 0x83, 0x88, 0x86, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, + 0xB4, 0xB8, 0xB7, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB6, 0xBB, 0xB9, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, + 0x9A, 0x9F, 0x9D, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0x9B, 0xA2, 0xA0, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, 0x95, 0x9C, 0x9A, 0xFF, + 0xA8, 0xB2, 0xAF, 0xFF, 0xC2, 0xCC, 0xC8, 0xFF, 0xBF, 0xCB, 0xC7, 0xFF, + 0xA2, 0xAE, 0xAA, 0xFF, 0xA9, 0xB5, 0xB1, 0xFF, 0xC0, 0xCC, 0xC8, 0xFF, + 0xD3, 0xDF, 0xDB, 0xFF, 0xD5, 0xE1, 0xDD, 0xFF, 0xD2, 0xDE, 0xDA, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xBD, 0xC9, 0xC5, 0xFF, 0xBF, 0xCB, 0xC7, 0xFF, + 0xB9, 0xC5, 0xC1, 0xFF, 0xB8, 0xC4, 0xC0, 0xFF, 0xB2, 0xBE, 0xBA, 0xFF, + 0xAC, 0xB9, 0xB4, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, + 0x85, 0x8F, 0x8C, 0xFF, 0x91, 0x9B, 0x97, 0xFF, 0x9B, 0xA5, 0xA2, 0xFF, + 0x9B, 0xA5, 0xA2, 0xFF, 0xAD, 0xB7, 0xB3, 0xFF, 0xC3, 0xCD, 0xC9, 0xFF, + 0xA6, 0xAE, 0xA9, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, + 0xB2, 0xBA, 0xB5, 0xFF, 0xA2, 0xA7, 0xA3, 0xFF, 0x98, 0x9D, 0x99, 0xFF, + 0x97, 0x9C, 0x98, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xA9, 0xAE, 0xAC, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xB5, 0xBA, 0xB8, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xC5, 0xCA, 0xC6, 0xFF, 0xB9, 0xBC, 0xB8, 0xFF, 0x99, 0x9C, 0x99, 0xFF, + 0x97, 0x9A, 0x97, 0xFF, 0x95, 0x97, 0x94, 0xFF, 0x8C, 0x91, 0x8D, 0xFF, + 0x98, 0x9D, 0x99, 0xFF, 0x97, 0x9C, 0x98, 0xFF, 0xAD, 0xB2, 0xAE, 0xFF, + 0xAF, 0xB4, 0xB0, 0xFF, 0xAE, 0xB3, 0xAF, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0x8E, 0x93, 0x92, 0xFF, 0x85, 0x8A, 0x88, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x80, 0x85, 0x84, 0xFF, 0x8B, 0x90, 0x8E, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, + 0xC9, 0xCD, 0xCC, 0xFF, 0xC6, 0xCB, 0xC9, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xAA, 0xAF, 0xAD, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xD4, 0xD9, 0xD7, 0xFF, + 0xCE, 0xD3, 0xD2, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, + 0xA0, 0xAA, 0xA7, 0xFF, 0xC8, 0xD1, 0xCE, 0xFF, 0xCF, 0xDB, 0xD7, 0xFF, + 0xB6, 0xC2, 0xBE, 0xFF, 0xAB, 0xB7, 0xB3, 0xFF, 0xBC, 0xC8, 0xC4, 0xFF, + 0xCB, 0xD7, 0xD3, 0xFF, 0xD1, 0xDD, 0xD9, 0xFF, 0xC5, 0xD1, 0xCD, 0xFF, + 0xB7, 0xC3, 0xBF, 0xFF, 0xAE, 0xBA, 0xB6, 0xFF, 0xAF, 0xBB, 0xB7, 0xFF, + 0xB6, 0xC2, 0xBE, 0xFF, 0xC0, 0xCC, 0xC8, 0xFF, 0xC1, 0xCE, 0xC9, 0xFF, + 0xB9, 0xC5, 0xC1, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, + 0x98, 0xA2, 0x9E, 0xFF, 0x8C, 0x96, 0x93, 0xFF, 0x8B, 0x95, 0x92, 0xFF, + 0x91, 0x9B, 0x97, 0xFF, 0xA2, 0xAC, 0xA9, 0xFF, 0xB3, 0xBC, 0xB9, 0xFF, + 0xA2, 0xAA, 0xA2, 0xFF, 0xA3, 0xAB, 0xA4, 0xFF, 0xA3, 0xAB, 0xA4, 0xFF, + 0xA3, 0xAB, 0xA4, 0xFF, 0x96, 0x9E, 0x99, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, + 0x9E, 0xA6, 0xA1, 0xFF, 0xA2, 0xA9, 0xA4, 0xFF, 0xA9, 0xAE, 0xAA, 0xFF, + 0xAE, 0xB3, 0xAF, 0xFF, 0xAF, 0xB4, 0xB0, 0xFF, 0xAE, 0xB3, 0xAF, 0xFF, + 0xB6, 0xBB, 0xB7, 0xFF, 0xBC, 0xC1, 0xBD, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, + 0x97, 0x9C, 0x98, 0xFF, 0x8B, 0x90, 0x8C, 0xFF, 0x90, 0x95, 0x91, 0xFF, + 0x84, 0x89, 0x83, 0xFF, 0xAD, 0xB2, 0xAC, 0xFF, 0xA7, 0xAC, 0xA6, 0xFF, + 0xA7, 0xAC, 0xA6, 0xFF, 0xA7, 0xAC, 0xA6, 0xFF, 0xA1, 0xA7, 0xA0, 0xFF, + 0x99, 0x9E, 0x9A, 0xFF, 0x92, 0x97, 0x93, 0xFF, 0x8A, 0x8F, 0x8B, 0xFF, + 0x90, 0x95, 0x91, 0xFF, 0x9F, 0xA4, 0xA0, 0xFF, 0x97, 0x9C, 0x98, 0xFF, + 0x9A, 0x9F, 0x9B, 0xFF, 0xA6, 0xAB, 0xA7, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, 0xD1, 0xD6, 0xD4, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xC9, 0xCD, 0xCC, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x9D, 0xA4, 0xA2, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xA6, 0xAE, 0xAB, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xCF, 0xD6, 0xD4, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, 0xA1, 0xAB, 0xA8, 0xFF, + 0xB3, 0xBC, 0xB9, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, 0xC5, 0xD1, 0xCD, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xBE, 0xCA, 0xC6, 0xFF, 0xC6, 0xD2, 0xCE, 0xFF, + 0xD3, 0xDF, 0xDB, 0xFF, 0xD4, 0xE0, 0xDC, 0xFF, 0xC8, 0xD4, 0xD0, 0xFF, + 0xAF, 0xBB, 0xB7, 0xFF, 0xA4, 0xB0, 0xAC, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, + 0xBC, 0xC6, 0xC2, 0xFF, 0xAD, 0xB7, 0xB3, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xCA, 0xD4, 0xD0, 0xFF, 0xCA, 0xD4, 0xD0, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xAC, 0xB5, 0xB2, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0x98, 0xA0, 0x9D, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0x9A, 0xA2, 0x9A, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, + 0x9C, 0xA4, 0x9D, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, 0x9E, 0xA6, 0xA1, 0xFF, + 0x9A, 0xA1, 0x9C, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, + 0xA4, 0xAA, 0xA6, 0xFF, 0xAD, 0xB2, 0xAC, 0xFF, 0xB6, 0xBC, 0xB5, 0xFF, + 0xAB, 0xB1, 0xAD, 0xFF, 0x9F, 0xA4, 0xA0, 0xFF, 0x8A, 0x8F, 0x89, 0xFF, + 0x71, 0x77, 0x70, 0xFF, 0x7E, 0x83, 0x7F, 0xFF, 0x8B, 0x90, 0x8C, 0xFF, + 0x98, 0x9D, 0x97, 0xFF, 0xB0, 0xB6, 0xAF, 0xFF, 0xA2, 0xA8, 0xA1, 0xFF, + 0x99, 0x9E, 0x98, 0xFF, 0x8D, 0x93, 0x8C, 0xFF, 0x82, 0x87, 0x81, 0xFF, + 0x86, 0x8B, 0x87, 0xFF, 0x8C, 0x91, 0x8D, 0xFF, 0x91, 0x96, 0x92, 0xFF, + 0x92, 0x97, 0x93, 0xFF, 0x92, 0x97, 0x93, 0xFF, 0x94, 0x99, 0x95, 0xFF, + 0x9F, 0xA4, 0xA0, 0xFF, 0xA8, 0xAD, 0xA9, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, 0xD2, 0xD7, 0xD5, 0xFF, + 0xC7, 0xCC, 0xCB, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0x9B, 0xA2, 0xA0, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, + 0xCE, 0xD5, 0xD3, 0xFF, 0xD3, 0xDA, 0xD7, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xB3, 0xBC, 0xB9, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, + 0xAF, 0xBB, 0xB7, 0xFF, 0xAF, 0xBB, 0xB7, 0xFF, 0xB7, 0xC3, 0xBF, 0xFF, + 0xB7, 0xC3, 0xBF, 0xFF, 0xBD, 0xC9, 0xC5, 0xFF, 0xCC, 0xD8, 0xD4, 0xFF, + 0xD2, 0xDE, 0xDA, 0xFF, 0xD9, 0xE5, 0xE1, 0xFF, 0xD5, 0xE1, 0xDD, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xAA, 0xB6, 0xB2, 0xFF, 0x9B, 0xA7, 0xA3, 0xFF, + 0xB7, 0xC1, 0xBE, 0xFF, 0xC2, 0xCC, 0xC8, 0xFF, 0xC8, 0xD1, 0xCE, 0xFF, + 0xCA, 0xD4, 0xD0, 0xFF, 0xCA, 0xD4, 0xD0, 0xFF, 0xB9, 0xC2, 0xBF, 0xFF, + 0xB9, 0xC2, 0xBF, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, + 0x97, 0x9E, 0x9C, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0x9A, 0xA2, 0x9A, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, + 0x9C, 0xA4, 0x9D, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, 0x9E, 0xA6, 0xA1, 0xFF, + 0x9A, 0xA1, 0x9C, 0xFF, 0x96, 0x9E, 0x99, 0xFF, 0xB6, 0xBB, 0xB7, 0xFF, + 0xA9, 0xAE, 0xAA, 0xFF, 0xAB, 0xB1, 0xAB, 0xFF, 0xBB, 0xC0, 0xBA, 0xFF, + 0xA7, 0xAC, 0xA8, 0xFF, 0x97, 0x9C, 0x98, 0xFF, 0x8A, 0x8F, 0x89, 0xFF, + 0x8C, 0x92, 0x8B, 0xFF, 0xA9, 0xAE, 0xAA, 0xFF, 0xA2, 0xA7, 0xA3, 0xFF, + 0xB0, 0xB6, 0xAF, 0xFF, 0xB2, 0xB8, 0xB2, 0xFF, 0xA3, 0xA9, 0xA2, 0xFF, + 0x9C, 0xA2, 0x9B, 0xFF, 0x94, 0x9A, 0x93, 0xFF, 0x93, 0x99, 0x92, 0xFF, + 0xA0, 0xA5, 0xA1, 0xFF, 0xA1, 0xA6, 0xA2, 0xFF, 0xA1, 0xA6, 0xA2, 0xFF, + 0x9E, 0xA3, 0x9F, 0xFF, 0x7D, 0x82, 0x7E, 0xFF, 0x86, 0x8B, 0x87, 0xFF, + 0x8C, 0x91, 0x8D, 0xFF, 0x8E, 0x94, 0x90, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xC4, 0xC9, 0xC7, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xA6, 0xAA, 0xA9, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0x9D, 0xA4, 0xA2, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xD7, 0xDF, 0xDC, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xB6, 0xC0, 0xBD, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, + 0xA3, 0xAF, 0xAB, 0xFF, 0xA4, 0xB0, 0xAC, 0xFF, 0x9C, 0xA8, 0xA4, 0xFF, + 0x9C, 0xA8, 0xA4, 0xFF, 0xB5, 0xC1, 0xBD, 0xFF, 0xC6, 0xD2, 0xCE, 0xFF, + 0xBD, 0xC9, 0xC5, 0xFF, 0xBF, 0xCB, 0xC7, 0xFF, 0xD9, 0xE5, 0xE1, 0xFF, + 0xD5, 0xE1, 0xDD, 0xFF, 0xB7, 0xC3, 0xBF, 0xFF, 0x8D, 0x99, 0x95, 0xFF, + 0x94, 0x9E, 0x9B, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, 0xB6, 0xC0, 0xBD, 0xFF, + 0xAE, 0xB8, 0xB4, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, + 0xBD, 0xC7, 0xC4, 0xFF, 0xC1, 0xCA, 0xC7, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0x95, 0x9C, 0x9A, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xA5, 0xAD, 0xA6, 0xFF, 0xA2, 0xAA, 0xA2, 0xFF, 0xA3, 0xAB, 0xA4, 0xFF, + 0xA3, 0xAB, 0xA4, 0xFF, 0x96, 0x9E, 0x99, 0xFF, 0x9A, 0xA1, 0x9C, 0xFF, + 0x9E, 0xA6, 0xA1, 0xFF, 0xA2, 0xA9, 0xA4, 0xFF, 0xB5, 0xBA, 0xB6, 0xFF, + 0x98, 0x9D, 0x99, 0xFF, 0x8D, 0x93, 0x8C, 0xFF, 0x9A, 0xA0, 0x99, 0xFF, + 0x92, 0x97, 0x93, 0xFF, 0x90, 0x95, 0x91, 0xFF, 0x9C, 0xA2, 0x9B, 0xFF, + 0xB1, 0xB7, 0xB0, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, 0x9A, 0x9F, 0x9B, 0xFF, + 0xA3, 0xA9, 0xA2, 0xFF, 0x9C, 0xA2, 0x9B, 0xFF, 0x8C, 0x92, 0x8B, 0xFF, + 0x94, 0x9A, 0x93, 0xFF, 0xA0, 0xA5, 0x9F, 0xFF, 0xA7, 0xAC, 0xA6, 0xFF, + 0x9E, 0xA3, 0x9F, 0xFF, 0x9A, 0x9F, 0x9B, 0xFF, 0x95, 0x9B, 0x97, 0xFF, + 0x92, 0x97, 0x93, 0xFF, 0x8D, 0x92, 0x8E, 0xFF, 0x99, 0x9E, 0x9A, 0xFF, + 0x99, 0x9E, 0x9A, 0xFF, 0x8D, 0x92, 0x8E, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xC5, 0xCA, 0xC8, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xC5, 0xCA, 0xC8, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, + 0x9B, 0xA2, 0xA0, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, + 0xA8, 0xAF, 0xAC, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xD1, 0xD9, 0xD6, 0xFF, 0xCD, 0xD4, 0xD2, 0xFF, + 0xC1, 0xC8, 0xC6, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, 0xA7, 0xB1, 0xAD, 0xFF, + 0xAE, 0xBA, 0xB6, 0xFF, 0xAF, 0xBB, 0xB7, 0xFF, 0x9B, 0xA7, 0xA3, 0xFF, + 0x9C, 0xA8, 0xA4, 0xFF, 0xC1, 0xCE, 0xC9, 0xFF, 0xCC, 0xD8, 0xD4, 0xFF, + 0xB1, 0xBD, 0xB9, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, 0xC8, 0xD4, 0xD0, 0xFF, + 0xDD, 0xE9, 0xE5, 0xFF, 0xC8, 0xD4, 0xD0, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, + 0x8A, 0x94, 0x90, 0xFF, 0x98, 0xA2, 0x9E, 0xFF, 0xA6, 0xB0, 0xAC, 0xFF, + 0xA9, 0xB3, 0xB0, 0xFF, 0xA7, 0xB1, 0xAD, 0xFF, 0xBC, 0xC6, 0xC2, 0xFF, + 0xC4, 0xCE, 0xCB, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0x95, 0x9C, 0x9A, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xAA, 0xB2, 0xA9, 0xFF, 0xA5, 0xAE, 0xA4, 0xFF, 0x98, 0xA1, 0x97, 0xFF, + 0x91, 0x99, 0x92, 0xFF, 0x8E, 0x96, 0x8F, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, + 0xAA, 0xB2, 0xAB, 0xFF, 0xB6, 0xBE, 0xB6, 0xFF, 0xAF, 0xB6, 0xB1, 0xFF, + 0x90, 0x98, 0x93, 0xFF, 0x85, 0x8D, 0x85, 0xFF, 0x90, 0x98, 0x91, 0xFF, + 0x90, 0x98, 0x93, 0xFF, 0x8A, 0x92, 0x8D, 0xFF, 0x93, 0x9B, 0x93, 0xFF, + 0xA4, 0xAC, 0xA5, 0xFF, 0xA3, 0xA9, 0xA2, 0xFF, 0x8A, 0x8F, 0x89, 0xFF, + 0x94, 0x9A, 0x93, 0xFF, 0x91, 0x97, 0x8E, 0xFF, 0x97, 0x9C, 0x96, 0xFF, + 0xA6, 0xAB, 0xA5, 0xFF, 0x9F, 0xA4, 0x9E, 0xFF, 0xB2, 0xB8, 0xB2, 0xFF, + 0x90, 0x95, 0x8F, 0xFF, 0x8E, 0x94, 0x8E, 0xFF, 0x90, 0x95, 0x91, 0xFF, + 0x93, 0x98, 0x94, 0xFF, 0x9F, 0xA4, 0xA0, 0xFF, 0xA4, 0xAA, 0xA6, 0xFF, + 0xA7, 0xAC, 0xA8, 0xFF, 0xAE, 0xB3, 0xAF, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xCD, 0xD2, 0xD0, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0x9C, 0xA1, 0xA0, 0xFF, 0x93, 0x9A, 0x97, 0xFF, + 0xA2, 0xA9, 0xA7, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0x9D, 0xA4, 0xA2, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xA8, 0xAF, 0xAC, 0xFF, 0x9F, 0xA7, 0xA4, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xCE, 0xD5, 0xD3, 0xFF, 0xD1, 0xDB, 0xD7, 0xFF, + 0xCA, 0xD4, 0xD0, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, 0x97, 0xA0, 0x9D, 0xFF, + 0xB7, 0xC3, 0xBF, 0xFF, 0xBD, 0xC9, 0xC5, 0xFF, 0x9D, 0xA9, 0xA5, 0xFF, + 0xA3, 0xAF, 0xAB, 0xFF, 0xC4, 0xD0, 0xCC, 0xFF, 0xCD, 0xD9, 0xD5, 0xFF, + 0xAF, 0xBB, 0xB7, 0xFF, 0xAE, 0xBA, 0xB6, 0xFF, 0xC9, 0xD3, 0xCF, 0xFF, + 0xDE, 0xE7, 0xE4, 0xFF, 0xDA, 0xE4, 0xE1, 0xFF, 0xC2, 0xCC, 0xC8, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, 0xA9, 0xB3, 0xB0, 0xFF, + 0xA9, 0xB3, 0xB0, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, + 0xCD, 0xD4, 0xD2, 0xFF, 0xCF, 0xD6, 0xD4, 0xFF, 0xCC, 0xD1, 0xCF, 0xFF, + 0x98, 0x9C, 0x9B, 0xFF, 0x97, 0x9B, 0x9A, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xA4, 0xAC, 0xA3, 0xFF, 0xA6, 0xAF, 0xA5, 0xFF, 0xA9, 0xB1, 0xA7, 0xFF, + 0xAA, 0xB2, 0xA9, 0xFF, 0xA6, 0xAE, 0xA7, 0xFF, 0xA2, 0xAA, 0xA2, 0xFF, + 0x9B, 0xA3, 0x9B, 0xFF, 0x96, 0x9E, 0x97, 0xFF, 0x98, 0xA0, 0x9B, 0xFF, + 0x87, 0x8F, 0x8A, 0xFF, 0x82, 0x8A, 0x83, 0xFF, 0x8C, 0x94, 0x8C, 0xFF, + 0x94, 0x9B, 0x97, 0xFF, 0x96, 0x9E, 0x99, 0xFF, 0xA1, 0xA9, 0xA1, 0xFF, + 0xAC, 0xB4, 0xAD, 0xFF, 0xB2, 0xB8, 0xB2, 0xFF, 0x9F, 0xA4, 0x9E, 0xFF, + 0x97, 0x9C, 0x94, 0xFF, 0x8C, 0x92, 0x89, 0xFF, 0xA1, 0xA7, 0xA0, 0xFF, + 0xA4, 0xAA, 0xA4, 0xFF, 0x9F, 0xA4, 0x9E, 0xFF, 0xAB, 0xB1, 0xAB, 0xFF, + 0x92, 0x97, 0x91, 0xFF, 0x92, 0x97, 0x91, 0xFF, 0x97, 0x9C, 0x98, 0xFF, + 0x9F, 0xA4, 0xA0, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, 0x97, 0x9C, 0x98, 0xFF, + 0xA2, 0xA7, 0xA3, 0xFF, 0xB0, 0xB5, 0xB1, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xAE, 0xB3, 0xB1, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xBD, 0xC2, 0xC0, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xA8, 0xAD, 0xAB, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xD0, 0xD4, 0xD3, 0xFF, + 0xCC, 0xD1, 0xCF, 0xFF, 0xA1, 0xA6, 0xA4, 0xFF, 0x8D, 0x94, 0x92, 0xFF, + 0x9C, 0xA3, 0xA1, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0xB4, 0xBC, 0xB9, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xAC, 0xB3, 0xB1, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, + 0xA9, 0xB0, 0xAD, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, + 0xC8, 0xD1, 0xCE, 0xFF, 0xCB, 0xD5, 0xD2, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, + 0xB2, 0xBE, 0xBA, 0xFF, 0xB6, 0xC2, 0xBE, 0xFF, 0xA0, 0xAC, 0xA8, 0xFF, + 0xA3, 0xAF, 0xAB, 0xFF, 0xBA, 0xC7, 0xC2, 0xFF, 0xC4, 0xD0, 0xCC, 0xFF, + 0xB1, 0xBD, 0xB9, 0xFF, 0xB0, 0xBC, 0xB8, 0xFF, 0xCF, 0xD8, 0xD5, 0xFF, + 0xD1, 0xDB, 0xD7, 0xFF, 0xCE, 0xD7, 0xD4, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, + 0xA9, 0xB3, 0xB0, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0xC6, 0xCD, 0xCB, 0xFF, + 0xCE, 0xD5, 0xD3, 0xFF, 0xD1, 0xD9, 0xD6, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, + 0x99, 0x9E, 0x9C, 0xFF, 0x8C, 0x91, 0x8F, 0xFF, 0x85, 0x8A, 0x88, 0xFF, + 0x9E, 0xA7, 0x9D, 0xFF, 0xA4, 0xAC, 0xA3, 0xFF, 0xAB, 0xB3, 0xAA, 0xFF, + 0xB1, 0xB9, 0xB0, 0xFF, 0xA9, 0xB1, 0xA9, 0xFF, 0x9F, 0xA7, 0xA0, 0xFF, + 0x94, 0x9C, 0x94, 0xFF, 0x8A, 0x92, 0x8B, 0xFF, 0xA9, 0xB1, 0xA9, 0xFF, + 0xA8, 0xB0, 0xA8, 0xFF, 0xAD, 0xB5, 0xAE, 0xFF, 0xB6, 0xBE, 0xB6, 0xFF, + 0xBD, 0xC5, 0xBD, 0xFF, 0xC1, 0xC9, 0xC2, 0xFF, 0xC1, 0xC9, 0xC2, 0xFF, + 0xBB, 0xC3, 0xBC, 0xFF, 0x9E, 0xA3, 0x9D, 0xFF, 0x9B, 0xA1, 0x9A, 0xFF, + 0x87, 0x8D, 0x87, 0xFF, 0x7D, 0x82, 0x7C, 0xFF, 0x9C, 0xA2, 0x9B, 0xFF, + 0x8D, 0x93, 0x8C, 0xFF, 0x94, 0x9A, 0x93, 0xFF, 0x98, 0x9D, 0x97, 0xFF, + 0x98, 0x9D, 0x97, 0xFF, 0x9B, 0xA1, 0x9A, 0xFF, 0xA6, 0xAB, 0xA5, 0xFF, + 0xA9, 0xAF, 0xA8, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, + 0xB0, 0xB5, 0xB1, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xA6, 0xAE, 0xAB, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, + 0x8D, 0x94, 0x92, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xCB, 0xD0, 0xCE, 0xFF, + 0xD1, 0xD6, 0xD4, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0x9D, 0xA4, 0xA2, 0xFF, + 0xA8, 0xAF, 0xAC, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xB1, 0xB8, 0xB6, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, + 0x97, 0x9E, 0x9C, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xB4, 0xBE, 0xBA, 0xFF, 0xD2, 0xDC, 0xD9, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, + 0xBF, 0xCB, 0xC7, 0xFF, 0xBE, 0xCA, 0xC6, 0xFF, 0xB5, 0xC1, 0xBD, 0xFF, + 0xB3, 0xC0, 0xBB, 0xFF, 0xBF, 0xCB, 0xC7, 0xFF, 0xC7, 0xD3, 0xCF, 0xFF, + 0xC5, 0xD1, 0xCD, 0xFF, 0xC4, 0xD0, 0xCC, 0xFF, 0xC9, 0xD3, 0xCF, 0xFF, + 0xCC, 0xD6, 0xD3, 0xFF, 0xC9, 0xD3, 0xCF, 0xFF, 0xC2, 0xCC, 0xC8, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xAD, 0xB7, 0xB3, 0xFF, + 0xA6, 0xB0, 0xAC, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xC0, 0xC9, 0xC6, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, + 0x9C, 0xA3, 0xA1, 0xFF, 0x8F, 0x96, 0x94, 0xFF, 0x75, 0x7D, 0x7A, 0xFF, + 0x9D, 0xA5, 0x9C, 0xFF, 0x9E, 0xA7, 0x9D, 0xFF, 0x9F, 0xA8, 0x9E, 0xFF, + 0xA1, 0xA9, 0x9F, 0xFF, 0x91, 0x99, 0x92, 0xFF, 0x94, 0x9C, 0x94, 0xFF, + 0x97, 0x9F, 0x98, 0xFF, 0x9A, 0xA2, 0x9A, 0xFF, 0x93, 0x9B, 0x93, 0xFF, + 0x9E, 0xA6, 0x9F, 0xFF, 0xAB, 0xB3, 0xAC, 0xFF, 0xB1, 0xB9, 0xB2, 0xFF, + 0xA4, 0xAC, 0xA5, 0xFF, 0xA3, 0xAB, 0xA4, 0xFF, 0x91, 0x99, 0x92, 0xFF, + 0x79, 0x81, 0x7A, 0xFF, 0x83, 0x88, 0x82, 0xFF, 0x95, 0x9B, 0x94, 0xFF, + 0x82, 0x87, 0x81, 0xFF, 0x7D, 0x82, 0x7C, 0xFF, 0xAB, 0xB1, 0xAB, 0xFF, + 0x97, 0x9C, 0x96, 0xFF, 0xA6, 0xAB, 0xA5, 0xFF, 0xA4, 0xAA, 0xA4, 0xFF, + 0x9F, 0xA4, 0x9E, 0xFF, 0xA7, 0xAC, 0xA6, 0xFF, 0xAD, 0xB2, 0xAC, 0xFF, + 0xAA, 0xB0, 0xA9, 0xFF, 0xB5, 0xBA, 0xB6, 0xFF, 0xBC, 0xC1, 0xBD, 0xFF, + 0xAE, 0xB3, 0xAF, 0xFF, 0x98, 0x9D, 0x99, 0xFF, 0x9C, 0xA3, 0xA1, 0xFF, + 0xAA, 0xB1, 0xAF, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, 0x97, 0x9E, 0x9C, 0xFF, + 0x88, 0x8F, 0x8D, 0xFF, 0xC7, 0xCC, 0xCB, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xCC, 0xD1, 0xCF, 0xFF, 0xCA, 0xCF, 0xCD, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, + 0xC2, 0xCA, 0xC7, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, + 0xB2, 0xB9, 0xB7, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0x9B, 0xA2, 0xA0, 0xFF, + 0x87, 0x8E, 0x8C, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, + 0x96, 0x9F, 0x9C, 0xFF, 0xCA, 0xD4, 0xD0, 0xFF, 0xDC, 0xE5, 0xE2, 0xFF, + 0xCE, 0xDA, 0xD6, 0xFF, 0xCB, 0xD7, 0xD3, 0xFF, 0xCB, 0xD7, 0xD3, 0xFF, + 0xC7, 0xD3, 0xCF, 0xFF, 0xB7, 0xC3, 0xBF, 0xFF, 0xBE, 0xCA, 0xC6, 0xFF, + 0xC7, 0xD3, 0xCF, 0xFF, 0xC4, 0xD0, 0xCC, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, + 0xD2, 0xDC, 0xD9, 0xFF, 0xCF, 0xD8, 0xD5, 0xFF, 0xB6, 0xC0, 0xBD, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, + 0xA9, 0xB3, 0xB0, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0xB9, 0xC2, 0xBF, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0x80, 0x87, 0x85, 0xFF, + 0xA4, 0xAC, 0xA3, 0xFF, 0xA3, 0xAB, 0xA2, 0xFF, 0xA3, 0xAB, 0xA2, 0xFF, + 0x83, 0x8C, 0x82, 0xFF, 0x80, 0x88, 0x7F, 0xFF, 0x78, 0x80, 0x77, 0xFF, + 0xB0, 0xB8, 0xAE, 0xFF, 0x90, 0x99, 0x8F, 0xFF, 0x78, 0x80, 0x79, 0xFF, + 0xB6, 0xBE, 0xB6, 0xFF, 0xAF, 0xB7, 0xAF, 0xFF, 0xB6, 0xBE, 0xB6, 0xFF, + 0x80, 0x88, 0x81, 0xFF, 0x93, 0x9B, 0x93, 0xFF, 0x75, 0x7D, 0x76, 0xFF, + 0x88, 0x90, 0x89, 0xFF, 0x79, 0x7F, 0x79, 0xFF, 0x94, 0x9A, 0x93, 0xFF, + 0x8E, 0x94, 0x8E, 0xFF, 0x98, 0x9D, 0x97, 0xFF, 0xAE, 0xB3, 0xAD, 0xFF, + 0xA0, 0xA5, 0x9F, 0xFF, 0xAF, 0xB5, 0xAE, 0xFF, 0xA8, 0xAE, 0xA7, 0xFF, + 0xA3, 0xA9, 0xA4, 0xFF, 0xB0, 0xB5, 0xB1, 0xFF, 0xB7, 0xBC, 0xB8, 0xFF, + 0xB2, 0xB8, 0xB4, 0xFF, 0xB9, 0xC1, 0xBC, 0xFF, 0xAD, 0xB5, 0xB0, 0xFF, + 0xA8, 0xAF, 0xAA, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, + 0x9A, 0xA1, 0x9E, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0x8C, 0x93, 0x90, 0xFF, 0xC7, 0xCE, 0xCC, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xBE, 0xC3, 0xC1, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xAA, 0xAF, 0xAD, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, + 0xAB, 0xB2, 0xB0, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, + 0x98, 0xA0, 0x9D, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0xBE, 0xC8, 0xC5, 0xFF, 0xE1, 0xEB, 0xE8, 0xFF, + 0xD3, 0xDF, 0xDB, 0xFF, 0xD3, 0xDF, 0xDB, 0xFF, 0xCB, 0xD7, 0xD3, 0xFF, + 0xBE, 0xCA, 0xC6, 0xFF, 0xBE, 0xC8, 0xC5, 0xFF, 0xB6, 0xC0, 0xBD, 0xFF, + 0xBD, 0xC7, 0xC4, 0xFF, 0xCF, 0xD8, 0xD5, 0xFF, 0xC1, 0xCA, 0xC7, 0xFF, + 0xC1, 0xCA, 0xC7, 0xFF, 0xC3, 0xCD, 0xC9, 0xFF, 0xC3, 0xCD, 0xC9, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, 0xAB, 0xB4, 0xB1, 0xFF, + 0xBE, 0xC8, 0xC5, 0xFF, 0xB7, 0xC1, 0xBE, 0xFF, 0x9D, 0xA6, 0xA3, 0xFF, + 0xAE, 0xB8, 0xB4, 0xFF, 0x99, 0xA3, 0xA0, 0xFF, 0x98, 0xA2, 0x9E, 0xFF, + 0x86, 0x8E, 0x85, 0xFF, 0x9A, 0xA2, 0x98, 0xFF, 0x9D, 0xA5, 0x9C, 0xFF, + 0xB1, 0xB9, 0xB0, 0xFF, 0x89, 0x92, 0x88, 0xFF, 0x90, 0x99, 0x8F, 0xFF, + 0xB7, 0xBF, 0xB5, 0xFF, 0x8C, 0x94, 0x8A, 0xFF, 0x7C, 0x84, 0x7D, 0xFF, + 0xAA, 0xB2, 0xAB, 0xFF, 0x9E, 0xA6, 0x9F, 0xFF, 0x96, 0x9E, 0x97, 0xFF, + 0x7F, 0x87, 0x80, 0xFF, 0x8E, 0x96, 0x8F, 0xFF, 0x7E, 0x86, 0x7E, 0xFF, + 0x8D, 0x95, 0x8E, 0xFF, 0x98, 0x9D, 0x97, 0xFF, 0x9A, 0xA0, 0x99, 0xFF, + 0x9E, 0xA3, 0x9D, 0xFF, 0xB2, 0xB8, 0xB2, 0xFF, 0xB1, 0xB7, 0xB0, 0xFF, + 0xA0, 0xA5, 0x9F, 0xFF, 0xA6, 0xAB, 0xA5, 0xFF, 0xAF, 0xB5, 0xAE, 0xFF, + 0xA4, 0xAA, 0xA6, 0xFF, 0xB0, 0xB5, 0xB1, 0xFF, 0xB2, 0xB8, 0xB4, 0xFF, + 0xAB, 0xB1, 0xAD, 0xFF, 0xAD, 0xB5, 0xB0, 0xFF, 0xA8, 0xAF, 0xAA, 0xFF, + 0xB2, 0xBA, 0xB5, 0xFF, 0xB9, 0xC1, 0xBC, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xCA, 0xD2, 0xCF, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xC6, 0xCD, 0xCB, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, + 0xA4, 0xAB, 0xA9, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, 0xA3, 0xAA, 0xA8, 0xFF, + 0x9B, 0xA2, 0xA0, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xB9, 0xC2, 0xBF, 0xFF, + 0xBE, 0xC8, 0xC5, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xD2, 0xDC, 0xD9, 0xFF, + 0xCD, 0xD9, 0xD5, 0xFF, 0xD1, 0xDD, 0xD9, 0xFF, 0xCD, 0xD9, 0xD5, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, + 0xB9, 0xC2, 0xBF, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, + 0xC4, 0xCE, 0xCB, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xC1, 0xCA, 0xC7, 0xFF, + 0xC5, 0xCC, 0xC9, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xBC, 0xC6, 0xC2, 0xFF, 0xBC, 0xC6, 0xC2, 0xFF, + 0xC7, 0xD0, 0xCD, 0xFF, 0xC5, 0xCF, 0xCC, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, + 0xAC, 0xB5, 0xB2, 0xFF, 0xA9, 0xB3, 0xB0, 0xFF, 0xBB, 0xC5, 0xC1, 0xFF, + 0x82, 0x8B, 0x81, 0xFF, 0x8A, 0x93, 0x89, 0xFF, 0x98, 0xA1, 0x97, 0xFF, + 0xC7, 0xCF, 0xC6, 0xFF, 0x8A, 0x93, 0x89, 0xFF, 0xA5, 0xAE, 0xA4, 0xFF, + 0xB6, 0xBE, 0xB4, 0xFF, 0x78, 0x80, 0x77, 0xFF, 0x72, 0x7A, 0x71, 0xFF, + 0x93, 0x9B, 0x91, 0xFF, 0x8F, 0x97, 0x8E, 0xFF, 0x79, 0x81, 0x78, 0xFF, + 0x8A, 0x92, 0x8B, 0xFF, 0x94, 0x9C, 0x94, 0xFF, 0x95, 0x9D, 0x96, 0xFF, + 0x9E, 0xA6, 0x9F, 0xFF, 0xA9, 0xAF, 0xA8, 0xFF, 0xA2, 0xA8, 0xA1, 0xFF, + 0xB2, 0xB8, 0xB2, 0xFF, 0xBE, 0xC4, 0xBD, 0xFF, 0xAA, 0xB0, 0xA9, 0xFF, + 0xAA, 0xB0, 0xA9, 0xFF, 0xA4, 0xAA, 0xA4, 0xFF, 0xAD, 0xB2, 0xAC, 0xFF, + 0xB2, 0xB8, 0xB4, 0xFF, 0xB9, 0xBF, 0xBB, 0xFF, 0xB7, 0xBC, 0xB8, 0xFF, + 0xAB, 0xB1, 0xAD, 0xFF, 0xA8, 0xAF, 0xAA, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, + 0xB9, 0xC1, 0xBC, 0xFF, 0xBB, 0xC3, 0xBE, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, + 0xAC, 0xB5, 0xB2, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, 0xA9, 0xB3, 0xB0, 0xFF, + 0xB4, 0xBE, 0xBA, 0xFF, 0xC3, 0xCD, 0xC9, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xAF, 0xB9, 0xB6, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xAB, 0xB0, 0xAF, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xB4, 0xB8, 0xB7, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xB9, 0xBE, 0xBD, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, 0xC0, 0xC5, 0xC4, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xA4, 0xA9, 0xA8, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xB3, 0xBA, 0xB8, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, + 0x95, 0x9C, 0x9A, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, 0xA6, 0xAE, 0xAB, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0xAB, 0xB2, 0xB0, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, + 0xCA, 0xD4, 0xD0, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xCD, 0xD9, 0xD5, 0xFF, 0xD1, 0xDD, 0xD9, 0xFF, + 0xCD, 0xD9, 0xD5, 0xFF, 0xCA, 0xD4, 0xD0, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, + 0xA8, 0xB2, 0xAF, 0xFF, 0xAC, 0xB5, 0xB2, 0xFF, 0x9B, 0xA5, 0xA2, 0xFF, + 0xA6, 0xB0, 0xAC, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xC8, 0xCF, 0xCD, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xBA, 0xC1, 0xBF, 0xFF, 0xBC, 0xC6, 0xC2, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xCC, 0xD8, 0xD4, 0xFF, 0xB7, 0xC3, 0xBF, 0xFF, + 0xAC, 0xB9, 0xB4, 0xFF, 0xB8, 0xC4, 0xC0, 0xFF, 0xC0, 0xCC, 0xC8, 0xFF, + 0x9D, 0xA5, 0x9C, 0xFF, 0x7E, 0x86, 0x7C, 0xFF, 0x97, 0xA0, 0x96, 0xFF, + 0xBA, 0xC3, 0xB9, 0xFF, 0x81, 0x8A, 0x80, 0xFF, 0xAC, 0xB5, 0xAB, 0xFF, + 0xAB, 0xB3, 0xAA, 0xFF, 0x61, 0x69, 0x5F, 0xFF, 0x5E, 0x67, 0x5D, 0xFF, + 0x7C, 0x85, 0x7B, 0xFF, 0x89, 0x92, 0x88, 0xFF, 0x71, 0x79, 0x70, 0xFF, + 0x9B, 0xA3, 0x9B, 0xFF, 0xA1, 0xA9, 0xA1, 0xFF, 0xB0, 0xB8, 0xB0, 0xFF, + 0xB4, 0xBC, 0xB5, 0xFF, 0xA3, 0xA9, 0xA2, 0xFF, 0xA8, 0xAE, 0xA7, 0xFF, + 0xC2, 0xC7, 0xC1, 0xFF, 0xB5, 0xBA, 0xB4, 0xFF, 0x9B, 0xA1, 0x9A, 0xFF, + 0xBC, 0xC1, 0xBB, 0xFF, 0xAB, 0xB1, 0xAB, 0xFF, 0xA2, 0xA8, 0xA1, 0xFF, + 0xA2, 0xA7, 0xA3, 0xFF, 0xA7, 0xAC, 0xA8, 0xFF, 0xA0, 0xA5, 0xA1, 0xFF, + 0x93, 0x98, 0x94, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, 0xB9, 0xC1, 0xBC, 0xFF, + 0xBB, 0xC3, 0xBE, 0xFF, 0xBA, 0xC2, 0xBD, 0xFF, 0x9D, 0xA6, 0xA3, 0xFF, + 0xAE, 0xB8, 0xB4, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xB2, 0xBB, 0xB8, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xBF, 0xC6, 0xC4, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, + 0x9E, 0xA2, 0xA1, 0xFF, 0xA0, 0xA5, 0xA3, 0xFF, 0xAE, 0xB3, 0xB1, 0xFF, + 0xA4, 0xA9, 0xA8, 0xFF, 0xB2, 0xB7, 0xB6, 0xFF, 0xBB, 0xBF, 0xBE, 0xFF, + 0xB8, 0xBD, 0xBB, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xB1, 0xB6, 0xB4, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, 0xBF, 0xC4, 0xC2, 0xFF, + 0xB7, 0xBC, 0xBA, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xA6, 0xAA, 0xA9, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0x9E, 0xA5, 0xA3, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xA1, 0xA8, 0xA5, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xC4, 0xCE, 0xCB, 0xFF, + 0xD3, 0xDD, 0xDA, 0xFF, 0xC1, 0xCA, 0xC7, 0xFF, 0xAF, 0xB9, 0xB6, 0xFF, + 0xBD, 0xC9, 0xC5, 0xFF, 0xCA, 0xD6, 0xD2, 0xFF, 0xD3, 0xDF, 0xDB, 0xFF, + 0xD3, 0xDF, 0xDB, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, 0xAB, 0xB4, 0xB1, 0xFF, + 0x97, 0xA0, 0x9D, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, 0x88, 0x91, 0x8E, 0xFF, + 0x8D, 0x97, 0x94, 0xFF, 0x97, 0xA0, 0x9D, 0xFF, 0x9E, 0xA5, 0xA3, 0xFF, + 0xB6, 0xBD, 0xBA, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB7, 0xC1, 0xBE, 0xFF, 0xC5, 0xCF, 0xCC, 0xFF, + 0xB9, 0xC5, 0xC1, 0xFF, 0xC8, 0xD4, 0xD0, 0xFF, 0xB9, 0xC5, 0xC1, 0xFF, + 0xB3, 0xC0, 0xBB, 0xFF, 0xBF, 0xCB, 0xC7, 0xFF, 0xA8, 0xB4, 0xB0, 0xFF, + 0x9C, 0xA4, 0x9B, 0xFF, 0x7E, 0x86, 0x7C, 0xFF, 0xBB, 0xC4, 0xBA, 0xFF, + 0xAF, 0xB7, 0xAD, 0xFF, 0x86, 0x8E, 0x85, 0xFF, 0xA2, 0xAA, 0xA0, 0xFF, + 0x7C, 0x85, 0x7B, 0xFF, 0x51, 0x5A, 0x50, 0xFF, 0x53, 0x5B, 0x51, 0xFF, + 0x83, 0x8C, 0x82, 0xFF, 0x8F, 0x97, 0x8E, 0xFF, 0x9C, 0xA4, 0x9B, 0xFF, + 0xC1, 0xC9, 0xC2, 0xFF, 0xBE, 0xC6, 0xBE, 0xFF, 0xA9, 0xB1, 0xA9, 0xFF, + 0xB7, 0xBF, 0xB7, 0xFF, 0xA7, 0xAC, 0xA6, 0xFF, 0x9E, 0xA3, 0x9D, 0xFF, + 0xB7, 0xBD, 0xB6, 0xFF, 0xA8, 0xAE, 0xA7, 0xFF, 0x91, 0x96, 0x92, 0xFF, + 0xA7, 0xAC, 0xA8, 0xFF, 0x9F, 0xA4, 0xA0, 0xFF, 0x93, 0x98, 0x94, 0xFF, + 0x9A, 0x9F, 0x9B, 0xFF, 0x98, 0x9D, 0x99, 0xFF, 0x98, 0x9D, 0x99, 0xFF, + 0x9B, 0xA0, 0x9C, 0xFF, 0xB2, 0xBA, 0xB5, 0xFF, 0xCA, 0xD2, 0xCD, 0xFF, + 0xC3, 0xCB, 0xC6, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, 0x8C, 0x96, 0x93, 0xFF, + 0xAB, 0xB4, 0xB1, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, 0xAF, 0xB9, 0xB6, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, 0xC1, 0xCA, 0xC7, 0xFF, + 0xC0, 0xC9, 0xC6, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xA3, 0xA8, 0xA7, 0xFF, 0xA9, 0xAE, 0xAC, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, + 0x9E, 0xA2, 0xA1, 0xFF, 0xB0, 0xB5, 0xB3, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, + 0xBB, 0xBF, 0xBE, 0xFF, 0xBD, 0xC2, 0xC0, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xC9, 0xD1, 0xCE, 0xFF, 0xC5, 0xCC, 0xC9, 0xFF, 0xB4, 0xBC, 0xB9, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xBE, 0xC8, 0xC5, 0xFF, + 0xC9, 0xD3, 0xCF, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, 0xB9, 0xC2, 0xBF, 0xFF, + 0xAE, 0xBA, 0xB6, 0xFF, 0xC7, 0xD3, 0xCF, 0xFF, 0xD9, 0xE5, 0xE1, 0xFF, + 0xD8, 0xE4, 0xE0, 0xFF, 0xD3, 0xDD, 0xDA, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, + 0xAC, 0xB5, 0xB2, 0xFF, 0xA5, 0xAE, 0xAB, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, + 0xA3, 0xAA, 0xA8, 0xFF, 0xA1, 0xA8, 0xA5, 0xFF, 0xA8, 0xAF, 0xAC, 0xFF, + 0xAD, 0xB1, 0xB0, 0xFF, 0xA2, 0xA7, 0xA5, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, + 0xBD, 0xC4, 0xC1, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, 0xCC, 0xD6, 0xD3, 0xFF, + 0xB5, 0xC1, 0xBD, 0xFF, 0xAE, 0xBA, 0xB6, 0xFF, 0xB1, 0xBD, 0xB9, 0xFF, + 0xB1, 0xBD, 0xB9, 0xFF, 0xBA, 0xC7, 0xC2, 0xFF, 0xA0, 0xAC, 0xA8, 0xFF, + 0x91, 0x9A, 0x90, 0xFF, 0x82, 0x8B, 0x81, 0xFF, 0xB9, 0xC1, 0xB8, 0xFF, + 0x95, 0x9D, 0x94, 0xFF, 0x89, 0x92, 0x88, 0xFF, 0x98, 0xA1, 0x97, 0xFF, + 0x82, 0x8B, 0x81, 0xFF, 0x73, 0x7C, 0x72, 0xFF, 0x8E, 0x96, 0x8D, 0xFF, + 0xA5, 0xAE, 0xA4, 0xFF, 0xAD, 0xB6, 0xAC, 0xFF, 0xAF, 0xB7, 0xAD, 0xFF, + 0xB9, 0xC1, 0xBA, 0xFF, 0xB7, 0xBF, 0xB7, 0xFF, 0xAD, 0xB5, 0xAE, 0xFF, + 0xB7, 0xBF, 0xB7, 0xFF, 0x95, 0x9B, 0x94, 0xFF, 0xA1, 0xA7, 0xA0, 0xFF, + 0xBB, 0xC0, 0xBA, 0xFF, 0xB2, 0xB8, 0xB2, 0xFF, 0x92, 0x97, 0x93, 0xFF, + 0x8D, 0x92, 0x8E, 0xFF, 0x90, 0x95, 0x91, 0xFF, 0x9C, 0xA2, 0x9D, 0xFF, + 0xA4, 0xAA, 0xA6, 0xFF, 0xA6, 0xAB, 0xA7, 0xFF, 0xA2, 0xA7, 0xA3, 0xFF, + 0x9B, 0xA0, 0x9C, 0xFF, 0xBD, 0xC4, 0xBF, 0xFF, 0xC6, 0xCD, 0xC9, 0xFF, + 0xB2, 0xBA, 0xB5, 0xFF, 0x8D, 0x94, 0x90, 0xFF, 0xA5, 0xAE, 0xAB, 0xFF, + 0xB0, 0xBA, 0xB7, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, 0xA9, 0xB3, 0xB0, 0xFF, + 0xA1, 0xAB, 0xA8, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, 0xC2, 0xCC, 0xC8, 0xFF, + 0xBD, 0xC7, 0xC4, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xC8, 0xCF, 0xCD, 0xFF, 0xB7, 0xBE, 0xBB, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, + 0x90, 0x94, 0x93, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, 0x94, 0x99, 0x97, 0xFF, + 0x94, 0x99, 0x97, 0xFF, 0xA7, 0xAC, 0xAA, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xBC, 0xC1, 0xBF, 0xFF, + 0xBF, 0xC4, 0xC2, 0xFF, 0xC2, 0xC6, 0xC5, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, + 0xC6, 0xCB, 0xC9, 0xFF, 0xC4, 0xC9, 0xC7, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xC0, 0xC7, 0xC5, 0xFF, 0xC3, 0xCB, 0xC8, 0xFF, 0xC0, 0xC7, 0xC5, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xB2, 0xB9, 0xB7, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, + 0xC3, 0xCD, 0xC9, 0xFF, 0xBE, 0xC8, 0xC5, 0xFF, 0xAE, 0xB8, 0xB4, 0xFF, + 0x9D, 0xA9, 0xA5, 0xFF, 0xB9, 0xC5, 0xC1, 0xFF, 0xCE, 0xDA, 0xD6, 0xFF, + 0xD1, 0xDD, 0xD9, 0xFF, 0xD6, 0xDF, 0xDC, 0xFF, 0xCC, 0xD6, 0xD3, 0xFF, + 0xC8, 0xD1, 0xCE, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, 0xC9, 0xD1, 0xCE, 0xFF, + 0xB9, 0xC0, 0xBE, 0xFF, 0xAD, 0xB5, 0xB2, 0xFF, 0xAF, 0xB6, 0xB3, 0xFF, + 0xB0, 0xB5, 0xB3, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0x96, 0x9D, 0x9B, 0xFF, + 0x9A, 0xA1, 0x9E, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, 0xCE, 0xD7, 0xD4, 0xFF, + 0xC1, 0xCE, 0xC9, 0xFF, 0xAF, 0xBB, 0xB7, 0xFF, 0xA6, 0xB2, 0xAD, 0xFF, + 0xA9, 0xB5, 0xB1, 0xFF, 0xB5, 0xC1, 0xBD, 0xFF, 0xAF, 0xBB, 0xB7, 0xFF, + 0x7F, 0x87, 0x7E, 0xFF, 0x97, 0xA0, 0x96, 0xFF, 0xA5, 0xAE, 0xA4, 0xFF, + 0x7E, 0x86, 0x7C, 0xFF, 0x8E, 0x96, 0x8D, 0xFF, 0x95, 0x9D, 0x94, 0xFF, + 0x90, 0x99, 0x8F, 0xFF, 0xAA, 0xB2, 0xA9, 0xFF, 0xAA, 0xB2, 0xA9, 0xFF, + 0xA2, 0xAA, 0xA0, 0xFF, 0xAA, 0xB2, 0xA9, 0xFF, 0xAD, 0xB6, 0xAC, 0xFF, + 0xAD, 0xB5, 0xAE, 0xFF, 0xAD, 0xB5, 0xAE, 0xFF, 0xB1, 0xB9, 0xB2, 0xFF, + 0xA8, 0xB0, 0xA8, 0xFF, 0x8E, 0x94, 0x8E, 0xFF, 0xAB, 0xB1, 0xAB, 0xFF, + 0xB9, 0xBF, 0xB9, 0xFF, 0xB0, 0xB6, 0xAF, 0xFF, 0x91, 0x96, 0x92, 0xFF, + 0x83, 0x88, 0x84, 0xFF, 0x94, 0x99, 0x95, 0xFF, 0xA6, 0xAB, 0xA7, 0xFF, + 0xA3, 0xA9, 0xA4, 0xFF, 0xAA, 0xB0, 0xAB, 0xFF, 0xA1, 0xA6, 0xA2, 0xFF, + 0x8E, 0x94, 0x90, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, 0xA6, 0xAE, 0xA9, 0xFF, + 0x9D, 0xA5, 0xA0, 0xFF, 0x89, 0x91, 0x8C, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, + 0xB9, 0xC2, 0xBF, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, 0xA8, 0xB2, 0xAF, 0xFF, + 0x93, 0x9D, 0x9A, 0xFF, 0xA4, 0xAD, 0xAA, 0xFF, 0xC0, 0xC9, 0xC6, 0xFF, + 0xAB, 0xB4, 0xB1, 0xFF, 0xBD, 0xC4, 0xC1, 0xFF, 0xC2, 0xCA, 0xC7, 0xFF, + 0xC3, 0xCB, 0xC8, 0xFF, 0xA2, 0xA9, 0xA7, 0xFF, 0x8E, 0x93, 0x92, 0xFF, + 0x87, 0x8C, 0x8B, 0xFF, 0x93, 0x98, 0x96, 0xFF, 0x90, 0x94, 0x93, 0xFF, + 0x91, 0x96, 0x94, 0xFF, 0xA3, 0xA8, 0xA7, 0xFF, 0xB1, 0xB6, 0xB4, 0xFF, + 0xAF, 0xB4, 0xB2, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, 0xB8, 0xBD, 0xBB, 0xFF, + 0xBC, 0xC1, 0xBF, 0xFF, 0xBE, 0xC3, 0xC1, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xB7, 0xBC, 0xBA, 0xFF, 0x9F, 0xA3, 0xA2, 0xFF, + 0xAF, 0xB6, 0xB3, 0xFF, 0xB8, 0xBF, 0xBD, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xB8, 0xBF, 0xBD, 0xFF, 0xB1, 0xB8, 0xB6, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xB9, 0xC0, 0xBE, 0xFF, 0xB4, 0xBE, 0xBA, 0xFF, + 0xBB, 0xC5, 0xC1, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, 0x9F, 0xA9, 0xA5, 0xFF, + 0x9A, 0xA6, 0xA2, 0xFF, 0xB2, 0xBE, 0xBA, 0xFF, 0xC5, 0xD1, 0xCD, 0xFF, + 0xC4, 0xD0, 0xCC, 0xFF, 0xD1, 0xDB, 0xD7, 0xFF, 0xD7, 0xE0, 0xDD, 0xFF, + 0xD2, 0xDC, 0xD9, 0xFF, 0xC7, 0xD0, 0xCD, 0xFF, 0xBB, 0xC3, 0xC0, 0xFF, + 0xB3, 0xBA, 0xB8, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xC3, 0xC8, 0xC6, 0xFF, 0xB9, 0xBE, 0xBD, 0xFF, 0xA5, 0xAC, 0xAA, 0xFF, + 0x94, 0x9B, 0x99, 0xFF, 0x9B, 0xA5, 0xA2, 0xFF, 0xB5, 0xBF, 0xBB, 0xFF, + 0xBD, 0xC9, 0xC5, 0xFF, 0xAE, 0xBA, 0xB6, 0xFF, 0xAB, 0xB7, 0xB3, 0xFF, + 0xAF, 0xBB, 0xB7, 0xFF, 0xAE, 0xBA, 0xB6, 0xFF, 0xBA, 0xC7, 0xC2, 0xFF, + 0x72, 0x7A, 0x71, 0xFF, 0xAC, 0xB5, 0xAB, 0xFF, 0x8A, 0x93, 0x89, 0xFF, + 0x7E, 0x86, 0x7C, 0xFF, 0xA2, 0xAA, 0xA0, 0xFF, 0xA1, 0xA9, 0x9F, 0xFF, + 0x9C, 0xA4, 0x9B, 0xFF, 0x9E, 0xA7, 0x9D, 0xFF, 0xA1, 0xA9, 0x9F, 0xFF, + 0x8D, 0x95, 0x8B, 0xFF, 0xA2, 0xAA, 0xA0, 0xFF, 0xA6, 0xAF, 0xA5, 0xFF, + 0xB1, 0xB9, 0xB2, 0xFF, 0xAB, 0xB3, 0xAC, 0xFF, 0xB1, 0xB9, 0xB2, 0xFF, + 0x93, 0x9B, 0x93, 0xFF, 0x94, 0x9A, 0x93, 0xFF, 0xB8, 0xBE, 0xB7, 0xFF, + 0xB4, 0xB9, 0xB3, 0xFF, 0xA3, 0xA9, 0xA2, 0xFF, 0x8E, 0x94, 0x90, 0xFF, + 0x92, 0x97, 0x93, 0xFF, 0xAB, 0xB1, 0xAD, 0xFF, 0xA4, 0xAA, 0xA6, 0xFF, + 0xB5, 0xBA, 0xB6, 0xFF, 0xC0, 0xC6, 0xC2, 0xFF, 0xB4, 0xB9, 0xB5, 0xFF, + 0x97, 0x9C, 0x98, 0xFF, 0x8D, 0x94, 0x90, 0xFF, 0x9F, 0xA7, 0xA2, 0xFF, + 0xB1, 0xB8, 0xB4, 0xFF, 0xB8, 0xBF, 0xBB, 0xFF, 0xB9, 0xC2, 0xBF, 0xFF, + 0xB7, 0xC1, 0xBE, 0xFF, 0xB3, 0xBC, 0xB9, 0xFF, 0xB2, 0xBB, 0xB8, 0xFF, + 0x93, 0x9D, 0x9A, 0xFF, 0x9F, 0xA9, 0xA5, 0xFF, 0xBA, 0xC3, 0xC0, 0xFF, + 0x93, 0x9D, 0x9A, 0xFF, 0xA4, 0xAB, 0xA9, 0xFF, 0xBA, 0xC1, 0xBF, 0xFF, + 0xCA, 0xD2, 0xCF, 0xFF, 0xB0, 0xB7, 0xB4, 0xFF, 0x9A, 0x9F, 0x9D, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0x9E, 0xA2, 0xA1, 0xFF, 0x98, 0x9C, 0x9B, 0xFF, + 0x95, 0x9A, 0x99, 0xFF, 0xA8, 0xAD, 0xAB, 0xFF, 0xB6, 0xBB, 0xB9, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xAD, 0xB1, 0xB0, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB2, 0xB7, 0xB6, 0xFF, 0xB5, 0xBA, 0xB8, 0xFF, 0xAB, 0xB0, 0xAF, 0xFF, + 0xC2, 0xC6, 0xC5, 0xFF, 0xC3, 0xC8, 0xC6, 0xFF, 0xAF, 0xB4, 0xB2, 0xFF, + 0xB7, 0xBE, 0xBB, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xC1, 0xC8, 0xC6, 0xFF, + 0xBB, 0xC3, 0xC0, 0xFF, 0xB6, 0xBD, 0xBA, 0xFF, 0xAA, 0xB1, 0xAF, 0xFF, + 0xAD, 0xB5, 0xB2, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, 0xB0, 0xBA, 0xB7, 0xFF, + 0xB5, 0xBF, 0xBB, 0xFF, 0xA9, 0xB3, 0xB0, 0xFF, 0x94, 0x9E, 0x9B, 0xFF, + 0xA6, 0xB2, 0xAD, 0xFF, 0xB8, 0xC4, 0xC0, 0xFF, 0xC0, 0xCC, 0xC8, 0xFF, + 0xB9, 0xC5, 0xC1, 0xFF, 0xC9, 0xD3, 0xCF, 0xFF, 0xD7, 0xE0, 0xDD, 0xFF, + 0xD2, 0xDC, 0xD9, 0xFF, 0xBD, 0xC7, 0xC4, 0xFF, 0xBE, 0xC5, 0xC2, 0xFF, + 0xB0, 0xB7, 0xB4, 0xFF, 0xA9, 0xB0, 0xAD, 0xFF, 0xAC, 0xB3, 0xB1, 0xFF, + 0xD0, 0xD4, 0xD3, 0xFF, 0xD1, 0xD6, 0xD4, 0xFF, 0xBF, 0xC6, 0xC4, 0xFF, + 0xA2, 0xA9, 0xA7, 0xFF, 0x90, 0x99, 0x96, 0xFF, 0x83, 0x8D, 0x89, 0xFF, + 0xA4, 0xB0, 0xAC, 0xFF, 0xAC, 0xB9, 0xB4, 0xFF, 0xBC, 0xC8, 0xC4, 0xFF, + 0xB7, 0xC3, 0xBF, 0xFF, 0xA2, 0xAE, 0xAA, 0xFF, 0xB6, 0xC2, 0xBE, 0xFF +}; diff --git a/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.cpp new file mode 100644 index 00000000..fa2c6c89 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.cpp @@ -0,0 +1,84 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#include "fatal_gui.h" + +FatalGui::FatalGui(const std::string message, const std::string info) +{ + this->message = message; + this->info = info; +} + +void FatalGui::openWithResultCode(std::string tag, Result rc) +{ + char rcStr[32]; + std::string info = tag; + info.append(rcStr, snprintf(rcStr, sizeof(rcStr), "\n\n[0x%x] %04d-%04d", rc, R_MODULE(rc), R_DESCRIPTION(rc))); + + tsl::changeTo( + "Could not connect to hoc-clk sysmodule.\n\n" + "\n" + "Please make sure everything is\n\n" + "correctly installed and enabled.", + info + ); +} + +tsl::elm::Element* FatalGui::baseUI() +{ + tsl::elm::CustomDrawer* drawer = new tsl::elm::CustomDrawer([this](tsl::gfx::Renderer* renderer, u16 x, u16 y, u16 w, u16 h) { + renderer->drawString("\uE150", false, 40, 210, 40, TEXT_COLOR); + renderer->drawString("Fatal error", false, 100, 210, 30, TEXT_COLOR); + + std::uint32_t txtY = 255; + if(!this->message.empty()) + { + txtY += renderer->drawString(this->message.c_str(), false, 40, txtY, 23, TEXT_COLOR).second; + txtY += 55; + } + + if(!this->info.empty()) + { + renderer->drawString(this->info.c_str(), false, 40, txtY, 18, DESC_COLOR); + } + }); + + return drawer; +} + +bool FatalGui::handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState joyStickPosLeft, HidAnalogStickState joyStickPosRight) +{ + if((keysDown & HidNpadButton_A) == HidNpadButton_A || (keysDown & HidNpadButton_B) == HidNpadButton_B) + { + while(tsl::Overlay::get()->getCurrentGui() != nullptr) { + tsl::goBack(); + } + return true; + } + + return false; +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.h b/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.h new file mode 100644 index 00000000..61616e58 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/fatal_gui.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include + +#include "base_gui.h" + +class FatalGui : public BaseGui +{ + protected: + std::string message; + std::string info; + + public: + FatalGui(const std::string message, const std::string info); + ~FatalGui() {} + tsl::elm::Element* baseUI() override; + bool handleInput(u64 keysDown, u64 keysHeld, const HidTouchState &touchPos, HidAnalogStickState joyStickPosLeft, HidAnalogStickState joyStickPosRight); + static void openWithResultCode(std::string tag, Result rc); +}; diff --git a/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.cpp new file mode 100644 index 00000000..311ce921 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.cpp @@ -0,0 +1,219 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#include "freq_choice_gui.h" + +#include "../format.h" +#include "fatal_gui.h" + +FreqChoiceGui::FreqChoiceGui(std::uint32_t selectedHz, + std::uint32_t* hzList, + std::uint32_t hzCount, + SysClkModule module, + FreqChoiceListener listener, + bool checkMax, + std::map labels) +{ + this->selectedHz = selectedHz; + this->hzList = hzList; + this->hzCount = hzCount; + this->module = module; + this->listener = listener; + this->checkMax = checkMax; + this->labels = labels; + this->configList = new SysClkConfigValueList {}; +} + +FreqChoiceGui::~FreqChoiceGui() +{ + delete this->configList; +} + +tsl::elm::ListItem* FreqChoiceGui::createFreqListItem(std::uint32_t hz, bool selected, int safety) +{ + std::string text = formatListFreqHz(hz); + + std::string rightText = ""; + auto it = labels.find(hz); + if (it != labels.end()) + rightText = it->second; + + if (selected) + const_cast(rightText) = "\uE14B"; + + tsl::elm::ListItem* listItem = + new tsl::elm::ListItem(text, rightText, false); + + switch (safety) + { + case 0: + listItem->setTextColor(tsl::Color(255, 255, 255, 255)); + listItem->setValueColor(tsl::Color(255, 255, 255, 255)); + break; + case 1: + listItem->setTextColor(tsl::Color(255, 165, 0, 255)); + listItem->setValueColor(tsl::Color(255, 165, 0, 255)); + break; + case 2: + listItem->setTextColor(tsl::Color(255, 0, 0, 255)); + listItem->setValueColor(tsl::Color(255, 0, 0, 255)); + break; + } + + // Make annotation grey + if (!rightText.empty() && !selected) + listItem->setValueColor(tsl::Color(180, 180, 180, 255)); + else if(selected) + listItem->setValueColor(tsl::infoTextColor); + + listItem->setClickListener([this, hz](u64 keys) + { + if ((keys & HidNpadButton_A) == HidNpadButton_A && this->listener) { + if (this->listener(hz)) { + tsl::goBack(); + } + return true; + } + return false; + }); + + return listItem; +} + +void FreqChoiceGui::listUI() +{ + sysclkIpcGetConfigValues(this->configList); + + // Header based on CPU/GPU/MEM module + std::string moduleName = sysclkFormatModule(this->module, false); + this->listElement->addItem(new tsl::elm::CategoryHeader(moduleName)); + + // Default option + this->listElement->addItem( + this->createFreqListItem(0, this->selectedHz == 0, 0)); + + for (std::uint32_t i = 0; i < this->hzCount; i++) + { + std::uint32_t hz = this->hzList[i]; + uint32_t mhz = hz / 1000000; + + // if (checkMax && IsMariko()) { + // if (moduleName == "cpu" && + // this->configList->values[HocClkConfigValue_MarikoMaxCpuClock] < mhz) + // continue; + + // // if (moduleName == "gpu" && + // // this->configList->values[HocClkConfigValue_MarikoMaxGpuClock] < mhz) + // // continue; + + // // if (moduleName == "mem" && + // // this->configList->values[HocClkConfigValue_MarikoMaxMemClock] < mhz) + // // continue; + + if (checkMax && IsErista()) + if (moduleName == "cpu" && this->configList->values[HocClkConfigValue_EristaMaxCpuClock] < mhz) + continue; + + // // if (moduleName == "gpu" && + // // this->configList->values[HocClkConfigValue_EristaMaxGpuClock] < mhz) + // // continue; + + // // if (moduleName == "mem" && + // // this->configList->values[HocClkConfigValue_EristaMaxMemClock] < mhz) + // // continue; + // } + + if (moduleName == "mem" && mhz <= 600) + continue; + + uint32_t unsafe_cpu; + uint32_t unsafe_gpu; + uint32_t danger_cpu; + uint32_t danger_gpu; + + if (IsMariko()) + { + unsafe_cpu = this->configList->values[KipConfigValue_marikoCpuUVHigh] ? 2398 : 1964; + if(this->configList->values[KipConfigValue_marikoGpuUV] == 0) { + unsafe_gpu = 1076; + } else if (this->configList->values[KipConfigValue_marikoGpuUV] == 1) { + unsafe_gpu = 1153; + } else { + unsafe_gpu = 1229; + } + danger_cpu = this->configList->values[KipConfigValue_marikoCpuUVHigh] ? 2500 : 2398; + danger_gpu = 1306; + } + else + { + unsafe_cpu = this->configList->values[KipConfigValue_eristaCpuUV] ? 2092 : 1786; + if(this->configList->values[KipConfigValue_eristaGpuUV] == 0) { + unsafe_gpu = 922; + } else { + unsafe_gpu = 961; + } + danger_cpu = this->configList->values[KipConfigValue_eristaCpuUV] ? 2194 : 1964; + danger_gpu = 999; + } + + int safety = 0; + + if (moduleName == "cpu") { + + if (mhz >= danger_cpu) + safety = 2; + else if (mhz >= unsafe_cpu) + safety = 1; + else + safety = 0; + + } else if (moduleName == "gpu") { + + if (mhz >= danger_gpu) + safety = 2; + else if (mhz >= unsafe_gpu) + safety = 1; + else + safety = 0; + + } else if (moduleName == "mem") { + + safety = 0; + + } + + this->listElement->addItem( + this->createFreqListItem( + hz, + (mhz == this->selectedHz / 1000000), + safety + ) + ); + } + + this->listElement->jumpToItem("", ""); +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h new file mode 100644 index 00000000..1ccaf264 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/freq_choice_gui.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include +#include +#include +#include "base_menu_gui.h" + +using FreqChoiceListener = std::function; + +class FreqChoiceGui : public BaseMenuGui +{ +protected: + SysClkConfigValueList* configList; + std::uint32_t selectedHz; + std::uint32_t* hzList; + std::uint32_t hzCount; + SysClkModule module; + FreqChoiceListener listener; + bool checkMax; + + std::map labels; + + tsl::elm::ListItem* createFreqListItem(std::uint32_t hz, bool selected, int safety); + +public: + FreqChoiceGui(std::uint32_t selectedHz, + std::uint32_t* hzList, + std::uint32_t hzCount, + SysClkModule module, + FreqChoiceListener listener, + bool checkMax = true, + std::map labels = {}); + + ~FreqChoiceGui(); + + void listUI() override; +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp new file mode 100644 index 00000000..737ada09 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.cpp @@ -0,0 +1,418 @@ +/* + * + * Copyright (c) Souldbminer and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 "../format.h" +#include "fatal_gui.h" +#include "global_override_gui.h" +#include "value_choice_gui.h" +#include "labels.h" + +GlobalOverrideGui::GlobalOverrideGui() +{ + for (std::uint16_t m = 0; m < SysClkModule_EnumMax; m++) { + this->listItems[m] = nullptr; + this->listHz[m] = 0; + } +} + +void GlobalOverrideGui::openFreqChoiceGui(SysClkModule module) +{ + std::uint32_t hzList[SYSCLK_FREQ_LIST_MAX]; + std::uint32_t hzCount; + Result rc = + sysclkIpcGetFreqList(module, &hzList[0], SYSCLK_FREQ_LIST_MAX, &hzCount); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc); + return; + } + + std::map labels = {}; + + if (module == SysClkModule_CPU) { + bool isUsingUv = IsMariko() ? configList.values[KipConfigValue_marikoCpuUVHigh] : configList.values[KipConfigValue_eristaCpuUV]; + labels = IsMariko() ? (isUsingUv ? cpu_freq_label_m_uv : cpu_freq_label_m) : (isUsingUv ? cpu_freq_label_e_uv : cpu_freq_label_e); + } else if (module == SysClkModule_GPU) { + labels = IsMariko() ? *(marikoUV[configList.values[KipConfigValue_marikoGpuUV]]) : *(eristaUV[configList.values[KipConfigValue_eristaGpuUV]]); + } + tsl::changeTo( + this->context->overrideFreqs[module], hzList, hzCount, module, + [this, module](std::uint32_t hz) { + Result rc = sysclkIpcSetOverride(module, hz); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetOverride", rc); + return false; + } + + this->lastContextUpdate = armGetSystemTick(); + this->context->overrideFreqs[module] = hz; + + return true; + }, + true, labels + ); +} + +void GlobalOverrideGui::openValueChoiceGui( + tsl::elm::ListItem* listItem, + std::uint32_t currentValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds, + bool enableThresholds, + const std::map& labels, + const std::vector& namedValues, + bool showDefaultValue +) +{ + tsl::changeTo( + currentValue, + range, + categoryName, + listener, + thresholds, + enableThresholds, + labels, + namedValues, + showDefaultValue, + true + ); +} + +void GlobalOverrideGui::addModuleListItemValue( + SysClkModule module, + const std::string& categoryName, + std::uint32_t min, + std::uint32_t max, + std::uint32_t step, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces, + ValueThresholds thresholds, + const std::vector& namedValues, + bool showDefaultValue +) +{ + bool hasNamedValues = !namedValues.empty(); + + if (!hasNamedValues) { + this->customFormatModules[module] = std::make_tuple(suffix, divisor, decimalPlaces); + } + + tsl::elm::ListItem* listItem = + new tsl::elm::ListItem(sysclkFormatModule(module, true)); + + listItem->setValue(FREQ_DEFAULT_TEXT); + + listItem->setClickListener( + [this, + listItem, + module, + categoryName, + min, + max, + step, + suffix, + divisor, + decimalPlaces, + thresholds, + namedValues, + hasNamedValues, + showDefaultValue](u64 keys) + { + if ((keys & HidNpadButton_A) == HidNpadButton_A) + { + if (!this->context) { + return false; + } + + std::uint32_t currentValue = + this->context->overrideFreqs[module] * divisor; + + ValueRange range( + min, + max, + step, + suffix, + divisor, + decimalPlaces + ); + + this->openValueChoiceGui( + listItem, + currentValue, + range, + categoryName, + + [this, listItem, module, divisor, suffix, decimalPlaces, thresholds, namedValues, hasNamedValues, showDefaultValue](std::uint32_t value) -> bool + { + if (!this->context) { + return false; + } + + this->context->overrideFreqs[module] = value / divisor; + this->listHz[module] = value / divisor; + + if (value == 0) { + listItem->setValue(FREQ_DEFAULT_TEXT); + } else if (hasNamedValues) { + for (const auto& namedValue : namedValues) { + if (namedValue.value == value / divisor) { + listItem->setValue(namedValue.name); + break; + } + } + } else { + char buf[32]; + if (decimalPlaces > 0) { + double displayValue = (double)value / divisor; + snprintf(buf, sizeof(buf), "%.*f%s", + decimalPlaces, displayValue, suffix.c_str()); + } else { + snprintf(buf, sizeof(buf), "%u%s", + value / divisor, suffix.c_str()); + } + listItem->setValue(buf); + } + + Result rc = + sysclkIpcSetOverride(module, this->context->overrideFreqs[module]); + + if (R_FAILED(rc)) + { + FatalGui::openWithResultCode( + "sysclkIpcSetOverride", rc); + return false; + } + + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + + thresholds, + false, + std::map(), + namedValues, + showDefaultValue + ); + + return true; + } + else if ((keys & HidNpadButton_Y) == HidNpadButton_Y) + { + if (!this->context) { + return false; + } + + this->context->overrideFreqs[module] = 0; + this->listHz[module] = 0; + listItem->setValue(FREQ_DEFAULT_TEXT); + + Result rc = sysclkIpcSetOverride(module, 0); + + if (R_FAILED(rc)) + { + FatalGui::openWithResultCode("sysclkIpcSetOverride", rc); + return false; + } + + this->lastContextUpdate = armGetSystemTick(); + return true; + } + + return false; + }); + + this->listElement->addItem(listItem); + this->listItems[module] = listItem; +} + +void GlobalOverrideGui::addModuleListItem(SysClkModule module) +{ + tsl::elm::ListItem *listItem = + new tsl::elm::ListItem(sysclkFormatModule(module, true)); + listItem->setValue(formatListFreqMHz(0)); + listItem->setClickListener([this, module](u64 keys) { + if ((keys & HidNpadButton_A) == HidNpadButton_A) { + this->openFreqChoiceGui(module); + return true; + } else if ((keys & HidNpadButton_Y) == HidNpadButton_Y) { + Result rc = sysclkIpcSetOverride(module, 0); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetOverride", rc); + return false; + } + + this->lastContextUpdate = armGetSystemTick(); + this->context->overrideFreqs[module] = 0; + this->listHz[module] = 0; + + this->listItems[module]->setValue(formatListFreqHz(0)); + + return true; + } + return false; + }); + + this->listElement->addItem(listItem); + this->listItems[module] = listItem; +} + +void GlobalOverrideGui::addModuleToggleItem(SysClkModule module) +{ + const char *moduleName = sysclkFormatModule(module, true); + bool isOn = this->listHz[module]; + + tsl::elm::ToggleListItem *toggle = + new tsl::elm::ToggleListItem(moduleName, isOn); + + toggle->setStateChangedListener([this, module, toggle](bool state) { + Result rc = sysclkIpcSetOverride(module, state ? 1 : 0); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetProfiles", rc); + } + this->lastContextUpdate = armGetSystemTick(); + this->context->overrideFreqs[module] = 0; + this->listHz[module] = 0; + }); + this->listElement->addItem(toggle); + this->listItems[module] = toggle; +} + +class GovernorOverrideSubMenuGui : public BaseMenuGui { + u32 packed; +public: + GovernorOverrideSubMenuGui(u32 initialPacked) : packed(initialPacked) {} + + void listUI() override { + Result rc = sysclkIpcGetConfigValues(&configList); // idk why this is needed, probably some refreshing issue + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + this->listElement->addItem(new tsl::elm::CategoryHeader("Governor")); + + static constexpr struct { const char* label; int shift; } kAll[] = { + {"CPU", 0}, {"GPU", 8}, {"VRR", 16} + }; + int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 3 : 2; + + for (int i = 0; i < count; i++) { + u8 cur = (this->packed >> kAll[i].shift) & 0xFF; + auto* bar = new tsl::elm::NamedStepTrackBar( + "", {"Do Not Override", "Disabled", "Enabled"}, + true, kAll[i].label + ); + bar->setProgress(cur); + int shift = kAll[i].shift; + bar->setValueChangedListener([this, shift](u8 value) { + this->packed = (this->packed & ~(0xFFu << shift)) | ((u32)value << shift); + Result rc = sysclkIpcSetOverride(HorizonOCModule_Governor, this->packed); + if (R_FAILED(rc)) FatalGui::openWithResultCode("sysclkIpcSetOverride", rc); + this->lastContextUpdate = armGetSystemTick(); + }); + this->listElement->addItem(bar); + } + } +}; + +void GlobalOverrideGui::addGovernorSection() { + auto* item = new tsl::elm::ListItem("Governor"); + item->setValue("\u2192"); // right arrow + item->setClickListener([this](u64 keys) { + if (keys & HidNpadButton_A) { + u32 packed = this->context ? this->context->overrideFreqs[HorizonOCModule_Governor] : 0; + tsl::changeTo(packed); + return true; + } + return false; + }); + this->listElement->addItem(item); +} + +void GlobalOverrideGui::listUI() +{ + BaseMenuGui::refresh(); // get latest context + if(!this->context) + return; + + Result rc = sysclkIpcGetConfigValues(&configList); // idk why this is needed, probably some refreshing issue + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + + this->listElement->addItem(new tsl::elm::CategoryHeader( + "Temporary Overrides " + ult::DIVIDER_SYMBOL + " \ue0e3 Reset")); + this->addModuleListItem(SysClkModule_CPU); + this->addModuleListItem(SysClkModule_GPU); + this->addModuleListItem(SysClkModule_MEM); + #if IS_MINIMAL == 0 + ValueThresholds lcdThresholds(60, 65); + if(configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) + this->addModuleListItemValue(HorizonOCModule_Display, "Display", IsAula() ? 45 : 40, configList.values[HorizonOCConfigValue_MaxDisplayClockH], this->context->isUsingRetroSuper ? 5 : 1, " Hz", 1, 0, lcdThresholds); + #endif + + this->addGovernorSection(); +} + +void GlobalOverrideGui::refresh() +{ + BaseMenuGui::refresh(); + + if (!this->context) + return; + + for (std::uint16_t m = 0; m < SysClkModule_EnumMax; m++) { + if (m == HorizonOCModule_Governor) { + this->listHz[m] = this->context->overrideFreqs[m]; + continue; + } + + if (this->listItems[m] != nullptr && + this->listHz[m] != this->context->overrideFreqs[m]) { + + auto it = this->customFormatModules.find((SysClkModule)m); + if (it != this->customFormatModules.end()) { + std::string suffix = std::get<0>(it->second); + std::uint32_t divisor = std::get<1>(it->second); + int decimalPlaces = std::get<2>(it->second); + + if (this->context->overrideFreqs[m] == 0) { + this->listItems[m]->setValue(FREQ_DEFAULT_TEXT); + } else { + char buf[32]; + if (decimalPlaces > 0) { + double displayValue = (double)this->context->overrideFreqs[m] / divisor; + snprintf(buf, sizeof(buf), "%.*f%s", + decimalPlaces, displayValue, suffix.c_str()); + } else { + snprintf(buf, sizeof(buf), "%u%s", + this->context->overrideFreqs[m] / divisor, suffix.c_str()); + } + this->listItems[m]->setValue(buf); + } + } else { + this->listItems[m]->setValue( + formatListFreqHz(this->context->overrideFreqs[m])); + } + + this->listHz[m] = this->context->overrideFreqs[m]; + } + } +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h new file mode 100644 index 00000000..9e5d6db9 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/global_override_gui.h @@ -0,0 +1,74 @@ +/* + * + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ +#pragma once +#include "../../ipc.h" +#include "base_menu_gui.h" +#include "freq_choice_gui.h" +#include +#include "value_choice_gui.h" +class GlobalOverrideGui : public BaseMenuGui +{ + protected: + std::map> customFormatModules; + tsl::elm::ListItem* listItems[SysClkModule_EnumMax]; + std::uint32_t listHz[SysClkModule_EnumMax]; + void openFreqChoiceGui(SysClkModule module); + void addGovernorSection(); + void addModuleListItem(SysClkModule module); + void addModuleToggleItem(SysClkModule module); + void openValueChoiceGui( + tsl::elm::ListItem* listItem, + std::uint32_t currentValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds, + bool enableThresholds, + const std::map& labels, + const std::vector& namedValues, + bool showDefaultValue + ); + void addModuleListItemValue( + SysClkModule module, + const std::string& categoryName, + std::uint32_t min, + std::uint32_t max, + std::uint32_t step, + const std::string& suffix, + std::uint32_t divisor, + int decimalPlaces, + ValueThresholds thresholds = {}, + const std::vector& namedValues = {}, + bool showDefaultValue = true + ); + public: + GlobalOverrideGui(); + ~GlobalOverrideGui() {} + void listUI() override; + void refresh() override; + void setModuleCustomFormat(SysClkModule module, const std::string& suffix, std::uint32_t divisor, int decimalPlaces); +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/labels.cpp b/Source/hoc-clk/overlay/src/ui/gui/labels.cpp new file mode 100644 index 00000000..12697cc1 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/labels.cpp @@ -0,0 +1,134 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include +#include + +std::map cpu_freq_label_m = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Boost Mode"}, + {1963000000, "Safe Max"}, + {2397000000, "Unsafe Max"}, + {2703000000, "Absolute Max"}, +}; + +std::map cpu_freq_label_m_uv = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Boost Mode"}, + {2397000000, "Safe Max"}, + {2499000000, "Unsafe Max"}, + {2703000000, "Absolute Max"}, +}; + +std::map cpu_freq_label_e = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Safe Max"}, + {2091000000, "Unsafe Max"}, + {2397000000, "Absolute Max"}, +}; + +std::map cpu_freq_label_e_uv = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Boost Mode"}, + {2091000000, "Safe Max"}, + {2193000000, "Unsafe Max"}, + {2397000000, "Absolute Max"}, +}; + + +std::map gpu_freq_label_e = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {345600000, "Handheld"}, + {384000000, "Handheld"}, + {422400000, "Handheld"}, + {460800000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {921600000, "Safe Max"}, + {960000000, "Unsafe Max"}, + {1075200000, "Absolute Max"}, +}; + +std::map gpu_freq_label_e_uv = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {345600000, "Handheld"}, + {384000000, "Handheld"}, + {422400000, "Handheld"}, + {460800000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {960000000, "Safe Max"}, + {1075200000, "Absolute Max"}, +}; + +std::map gpu_freq_label_m = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {384000000, "Handheld"}, + {460800000, "Handheld"}, + {614400000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {1075200000, "Safe Max"}, + {1305600000, "Unsafe Max"}, + {1536000000, "Absolute Max"}, +}; + +std::map gpu_freq_label_m_slt = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {384000000, "Handheld"}, + {460800000, "Handheld"}, + {614400000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {1152200000, "Safe Max"}, + {1305600000, "Unsafe Max"}, + {1536000000, "Absolute Max"}, +}; + +std::map gpu_freq_label_m_hiopt = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {384000000, "Handheld"}, + {460800000, "Handheld"}, + {614400000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {1228800000, "Safe Max"}, + {1305600000, "Unsafe Max"}, + {1536000000, "Absolute Max"}, +}; + +std::map* marikoUV[3] { + &gpu_freq_label_m, + &gpu_freq_label_m_slt, + &gpu_freq_label_m_hiopt, +}; + + +std::map* eristaUV[3] { + &gpu_freq_label_e, + &gpu_freq_label_e_uv, + &gpu_freq_label_e_uv, +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/labels.h b/Source/hoc-clk/overlay/src/ui/gui/labels.h new file mode 100644 index 00000000..bbebef02 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/labels.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include +#include +#include + +extern std::map cpu_freq_label_m; +extern std::map cpu_freq_label_m_uv; +extern std::map cpu_freq_label_e; +extern std::map cpu_freq_label_e_uv; +extern std::map gpu_freq_label_m; +extern std::map gpu_freq_label_m_slt; +extern std::map gpu_freq_label_m_hiopt; +extern std::map gpu_freq_label_e; +extern std::map gpu_freq_label_e_uv; + +extern std::map* marikoUV[3]; +extern std::map* eristaUV[3]; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp new file mode 100644 index 00000000..76cffc33 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/main_gui.cpp @@ -0,0 +1,123 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#include "main_gui.h" + +#include "fatal_gui.h" +#include "app_profile_gui.h" +#include "global_override_gui.h" +#include "misc_gui.h" +#include "about_gui.h" + +void MainGui::listUI() +{ + // this->enabledToggle = new tsl::elm::ToggleListItem("Enable", false); + // enabledToggle->setStateChangedListener([this](bool state) { + // Result rc = sysclkIpcSetEnabled(state); + // if(R_FAILED(rc)) + // { + // FatalGui::openWithResultCode("sysclkIpcSetEnabled", rc); + // } + + // this->lastContextUpdate = armGetSystemTick(); + // this->context->enabled = state; + // }); + // this->listElement->addItem(this->enabledToggle); + + tsl::elm::ListItem* appProfileItem = new tsl::elm::ListItem("Edit App Profile"); + appProfileItem->setClickListener([this](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A && this->context) + { + AppProfileGui::changeTo(this->context->applicationId); + return true; + } + + return false; + }); + this->listElement->addItem(appProfileItem); + + + tsl::elm::ListItem* globalProfileItem = new tsl::elm::ListItem("Edit Global Profile"); + globalProfileItem->setClickListener([this](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A && this->context) + { + AppProfileGui::changeTo(SYSCLK_GLOBAL_PROFILE_TID); + return true; + } + + return false; + }); + this->listElement->addItem(globalProfileItem); + + tsl::elm::ListItem* globalOverrideItem = new tsl::elm::ListItem("Temporary Overrides"); + globalOverrideItem->setClickListener([this](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A && this->context) + { + tsl::changeTo(); + return true; + } + + return false; + }); + this->listElement->addItem(globalOverrideItem); + + //this->listElement->addItem(new tsl::elm::CategoryHeader("Misc")); + + tsl::elm::ListItem* miscItem = new tsl::elm::ListItem("Settings"); + miscItem->setClickListener([this](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A && this->context) + { + tsl::changeTo(); + return true; + } + + return false; + }); + this->listElement->addItem(miscItem); + + tsl::elm::ListItem* aboutItem = new tsl::elm::ListItem("About"); + aboutItem->setClickListener([this](u64 keys) { + if((keys & HidNpadButton_A) == HidNpadButton_A && this->context) + { + tsl::changeTo(); + return true; + } + + return false; + }); + this->listElement->addItem(aboutItem); + +} + +void MainGui::refresh() +{ + BaseMenuGui::refresh(); + //if(this->context) + //{ + // this->enabledToggle->setState(this->context->enabled); + //} +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/main_gui.h b/Source/hoc-clk/overlay/src/ui/gui/main_gui.h new file mode 100644 index 00000000..6eae080c --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/main_gui.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include "base_menu_gui.h" + +class MainGui : public BaseMenuGui +{ + public: + MainGui() {} + ~MainGui() {} + void listUI() override; + void refresh() override; +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp new file mode 100644 index 00000000..e52c6eb1 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp @@ -0,0 +1,1748 @@ +/* + * + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 "misc_gui.h" +#include "fatal_gui.h" +#include "../format.h" +#include +#include +#include +#include +#include "labels.h" +#if IS_MINIMAL == 1 +#pragma message("Compiling with minimal features") +#endif + +#define A_BTN "\ue0e0" +#define R_ARROW "\u2192" + +class GeneralSettingsSubMenuGui; +class GovernorSettingsSubMenuGui; +class DisplaySubMenuGui; +class SafetySubMenuGui; +class RamSubmenuGui; +class RamTimingsSubmenuGui; +class RamLatenciesSubmenuGui; +class CpuSubmenuGui; +class GpuSubmenuGui; +class GpuCustomTableSubmenuGui; +class RamTableEditor; + +MiscGui::MiscGui() +{ + this->configList = new SysClkConfigValueList {}; +} + +MiscGui::~MiscGui() +{ + delete this->configList; + this->configToggles.clear(); + this->configTrackbars.clear(); + this->configButtons.clear(); + this->configRanges.clear(); +} + +void MiscGui::addConfigToggle(SysClkConfigValue configVal, const char* altName) { + const char* configName = altName ? altName : sysclkFormatConfigValue(configVal, true); + tsl::elm::ToggleListItem* toggle = new tsl::elm::ToggleListItem(configName, this->configList->values[configVal]); + toggle->setStateChangedListener([this, configVal](bool state) { + this->configList->values[configVal] = uint64_t(state); + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + this->lastContextUpdate = armGetSystemTick(); + }); + this->listElement->addItem(toggle); + this->configToggles[configVal] = toggle; +} + + +void MiscGui::addConfigButton(SysClkConfigValue configVal, + const char* altName, + const ValueRange& range, + const std::string& categoryName, + const ValueThresholds* thresholds, + const std::map& labels, + const std::vector& namedValues, + bool showDefaultValue) +{ + const char* configName = altName ? altName : sysclkFormatConfigValue(configVal, true); + + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(configName); + + uint64_t currentValue = this->configList->values[configVal]; + char valueText[32]; + if (currentValue == 0 && showDefaultValue) { + snprintf(valueText, sizeof(valueText), "%s", VALUE_DEFAULT_TEXT); + } else { + bool foundNamedValue = false; + for (const auto& namedValue : namedValues) { + if (currentValue == namedValue.value) { + snprintf(valueText, sizeof(valueText), "%s", namedValue.name.c_str()); + foundNamedValue = true; + break; + } + } + + if (!foundNamedValue) { + uint64_t displayValue = currentValue / range.divisor; + if (!range.suffix.empty()) { + snprintf(valueText, sizeof(valueText), "%lu %s", displayValue, range.suffix.c_str()); + } else { + snprintf(valueText, sizeof(valueText), "%lu", displayValue); + } + } + } + listItem->setValue(valueText); + + ValueThresholds thresholdsCopy = (thresholds ? *thresholds : ValueThresholds{}); + + listItem->setClickListener( + [this, configVal, range, categoryName, thresholdsCopy, labels, namedValues, showDefaultValue](u64 keys) + { + if ((keys & HidNpadButton_A) == 0) + return false; + + std::uint32_t currentValue = this->configList->values[configVal]; + + if (thresholdsCopy.warning != 0 || thresholdsCopy.danger != 0) { + + tsl::changeTo( + currentValue, + range, + categoryName, + [this, configVal](std::uint32_t value) { + this->configList->values[configVal] = value; + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + return false; + } + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + thresholdsCopy, + true, + labels, + namedValues, + showDefaultValue + ); + } else { + + tsl::changeTo( + currentValue, + range, + categoryName, + [this, configVal](std::uint32_t value) { + this->configList->values[configVal] = value; + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + return false; + } + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + ValueThresholds(), + false, + labels, + namedValues, + showDefaultValue + ); + } + + return true; + }); + + this->listElement->addItem(listItem); + this->configButtons[configVal] = listItem; + this->configRanges[configVal] = range; + this->configNamedValues[configVal] = namedValues; +} + +void MiscGui::addConfigButtonS(SysClkConfigValue configVal, + const char* altName, + const ValueRange& range, + const std::string& categoryName, + const ValueThresholds* thresholds, + const std::map& labels, + const std::vector& namedValues, + bool showDefaultValue, + const char* subText) +{ + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(""); + + uint64_t currentValue = this->configList->values[configVal]; + char valueText[32]; + if (currentValue == 0 && showDefaultValue) { + snprintf(valueText, sizeof(valueText), "%s", VALUE_DEFAULT_TEXT); + } else { + bool foundNamedValue = false; + for (const auto& namedValue : namedValues) { + if (currentValue == namedValue.value) { + snprintf(valueText, sizeof(valueText), "%s", namedValue.name.c_str()); + foundNamedValue = true; + break; + } + } + + if (!foundNamedValue) { + uint64_t displayValue = currentValue / range.divisor; + if (!range.suffix.empty()) { + snprintf(valueText, sizeof(valueText), "%lu %s", displayValue, range.suffix.c_str()); + } else { + snprintf(valueText, sizeof(valueText), "%lu", displayValue); + } + } + } + + listItem->setText(valueText); + listItem->setValue(subText ? subText : ""); + + ValueThresholds thresholdsCopy = (thresholds ? *thresholds : ValueThresholds{}); + + listItem->setClickListener( + [this, configVal, range, categoryName, thresholdsCopy, labels, namedValues, showDefaultValue](u64 keys) + { + if ((keys & HidNpadButton_A) == 0) + return false; + + std::uint32_t currentValue = this->configList->values[configVal]; + + if (thresholdsCopy.warning != 0 || thresholdsCopy.danger != 0) { + + tsl::changeTo( + currentValue, + range, + categoryName, + [this, configVal](std::uint32_t value) { + this->configList->values[configVal] = value; + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + return false; + } + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + thresholdsCopy, + true, + labels, + namedValues, + showDefaultValue + ); + } else { + + tsl::changeTo( + currentValue, + range, + categoryName, + [this, configVal](std::uint32_t value) { + this->configList->values[configVal] = value; + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + return false; + } + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + ValueThresholds(), + false, + labels, + namedValues, + showDefaultValue + ); + } + + return true; + }); + + this->listElement->addItem(listItem); + this->configButtons[configVal] = listItem; + this->configRanges[configVal] = range; + this->configNamedValues[configVal] = namedValues; + this->configButtonSKeys.insert(configVal); + if (subText) + this->configButtonSSubtext[configVal] = std::string(subText); +} + +void MiscGui::updateConfigToggles() { + for (const auto& [value, toggle] : this->configToggles) { + if (toggle != nullptr) + toggle->setState(this->configList->values[value]); + } +} + +void MiscGui::addFreqButton(SysClkConfigValue configVal, + const char* altName, + SysClkModule module, + const std::map& labels) +{ + const char* configName = altName ? altName : sysclkFormatConfigValue(configVal, true); + + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(configName); + + uint64_t currentMHz = this->configList->values[configVal]; + char valueText[32]; + snprintf(valueText, sizeof(valueText), "%lu MHz", currentMHz); + listItem->setValue(valueText); + + listItem->setClickListener( + [this, configVal, module, labels](u64 keys) + { + if ((keys & HidNpadButton_A) == 0) + return false; + + std::uint32_t hzList[SYSCLK_FREQ_LIST_MAX]; + std::uint32_t hzCount; + + Result rc = sysclkIpcGetFreqList(module, hzList, SYSCLK_FREQ_LIST_MAX, &hzCount); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc); + return false; + } + + std::uint32_t currentHz = this->configList->values[configVal] * 1'000'000; + + tsl::changeTo( + currentHz, + hzList, + hzCount, + module, + [this, configVal](std::uint32_t hz) + { + uint64_t mhz = hz / 1'000'000; + this->configList->values[configVal] = mhz; + + Result rc = sysclkIpcSetConfigValues(this->configList); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("sysclkIpcSetConfigValues", rc); + return false; + } + + this->lastContextUpdate = armGetSystemTick(); + return true; + }, + false, + labels + ); + + return true; + }); + + this->listElement->addItem(listItem); + this->configButtons[configVal] = listItem; + + this->configRanges[configVal] = ValueRange(0, 0, 0, "MHz", 1); +} + +void MiscGui::listUI() +{ + Result rc = sysclkIpcGetConfigValues(configList); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + + ValueThresholds thresholdsDisabled(0, 0); + std::vector noNamedValues = {}; + + this->listElement->addItem(new tsl::elm::CategoryHeader("Settings")); + tsl::elm::ListItem* sysmoduleSettingsSubMenu = new tsl::elm::ListItem("General Settings"); + sysmoduleSettingsSubMenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + sysmoduleSettingsSubMenu->setValue(R_ARROW); + this->listElement->addItem(sysmoduleSettingsSubMenu); + + tsl::elm::ListItem* governorSettingsSubMenu = new tsl::elm::ListItem("Governor Settings"); + governorSettingsSubMenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + governorSettingsSubMenu->setValue(R_ARROW); + this->listElement->addItem(governorSettingsSubMenu); + + tsl::elm::ListItem* safetySubmenu = new tsl::elm::ListItem("Safety Settings"); + safetySubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + safetySubmenu->setValue(R_ARROW); + this->listElement->addItem(safetySubmenu); + + // this->listElement->addItem(new tsl::elm::CategoryHeader("KIP")); + + tsl::elm::ListItem* saveBtn = new tsl::elm::ListItem("Save KIP Settings"); + saveBtn->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + Result rc = hocClkIpcSetKipData(); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("hocClkIpcSetKipData", rc); + return false; + } + return true; + } + return false; + }); + saveBtn->setValue(A_BTN); + this->listElement->addItem(saveBtn); + + tsl::elm::ListItem* ramSubmenu = new tsl::elm::ListItem("RAM Settings"); + ramSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + ramSubmenu->setValue(R_ARROW); + this->listElement->addItem(ramSubmenu); + + tsl::elm::ListItem* cpuSubmenu = new tsl::elm::ListItem("CPU Settings"); + cpuSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + cpuSubmenu->setValue(R_ARROW); + this->listElement->addItem(cpuSubmenu); + + tsl::elm::ListItem* gpuSubmenu = new tsl::elm::ListItem("GPU Settings"); + gpuSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + gpuSubmenu->setValue(R_ARROW); + this->listElement->addItem(gpuSubmenu); + + tsl::elm::ListItem* displaySubMenu = new tsl::elm::ListItem("Display Settings"); + displaySubMenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + displaySubMenu->setValue(R_ARROW); + this->listElement->addItem(displaySubMenu); + + #if IS_MINIMAL == 0 + // std::vector chargerCurrents = { + // NamedValue("Disabled", 0), + // NamedValue("1024mA", 1024), + // NamedValue("1280mA", 1280), + // NamedValue("1536mA", 1536), + // NamedValue("1792mA", 1792), + // NamedValue("2048mA", 2048), + // NamedValue("2304mA", 2304), + // NamedValue("2560mA", 2560), + // NamedValue("2816mA", 2816), + // NamedValue("3072mA", 3072), + // }; + if(this->configList->values[HorizonOCConfigValue_EnableExperimentalSettings]) { + this->listElement->addItem(new tsl::elm::CategoryHeader("Experimental")); + + addConfigToggle(HorizonOCConfigValue_LiveCpuUv, nullptr); + std::vector gpuSchedMethodValues = { + NamedValue("INI", GpuSchedulingOverrideMethod_Ini), + NamedValue("NV Service", GpuSchedulingOverrideMethod_NvService), + }; + addConfigButton( + HorizonOCConfigValue_GPUSchedulingMethod, + "GPU Scheduling Override Method", + ValueRange(0, 0, 1, "", 0), + "GPU Scheduling Override Method", + &thresholdsDisabled, + {}, + gpuSchedMethodValues, + false + ); + tsl::elm::CustomDrawer* chargeWarningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) { + renderer->drawString("\uE150 Overriding the charge current", false, x + 20, y + 30, 18, tsl::style::color::ColorText); + renderer->drawString("can be dangerous and may cause", false, x + 20, y + 50, 18, tsl::style::color::ColorText); + renderer->drawString("damage to your battery or charger!", false, x + 20, y + 70, 18, tsl::style::color::ColorText); + }); + chargeWarningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 90); + this->listElement->addItem(chargeWarningText); + + if(!IsHoag()) { + std::vector chargerCurrents = { + NamedValue("Disabled", 0), + NamedValue("1024mA", 1024), + NamedValue("1280mA", 1280), + NamedValue("1536mA", 1536), + NamedValue("1792mA", 1792), + NamedValue("2048mA", 2048), + NamedValue("2304mA", 2304), + NamedValue("2560mA", 2560), + NamedValue("2816mA", 2816), + NamedValue("3072mA", 3072), + }; + + ValueThresholds chargerThresholds(2048, 2049); + + addConfigButton( + HorizonOCConfigValue_BatteryChargeCurrent, + "Charge Current Override", + ValueRange(0, 0, 1, "", 0), + "Charge Current Override", + &chargerThresholds, + {}, + chargerCurrents, + false + ); + } + else { + std::vector chargerCurrents = { + NamedValue("Disabled", 0), + NamedValue("1024mA", 1024), + NamedValue("1280mA", 1280), + NamedValue("1536mA", 1536), + NamedValue("1792mA", 1792), + NamedValue("2048mA", 2048), + NamedValue("2304mA", 2304), + NamedValue("2560mA", 2560), + }; + + ValueThresholds chargerThresholds(1792, 1793); + + addConfigButton( + HorizonOCConfigValue_BatteryChargeCurrent, + "Charge Current Override", + ValueRange(0, 0, 1, "", 0), + "Charge Current Override", + &chargerThresholds, + {}, + chargerCurrents, + false + ); + + } + } + #endif +} + +class GeneralSettingsSubMenuGui : public MiscGui { +public: + GeneralSettingsSubMenuGui() { } + +protected: + void listUI() override { + this->listElement->addItem(new tsl::elm::CategoryHeader("General Settings")); + ValueThresholds thresholdsDisabled(0, 0); + std::vector ramVoltDispModes = { + NamedValue("VDD2 + VDDQ", RamDisplayMode_VDD2VDDQ), + NamedValue("VDD2 + Usage", RamDisplayMode_VDD2Usage), + NamedValue("VDDQ + Usage", RamDisplayMode_VDDQUsage), + }; + + addConfigButton(HorizonOCConfigValue_RAMVoltUsageDisplayMode, "RAM Voltage Display Mode", ValueRange(0, 12, 1, "", 0), "RAM Voltage Display Mode", &thresholdsDisabled, {}, ramVoltDispModes, false); + + addConfigButton( + SysClkConfigValue_PollingIntervalMs, + "Polling Interval", + ValueRange(50, 1000, 50, "ms", 1), + "Polling Interval", + &thresholdsDisabled, + {}, + {}, + false + ); + } +}; + +class GovernorSettingsSubMenuGui : public MiscGui { +public: + GovernorSettingsSubMenuGui() { } + +protected: + void listUI() override { + this->listElement->addItem(new tsl::elm::CategoryHeader("Governor Settings")); + ValueThresholds thresholdsDisabled(0, 0); + + std::vector GovernorMinHz = { + NamedValue("510 MHz", 510000000), + NamedValue("612 MHz", 612000000), + NamedValue("714 MHz", 714000000), + NamedValue("816 MHz", 816000000), + NamedValue("918 MHz", 918000000), + NamedValue("1020 MHz", 1020000000), + }; + + addConfigButton( + HorizonOCConfigValue_CpuGovernorMinimumFreq, + "CPU Governor Minimum Frequency", + ValueRange(0, 0, 1, "", 0), + "CPU Governor Minimum Frequency", + &thresholdsDisabled, + {}, + GovernorMinHz, + false + ); + + } +}; + + +class DisplaySubMenuGui : public MiscGui { +public: + DisplaySubMenuGui() { } + +protected: + void listUI() override { + BaseMenuGui::refresh(); // get latest context + if(!this->context) + return; + + this->listElement->addItem(new tsl::elm::CategoryHeader("Display Settings")); + addConfigToggle(HorizonOCConfigValue_OverwriteRefreshRate, nullptr); + if(!this->context->isUsingRetroSuper) { + tsl::elm::CustomDrawer* warningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) { + renderer->drawString("\uE150 Usage of unsafe display", false, x + 20, y + 30, 18, tsl::style::color::ColorText); + renderer->drawString("refresh rates may cause stress", false, x + 20, y + 50, 18, tsl::style::color::ColorText); + renderer->drawString("or damage to your display! ", false, x + 20, y + 70, 18, tsl::style::color::ColorText); + renderer->drawString("Proceed at your own risk!", false, x + 20, y + 90, 18, tsl::style::color::ColorText); + }); + + warningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 110); + this->listElement->addItem(warningText); + ValueThresholds displayThresholds(60, 65); + addConfigButton( + HorizonOCConfigValue_MaxDisplayClockH, + "Max Handheld Display", + ValueRange(60, IsAula() ? 65 : 75, 1, " Hz", 1), + "Display Clock", + &displayThresholds, + {}, + {}, + false + ); + } + } +}; + +class SafetySubMenuGui : public MiscGui { +public: + SafetySubMenuGui() { } + +protected: + void listUI() override { + this->listElement->addItem(new tsl::elm::CategoryHeader("Safety Settings")); + addConfigToggle(HocClkConfigValue_UncappedClocks, nullptr); + addConfigToggle(HocClkConfigValue_ThermalThrottle, nullptr); + addConfigToggle(HocClkConfigValue_HandheldTDP, nullptr); + + #if IS_MINIMAL == 0 + std::map labels_pwr_l = { + {6400, "Official Rating"} + }; + + if(IsHoag()) { + ValueThresholds tdpThresholdsLite(6400, 7500); + addConfigButton( + HocClkConfigValue_LiteTDPLimit, + "TDP Threshold", + ValueRange(4000, 8000, 100, "mW", 1), + "Power", + &tdpThresholdsLite, + labels_pwr_l + ); + } else { + ValueThresholds tdpThresholds(9600, 11000); + addConfigButton( + HocClkConfigValue_HandheldTDPLimit, + "TDP Threshold", + ValueRange(8000, 12000, 100, "mW", 1), + "Power", + &tdpThresholds + ); + } + + ValueThresholds throttleThresholds(70, 80); + addConfigButton( + HocClkConfigValue_ThermalThrottleThreshold, + "Thermal Throttle Limit", + ValueRange(50, 85, 1, "°C", 1), + "Temp", + &throttleThresholds + ); + #endif + } +}; + +class RamSubmenuGui : public MiscGui { +public: + RamSubmenuGui() { } + +protected: + void listUI() override { + ValueThresholds thresholdsDisabled(0, 0); + std::vector noNamedValues = {}; + + this->listElement->addItem(new tsl::elm::CategoryHeader("RAM Settings")); + + addConfigToggle(KipConfigValue_hpMode, "HP Mode"); + + std::map emc_voltage_label = { + {1100000, "Default (Mariko)"}, + {1125000, "Default (Erista)"}, + {1175000, "Rating"}, + {1212500, "Safe Max (Mariko)"}, + {1237500, "Safe Max (Erista)"}, + {1250000, "Unsafe Max"}, + }; + + ValueThresholds vdd2Thresholds(1212500, 1250000); + addConfigButton( + KipConfigValue_commonEmcMemVolt, + "RAM VDD2 Voltage", + ValueRange(912500, 1350000, 12500, "mV", 1000, 1), + "Voltage", + &vdd2Thresholds, + emc_voltage_label, + noNamedValues, + false + ); + + if(IsMariko()) { + addConfigButton( + KipConfigValue_marikoEmcVddqVolt, + "RAM VDDQ Voltage", + ValueRange(400000, 700000, 5000, "mV", 1000), + "RAM VDDQ Voltage", + &thresholdsDisabled, + {}, + {}, + false + ); + } + + addConfigButton( + KipConfigValue_emcDvbShift, + "SoC DVB Shift", + ValueRange(0, 10, 1, "", 1), + "SoC DVB Shift", + &thresholdsDisabled, + {}, + {}, + false + ); + + if (IsErista()) { + tsl::elm::ListItem* freqSubmenu = new tsl::elm::ListItem("RAM Frequency Editor"); + freqSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + freqSubmenu->setValue(R_ARROW); + this->listElement->addItem(freqSubmenu); + } else { + std::vector marikoMaxEmcClock = { + NamedValue("Disabled", 1600000), + NamedValue("1633 MHz", 1633000), + NamedValue("1666 MHz", 1666000), + NamedValue("1700 MHz", 1700000), + NamedValue("1733 MHz", 1733000), + NamedValue("1766 MHz", 1766000), + NamedValue("1800 MHz", 1800000), + NamedValue("1833 MHz", 1833000), + NamedValue("1866 MHz", 1866000, "JEDEC."), + NamedValue("1900 MHz", 1900000), + NamedValue("1933 MHz", 1933000), + NamedValue("1966 MHz", 1966000), + NamedValue("1996 MHz", 1996800, "JEDEC."), + NamedValue("2000 MHz", 2000000), + NamedValue("2033 MHz", 2033000), + NamedValue("2066 MHz", 2066000), + NamedValue("2100 MHz", 2100000), + NamedValue("2133 MHz", 2133000, "JEDEC."), + NamedValue("2166 MHz", 2166000), + NamedValue("2200 MHz", 2200000), + NamedValue("2233 MHz", 2233000), + NamedValue("2266 MHz", 2266000), + NamedValue("2300 MHz", 2300000), + NamedValue("2333 MHz", 2333000), + NamedValue("2366 MHz", 2366000), + NamedValue("2400 MHz", 2400000, "JEDEC."), + NamedValue("2433 MHz", 2433000), + NamedValue("2466 MHz", 2466000), + NamedValue("2500 MHz", 2500000), + NamedValue("2533 MHz", 2533000), + NamedValue("2566 MHz", 2566000), + NamedValue("2600 MHz", 2600000), + NamedValue("2633 MHz", 2633000), + NamedValue("2666 MHz", 2666000, "JEDEC."), + NamedValue("2700 MHz", 2700000), + NamedValue("2733 MHz", 2733000), + NamedValue("2766 MHz", 2766000), + NamedValue("2800 MHz", 2800000), + NamedValue("2833 MHz", 2833000), + NamedValue("2866 MHz", 2866000), + NamedValue("2900 MHz", 2900000), + NamedValue("2933 MHz", 2933000, "JEDEC."), + NamedValue("2966 MHz", 2966000), + NamedValue("3000 MHz", 3000000), + NamedValue("3033 MHz", 3033000), + NamedValue("3066 MHz", 3066000), + NamedValue("3100 MHz", 3100000), + NamedValue("3133 MHz", 3133000), + NamedValue("3166 MHz", 3166000), + NamedValue("3200 MHz", 3200000, "JEDEC."), + NamedValue("3233 MHz", 3233000, "High speedo needed!"), + NamedValue("3266 MHz", 3266000, "High speedo needed!"), + NamedValue("3300 MHz", 3300000, "High speedo needed!"), + // NamedValue("3333MHz (Needs extreme Speedo/PLL)", 3333000), + // NamedValue("3366MHz (Needs extreme Speedo/PLL)", 3366000), + // NamedValue("3400MHz (Needs extreme Speedo/PLL)", 3400000), + // NamedValue("3433MHz (Needs ridiculous Speedo/PLL)", 3433000), + // NamedValue("3466MHz (Needs ridiculous Speedo/PLL)", 3466000), + // NamedValue("3500MHz (Needs ridiculous Speedo/PLL)", 3500000), + }; + + addConfigButton(KipConfigValue_marikoEmcMaxClock, "Ram Max Clock", ValueRange(0, 1, 1, "", 1), "Ram Max Clock", &thresholdsDisabled, {}, marikoMaxEmcClock, false); + } + + tsl::elm::ListItem* latenciesSubmenu = new tsl::elm::ListItem("RAM Latency Editor"); + latenciesSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + latenciesSubmenu->setValue(R_ARROW); + this->listElement->addItem(latenciesSubmenu); + + tsl::elm::ListItem* timingsSubmenu = new tsl::elm::ListItem("RAM Timing Reductions"); + timingsSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + timingsSubmenu->setValue(R_ARROW); + this->listElement->addItem(timingsSubmenu); + + } +}; + +class RamTimingsSubmenuGui : public MiscGui { +public: + RamTimingsSubmenuGui() { } + +protected: + void listUI() override { + ValueThresholds thresholdsDisabled(0, 0); + + this->listElement->addItem(new tsl::elm::CategoryHeader("Memory Timings")); + + addConfigButton(KipConfigValue_t1_tRCD, "t1 tRCD", ValueRange(0, 8, 1, "", 1), "tRCD", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t2_tRP, "t2 tRP", ValueRange(0, 8, 1, "", 1), "tRP", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t3_tRAS, "t3 tRAS", ValueRange(0, 10, 1, "", 1), "tRAS", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t4_tRRD, "t4 tRRD", ValueRange(0, 7, 1, "", 1), "tRRD", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t5_tRFC, "t5 tRFC", ValueRange(0, 11, 1, "", 1), "tRFC", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t6_tRTW, "t6 tRTW", ValueRange(0, 10, 1, "", 1), "tRTW", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t7_tWTR, "t7 tWTR", ValueRange(0, 10, 1, "", 1), "tWTR", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t8_tREFI, "t8 tREFI", ValueRange(0, 6, 1, "", 1), "tREFI", &thresholdsDisabled, {}, {}, false); + + std::vector t6_tRTW_fine_tune = { + NamedValue("-2", 0xFFFFFFFE), + NamedValue("-1", 0xFFFFFFFF), + NamedValue(" 0", 0), + NamedValue("+1", 1), + NamedValue("+2", 2), + }; + + std::vector t7_tWTR_fine_tune = { + NamedValue("-3", 0xFFFFFFFD), + NamedValue("-2", 0xFFFFFFFE), + NamedValue("-1", 0xFFFFFFFF), + NamedValue(" 0", 0), + NamedValue("+1", 1), + NamedValue("+2", 2), + NamedValue("+3", 3), + }; + + this->listElement->addItem(new tsl::elm::CategoryHeader("Advanced")); + addConfigButton(KipConfigValue_t6_tRTW_fine_tune, "t6 tRTW Fine Tune", ValueRange(0, 4, 1, "", 0), "tRTW Fine Tune", &thresholdsDisabled, {}, t6_tRTW_fine_tune, false); + addConfigButton(KipConfigValue_t7_tWTR_fine_tune, "t7 tWTR Fine Tune", ValueRange(0, 6, 1, "", 0), "tWTR Fine Tune", &thresholdsDisabled, {}, t7_tWTR_fine_tune, false); + } +}; + +class RamLatenciesSubmenuGui : public MiscGui { +public: + RamLatenciesSubmenuGui() { } + +protected: + void listUI() override { + ValueThresholds thresholdsDisabled(0, 0); + + this->listElement->addItem(new tsl::elm::CategoryHeader("Memory Latencies")); + + std::vector rlLabels = { + NamedValue("1333 RL", 28), + NamedValue("1600 RL", 32), + NamedValue("1866 RL", 36), + NamedValue("2133 RL", 40) + }; + + std::vector wlLabels = { + NamedValue("1333 WL", 12), + NamedValue("1600 WL", 14), + NamedValue("1866 WL", 16), + NamedValue("2133 WL", 18) + }; + + addConfigButton( + KipConfigValue_mem_burst_read_latency, + "Read Latency", + ValueRange(0, 6, 1, "", 0), + "Read Latency", + &thresholdsDisabled, + {}, + rlLabels, + false + ); + + addConfigButton( + KipConfigValue_mem_burst_write_latency, + "Write Latency", + ValueRange(0, 6, 1, "", 0), + "Write Latency", + &thresholdsDisabled, + {}, + wlLabels, + false + ); + } +}; + +class CpuSubmenuGui : public MiscGui { +public: + CpuSubmenuGui() { } + +protected: + void listUI() override { + Result rc = sysclkIpcGetConfigValues(this->configList); // populate config list early otherwise wont work + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + + ValueThresholds thresholdsDisabled(0, 0); + ValueThresholds mCpuClockThresholds(1963000, 2397000); + ValueThresholds mCpuClockThresholdsUV(2397000, 2499000); + ValueThresholds eCpuClockThresholds(1785000, 2091000); + ValueThresholds eCpuClockThresholdsUV(2091000, 2193000); + + this->listElement->addItem(new tsl::elm::CategoryHeader("CPU Settings")); + if(IsMariko()) { + std::vector ClkOptions = { + NamedValue("1963 MHz", 1963000), + NamedValue("2091 MHz", 2091000), + NamedValue("2193 MHz", 2193000), + NamedValue("2295 MHz", 2295000), + NamedValue("2397 MHz", 2397000), + NamedValue("2499 MHz", 2499000), + NamedValue("2601 MHz", 2601000), + NamedValue("2703 MHz", 2703000), + }; + + addConfigButton( + KipConfigValue_marikoCpuBoostClock, + "CPU Boost Clock", + ValueRange(0, 0, 1, "", 1), + "CPU Boost Clock", + this->configList->values[KipConfigValue_marikoCpuUVHigh] ? &mCpuClockThresholdsUV : &mCpuClockThresholds, + {}, + ClkOptions, + false + ); + } else { + std::vector ClkOptionsE = { + NamedValue("1785 MHz", 1785000), + NamedValue("1887 MHz", 1887000), + NamedValue("1963 MHz", 1963000), + NamedValue("2091 MHz", 2091000), + NamedValue("2193 MHz", 2193000), + NamedValue("2295 MHz", 2295000), + NamedValue("2397 MHz", 2397000), + }; + addConfigButton( + KipConfigValue_eristaCpuBoostClock, + "CPU Boost Clock", + ValueRange(0, 0, 1, "", 1), + "CPU Boost Clock", + this->configList->values[KipConfigValue_eristaCpuUV] ? &eCpuClockThresholdsUV : &eCpuClockThresholds, + {}, + ClkOptionsE, + false + ); + } + if(IsErista()) { + addConfigButton( + KipConfigValue_eristaCpuUV, + "CPU UV", + ValueRange(0, 5, 1, "", 1), + "CPU UV", + &thresholdsDisabled, + {}, + {}, + false + ); + + addConfigToggle(KipConfigValue_eristaCpuUnlock, "CPU Unlock"); + addConfigButton( + KipConfigValue_eristaCpuVmin, + "CPU VMIN", + ValueRange(700, 900, 25, "mV", 1), + "CPU VMIN", + &thresholdsDisabled, + {}, + {}, + false + ); + + ValueThresholds eCpuVoltThresholds(1235, 1260); + addConfigButton( + KipConfigValue_eristaCpuMaxVolt, + "CPU Max Voltage", + ValueRange(1120, 1260, 5, "mV", 1), + "CPU Max Voltage", + &eCpuVoltThresholds, + {}, + {}, + false + ); + + std::vector maxClkOptions = { + NamedValue("1785 MHz", 1785), + NamedValue("1887 MHz", 1887), + NamedValue("1963 MHz", 1963), + NamedValue("2091 MHz", 2091), + NamedValue("2193 MHz", 2193), + NamedValue("2295 MHz", 2295), + NamedValue("2397 MHz", 2397), + }; + ValueThresholds eCpuMaxClockThresholds(1785, 2091); + addConfigButton( + HocClkConfigValue_EristaMaxCpuClock, + "CPU Max Clock", + ValueRange(0, 0, 1, "", 1), + "CPU Max Clock", + &eCpuMaxClockThresholds, + {}, + maxClkOptions, + false + ); + } else { + std::vector marikoTableConf = { + // NamedValue("Auto", 0), + NamedValue("Default", 1), + NamedValue("1581MHz Tbreak", 2), + NamedValue("1683MHz Tbreak", 3), + NamedValue("Extreme UV Table", 4) + }; + + addConfigButton( + KipConfigValue_tableConf, + "CPU UV Table", + ValueRange(0, 12, 1, "", 0), + "CPU UV Table", + &thresholdsDisabled, + {}, + marikoTableConf, + false + ); + addConfigButton( + KipConfigValue_marikoCpuUVLow, + "CPU Low UV", + ValueRange(0, 8, 1, "", 1), + "CPU Low UV", + &thresholdsDisabled, + {}, + {}, + false + ); + addConfigButton( + KipConfigValue_marikoCpuUVHigh, + "CPU High UV", + ValueRange(0, 12, 1, "", 1), + "CPU High UV", + &thresholdsDisabled, + {}, + {}, + false + ); + + std::vector maxClkOptions = { + NamedValue("1785 MHz", 1785000), + NamedValue("1887 MHz", 1887000), + NamedValue("1963 MHz", 1963000), + NamedValue("2091 MHz", 2091000), + NamedValue("2193 MHz", 2193000), + NamedValue("2295 MHz", 2295000), + NamedValue("2397 MHz", 2397000), + NamedValue("2499 MHz", 2499000), + NamedValue("2601 MHz", 2601000), + NamedValue("2703 MHz", 2703000), + }; + + addConfigButton( + KipConfigValue_marikoCpuMaxClock, + "CPU Max Clock", + ValueRange(0, 0, 1, "", 1), + "CPU Max Clock", + this->configList->values[KipConfigValue_marikoCpuUVHigh] ? &mCpuClockThresholdsUV : &mCpuClockThresholds, + {}, + maxClkOptions, + false + ); + + addConfigButton( + KipConfigValue_marikoCpuLowVmin, + "CPU Low VMIN", + ValueRange(550, 750, 5, "mV", 1), + "CPU VMIN", + &thresholdsDisabled, + {}, + {}, + false + ); + + addConfigButton( + KipConfigValue_marikoCpuHighVmin, + "CPU High VMIN", + ValueRange(650, 900, 5, "mV", 1), + "CPU VMIN", + &thresholdsDisabled, + {}, + {}, + false + ); + + ValueThresholds mCpuVoltThresholds(1160, 1180); + addConfigButton( + KipConfigValue_marikoCpuMaxVolt, + "CPU Max Voltage", + ValueRange(1000, 1200, 5, "mV", 1), + "CPU Max Voltage", + &mCpuVoltThresholds, + {}, + {}, + false + ); + + addConfigToggle(HocClkConfigValue_OverwriteBoostMode, nullptr); + + } + } +}; + +class RamTableEditor : public MiscGui { +public: + RamTableEditor() { } + +protected: + void listUI() override { + this->listElement->addItem(new tsl::elm::CategoryHeader("RAM Frequency Editor")); + + ValueThresholds thresholdsDisabled(0, 0); + // 1600000, 1331200, 1065600, 800000, 665600, 408000, 204000 + + tsl::elm::ListItem* ramItem665 = new tsl::elm::ListItem("665 MHz"); + this->listElement->addItem(ramItem665); + + tsl::elm::ListItem* ramItem800 = new tsl::elm::ListItem("800 MHz"); + this->listElement->addItem(ramItem800); + + tsl::elm::ListItem* ramItem1065 = new tsl::elm::ListItem("1065 MHz"); + this->listElement->addItem(ramItem1065); + + tsl::elm::ListItem* ramItem1331 = new tsl::elm::ListItem("1331 MHz"); + this->listElement->addItem(ramItem1331); + + tsl::elm::ListItem* ramItem1600 = new tsl::elm::ListItem("1600 MHz"); + this->listElement->addItem(ramItem1600); + + ValueThresholds eristaRamThresholds(2208000, 2304000); + + std::vector eristaMaxEmcClock = { + NamedValue("Disabled", 1600000), + NamedValue("1633 MHz", 1633000), + NamedValue("1666 MHz", 1666000), + NamedValue("1700 MHz", 1700000), + NamedValue("1733 MHz", 1733000), + NamedValue("1766 MHz", 1766000), + NamedValue("1800 MHz", 1800000), + NamedValue("1833 MHz", 1833000), + NamedValue("1862 MHz", 1862400, "JEDEC."), + NamedValue("1881 MHz", 1881600), + NamedValue("1900 MHz", 1900800), + NamedValue("1920 MHz", 1920000), + NamedValue("1939 MHz", 1939200), + NamedValue("1958 MHz", 1958400), + NamedValue("1977 MHz", 1977600), + NamedValue("1996 MHz", 1996800, "JEDEC."), + NamedValue("2016 MHz", 2016000), + NamedValue("2035 MHz", 2035200), + NamedValue("2054 MHz", 2054400), + NamedValue("2073 MHz", 2073600), + NamedValue("2092 MHz", 2092800), + NamedValue("2112 MHz", 2112000), + NamedValue("2131 MHz", 2131200, "JEDEC."), + NamedValue("2150 MHz", 2150400), + NamedValue("2169 MHz", 2169600), + NamedValue("2188 MHz", 2188800), + NamedValue("2208 MHz", 2208000), + NamedValue("2227 MHz", 2227200), + NamedValue("2246 MHz", 2246400), + NamedValue("2265 MHz", 2265600), + NamedValue("2284 MHz", 2284800), + NamedValue("2304 MHz", 2304000), + NamedValue("2323 MHz", 2323200), + NamedValue("2342 MHz", 2342400), + NamedValue("2361 MHz", 2361600), + NamedValue("2380 MHz", 2380800), + NamedValue("2400 MHz", 2400000, "JEDEC."), + }; + + addConfigButtonS(KipConfigValue_eristaEmcMaxClock, "", ValueRange(0, 1, 1, "", 1), "", &eristaRamThresholds, {}, eristaMaxEmcClock, false, A_BTN); + addConfigButtonS(KipConfigValue_eristaEmcMaxClock1, "", ValueRange(0, 1, 1, "", 1), "", &eristaRamThresholds, {}, eristaMaxEmcClock, false, A_BTN); + addConfigButtonS(KipConfigValue_eristaEmcMaxClock2, "", ValueRange(0, 1, 1, "", 1), "", &eristaRamThresholds, {}, eristaMaxEmcClock, false, A_BTN); + }; +}; + +class GpuSubmenuGui : public MiscGui { +public: + GpuSubmenuGui() { } + +protected: + void listUI() override { + ValueThresholds thresholdsDisabled(0, 0); + std::vector noNamedValues = {}; + + this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Settings")); + + std::vector gpuUvConf = { + NamedValue("No Undervolt", 0), + NamedValue("SLT Table", 1), + NamedValue("HiOPT Table", 2), + }; + + std::vector mGpuVoltsVmin = { + NamedValue("Auto", 0), + NamedValue("480mV", 480), NamedValue("485mV", 485), NamedValue("490mV", 490), + NamedValue("495mV", 495), NamedValue("500mV", 500), NamedValue("505mV", 505), + NamedValue("510mV", 510), NamedValue("515mV", 515), NamedValue("520mV", 520), + NamedValue("525mV", 525), NamedValue("530mV", 530), NamedValue("535mV", 535), + NamedValue("540mV", 540), NamedValue("545mV", 545), NamedValue("550mV", 550), + NamedValue("555mV", 555), NamedValue("560mV", 560), NamedValue("565mV", 565), + NamedValue("570mV", 570), NamedValue("575mV", 575), NamedValue("580mV", 580), + NamedValue("585mV", 585), NamedValue("590mV", 590), NamedValue("595mV", 595), + NamedValue("600mV", 600), NamedValue("605mV", 605), NamedValue("610mV", 610), + NamedValue("615mV", 615), NamedValue("620mV", 620), NamedValue("625mV", 625), + NamedValue("630mV", 630), NamedValue("635mV", 635), NamedValue("640mV", 640), + NamedValue("645mV", 645), NamedValue("650mV", 650), NamedValue("655mV", 655), + NamedValue("660mV", 660), NamedValue("665mV", 665), NamedValue("670mV", 670), + NamedValue("675mV", 675), NamedValue("680mV", 680), NamedValue("685mV", 685), + NamedValue("690mV", 690), NamedValue("695mV", 695), NamedValue("700mV", 700), + NamedValue("705mV", 705), NamedValue("710mV", 710), NamedValue("715mV", 715), + NamedValue("720mV", 720), NamedValue("725mV", 725), NamedValue("730mV", 730), + NamedValue("735mV", 735), NamedValue("740mV", 740), NamedValue("745mV", 745), + NamedValue("750mV", 750), NamedValue("755mV", 755), NamedValue("760mV", 760), + NamedValue("765mV", 765), NamedValue("770mV", 770), NamedValue("775mV", 775), + NamedValue("780mV", 780), NamedValue("785mV", 785), NamedValue("790mV", 790), + NamedValue("795mV", 795), NamedValue("800mV", 800) + }; + + if(IsErista()) { + addConfigButton( + KipConfigValue_eristaGpuUV, + "GPU Undervolt Table", + ValueRange(0, 1, 1, "", 1), + "GPU Undervolt Table", + &thresholdsDisabled, + {}, + gpuUvConf, + false + ); + addConfigButton( + KipConfigValue_eristaGpuVmin, + "GPU Minimum Voltage", + ValueRange(700, 875, 5, "mV", 1), + "GPU Minimum Voltage", + &thresholdsDisabled, + {}, + {}, + false + ); + } else { + addConfigButton( + KipConfigValue_marikoGpuUV, + "GPU Undervolt Table", + ValueRange(0, 1, 1, "", 1), + "GPU Undervolt Table", + &thresholdsDisabled, + {}, + gpuUvConf, + false + ); + + // tsl::elm::ListItem* vminCalcBtn = new tsl::elm::ListItem("Calculate GPU Vmin"); + // vminCalcBtn->setClickListener([this](u64 keys) { + // if (keys & HidNpadButton_A) { + // Result rc = hocClkIpcCalculateGpuVmin(); + // if (R_FAILED(rc)) { + // FatalGui::openWithResultCode("hocClkIpcCalculateGpuVmin", rc); + // return false; + // } + // return true; + // } + // return false; + // }); + + addConfigButton(KipConfigValue_marikoGpuVmin, "GPU VMIN", ValueRange(0, 0, 0, "0", 1), "GPU VMIN", &thresholdsDisabled, {}, mGpuVoltsVmin, false); + ValueThresholds MgpuVmaxThresholds(805, 850); + addConfigButton( + KipConfigValue_marikoGpuVmax, + "GPU Maximum Voltage", + ValueRange(800, 960, 5, "mV", 1), + "GPU Maximum Voltage", + &MgpuVmaxThresholds, + {}, + {}, + false + ); + } + + addConfigButton( + KipConfigValue_commonGpuVoltOffset, + "GPU Voltage Offset", + ValueRange(0, 50, 5, "mV", 1), + "GPU Voltage Offset", + &thresholdsDisabled, + {}, + {}, + false + ); + + std::vector gpuSchedValues = { + NamedValue("Do not override", GpuSchedulingMode_DoNotOverride), + NamedValue("Enabled (Default)", GpuSchedulingMode_Enabled, "96.6% limit"), + NamedValue("Disabled", GpuSchedulingMode_Disabled, "99.7% limit"), + }; + + addConfigButton( + HorizonOCConfigValue_GPUScheduling, + "GPU Scheduling Override", + ValueRange(0, 0, 1, "", 0), + "GPU Scheduling Override", + &thresholdsDisabled, + {}, + gpuSchedValues, + false + ); + + if (IsMariko()) { + std::vector dvfsOffset = { + NamedValue("-80 mV", 0xFFFFFFB0), + NamedValue("-75 mV", 0xFFFFFFB5), + NamedValue("-70 mV", 0xFFFFFFBA), + NamedValue("-65 mV", 0xFFFFFFBF), + NamedValue("-60 mV", 0xFFFFFFC4), + NamedValue("-55 mV", 0xFFFFFFC9), + NamedValue("-50 mV", 0xFFFFFFCE), + NamedValue("-45 mV", 0xFFFFFFD3), + NamedValue("-40 mV", 0xFFFFFFD8), + NamedValue("-30 mV", 0xFFFFFFE2), + NamedValue("-25 mV", 0xFFFFFFE7), + NamedValue("-20 mV", 0xFFFFFFEC), + NamedValue("-15 mV", 0xFFFFFFF1), + NamedValue("-10 mV", 0xFFFFFFF6), + NamedValue(" -5 mV", 0xFFFFFFFB), + NamedValue("Disabled", 0), + NamedValue(" +5 mV", 5), + NamedValue("+10 mV", 10), + NamedValue("+15 mV", 15), + NamedValue("+20 mV", 20), + }; + + std::vector dvfsValues = { + NamedValue("Disabled", DVFSMode_Disabled), + NamedValue("PCV Hijack", DVFSMode_Hijack), + // NamedValue("Official Service", DVFSMode_OfficialService), + }; + + addConfigButton( + HorizonOCConfigValue_DVFSMode, + "GPU DVFS Mode", + ValueRange(0, 0, 1, "", 0), + "GPU DVFS Mode", + &thresholdsDisabled, + {}, + dvfsValues, + false + ); + + addConfigButton(HorizonOCConfigValue_DVFSOffset, "GPU DVFS Offset", ValueRange(0, 12, 1, "", 0), "GPU DVFS Offset", &thresholdsDisabled, {}, dvfsOffset, false); + } + + tsl::elm::ListItem* customTableSubmenu = new tsl::elm::ListItem("GPU Voltage Table"); + customTableSubmenu->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + tsl::changeTo(); + return true; + } + return false; + }); + customTableSubmenu->setValue(R_ARROW); + this->listElement->addItem(customTableSubmenu); + } +}; + +class GpuCustomTableSubmenuGui : public MiscGui { +public: + GpuCustomTableSubmenuGui() { } + +protected: + void listUI() override { + + Result rc = sysclkIpcGetConfigValues(this->configList); // populate config list early otherwise wont work + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + + this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Custom Table (mV)")); + + ValueThresholds MgpuVmaxThresholds(800, 850); + ValueThresholds EgpuVmaxThresholds(950, 975); + + std::vector mGpuVolts = { + NamedValue("Disabled", 2000), + NamedValue("Auto", 0), + NamedValue("480mV", 480), NamedValue("485mV", 485), NamedValue("490mV", 490), + NamedValue("495mV", 495), NamedValue("500mV", 500), NamedValue("505mV", 505), + NamedValue("510mV", 510), NamedValue("515mV", 515), NamedValue("520mV", 520), + NamedValue("525mV", 525), NamedValue("530mV", 530), NamedValue("535mV", 535), + NamedValue("540mV", 540), NamedValue("545mV", 545), NamedValue("550mV", 550), + NamedValue("555mV", 555), NamedValue("560mV", 560), NamedValue("565mV", 565), + NamedValue("570mV", 570), NamedValue("575mV", 575), NamedValue("580mV", 580), + NamedValue("585mV", 585), NamedValue("590mV", 590), NamedValue("595mV", 595), + NamedValue("600mV", 600), NamedValue("605mV", 605), NamedValue("610mV", 610), + NamedValue("615mV", 615), NamedValue("620mV", 620), NamedValue("625mV", 625), + NamedValue("630mV", 630), NamedValue("635mV", 635), NamedValue("640mV", 640), + NamedValue("645mV", 645), NamedValue("650mV", 650), NamedValue("655mV", 655), + NamedValue("660mV", 660), NamedValue("665mV", 665), NamedValue("670mV", 670), + NamedValue("675mV", 675), NamedValue("680mV", 680), NamedValue("685mV", 685), + NamedValue("690mV", 690), NamedValue("695mV", 695), NamedValue("700mV", 700), + NamedValue("705mV", 705), NamedValue("710mV", 710), NamedValue("715mV", 715), + NamedValue("720mV", 720), NamedValue("725mV", 725), NamedValue("730mV", 730), + NamedValue("735mV", 735), NamedValue("740mV", 740), NamedValue("745mV", 745), + NamedValue("750mV", 750), NamedValue("755mV", 755), NamedValue("760mV", 760), + NamedValue("765mV", 765), NamedValue("770mV", 770), NamedValue("775mV", 775), + NamedValue("780mV", 780), NamedValue("785mV", 785), NamedValue("790mV", 790), + NamedValue("795mV", 795), NamedValue("800mV", 800), NamedValue("805mV", 805), + NamedValue("810mV", 810), NamedValue("815mV", 815), NamedValue("820mV", 820), + NamedValue("825mV", 825), NamedValue("830mV", 830), NamedValue("835mV", 835), + NamedValue("840mV", 840), NamedValue("845mV", 845), NamedValue("850mV", 850), + NamedValue("855mV", 855), NamedValue("860mV", 860), NamedValue("865mV", 865), + NamedValue("870mV", 870), NamedValue("875mV", 875), NamedValue("880mV", 880), + NamedValue("885mV", 885), NamedValue("890mV", 890), NamedValue("895mV", 895), + NamedValue("900mV", 900), NamedValue("905mV", 905), NamedValue("910mV", 910), + NamedValue("915mV", 915), NamedValue("920mV", 920), NamedValue("925mV", 925), + NamedValue("930mV", 930), NamedValue("935mV", 935), NamedValue("940mV", 940), + NamedValue("945mV", 945), NamedValue("950mV", 950), NamedValue("955mV", 955), + NamedValue("960mV", 960), + }; + + std::vector eGpuVolts = { + NamedValue("Disabled", 2000), + NamedValue("Auto", 0), + NamedValue("700mV", 700), NamedValue("705mV", 705), NamedValue("710mV", 710), + NamedValue("715mV", 715), NamedValue("720mV", 720), NamedValue("725mV", 725), + NamedValue("730mV", 730), NamedValue("735mV", 735), NamedValue("740mV", 740), + NamedValue("745mV", 745), NamedValue("750mV", 750), NamedValue("755mV", 755), + NamedValue("760mV", 760), NamedValue("765mV", 765), NamedValue("770mV", 770), + NamedValue("775mV", 775), NamedValue("780mV", 780), NamedValue("785mV", 785), + NamedValue("790mV", 790), NamedValue("795mV", 795), NamedValue("800mV", 800), + NamedValue("805mV", 805), NamedValue("810mV", 810), NamedValue("815mV", 815), + NamedValue("820mV", 820), NamedValue("825mV", 825), NamedValue("830mV", 830), + NamedValue("835mV", 835), NamedValue("840mV", 840), NamedValue("845mV", 845), + NamedValue("850mV", 850), NamedValue("855mV", 855), NamedValue("860mV", 860), + NamedValue("865mV", 865), NamedValue("870mV", 870), NamedValue("875mV", 875), + NamedValue("880mV", 880), NamedValue("885mV", 885), NamedValue("890mV", 890), + NamedValue("895mV", 895), NamedValue("900mV", 900), NamedValue("905mV", 905), + NamedValue("910mV", 910), NamedValue("915mV", 915), NamedValue("920mV", 920), + NamedValue("925mV", 925), NamedValue("930mV", 930), NamedValue("935mV", 935), + NamedValue("940mV", 940), NamedValue("945mV", 945), NamedValue("950mV", 950), + NamedValue("955mV", 955), NamedValue("960mV", 960), NamedValue("965mV", 965), + NamedValue("970mV", 970), NamedValue("975mV", 975), NamedValue("980mV", 980), + NamedValue("985mV", 985), NamedValue("990mV", 990), NamedValue("995mV", 995), + }; + + std::vector mGpuVolts_noAuto = { + NamedValue("Disabled", 2000), + NamedValue("480mV", 480), NamedValue("485mV", 485), NamedValue("490mV", 490), + NamedValue("495mV", 495), NamedValue("500mV", 500), NamedValue("505mV", 505), + NamedValue("510mV", 510), NamedValue("515mV", 515), NamedValue("520mV", 520), + NamedValue("525mV", 525), NamedValue("530mV", 530), NamedValue("535mV", 535), + NamedValue("540mV", 540), NamedValue("545mV", 545), NamedValue("550mV", 550), + NamedValue("555mV", 555), NamedValue("560mV", 560), NamedValue("565mV", 565), + NamedValue("570mV", 570), NamedValue("575mV", 575), NamedValue("580mV", 580), + NamedValue("585mV", 585), NamedValue("590mV", 590), NamedValue("595mV", 595), + NamedValue("600mV", 600), NamedValue("605mV", 605), NamedValue("610mV", 610), + NamedValue("615mV", 615), NamedValue("620mV", 620), NamedValue("625mV", 625), + NamedValue("630mV", 630), NamedValue("635mV", 635), NamedValue("640mV", 640), + NamedValue("645mV", 645), NamedValue("650mV", 650), NamedValue("655mV", 655), + NamedValue("660mV", 660), NamedValue("665mV", 665), NamedValue("670mV", 670), + NamedValue("675mV", 675), NamedValue("680mV", 680), NamedValue("685mV", 685), + NamedValue("690mV", 690), NamedValue("695mV", 695), NamedValue("700mV", 700), + NamedValue("705mV", 705), NamedValue("710mV", 710), NamedValue("715mV", 715), + NamedValue("720mV", 720), NamedValue("725mV", 725), NamedValue("730mV", 730), + NamedValue("735mV", 735), NamedValue("740mV", 740), NamedValue("745mV", 745), + NamedValue("750mV", 750), NamedValue("755mV", 755), NamedValue("760mV", 760), + NamedValue("765mV", 765), NamedValue("770mV", 770), NamedValue("775mV", 775), + NamedValue("780mV", 780), NamedValue("785mV", 785), NamedValue("790mV", 790), + NamedValue("795mV", 795), NamedValue("800mV", 800), NamedValue("805mV", 805), + NamedValue("810mV", 810), NamedValue("815mV", 815), NamedValue("820mV", 820), + NamedValue("825mV", 825), NamedValue("830mV", 830), NamedValue("835mV", 835), + NamedValue("840mV", 840), NamedValue("845mV", 845), NamedValue("850mV", 850), + NamedValue("855mV", 855), NamedValue("860mV", 860), NamedValue("865mV", 865), + NamedValue("870mV", 870), NamedValue("875mV", 875), NamedValue("880mV", 880), + NamedValue("885mV", 885), NamedValue("890mV", 890), NamedValue("895mV", 895), + NamedValue("900mV", 900), NamedValue("905mV", 905), NamedValue("910mV", 910), + NamedValue("915mV", 915), NamedValue("920mV", 920), NamedValue("925mV", 925), + NamedValue("930mV", 930), NamedValue("935mV", 935), NamedValue("940mV", 940), + NamedValue("945mV", 945), NamedValue("950mV", 950), NamedValue("955mV", 955), + NamedValue("960mV", 960), + }; + + std::vector eGpuVolts_noAuto = { + NamedValue("Disabled", 2000), + NamedValue("700mV", 700), NamedValue("705mV", 705), NamedValue("710mV", 710), + NamedValue("715mV", 715), NamedValue("720mV", 720), NamedValue("725mV", 725), + NamedValue("730mV", 730), NamedValue("735mV", 735), NamedValue("740mV", 740), + NamedValue("745mV", 745), NamedValue("750mV", 750), NamedValue("755mV", 755), + NamedValue("760mV", 760), NamedValue("765mV", 765), NamedValue("770mV", 770), + NamedValue("775mV", 775), NamedValue("780mV", 780), NamedValue("785mV", 785), + NamedValue("790mV", 790), NamedValue("795mV", 795), NamedValue("800mV", 800), + NamedValue("805mV", 805), NamedValue("810mV", 810), NamedValue("815mV", 815), + NamedValue("820mV", 820), NamedValue("825mV", 825), NamedValue("830mV", 830), + NamedValue("835mV", 835), NamedValue("840mV", 840), NamedValue("845mV", 845), + NamedValue("850mV", 850), NamedValue("855mV", 855), NamedValue("860mV", 860), + NamedValue("865mV", 865), NamedValue("870mV", 870), NamedValue("875mV", 875), + NamedValue("880mV", 880), NamedValue("885mV", 885), NamedValue("890mV", 890), + NamedValue("895mV", 895), NamedValue("900mV", 900), NamedValue("905mV", 905), + NamedValue("910mV", 910), NamedValue("915mV", 915), NamedValue("920mV", 920), + NamedValue("925mV", 925), NamedValue("930mV", 930), NamedValue("935mV", 935), + NamedValue("940mV", 940), NamedValue("945mV", 945), NamedValue("950mV", 950), + NamedValue("955mV", 955), NamedValue("960mV", 960), NamedValue("965mV", 965), + NamedValue("970mV", 970), NamedValue("975mV", 975), NamedValue("980mV", 980), + NamedValue("985mV", 985), NamedValue("990mV", 990), NamedValue("995mV", 995), + }; + + if (IsMariko()) { + + tsl::elm::CustomDrawer* warningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) { + renderer->drawString("\uE150 Setting GPU Clocks past", false, x + 20, y + 30, 18, tsl::style::color::ColorText); + renderer->drawString("1075MHz without UV, 1152MHz on SLT", false, x + 20, y + 50, 18, tsl::style::color::ColorText); + renderer->drawString("or 1228MHz on HiOPT can cause ", false, x + 20, y + 70, 18, tsl::style::color::ColorText); + renderer->drawString("permanent damage to your Switch!", false, x + 20, y + 90, 18, tsl::style::color::ColorText); + renderer->drawString("Proceed at your own risk!", false, x + 20, y + 110, 18, tsl::style::color::ColorText); + }); + warningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 130); + this->listElement->addItem(warningText); + + addConfigButton(KipConfigValue_g_volt_76800, "76.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_153600, "153.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_230400, "230.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_307200, "307.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_384000, "384.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_460800, "460.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_537600, "537.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_614400, "614.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_691200, "691.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_768000, "768.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_844800, "844.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_921600, "921.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_998400, "998.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1075200, "1075.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + if(this->configList->values[KipConfigValue_marikoGpuUV] >= GPUUVLevel_SLT) + addConfigButton(KipConfigValue_g_volt_1152000, "1152.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + if(this->configList->values[KipConfigValue_marikoGpuUV] >= GPUUVLevel_HiOPT) { + addConfigButton(KipConfigValue_g_volt_1228800, "1228.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1267200, "1267.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1305600, "1305.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1344000, "1344.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_1382400, "1382.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_1420800, "1420.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_1459200, "1459.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_1497600, "1497.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_1536000, "1536.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false); + } + + } else { + + tsl::elm::CustomDrawer* warningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) { + renderer->drawString("\uE150 Setting GPU Clocks past", false, x + 20, y + 30, 18, tsl::style::color::ColorText); + renderer->drawString("921MHz without UV and 960MHz on", false, x + 20, y + 50, 18, tsl::style::color::ColorText); + renderer->drawString("SLT or HiOPT can cause ", false, x + 20, y + 70, 18, tsl::style::color::ColorText); + renderer->drawString("permanent damage to your Switch!", false, x + 20, y + 90, 18, tsl::style::color::ColorText); + renderer->drawString("Proceed at your own risk!", false, x + 20, y + 110, 18, tsl::style::color::ColorText); + }); + warningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 130); + this->listElement->addItem(warningText); + + addConfigButton(KipConfigValue_g_volt_e_76800, "76.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_115200, "115.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_153600, "153.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_192000, "192.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_230400, "230.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_268800, "268.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_307200, "307.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_345600, "345.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_384000, "384.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_422400, "422.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_460800, "460.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_499200, "499.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_537600, "537.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_576000, "576.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_614400, "614.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_652800, "652.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_691200, "691.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_729600, "729.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_768000, "768.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_806400, "806.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_844800, "844.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_883200, "883.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_921600, "921.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + if(this->configList->values[KipConfigValue_eristaGpuUV] >= GPUUVLevel_SLT) + addConfigButton(KipConfigValue_g_volt_e_960000, "960.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + if(this->configList->values[KipConfigValue_eristaGpuUV] >= GPUUVLevel_HiOPT) { + addConfigButton(KipConfigValue_g_volt_e_998400, "998.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_1036800, "1036.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts_noAuto, false); + addConfigButton(KipConfigValue_g_volt_e_1075200, "1075.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts_noAuto, false); + } + } + } +}; + + +static std::string getValueDisplayText(uint64_t currentValue, + const ValueRange& range, + const std::vector& namedValues) +{ + char valueText[32]; + + for (const auto& namedValue : namedValues) { + if (currentValue == namedValue.value) { + return namedValue.name; + } + } + + if (currentValue == 0) { + snprintf(valueText, sizeof(valueText), "%s", VALUE_DEFAULT_TEXT); + } else { + uint64_t displayValue = currentValue / range.divisor; + if (!range.suffix.empty()) { + snprintf(valueText, sizeof(valueText), "%lu %s", displayValue, range.suffix.c_str()); + } else { + snprintf(valueText, sizeof(valueText), "%lu", displayValue); + } + } + return std::string(valueText); +} + +void MiscGui::refresh() { + BaseMenuGui::refresh(); + + if (this->context && ++frameCounter >= 60) { + frameCounter = 0; + + Result rc = sysclkIpcGetConfigValues(this->configList); + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } + updateConfigToggles(); + + for (const auto& [configVal, button] : this->configButtons) { + uint64_t currentValue = this->configList->values[configVal]; + const ValueRange& range = this->configRanges[configVal]; + + auto namedValuesIt = this->configNamedValues.find(configVal); + const std::vector& namedValues = (namedValuesIt != this->configNamedValues.end()) + ? namedValuesIt->second + : std::vector(); + + char valueText[32]; + + bool foundNamedValue = false; + for (const auto& namedValue : namedValues) { + if (currentValue == namedValue.value) { + snprintf(valueText, sizeof(valueText), "%s", namedValue.name.c_str()); + foundNamedValue = true; + break; + } + } + + if (!foundNamedValue) { + uint64_t displayValue = currentValue / range.divisor; + if (!range.suffix.empty()) { + snprintf(valueText, sizeof(valueText), "%lu %s", displayValue, range.suffix.c_str()); + } else { + snprintf(valueText, sizeof(valueText), "%lu", displayValue); + } + } + + if (this->configButtonSKeys.count(configVal)) { + button->setText(valueText); + auto subtextIt = this->configButtonSSubtext.find(configVal); + if (subtextIt != this->configButtonSSubtext.end()) + button->setValue(subtextIt->second); + else + button->setValue(""); + } else { + button->setValue(valueText); + } + } + } +} diff --git a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h new file mode 100644 index 00000000..3c2bd71d --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.h @@ -0,0 +1,72 @@ +/* + * + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include "../../ipc.h" +#include "base_menu_gui.h" +#include +#include +#include +#include +#include "freq_choice_gui.h" +#include "value_choice_gui.h" +class MiscGui : public BaseMenuGui +{ +public: + MiscGui(); + ~MiscGui(); + void listUI() override; + void refresh() override; + +protected: + SysClkConfigValueList* configList; + std::map configButtons; + std::map configRanges; + std::map> configNamedValues; + std::map configToggles; + std::map>> configTrackbars; + std::set configButtonSKeys; + std::map configButtonSSubtext; + + void addConfigToggle(SysClkConfigValue configVal, const char* altName); + void addConfigButton(SysClkConfigValue configVal, + const char* altName, + const ValueRange& range, + const std::string& categoryName, + const ValueThresholds* thresholds, + const std::map& labels = {}, + const std::vector& namedValues = {}, + bool showDefaultValue = true); + + void addConfigButtonS(SysClkConfigValue configVal, + const char* altName, + const ValueRange& range, + const std::string& categoryName, + const ValueThresholds* thresholds, + const std::map& labels = {}, + const std::vector& namedValues = {}, + bool showDefaultValue = true, + const char* subText = nullptr); + void addFreqButton(SysClkConfigValue configVal, + const char* altName, + SysClkModule module, + const std::map& labels = {}); + void updateConfigToggles(); + + tsl::elm::ToggleListItem* enabledToggle; + u8 frameCounter = 60; +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/ult_ext.h b/Source/hoc-clk/overlay/src/ui/gui/ult_ext.h new file mode 100644 index 00000000..82267fd9 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/ult_ext.h @@ -0,0 +1,126 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include + +class ImageElement : public tsl::elm::ListItem { +private: + const uint8_t* imgData; + uint32_t imgWidth, imgHeight; + bool visible; + +public: + ImageElement(const uint8_t* data, uint32_t w, uint32_t h) + : tsl::elm::ListItem(""), imgData(data), imgWidth(w), imgHeight(h), visible(true) {} + + void setVisible(bool v) { + visible = v; + } + + virtual void draw(tsl::gfx::Renderer *renderer) override { + if (!visible) return; + + // Draw image centered horizontally + u16 centerX = this->getX() + (this->getWidth() - imgWidth) / 2; + renderer->drawBitmap( + centerX, + this->getY() + 10, + imgWidth, + imgHeight, + imgData + ); + } + + virtual void layout(u16 parentX, u16 parentY, u16 parentWidth, u16 parentHeight) override { + if (!visible) { + // Take up no space when hidden + this->setBoundaries(parentX, parentY, 0, 0); + } else { + // Normal layout when visible + tsl::elm::ListItem::layout(parentX, parentY, parentWidth, parentHeight); + } + } + + virtual void drawHighlight(tsl::gfx::Renderer *renderer) override { + // Do nothing - no highlight + } + + virtual bool onClick(u64 keys) override { + return false; // Non-clickable + } + + virtual Element* requestFocus(Element *oldFocus, tsl::FocusDirection direction) override { + return nullptr; // Make it non-focusable + } +}; + +class HideableCategoryHeader : public tsl::elm::CategoryHeader { +private: + bool visible; + +public: + HideableCategoryHeader(const std::string& title) + : tsl::elm::CategoryHeader(title), visible(true) {} + + void setVisible(bool v) { + visible = v; + } + + virtual void draw(tsl::gfx::Renderer *renderer) override { + if (!visible) return; + tsl::elm::CategoryHeader::draw(renderer); + } + + virtual void layout(u16 parentX, u16 parentY, u16 parentWidth, u16 parentHeight) override { + if (!visible) { + this->setBoundaries(parentX, parentY, 0, 0); + } else { + tsl::elm::CategoryHeader::layout(parentX, parentY, parentWidth, parentHeight); + } + } +}; + +class HideableCustomDrawer : public tsl::elm::Element { +private: + bool visible; + u32 height; + +public: + HideableCustomDrawer(u32 h) + : Element(), visible(true), height(h) {} + + void setVisible(bool v) { + visible = v; + } + + virtual void draw(tsl::gfx::Renderer *renderer) override { + // Empty drawer - just for spacing + } + + virtual void layout(u16 parentX, u16 parentY, u16 parentWidth, u16 parentHeight) override { + if (!visible) { + this->setBoundaries(parentX, parentY, 0, 0); + } else { + this->setBoundaries(parentX, parentY, parentWidth, height); + } + } + + virtual Element* requestFocus(Element *oldFocus, tsl::FocusDirection direction) override { + return nullptr; + } +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.cpp new file mode 100644 index 00000000..9b8d6265 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.cpp @@ -0,0 +1,200 @@ + +/* + * + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 "value_choice_gui.h" +#include "../format.h" +#include "fatal_gui.h" +#include +#include + +ValueChoiceGui::ValueChoiceGui(std::uint32_t selectedValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds, + bool enableThresholds, + std::map labels, + std::vector namedValues, + bool showDefaultValue, + bool showDNO) + : selectedValue(selectedValue), + range(range), + categoryName(categoryName), + listener(listener), + thresholds(thresholds), + enableThresholds(enableThresholds), + labels(labels), + namedValues(namedValues), + showDefaultValue(showDefaultValue), + showDNO(showDNO) +{ +} + +ValueChoiceGui::~ValueChoiceGui() +{ +} + +std::string ValueChoiceGui::formatValue(std::uint32_t value) +{ + std::ostringstream oss; + if(showDefaultValue) { + if (value == 0) { + return this->showDNO ? FREQ_DEFAULT_TEXT : VALUE_DEFAULT_TEXT; + } + } + double displayValue = static_cast(value) / static_cast(range.divisor); + oss << std::fixed << std::setprecision(range.decimalPlaces) << displayValue; + if (!range.suffix.empty()) { + oss << " " << range.suffix; + } + return oss.str(); +} + +int ValueChoiceGui::getSafetyLevel(std::uint32_t value) +{ + if(thresholds.warning == 0 && thresholds.danger == 0) { + return 0; + } + + if (value > thresholds.danger) { + return 2; + } + if (value > thresholds.warning) { + return 1; + } + return 0; +} + +tsl::elm::ListItem* ValueChoiceGui::createValueListItem(std::uint32_t value, bool selected, int safety) +{ + std::string text = formatValue(value); + std::string rightText = ""; + + auto it = labels.find(value); + if (it != labels.end()) { + rightText = it->second; + } + + if (selected) { + const_cast(rightText) = "\uE14B"; + } + + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(text, rightText, false); + switch (safety) + { + case 0: + listItem->setTextColor(tsl::Color(255, 255, 255, 255)); + listItem->setValueColor(tsl::Color(255, 255, 255, 255)); + break; + case 1: + listItem->setTextColor(tsl::Color(255, 165, 0, 255)); + listItem->setValueColor(tsl::Color(255, 165, 0, 255)); + break; + case 2: + listItem->setTextColor(tsl::Color(255, 0, 0, 255)); + listItem->setValueColor(tsl::Color(255, 0, 0, 255)); + break; + } + + // Make annotation grey + if (!rightText.empty() && !selected) + listItem->setValueColor(tsl::Color(180, 180, 180, 255)); + else if(selected) + listItem->setValueColor(tsl::infoTextColor); + + listItem->setClickListener([this, value](u64 keys) + { + if ((keys & HidNpadButton_A) == HidNpadButton_A && this->listener) { + if (this->listener(value)) { + tsl::goBack(); + } + return true; + } + return false; + }); + return listItem; +} + +tsl::elm::ListItem* ValueChoiceGui::createNamedValueListItem(const NamedValue& namedValue, bool selected, int safety) +{ + std::string text = namedValue.name; + if (selected) { + const_cast(namedValue.rightText) = "\uE14B"; + } + + tsl::elm::ListItem* listItem = new tsl::elm::ListItem(text, namedValue.rightText, false); + switch (safety) + { + case 0: + listItem->setTextColor(tsl::Color(255, 255, 255, 255)); + listItem->setValueColor(tsl::Color(255, 255, 255, 255)); + break; + case 1: + listItem->setTextColor(tsl::Color(255, 165, 0, 255)); + listItem->setValueColor(tsl::Color(255, 165, 0, 255)); + break; + case 2: + listItem->setTextColor(tsl::Color(255, 0, 0, 255)); + listItem->setValueColor(tsl::Color(255, 0, 0, 255)); + break; + } + + if (!namedValue.rightText.empty() && !selected) + listItem->setValueColor(tsl::Color(180, 180, 180, 255)); + else if(selected) + listItem->setValueColor(tsl::infoTextColor); + + listItem->setClickListener([this, value = namedValue.value](u64 keys) + { + if ((keys & HidNpadButton_A) == HidNpadButton_A && this->listener) { + if (this->listener(value)) { + tsl::goBack(); + } + return true; + } + return false; + }); + return listItem; +} + +void ValueChoiceGui::listUI() +{ + if (!categoryName.empty()) { + this->listElement->addItem(new tsl::elm::CategoryHeader(categoryName)); + } + + if (showDefaultValue) { + this->listElement->addItem(this->createValueListItem(0, this->selectedValue == 0, 0)); + } + for (const auto& namedValue : namedValues) { + int safety = enableThresholds ? getSafetyLevel(namedValue.value) : 0; + bool selected = (namedValue.value == this->selectedValue); + this->listElement->addItem(this->createNamedValueListItem(namedValue, selected, safety)); + } + + if (namedValues.empty()) { + for (std::uint32_t value = range.min; value <= range.max; value += range.step) + { + int safety = getSafetyLevel(value); + bool selected = (value == this->selectedValue); + this->listElement->addItem(this->createValueListItem(value, selected, safety)); + } + } + + this->listElement->jumpToItem("", "\uE14B"); +} \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h new file mode 100644 index 00000000..49c7883d --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/gui/value_choice_gui.h @@ -0,0 +1,114 @@ + +/* + * + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 +#include +#include +#include +#include +#include +#include "base_menu_gui.h" + +using ValueChoiceListener = std::function; +#define VALUE_DEFAULT_TEXT "Default" + +struct ValueRange { + std::uint32_t min; + std::uint32_t max; + std::uint32_t step; + std::string suffix; + std::uint32_t divisor; + int decimalPlaces; + ValueRange() + : min(0), max(0), step(1), suffix(""), divisor(1), decimalPlaces(0) {} + ValueRange(std::uint32_t min, std::uint32_t max, std::uint32_t step, + const std::string& suffix = "", std::uint32_t divisor = 1, int decimalPlaces = 0) + : min(min), max(max), step(step), suffix(suffix), + divisor(divisor), decimalPlaces(decimalPlaces) {} +}; + +struct ValueThresholds { + std::uint32_t warning; + std::uint32_t danger; + ValueThresholds(std::uint32_t warning = 0, std::uint32_t danger = 0) + : warning(warning), danger(danger) {} +}; + +struct NamedValue { + std::string name; + std::uint32_t value; + std::string rightText; + + NamedValue(const std::string& name, std::uint32_t value, const std::string& rightText = "") + : name(name), value(value), rightText(rightText) {} +}; + +class ValueChoiceGui : public BaseMenuGui +{ +protected: + std::uint32_t selectedValue; + ValueRange range; + std::string categoryName; + ValueChoiceListener listener; + ValueThresholds thresholds; + bool enableThresholds; + std::map labels; + + std::vector namedValues; + bool showDefaultValue = true; + bool showDNO = false; + tsl::elm::ListItem* createValueListItem(std::uint32_t value, bool selected, int safety); + tsl::elm::ListItem* createNamedValueListItem(const NamedValue& namedValue, bool selected, int safety); + std::string formatValue(std::uint32_t value); + int getSafetyLevel(std::uint32_t value); + +public: + ValueChoiceGui(std::uint32_t selectedValue, + const ValueRange& range, + const std::string& categoryName, + ValueChoiceListener listener, + const ValueThresholds& thresholds = ValueThresholds(), + bool enableThresholds = false, + std::map labels = {}, + std::vector namedValues = {}, + bool showDefaultValue = true, + bool showDNO = false); + ~ValueChoiceGui(); + + void addNamedValue(const std::string& name, std::uint32_t value, const std::string& rightText = "") + { + namedValues.emplace_back(name, value, rightText); + } + + void addNamedValues(const std::vector& values) + { + namedValues.insert(namedValues.end(), values.begin(), values.end()); + } + + void clearNamedValues() + { + namedValues.clear(); + } + + void setShowDefaultValue(bool show) + { + showDefaultValue = show; + } + + void listUI() override; +}; \ No newline at end of file diff --git a/Source/hoc-clk/overlay/src/ui/style.h b/Source/hoc-clk/overlay/src/ui/style.h new file mode 100644 index 00000000..45692881 --- /dev/null +++ b/Source/hoc-clk/overlay/src/ui/style.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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 . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + + +#pragma once + +#include + +#define TEXT_COLOR tsl::gfx::Renderer::a(0xFFFF) +#define DESC_COLOR tsl::gfx::Renderer::a({ 0xC, 0xC, 0xC, 0xF }) +#define VALUE_COLOR tsl::gfx::Renderer::a({ 0x5, 0xC, 0xA, 0xF }) +#define SMALL_TEXT_SIZE 15 +#define LABEL_SPACING 7 +#define LABEL_FONT_SIZE 15 diff --git a/Source/hoc-clk/sysmodule/.gitignore b/Source/hoc-clk/sysmodule/.gitignore new file mode 100644 index 00000000..36a52c92 --- /dev/null +++ b/Source/hoc-clk/sysmodule/.gitignore @@ -0,0 +1,2 @@ +/out +/build diff --git a/Source/rewrite-hoc-clk/sysmodule/Makefile b/Source/hoc-clk/sysmodule/Makefile similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/Makefile rename to Source/hoc-clk/sysmodule/Makefile diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/.gitignore b/Source/hoc-clk/sysmodule/lib/minIni/.gitignore similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/.gitignore rename to Source/hoc-clk/sysmodule/lib/minIni/.gitignore diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/.gitrepo b/Source/hoc-clk/sysmodule/lib/minIni/.gitrepo similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/.gitrepo rename to Source/hoc-clk/sysmodule/lib/minIni/.gitrepo diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/LICENSE b/Source/hoc-clk/sysmodule/lib/minIni/LICENSE similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/LICENSE rename to Source/hoc-clk/sysmodule/lib/minIni/LICENSE diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/Makefile b/Source/hoc-clk/sysmodule/lib/minIni/Makefile similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/Makefile rename to Source/hoc-clk/sysmodule/lib/minIni/Makefile diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/NOTICE b/Source/hoc-clk/sysmodule/lib/minIni/NOTICE similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/NOTICE rename to Source/hoc-clk/sysmodule/lib/minIni/NOTICE diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/README.md b/Source/hoc-clk/sysmodule/lib/minIni/README.md similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/README.md rename to Source/hoc-clk/sysmodule/lib/minIni/README.md diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-FatFs.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-FatFs.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-FatFs.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-FatFs.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-ccs.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-ccs.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-ccs.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-ccs.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-efsl.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-efsl.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-efsl.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-efsl.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-ffs.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-ffs.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-ffs.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-ffs.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-mdd.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-mdd.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-mdd.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-mdd.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-stdio.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-stdio.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue-stdio.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue-stdio.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minGlue.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minGlue.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minIni.c b/Source/hoc-clk/sysmodule/lib/minIni/dev/minIni.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minIni.c rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minIni.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minIni.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/minIni.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/minIni.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/minIni.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test.c b/Source/hoc-clk/sysmodule/lib/minIni/dev/test.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test.c rename to Source/hoc-clk/sysmodule/lib/minIni/dev/test.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test.ini b/Source/hoc-clk/sysmodule/lib/minIni/dev/test.ini similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test.ini rename to Source/hoc-clk/sysmodule/lib/minIni/dev/test.ini diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test2.cc b/Source/hoc-clk/sysmodule/lib/minIni/dev/test2.cc similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/test2.cc rename to Source/hoc-clk/sysmodule/lib/minIni/dev/test2.cc diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/testplain.ini b/Source/hoc-clk/sysmodule/lib/minIni/dev/testplain.ini similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/testplain.ini rename to Source/hoc-clk/sysmodule/lib/minIni/dev/testplain.ini diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/wxMinIni.h b/Source/hoc-clk/sysmodule/lib/minIni/dev/wxMinIni.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/dev/wxMinIni.h rename to Source/hoc-clk/sysmodule/lib/minIni/dev/wxMinIni.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/doc/minIni.pdf b/Source/hoc-clk/sysmodule/lib/minIni/doc/minIni.pdf similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/doc/minIni.pdf rename to Source/hoc-clk/sysmodule/lib/minIni/doc/minIni.pdf diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/minIni/include/minIni.h b/Source/hoc-clk/sysmodule/lib/minIni/include/minIni.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/minIni/include/minIni.h rename to Source/hoc-clk/sysmodule/lib/minIni/include/minIni.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/.gitignore b/Source/hoc-clk/sysmodule/lib/nxExt/.gitignore similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/.gitignore rename to Source/hoc-clk/sysmodule/lib/nxExt/.gitignore diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/Makefile b/Source/hoc-clk/sysmodule/lib/nxExt/Makefile similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/Makefile rename to Source/hoc-clk/sysmodule/lib/nxExt/Makefile diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/apm_ext.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/apm_ext.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/apm_ext.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/apm_ext.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/cpp/lockable_mutex.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/cpp/lockable_mutex.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/cpp/lockable_mutex.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/cpp/lockable_mutex.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/i2c.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/i2c.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/i2c.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/i2c.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/ipc_server.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/ipc_server.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/ipc_server.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/ipc_server.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/max17050.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/max17050.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/max17050.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/max17050.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/t210.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/t210.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/t210.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/t210.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/tmp451.h b/Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/tmp451.h similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/include/nxExt/tmp451.h rename to Source/hoc-clk/sysmodule/lib/nxExt/include/nxExt/tmp451.h diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/apm_ext.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/apm_ext.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/apm_ext.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/apm_ext.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/i2c.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/i2c.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/i2c.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/i2c.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/ipc_server.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/ipc_server.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/ipc_server.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/ipc_server.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/max17050.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/max17050.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/max17050.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/max17050.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/t210.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/t210.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/t210.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/t210.c diff --git a/Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/tmp451.c b/Source/hoc-clk/sysmodule/lib/nxExt/src/tmp451.c similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/lib/nxExt/src/tmp451.c rename to Source/hoc-clk/sysmodule/lib/nxExt/src/tmp451.c diff --git a/Source/rewrite-hoc-clk/sysmodule/perms.json b/Source/hoc-clk/sysmodule/perms.json similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/perms.json rename to Source/hoc-clk/sysmodule/perms.json diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp b/Source/hoc-clk/sysmodule/src/board/board.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board.cpp rename to Source/hoc-clk/sysmodule/src/board/board.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp b/Source/hoc-clk/sysmodule/src/board/board.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board.hpp rename to Source/hoc-clk/sysmodule/src/board/board.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_freq.cpp b/Source/hoc-clk/sysmodule/src/board/board_freq.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_freq.cpp rename to Source/hoc-clk/sysmodule/src/board/board_freq.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_freq.hpp b/Source/hoc-clk/sysmodule/src/board/board_freq.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_freq.hpp rename to Source/hoc-clk/sysmodule/src/board/board_freq.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_fuse.cpp b/Source/hoc-clk/sysmodule/src/board/board_fuse.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_fuse.cpp rename to Source/hoc-clk/sysmodule/src/board/board_fuse.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_fuse.hpp b/Source/hoc-clk/sysmodule/src/board/board_fuse.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_fuse.hpp rename to Source/hoc-clk/sysmodule/src/board/board_fuse.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_load.cpp b/Source/hoc-clk/sysmodule/src/board/board_load.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_load.cpp rename to Source/hoc-clk/sysmodule/src/board/board_load.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_load.hpp b/Source/hoc-clk/sysmodule/src/board/board_load.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_load.hpp rename to Source/hoc-clk/sysmodule/src/board/board_load.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.cpp b/Source/hoc-clk/sysmodule/src/board/board_misc.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.cpp rename to Source/hoc-clk/sysmodule/src/board/board_misc.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.hpp b/Source/hoc-clk/sysmodule/src/board/board_misc.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.hpp rename to Source/hoc-clk/sysmodule/src/board/board_misc.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_name.cpp b/Source/hoc-clk/sysmodule/src/board/board_name.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_name.cpp rename to Source/hoc-clk/sysmodule/src/board/board_name.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_name.hpp b/Source/hoc-clk/sysmodule/src/board/board_name.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_name.hpp rename to Source/hoc-clk/sysmodule/src/board/board_name.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.cpp b/Source/hoc-clk/sysmodule/src/board/board_profile.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.cpp rename to Source/hoc-clk/sysmodule/src/board/board_profile.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.hpp b/Source/hoc-clk/sysmodule/src/board/board_profile.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.hpp rename to Source/hoc-clk/sysmodule/src/board/board_profile.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_sensor.cpp b/Source/hoc-clk/sysmodule/src/board/board_sensor.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_sensor.cpp rename to Source/hoc-clk/sysmodule/src/board/board_sensor.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_sensor.hpp b/Source/hoc-clk/sysmodule/src/board/board_sensor.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_sensor.hpp rename to Source/hoc-clk/sysmodule/src/board/board_sensor.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_volt.cpp b/Source/hoc-clk/sysmodule/src/board/board_volt.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_volt.cpp rename to Source/hoc-clk/sysmodule/src/board/board_volt.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_volt.hpp b/Source/hoc-clk/sysmodule/src/board/board_volt.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/board_volt.hpp rename to Source/hoc-clk/sysmodule/src/board/board_volt.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/display_refresh_rate.cpp b/Source/hoc-clk/sysmodule/src/board/display_refresh_rate.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/display_refresh_rate.cpp rename to Source/hoc-clk/sysmodule/src/board/display_refresh_rate.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/display_refresh_rate.hpp b/Source/hoc-clk/sysmodule/src/board/display_refresh_rate.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/board/display_refresh_rate.hpp rename to Source/hoc-clk/sysmodule/src/board/display_refresh_rate.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/clock_manager.cpp b/Source/hoc-clk/sysmodule/src/clock_manager.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/clock_manager.cpp rename to Source/hoc-clk/sysmodule/src/clock_manager.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/clock_manager.hpp b/Source/hoc-clk/sysmodule/src/clock_manager.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/clock_manager.hpp rename to Source/hoc-clk/sysmodule/src/clock_manager.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/config.cpp b/Source/hoc-clk/sysmodule/src/config.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/config.cpp rename to Source/hoc-clk/sysmodule/src/config.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/config.hpp b/Source/hoc-clk/sysmodule/src/config.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/config.hpp rename to Source/hoc-clk/sysmodule/src/config.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/errors.cpp b/Source/hoc-clk/sysmodule/src/errors.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/errors.cpp rename to Source/hoc-clk/sysmodule/src/errors.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/errors.hpp b/Source/hoc-clk/sysmodule/src/errors.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/errors.hpp rename to Source/hoc-clk/sysmodule/src/errors.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/file_utils.cpp b/Source/hoc-clk/sysmodule/src/file_utils.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/file_utils.cpp rename to Source/hoc-clk/sysmodule/src/file_utils.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/file_utils.hpp b/Source/hoc-clk/sysmodule/src/file_utils.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/file_utils.hpp rename to Source/hoc-clk/sysmodule/src/file_utils.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/governor.cpp b/Source/hoc-clk/sysmodule/src/governor.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/governor.cpp rename to Source/hoc-clk/sysmodule/src/governor.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/governor.hpp b/Source/hoc-clk/sysmodule/src/governor.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/governor.hpp rename to Source/hoc-clk/sysmodule/src/governor.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/integrations.cpp b/Source/hoc-clk/sysmodule/src/integrations.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/integrations.cpp rename to Source/hoc-clk/sysmodule/src/integrations.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/integrations.hpp b/Source/hoc-clk/sysmodule/src/integrations.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/integrations.hpp rename to Source/hoc-clk/sysmodule/src/integrations.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/ipc_service.cpp b/Source/hoc-clk/sysmodule/src/ipc_service.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/ipc_service.cpp rename to Source/hoc-clk/sysmodule/src/ipc_service.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/ipc_service.hpp b/Source/hoc-clk/sysmodule/src/ipc_service.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/ipc_service.hpp rename to Source/hoc-clk/sysmodule/src/ipc_service.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/kip.cpp b/Source/hoc-clk/sysmodule/src/kip.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/kip.cpp rename to Source/hoc-clk/sysmodule/src/kip.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/kip.hpp b/Source/hoc-clk/sysmodule/src/kip.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/kip.hpp rename to Source/hoc-clk/sysmodule/src/kip.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/main.cpp b/Source/hoc-clk/sysmodule/src/main.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/main.cpp rename to Source/hoc-clk/sysmodule/src/main.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/process_management.cpp b/Source/hoc-clk/sysmodule/src/process_management.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/process_management.cpp rename to Source/hoc-clk/sysmodule/src/process_management.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/process_management.hpp b/Source/hoc-clk/sysmodule/src/process_management.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/process_management.hpp rename to Source/hoc-clk/sysmodule/src/process_management.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/soctherm.cpp b/Source/hoc-clk/sysmodule/src/soctherm.cpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/soctherm.cpp rename to Source/hoc-clk/sysmodule/src/soctherm.cpp diff --git a/Source/rewrite-hoc-clk/sysmodule/src/soctherm.hpp b/Source/hoc-clk/sysmodule/src/soctherm.hpp similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/src/soctherm.hpp rename to Source/hoc-clk/sysmodule/src/soctherm.hpp diff --git a/Source/rewrite-hoc-clk/sysmodule/toolbox.json b/Source/hoc-clk/sysmodule/toolbox.json similarity index 100% rename from Source/rewrite-hoc-clk/sysmodule/toolbox.json rename to Source/hoc-clk/sysmodule/toolbox.json diff --git a/Source/sys-clk/overlay/Makefile b/Source/sys-clk/overlay/Makefile index 1f8312f8..09339ff1 100644 --- a/Source/sys-clk/overlay/Makefile +++ b/Source/sys-clk/overlay/Makefile @@ -39,7 +39,7 @@ include ${TOPDIR}/lib/libultrahand/ultrahand.mk # version control constants #--------------------------------------------------------------------------------- #TARGET_VERSION := $(shell git describe --dirty --always --tags) -APP_VERSION := 1.1.0 +APP_VERSION := 1.2.0 TARGET_VERSION := $(APP_VERSION) #--------------------------------------------------------------------------------- diff --git a/build.sh b/build.sh index 57681e59..0a36c578 100644 --- a/build.sh +++ b/build.sh @@ -13,7 +13,7 @@ hactool -t kip1 out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=hoc cd ../../../ # exit cp build/stratosphere/loader/hoc.kip dist/atmosphere/kips/hoc.kip -cd Source/sys-clk/ +cd Source/hoc-clk/ ./build.sh cp -r dist/ ../../ diff --git a/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp b/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp index 9d882880e92f69568aadae9b1fd5217b3954760b..bb078c983e17bc06a791ede9212e81d8f5b3a805 100644 GIT binary patch delta 92647 zcmZs@3wTu3)jzz>WiCl3m$~FZh-79GAQ_?r2#{bXCl?SE6(+Gor7{UrQK%9U6(#jd zASxEDInF2uv+2Nh_wN&>m^K}KOq%AI_0-MZ zUKN@y{&mZT+TOc=H|g%RbDlgAc<*B7?8XOw^3S&?hi`xLa{XtIjrx4=y>}nJ+4)ZY zvI}b3BNu-C#fQT$oH^0;+BXjtHxGRM!F^ibi&fU-%qw3U`0IbZ&i(6ziJQA>lIwo( z7oSHcRNrqVTU?^xWl0ELk;VkCN~F=1L`H*183U`x|E)~tE5D+6L>d+BmvVyx(&*r# zX7WdnPYbI<{YV`}RqBzfSN5hm% zCpO3AQ$94yfq{6Po3n=vQej<#IcM%z&}f@&8KYR ze7bGXocPN5Wc~4cns{Xc7v6=!MijQAaOLdyA{5>?pUmIPCo#j9CfzH3==c3dDi(j^ z_jO2f#O;3H38_YW!SB0CF1_h#|2{I>Xm(gy{Ar08El#0$K%j1(<@FZdqw+Y_znc8F z9}=XnIGBghy+BU0Xx2RAlz4YC`8|`X;|GxPDh5-O__Z|$Iv@H8+15!(A_-TeVLDeE z2PJm@b067w6bHowFFK*2*>QoCiYlV%VcPN02)6QxDiqp(=Jrt5F!`^o>FHDzYP`1Q z!!Ci&OFe^_0H)@$?kE33YM47aPNcL_bQIC7PcZ{m%LVcWxbuLhjcjK?(DDOfNSG(Y zdGI{CkWFSyz|M*uvzD(=h0sb}f&zG<9GYbmx}2>d4isu!NEI?DuI3j}2=zkw>*X%- zs;)~Yr+EHq3f0qCdqF9+=jTvJFjBmnbcHl7Fusr)778Jull(O4+M3^I2(j@@1K(Q7 z4>XiLdnft7c98#49{J5Tk^g5h`MXDYEH#(>e?Z=3^!Kt8bx?PfOwk=8)&IDK{6KTuVN~LFV5uKF zyOMmhvKGKdFSU3nW-67nZTO(M>-!=?Aol7C@_&x$a`*MBWIlLUh>pDv{S3ZA+8ONg zr%z$Ovz53Pl*0S|XM77X_pemscTy9!wB8|;wvu9L9$9Ng-!i5oV2KW+tX)ndvbnj3 z6pBe((D)H_eiFG%b`Q1e5exSJ)T1+$(1Mqr`aby|w9_(Ma2VwQaq6`-@3#trqX%); zJ>qyx9gySstwL8mwhAabPj-j)sRk6GClb7UktsQJ%WBy$H+OWb)ct`;T>!&*X%*S#$x?|f+Td*@fB*H5EQyIAWfGQ0_L2rB zTmNJk=u)6E8GW=XvL@BveoVBJ1$5$iPVaRCsU6g<)0}4VufteNiullZ`_%r4N=Q7{ zdTeP1ZD?H9xUX8Esglv_7SW&@9hFlor^uk$(2nbqtc2(%_T#fiTn@a|x8a*ltQYjU zNH3Pi?+_^F-`M2dDVxbq@Re~h4a>a-?P>;y4P(ieX!u&9EKIetle}*A1PPcJC28kT z;WXL}>uob~1Z#ed@NzS0A7gE$If8A%$&4H!ADPyIzXHlK<_J+;4^P0TgczqYFac&- zCh=uV;4C_N!6w+ge4mHSS3)06L245+qT_yroUc$E!6_a{s4uwJUf8vYmqVMYpNSZ@ z=Q7qK+c&xcp*N6E%Ojh%=U%B5q&<3RsW_Yzz+nBretQyj0t*UY_kbBoM2K2dJvH@6 zRF7s&y9KIG2ZzX)sR^g3-UIS{A}NE0tWlt-KHo@DWIO7KHoL?7-dy!x%xRX9ntIV5 z%*l~Rl+)m!A5QXZyLpWIB?_$~P34YPTuIbN?O-og5>u(O-R=F;uU37Aa-#L_$YXD; zIz9q#b1UQCTy+$1#J9`+w~;)r`!7hJ!#1wV@Va+_4BEk9C0oJP=Q6Oht%|Q-5?s`( z+q#aV4bLs}?8CzP-jqpQkWad^OMq_ALeD-%(9+eOeT~52Vv?6Xl1S9+f%J!0KeX?( zQn+E3TzmH8>xue^qz}e+i?!&)y(}dvB_$G@Jfhd_0_N;EE+5)Uq*(G)ug>cpi!2dq zS&Ov@sJ?g{`RjED4s_P=#PyY4cV1G!)My7Kk4h>sM3WUjS!lEs6$e1$ki{;h!}Di^ z%n$PnLt}@akqk;=FeS9h+ET6B^P{#gb?Jo2d5S5VM0yRx0a{w(a=}G%1uxu2XW?;!z zCMdOnywuPXUtZgFZOz~Eb)_=(ruoYs@8inRPCP$5Ks`&na$YT1`?=j6HzR*GL}rAF2l zZZ|5@XuDUXh5&}JjNeAlR2ODhw!K=I6iM=0{5!q5&7v)ZyAc-FoYO^(zrLQ>#5B#Q z>z6WJXYh?Z@JdnBUobD64+|G%g57sx9T%)h9OPe0;x1}F*!gQa+1}10*+$OWu2;%( zx$Nl9S4(A~NOp}j7Rh26?LE+0HmE-SR_ob zy0k@tTrd3DgS8F4Z@#nPGRJeU{Eq57~) zQytjm9qNd7>UDo)$Vqi>xwc<->;nU+1x)Cke8?leF!8qrzaR`8?EG&b*_ei5Thw<7 zQc2PRV5Q4o6IKNoPj4AEidz{`Z=iiqr{Fx72(y;C7?ZfN*p@6gqLb$97nhxeqH9YQ zc0`au?yB0))2EQ+oBh4rjH zaAB`5mVc#rHW+ZTS%YtOQUNxOQV0DhI5+?(glZ6 ze?I2C6qOtR7fZI~1I$A}$$}w=1}8=v@CnZ5dKm|e4;)Xg4e0oL8ikG#O=Y2VQ4b?2 ziMo%W&g}#Ypyz%g)jz+8oNY$@cRT<0Z$19&F)X5YH=*9Gs0Zobp{P1@6c{%&eVZ3Y zglgx+_aV&&Ixgc^sdngf0U;_0Rw!->-^q zq^KT6r=ggfl4RHE$0;;`)3Pxq6{WO##GFJH_moQ4B1YIp=LdqKZO8MvtS}z zPUOky3q`@yDM!=z`1^2to3SQlf|*#?Dv+2sO7->$%aVphTZ1chFz?TFVLGAr(39$< zP&4;7nL--K;3M=ZK%tmRQAu@573!lf-X5cPUN-sf8&hkE);-A{V`Sy@(YFm zKMJ_N$S`zkrt3inbT0l8Z~gBmG!w>@Cni?h&PEkZlINlbE0?A<;G4PD0;J50y<1W% zSQ=bgbFlMeGuiw$r@GJVHI83qn3sNW45R{djy=t2;aQukoyn&7FQx)1Fr^xRIB}G> zFYRTFgtFeLhvauz-GX_r$L`5Em);ZrM4tIDAr$>uHll}M`edX;4MOmOB)XV&-32N? z1tzmZF=^XU8UZ=f&eZw3i)ANMwWaf*E2qK;fWqN{mcl(dpaoK^wABg4!wW^FSuEHJ zWh1zlGM78Zx}mz`)m(T}Le;I$9$S%BeX#RiKa&NgLY2wyb^(ooahLx|@3JNw(*U7vn0qVWCbfvz?q#a5x z_^RxLE;bs5ihwyru;+}bCx9weLIR+DFrTv#=+DzZTabF)axAMhO?v{hyT32QTTpW< zSOyCZW+;9j6g0kE^-4yabDd+eQ8*_@#eHeo!)WnpG886I_ro_Wm4(xCgB_dw7u|Vj zRgi^SKbZvQ(!yOyu{)VL%)?5*y~2ms>;5$kGn>NMfLS%)bS*KJhaLq^6$huv1*e(; zPBjeN=j5kreiifJ)4-H}CpuzLN+Okc(@tBR0bvic0xrq{#T`igM{X64A&+w~`SaYG zjRNoy6Q!KsG|c%moExs%uA4_r@3gtJ79ytpH8%b9(=%PjO`1zF5d%{oT`NEf?nr%Y znn{iov);!Ctmkr~zASR<-|csM`&MJ#;;B^aGMd~!B}4N+OIy7#u`%7g(QhPc{^anM zNODZD1y@{6Y=Vo%!ov?cwo&%$9TZD?0CSe03$>ZN?gPmOb8AjWqn8+aa!*ohQf@F| z0wt$psvB_DwXC@m`e+;+8rKr_VnLdQ{R?_9yQeV)H#+Abb1=XR49kPu4bgn+s# z4_i`+Eg@l0_%4Gtqi-^=2j@7am7FaTbIFS6sVPX2g$EopKkWf!@hH%W@g7RE=dceO{7m+o~OXGj*EF$+t z6$N98$SF!kXwZT)=GI|w510p^v+Il`OjbBo9kM}f+R>3xSAaTg{*=ZqppZqVBW3DZ z)|7TKOFxdREqR`_sxahMXPRSAb!%E<1QPhqc@Q;Yxd-y!RS`k&rSRE!lfgy37pp5! zeZ<$K1LfMGL~_AZP;U(?wd-0w*FPPRvRz?W&P$i)C&|NlYoJ$lvlhGPoFJYN+)K^c z3e$X9*hVoMtR)vrdG*!2+ zG-)c23({HF4in>q(BuHg7$2ef*38TK9pBTc7kXBEh%&@Z=LQA-W9VB)R2-5cU<6Io z3nyx{*{l(*-2%p%NA5kyIGIPc$I*K^HI$cXRB9=wyco*%;iEl|^3DP-nlw@`?{pqD ztOs0Xt*5+yqTnz-T0lndN@kuvMD8KN2>AY69_b_G&YP@JSVbp?QMUyjX8`x0lYM|o zY#S->cPJ>FGSVmy#zt?iO{0bQ&RDx;cOGR8q5hkwZ!6QNFmom4{Q~t@;$tNWHUT~Z zco*Ofz>B8dnB|LT&<=l|ywo#bK zRFt$Xns8upUqnupe)Q*CU_~1%7p6)|{d3hGV=Kynq6u=p`Y7_x1 zqj5Q48oiMwT)Tc=a(nQFUh*!Y)_TAS)}QwsKK9_lg92=U`vhPw;C{ez<&7aeM^`HV zQ(hbOJ?5KqCWs$0r&*+KSYDWfQxRz>fT2|#`kXEU=QF{!23|CE05HM zbNG`uE7pUD$7UD&vS41;Cdh>_X)t~ z0Iz1e!C|P_(Qy+By!b$7-lKrSfO+^OfK?kL{CRvVLW_F9r4Dp^FG~FQSc!tW0bd1- zmFC?BxJc4y7_fo{?SM3iQE?Yw zpehfQ-LmnMVR0^l=R|*SJVo)B<)6vCjf5*d=mMO@eqLXiqYU<6wFJ%(E!Bg z-VK+rZs}lFT%o|NWitgQjxyiSHGqP@+*5YS;yKDNn>j#iJixO=RbLsEM6w0_(Q(Ma?nScX0kaDi}Q3H})wn?~1Xr z)obwfottlunflmW4ZXVK+M0bM*H`^ZaK7x-asPqUg*}l11)lQlTdu7++}Tdiv~p^~ z#ZrC#LTdUJ@;Cpu&{WL+TnHks)M1Hb^g&0miIubfGPX~&AJ|fm4&2k$mrvrq*-UlrdEP`(xd(n!J7pZrCwsJTy>c01 zzA|kI-wH)u$Pg@)A;?E;QLFEb1&&*U?(D(zU_b1M{>Nd&z@88@l=xy2Mm)DR3^HiH zxt5i#U73TqzW9RTyk++FEJ+ywm1EeP2>OWLt0(h;g@Uijon^W85x(oR1urOclf|G= z_5|M}?z>d;J0)WKK!1CmFwow2oMIEppsuh-^@3y!UK)+7wL*%%$mrQ9MCW2TewccJ zYSJ!2mVZ=DFi*3CfoG`;YF==7mF$Yj`PpGx(G6(L z?&P)08p<1%sSV`^?kFo?i{UWc1wD^C%THlu%?HT*?;KYncQbuep36DaYj;e-O^`n; zn&QK?*2s{quN0~UEbRl{g?$Y!X zWO-nz%j12s0Vy~uk``@) zQq4H~VVNMO3<<_kVK9A!V9(X(-m?cJ0?Qkk;3sT#yO!~lpe^WMOWLL;P%tob!CFLm zyI}s{h$J7DW|KGZO3|p;_X;Quz3?p4D(i@pGgf@t&O|cXnOI+sbxYwozNUqNW#r)y0D3(o%8nc3b!Jte9pJD><;jaPTXEw`v z*%^grf;2uVHpC>f;k50iRSU;zWrK-LCv-hR@FFfQEWbeW{Q82JF_>RT(PA7R5y!Xx z6vzP=wUe6;)5V)`trc$(Dei$QDn5Y0;6=qnge`an501hHP__q@J!_f0{JdyAw2!KB zn@YpvbQtm9p@(;s8oTKUMk3MmR>8Ddh{~fdkEhUZb+QuAk+MITW!k)27j|5X3MIU8&V#+#}-Xua&zz*L7W=HntobiE6M!t;!CxEdE%i%$yChQ#_YrVcW0l;jq&e%wOujzW*z5(E^k(-A&!3pg+46iHX&kK8hEf@~M$ z4vJC>VlBKoNh?9Q_khxp6U`VQx0R!`24{7ADO^lxkOXifY-&JNhf>`k#f|;o{@~kg z53+cW`Dl$DF45QZV2l^bX^CAC%l&`bG*Ar9yRGX8l#Y{QUYO+jTP4@@A&yv4WULXVoJ4N!N8NLVa&sP`8!ttB; z0r@;b_(y}gAijX zmhY2dhWr3kh+cvN!U}TD3~sVeJecT~t9wvAFS*(l?0%>;>0Jr47G<@nDNbdwP2Y-IfQT-?V6 zPvH=;6lS?P9SaR)LBjwU2C^uAZna7977NP+`LyguEQaIE8ui$Qhfd3*LLR+tk^Zs; z*ONJ3r7K^evtD!_!HIi~4+IVdVM!jnU!H`!yUxO)WcD0BiL)$%*X2rCpD2mhK8V$` zZM*cbH2XO1uTd5$6wS14-}0VF8$J@nv+upKcFX(!4(RLRnCSy8!k}K|3(mpm2+W|| z4MU&lx}Lyrw)LWO^2!zZSQ4|hKRwQLIVv~`6Ub*a30^H5F6y#Ap{uif7uV^!B1;7A z_n_I9hmPpYe=8JQpi%%0(TwB-p=d838EnS82&XC(^p)Vsg@P+}WucH(sv69HTCI=E z%#|dpBnw>W!1dWas8oeQH2FC!Vlft>U=c*(hJ2FFQpdV2nTHHN$qe!;EQLZ-)`p8< zOXp02)n*dvvd%UL@a~zj@qNi8WIh8pbE#gelqO{bPby^2I%F_6nP~c`;C~cVs+H*a zE49)!;``z3c}iC^xL@P-n!{wRJ504qcD+Oe>62%OP5kmv(66M#*=s2*n=%Zo zs(S$IW3@+l9`X`Q&nH?pypQ}H;Izy$9hCjaKYj#1=G{dGS9h{slxwAEme`>xT^t63 zoA$F|90fb5nu*ZfPQwi{#d(uIj!O58*7DA-Pa8p;Yp?b59fX+9 zw8BNBNF(7wuCL$>-44+i#u+{{!uRFiMwI6mtI*AZez7ViXnMRex!KLFUl_L2!8+V& zVE9Y7QvA>&r;mr?Gu2?CApzG4n))vxD&R2jxTQ37AB&TOidMe`eTd*bG3F01%q^dpb!Y(c&O`SH3=9F2&i<^A^swMuQL;Z(j@&AT<-r*@?$~-e zc~hSQBbTuW>YE->t6H-Zn;^S7fpjmF28N#j%v$1()rG_DSp0T~F}4>Xn3eT-f!LdT zASW1j3`Y}#UbwoEe!z%t>>$hB4q6g?t(E-0Z?cI4l?+EOf$*C#C+26CWx8mZ??ul|h%Sg` z`GOuN1Yx9CDzpV#1bLej)%!m8+@e-ZzbM(}8@3LC2e88P)k$gs(H`-M<`t&8B~XhG zmO16HNruIh`2=DUn;Xqqe~P|1f}7?iz+3%5jvsldXglk{norZk)Ptn`g89fb!*tJN zCB!yfKk@?Dtj%F+oIVInKd@_jQn^lbUaE~I!dB!w5?wnpd*z+GBzls2%Izg;|I zjAgl*3L57q`&dNuTMfm3M(_RB+lnLC6J-~mZc?i}dY45!Y)URlGm9k|mW$ZK^dnx( z4aU5MC3gQT3ay@ii%9r5`)46`%705V^F3UdTJ}naKZ4J_IxK1sjZOc1%h@h(&s~CT zkEDv{jktD@T(3`xifaTDK!SY4U0GqN$`Wpprc zCvF4_1PxB)KAThOpduyKK^v<}N&5m=$x*3p5LM2%OV-bz-R~yLW4oy>xPJ{tP5cfq z2s#$2ad2S{?tK+l3Sdp!Y)$BoSJirJG!MJB8TTbFEbg@j_iY`3VaF_kXTqXjU@?Un zfv@m0Q}!*@4JN^DKCoB`v1IV;RS+vOs<3f^x%#{3p^qG+`H!n*V`qxfW)G10;ym#} zGJz)|L;;E-jHmb7B$^f&(KBqNnG0S6hrO^g*_>4`9UWvf63*=r6E~1_mlp8B zOfk)@wg&Hev^QfYiS;Iy&%Z@A<(gp{YfND0@7c4&(kk&h)qzO{zbi6*!Gm^PPpF&h z=&WajNiZ5}P*k)Oz6SvvFfsldo!BoMrg_jwAkNB^E%?RU_&fChc@hNCB3(5z91>4w2Oma$hy}w!#k61Jz2m^nQ>S)c~r4v_3 zu}liykZod+<=N5wxFOKfRNUgYp#?&~WV-IS*lLK1jKz;p8j)x!O5lH?+T5VL$tDUX zGovZ4-^GD`%!ym@95&#ah4iTs$zctaW!9D4q^%Uos-psoX_dfvZ40Lk^S;|Fvqx7K z8OY5z9{q-TqJkU#) ztd`ng(^dq}VR4>EpD0JfY!furdcIqG64usSVNguV!hn!uubA&DlA}XxiB`vQ9^?geuF|B(~+q1_~RMHAPtSJwBg$*?gArtc!2fo z90bMl1*Rd`3`6Z5U_YPQlY34Hpld@=hWg+r7o%xZ@iTO%3IU}8V%;o2U;imG66=gd zudSgDaYz?gOmX<8EzG(j>nOxSht2YEO0;1lf)7-31+@RmVxVI&lmmp(f^BwGZ%fk> z2~$^MiB!Q_74J=?K+<-+ihAoL%>lDBp{8{)3M1+%NlUB&0I?YXE)$9LuEYxzf9^8K zoHY(qUJDqpsPZ|77RTd;9PD2%Q{v>8NbXkccN=%J+EUy?0wjT6d{Y|3M;fd zQ0tCpqCN*$%m<v754ki4EM0;*&tC zW3gne&K@F;LU*2BbBx_qjG}?t(5VzbZ9ej2Q9BtmE~r~eDTcfLoZt|~AIEb+F?U!1 zcnzxf#RWjHs_dqvguaG;H4g#iIYA40U=6q*xZyD?45V?S@3;F6gEISla?lG%6a#Y4 z`cks~9gf9Ch;IjZFB#EFZNcYN+}4MasVq_h@dMSgtW;kObvV9_oY&%B=@|1v-q9D4 zdb*R^zbs;vKK+9>I^ERlNe4Y`xc9vNpua5_21Eq?;(f@g@Nj=B3g^-z3 zzND`I!b{bUQ@2!(CWGkz40*_s&f5Tql#Tvy22aX9ZR0y}=`>%nZL? ztYeks(G_G}h7>sIf~h(Y)EK)U|z>#F?r>1@N>U*{X&?%!bPf^a{b6dQj^^;uy} zT7zG0wRL^-4i=^N&iw6W*z*Yf_CkzU-vWIgocFp~`!?5OrJzlJA}K0x?_4{G+6hdi z-M9l~3FKn@JUVa}K_-LCehcg^Ogc)zG^`R^XoH<^&o(#oPStX>Mio~w)n{feO?O`S z(Lw_}<4clGfxRywVZ7EeK3iUV;eFbDQDKPzl)Lo7;ja?chLXu9{I+IWA$ z*H`t|u9#5J6Z44l3GeueIG%fw`sSvvXS;*ekJBctT~-~_wK)qkC$`FIr;5{^WcBR6u zqiIEg(@#Z$d(n99o3_nD^e#n)+ZEQN9hA^Np5pfnfD*^!PU9`#q$YGvwW2;e zy(SM-)A7FTO5|0rLZT!lMRqolyv)ItWbv9m*djj zYU6t(#29B%x1@TKCwKSPn1r@$Om-n?1eUAL?}C0{4gLlccnNd9bls(8?bcOgxtbE; z$|`o9oJ)?&u8!oqaYNd|+1XK;60^g(INQ+ZF)JHo1#Hw*01#^*Mlh@5CI4IKY#@Dh*Z;ocT4D@u@h0Q300=Vx zX4ZL9m10R9h%xTSM@&omwqniRTcovVtcccU&A78CO&QEfi+JA5X}&OfCqS`gB|+nG1`g zp8t7>nL_chyVPN^$u(v^`J;FF3not;oMEFzJECKig;xRvwM zkTeTDsLVJfFTC-{pySr_cJl{zgkG^S+JXW72j;}tSNIg*OOMTovqt(f;EE};<0H;$ zOwNuV+z5OQ^Ta0Xj2BvymxhWWODX~!rnT(FK5r7<@L>qP42?KRTR0A431M8A$~5&> znf#ehl|H&GHL-IG-ZJ>o3Cgwil^4)xHel}@CB&%kvf~sZw&4#^WT68P)aYa+{+_>a z=gwheA6#y+tSZCBzC}%|G&p^Rm1Con59-{32Rg)m8EqTq9Q7c!K3_#-sOOb?pE+ns z88m0Qyy*GCbX@t2q0p-c`SQ=yR4f(FiL&l{FDjTZE!GVI>=Ra|Xdv)#1b_(-Fa%$T zy8(ZVz{rnTFGKu5Eq~TK`hfa$^Re#WcozkmM;-8&O*&QP@u&Tt@jbWhmmq5`6Z;A1_~-hLD9}J zQU%uy@Z$=TQUQcdBm1_#z=wetVWCIwhC6BG4Io@BkbcV}&4TuE64n0+af=Fcs6+57 z{omdIhB+t{p|#D>ua;mU|N928fARjirM3g?iyC?GchQA+2|q$55YzwX!Cwz%)W#10 zN%gvqrjehQKp2^qL>Wp&z__0lAN>LOckU-zoRmuSoA<*isNGMdiEHKkB-y6zr-X^_r3g5S3B801fyVheSuYsI+dI%85TZB;~j}{Rm4mf9d8>kM?aVz){ zmIA)YSofoDgs;atZq`nL9WLp<8IQ2MTX?CBNO_bc8FzWND7u7v;^q-#z7BhJvxO=) zWg*ShZRdq`VS;ZL3O46IuNDduzsfHZtj?nV+ayv#r@`7vj5WAQR5xY}rTUIc%u!j( z@MpL8VMU8GIe>PP4RI)q8gBmK8Zv268TG+w5 z%QHZNVo>zDB7I#7keGem7R_bhh{$b?1GbMLS13mY7u zuqmy9t=^Ta_=Rz)gZO1!r8U3Owgp(-^b96=|G_!&tAX316;&xp=`+> zwkf_`mWf`g@{Hi!mdhq1TnU@Pci1;r(Q!hwE`J2Pd^--M0w(0Qcyl>wB%+#!=6ym< zNhl-9>z;Wbv5A#eR`fYC6k42%QO4~embz!wquxj8izm0&>C0ue=N8N(435t5NPa40 zAKh&Vg5SyShWCARub^2NgumnY4&l)q zjMMcULbkmFoD#UemBgMkK;Y$^y9UJuAaE%rt}X@!tAWA$I|Q@RA;g3&xdDr)vFj$l z$U_fDIZEOwBww?Y%RMhd(M2J&W`aG&lkRKwo-^O#*(N^*lakq7!%}4{Q#5N zzeuQKxNebP-hsd0FHDNc;}D1Z6<)^5Dz*24#`_>bccn#TrWn?%1cLTzpRBcr!nX0f zPoO#5QbXvj5^h%cBe*LPiSv$*3hitm$yFS^Qb<*SQQ83B?Pmr}MaHAHU^2u3`|DA< zdfa*r5Ydez+y3Ne5{SKnhw?bxq@|%6hYy&LmXXww98KJ3M8ze^KXo582384}Pa&R2 zIEglFCuuo|z21=l+f-IYLcV#v*q;vZxE$xxyw|;If}n%7me{j*ZS#kMt&@&N4bY+6 zaXo2-#hf7yeeApciNAAX+ErOPCl4ldH18az*+$`MA(qN-X#Nhi{NAr`*>Blp4c>Au zI3ixab!Idg0Q&VO&BFSd3arXP+mPYl$fZ%@VER#U8siPd_Byz)M-M;2T1oZKZak*v zof34=R}bncM$BMnJ`FSfyuPoYs4E8jGA`hE6d*@Hv3lPZPmWSYyaCYIT&%5ZBi&{?3?{}Z9M2**Kv{BtvOfqw-x}a;HBuL& ziuT+dI$OUobIC~mB?v6n3Ala21-q*Otfc>JRj5Iv&^BGB;-?;t&l6Lmy?iluAJ`KKT%s*PPUwX0p4AzHI|d8 zFL(6dapL*r8I!aYym+r1n>E;ab4=P*59I+K)(Ea^IRB;kLvTPkYLM;CqoXe%UCf69 zRi5a?m57E5Lv_=tJ!2hU)%sX65aX#PZOO29vq7u5UYeXp@_bqw=bD^`uO+%!R>rY8qmhxsyt12<6=LlJpJ`X(i`PAXqp}V>T!^j z(WHkasUs0hF#kH<+c_RO*UxbyWebX>j;hSyOJjD47o0APUzSf<%k5aPJ^TyzEIi8z zL#HdiFBQN(x3Eb>(6Lx%u)lqNVGGVsVqN-CuM~Ae(kX6?0qanH`{C;mp8^fPLE3m+ zSve5j>rM=@D_Mzo_drpl?YXs*W!(vB0fdPAYA>0)jwFeTD$Jss9o0F@5fzEpmASci z4OmJ|Mx^W0qNcEfi1)_Tjj#%pPKaK-9q@uyJw)+^Vj0MAqab#Z`Lk{syx)#@nh1U? zE678fl~G9xc_7xED;6FTy$BNYZU4z=wFk82Fe1pGq@Zg%9uHw*c14N9w2wZL2_&Ek zdnT3H(S?8$B`u_*jcC0XxAwQ&Acith^^54zm@@}So8q;?VNStA;M5}gw0y702>Zt~ zKET8hnd~nRcjXePxy4d6<0=AreTZGcpdLwioK|Ud|J#;-hkM7H8o7 zbTv?1=EPhS%%v8qk+7O|UMZ*|gfl6f>ZhT%%+|a*>!Rvo^$?}6pa(l{vOJG1IyQuh z1i_mb45McU*@E ErE^*x9lljiColL1T{8@Ln-YTZ;(I2Ik}ivbO7)7V&pM51Ki# zgeNcAMC+@&X)rmGOx* zWlXC;Z@}0g$b+dT)1n_6sNRO+saU`iEZ{y=ql<=V4X0^ntQ|AQc?|v;nU8T>V8E^i zHgc4B72q0-VFxxmUN{)h+3nDS%f)w@N*yZ}9kYW<#(!3Y-mk6stP?Kd;FLq;RJ)`O zq1}U9UMHp*7Ol#0#E|90>UH0W6hBkb)t`9T!t61!7k8|zN6K}bmhxqj zHLs=MO?#*1-NRF~*5Sk^7JN48%X4K~H7q+14()KBLI&Gc3JsY|Q?(VS!?`2!H={uN z3hE}y>Tv2iEanJ?!bZn@sO@7NcmzhaY1%@xXhsXwsjCPW%m>wTk}*#w=IG7iZMuu; zY^-`4bs9F%?{&_`re==l;+*$^-Jc`RrT$mZ^j_S0daGs4=k$#J%~YNOd34%4c5ixm znIIH=Rj><|dCqigB8Fp))N82<^|%QtPn0LM4&0VG+mNL4?=QL0c8fhHZ{W;Iw$(p` zLm%<7(k{XINum`71uaG!)mbPQ3U!F z2?*V9tk0>?gyG#5Q8Bb9YLbouG45gA4p!t4(@-AFq>|)QeXMMM23By%IYS$6DT?aj zaJsQbwjs!quR=w|+vixXuO1b=w0fCqXsmDj_&ockxW4m1>^9?C&yIeNA<&ck@Ev-& zGB;{W_&yq+qc(AfB|QK0itA!OC;z_|>9YS@?`i_$IpQdrfm{8da8lI~QfACgaoqKc zlJaghN072m{xD%5)is?t$n^l+wzVnZW}~^faD3DZwu;=pqdQKwJ_Y%TP*Uf%BrP8y zA*t8*rw@^vi+X>q^8Bqq@h-a%O}7Q#Sq&|V1wQglqt}miCPfjmSHBkYvWH%=&j81= z1z&o7DcsvIclnYhQImT#AdQ`yvOi^j(e^23egVGBaP=9ACbb}niT&D{U~+Z@07RCg zXdLIdh~nw{W@u;B^H4{S_fxzVdhA`w^Jk(PZQt*8V z-?#I(3jezY8CEC>vpECTkY0ROGyDRD0)S^Ryn#Ytz?BTY3>QA&3WjmlLHGfYX$)_o zkR9+8hPPrMz@-esAM62qGsAD7f50w=e@P)VfRFL~@hc1fxRBv@FaTf&!+S9Rj`tXb z-^T!eM>G5Z1^}GH@JAQ`a3;eCF#uo-!+*j80H-tj3Hk?YV)$?9A8^unaQMhE41ga) z&~w3O7yz)u@D~^WFfsfk1^|5RJHV$f0N~3Ee}e%4Ut;(y1^_(7@OKyhaFpRe^bhOc zzYJeO|A5ajd zpg^xKe$)PU{(t0+n{Tg%Nk?|9QIJx8+F#u{LsM5CJEwL8aJZ&FEjh>lWE`}Zh(&mC6;;x1R7V_v= z?e{b*PYQ=&pkSHguAHS^_|8VYO_&vDj$5s-<3o1W@xr=0AII;+tjtswa38nj;3;JA zatYO-)&-9&%X&yg{94{Yu(>5E9>b8phj<-G!84ks@eyAy_wZD&fMLKxdVYocBd`nv z5Ur3MfBCK@e{%3~JP24^gvljV$fm}AoZnw;FU7^5LWmpP$X?wR*&SAAX-6&&lg=dY z;r)$C=Qe+?9J?-^1+7__71CSRF)HVnZU#&-$6JqQ8`qNl-y!emfDj;U%J z!pB-^D8(97&`lb5gSz?LR>rep+!<^XsuH(J@eHA+Qq;6|l?JAuCNyCi^Sra3UXpgx zlJkx{yw+Gm*5Vu?Z=jHBx&`goLW&vesQdy~2BJ=QU>IYTpNsRv5wv5cR3#MoOo&I; zA^igB3rN32x&i4aq%R}=1}UyaBWIDSn*e+VU@Ou=q}!2RLiz^MD@cEdG=cP2NF^~I zc?YQh>0YEMNZ&`Aj`RbhR-_*x%|?0<>1d>XLYj~C6Ql)5|Aurt(ql*`h;cRY8Gwn% z_yXw^q+cSPj`S4LTakW)bQaRHNNbROhx9h2gGld0dI{-0NUtERLz+PP1Ef+_DDnVO z1JcDvQ;;q}nvV2gG5)+BGE2sfIz*O>&=3)XkxUyJ(r5$0@m8Ht6>^dg&-Wm}3`h9? zSH261x(DSeZj?v9sS1r8mRS-ejsb2(itU^MWiSAb3y9_j;oOY7nAkM?kd)`#C)VI_ z$YrAHd`mhcxff$A%ZH^^@U4nk=EYh`T8IxvyQE$EuZ_&F*ULB`gS}EzK(Fjm;&>yb zfq4tXX1vyTjQqoSGi(=4auqUb?G&AC9r>9&R&V&4*aKay8t0^X^Bgu5@WcUr+`^l+ zN(H*T9nOdtKFdRQ(=U;t!=X82h`f3(*2)GOEzk0#F^A68@hs!p2)ui1*3>yvF|rU`@4WJ?VF;=BNbQ1=n-G%S!?|M?Z?>KefYvI+;k4paB4uN4(gm8htD~*gH}$b93@2McON6d z3*B3VB5K)g_0=Q(O5slSxNyZ^ViFNdqExu(yPfGQtW<;%cv;*pXh!H# z{gM&kok>BXj?Be9q#cDul|KqU1cQ_I4cbNew_Cn}2j}16s?a$yXlJqGXAV_`?hq*1 z+xEH}sfz;e4&zrcjOt9I#fS{16nmc6{ZoNL%kURD2`P%n6k*V03~FqXaW$NbfsMgC zFt8B=@5R829jmFGXT~EgqIo^2+fI$iW^I-6rWX82j$KI7cA{cG3hX^e+IGPIDuMGv z6i-@XGhrgUh#Zn=x`tGNiTpm&Zs5RQeY4h%Cl%hqRUvB4sQV@IaqdF=y^CQz;NGgx z4u;bxbW+}z-RR{v7`;bAS2B|<)Txrixe0+3?>}CnS%DBX)_}b@6<|T*8T#z9YGj`fh<|?cz zes0;1_7&zS#lr5Y;8&Ej?R#L=Qpj2uUhto?5#A~ zA*jiB{u^lhR!VYx)0(`MS{++^T2n?-d*d-jt8p}en;M_auQUEc@i|uK*E!IbOg&rL zkjfn$eTSq#%&{$Lt7G5e#~i5ZFdg0kTv-FH_N|0GZtuW1nGS7v)9BdxCi1XO?M-}B zWrl@RWwr~e9NFt@Yd-jYe`uFCz=sW33xSz0d(xuC>@p*2?+XjRj*VPY84>CM&O!5P zj`ER=K*NZyusP=o)nHK-LncBSxE5IgdBM2E_kF6UH0~U|8DX>K1PZER}wOANj!?5TkV(9 z@IFEAnun9J5p*~pr3csX-XBmZyf9>!!0-1L(4IF*iLZsH@GF#an~fmg_O=JreS9_X zwvKO<5F80-m>J(A0%v}T_C4?MHSvN_F_nBBXASkzJq&!yP zHPW;)FgyuC;f+V|+cNN22=d&5A+s+j)o#wo+gX64$*~e& zDD~D7ufA%+TKBmO8kRP=|BbVfIGAx1hU^{~vRYp1P&S)~zkdR&5y|(v38N?5tZ*$( zZrPUBfLLBI-xX;wVTwx!@j8OPdXpw@T4^!L)=B8eYmPbvpP{5wEfvM{lGJOB$}W}< zV0(BqCc0Q*yVC%)Nb*QT(@8vY+U^Q+%{1xk*e9> zy-mckSpBLX_i(Cg9znHONo$?l!$I8Tj+%leh%0D2Hlqw3WNQXES>;L=P}TscXrcU-|a7r7EA8(J@k^j_(bwmF}d;is$!DG(fnJ8gx}Yh zZ(Bf^>y+*=S{r(J{*qJ<7?7R7A5X1azxk!py!={m+zfJlwvFYvySsnTH|Nbg;^nc!r2a=<* zb(i<^GW5tho26b=kKyfjPU_?AFNqf%xz~^|Y!auX@S7TbFdq1y$KvfjJaTV-&ptQ| z1JEltX0=itya{2ppN>&pfk%A-xOoL@SEHn?4S#RGaqDsVHbL{k>&S1ymqqT4<-Z7R ze&j(o3Pv7;`{F4#sk^e|@@zz(^aZ4gDgXDE-wox?J5S#m6&%Z*+=f^Tk4|heqQp^E%0g>sC(kpUOB4o zo4S=$|Cx1y_8Jfl7I&ojc&b*J?MBXrKP=CK{U~ZF{|{4N0~b}5{(sK7cV2*jc?E_S zWoAG`L;(eb#JB@!lvapTZo2CL*1G9#qF7pPGrUxmZgIU7R&I@Co01i#?J}FyptkF7 zR)khoZVgCgg#`mD6gvO!8Fzo5zn>4zz4yGI^PJ~-&hvJDjUcoGa`z@Qb2(`p#eDsH zEd^hEpojQlH>Zv>YYR*b;9GJd2RO zC-kUr#TYT(>GlwKUM{<5C%J=D%a1DH)cQpUY%)Xdnz)?<*UdVA+}_*pr`Lim;gT5R z4{`)VT4u_fMZ{uT^H}Ban5bpiU#9JtDMO9qqlmBtnC*1|9Z~ScuD>ku)gvtqTf?K4 zAhQP#hi^YGf=AwtnQGa+NjsdVn4ipWe1D9v3DF_2!8;Fdff-2Akkm4Bi)A#y0{-gu zJ&Tm(Po}bvN%1_H>^_GI{Cl+IimpZ+o11Eb zi|;8hcoIt%ub}3dv51jG&S$!y`Ex<@*T`oHIyqpY%oYsBgZ}V3YQXY3CnA*omMLx$ zX|5%ackp5ejUEoGhVE9m&e$JE=M7*wnJ#98+0bc%PP@_RT6Eeq7SVP$dU00{k!u!H z^RclA^BMU2=OnXaD%Pj3Ay_Ft6@_MCsoT-EiwJdiybh0NXdamM`lyxFkuVUbo?r%D zfv%2|srufTIpQUCHl!V%NU5*^bTJdpAq2XNJ#D(Nr+JnBw8{RSrpFi(ddM+@{21g9 zeNCW%=w4YK(VC`6CZ2S{C~x6OU?LGI3Y6Jpc9pw{`@ zRML9f6g@^#Uy2$dFTmMl5n38FWkHz!ur7Y0?61eJCR!22byk_n_)f?33KzsIgVZM@K{nvi2eV-T z%Qs9kES@l`GL5|`achxXou8pznYjsEP!Uz7PBB!F7g`eK2?#ze%-w=MJe)-uClJDv zOXN20Wg}6UyAvf}DyCb4_4Uob8RvdMTs-v735&kf+S6$vLuEA@u&*O>DtI`4gz5)( z)|U#S<+D(j-V`?YF+r41yh-v&)Z0Y7z3h>W-Xe0VK;>;kL~CDQE<)&oPQ-YUxq!{h zLmGtKu!)8>L;yiq0@?5Y;SPKS*DNEsP&x1@E!>5(USJ#D8&PvfOIkOnCbF3|%J|PA z%?T5zw|6ka4Wv4^3no<&8&2vZ17>+S&tXa51t!QR zYEV)7d1-=O5+XoAGO&^-jimL%0xZ7N%!Y*<0Sd!KaAA%mt#`y@wS>HgprzF#qL)2j zlQ18Rs0yBKtr|@C5T@`_zLm_1vD{l| zi+27Eq|_z`mna7uX15ARo_q7E;SdXtULgAgHvveqp=5+ZJ&vwboV_>%n|9!%UJm1< zO>7^;yt3|2^cm0%sapqUp8HZsbHu2{Hd&s6l)$4U`#3AjBS-Muzvd=c_>DuFE&~|< zU#+w|MeCM^`J{7XO%enbf?{x1EOIpf0qbJNx)j4=Rl=lf(Vmz`&l7vk%(Z%|BPPQr z%rqfZs|x^waI;n{WR(l(nyd0=;F+@$e%-J|Ao4NL`J-5|T5F2Do9k2&z{HDRa>gAk zrvowuQ|%9S?;*KF<5_KR5bRHJliGGp)M$M!HA;U8{WsbtSf{Vxl!2*M5?$F?!2W$k{5~ik25)IHzz|OZ- za6@&?cYC{o2ilLzd)PKf=GV>?Ot_jbaxXY_xgi0%oK3ZReZwZh385oQPzoEdTp`<~lQ zU$1ckMESBTPj8``)R!V#Xx*_?`IR3bxY7@+k??2C!6=wMVtTgMMZ7`VjrB8VGI2Z| zI>s^{OJ623R~i@MX4ZJfQ|8Rqk=+85YU0q}m_rtFJEjTNeQfVbSYW;|)nv5**~}>o zZ2GWfi``h+Zlw7I7SR4oIok-R@dYsF?_ldmOr1e#;PF!^+KsFP=|iE6Shknk4Vs$y zcJY4E_?Scw!0;BG<-@w^7!k_ot(f%4GOA5qpf95}cVaw!2lL`m{si1?c`1*4d?ro4 z86N{~%K*}NzjtY~*e=Slu45~bYGI)V z50Wmk`?Ao%+11P7o4F}zXeBfe_0;h@%^~Kv*tA8Jap7t`y*0Mu)hS&}lm4Eio`xc? zT!6<4EH=;9^7CRmjv?H82aaAIVDu@m&|~VfQ{@ZD#lL<6H}Z?iB_C`|>pZ~wYZ)TQ zXBIQ?j;dOBKRA=JxFWJ+%QUc8v6=t5K#J_+scR?Gfdusl16!y017F=;SND>8#_~W~ zC(h96@5P>>ZC^eZf#%gDqQCtwx#XQ$Tqj zW59%Z|<@;J~GUs_MAc~AFV4|bzZjhizJxy6KJX^)4Fnm+CZ9^_)i zym-38RNsW-9X9-Sb5I|eO~(HT!0~Hgb~GE*1%odpu?!wN%YE+?akfQsbz!_8lmh#)K78*(S)86B3Z=3cE&3y+KYz8Xb95`CK*`>zs`}mE-uTr|1St}Vc z#NlBZ3MTT5_??VjRQ}=(xagq0Tg+~a& zLTysV9&RC{`CxN;HlTH&&kk-$r+6YP?q(F>bkK>a1@HFW7kw`VIeu@#cW#gl&pd&n z)6IAfXi8x#K;QSUvAN=QYcQ=J2YGG)@eQC#1V6+1IsugdJG8*VlTSjA*_$1PCwe~0 z=PDtGXW9eP1D2qIRLMnI9?@_f7Fu2f;B?7MRzH+Q(vJyQWO%9_311Oek~j$q1Uk z+tzu(IzTd8#lh5uXTGaAv(HCK29N7hS~hF|a^+OPhVR@>z=PizC=;gD^_lWetmFLj zU8>P!9%xJtmG>Y-tr)BZG8&heSQPw0lp4*imU+XK4t;4HwYg4B&^(as_jzNRzeNbu_wzw zbE{^^s|X(z>72n?L5urzVo>0-+z&KKbWWesk9bSDr{<1?Z-D6ot#jckPqib3+Yj>| zP^fB`{=AOZ)3Oe!MK2YtV(|7Ki-q6o2S~OBhcufz>U=M!_A%tQ&xhd4)ryVbdT1fI zGb$?@ObgzBnkrpMX<0S-rwI4tpStgw{8Ivcr;;ll72Z3!k8Ymq>YpuBc&89oYp<=S zJt#rP^W$KQvy+hey=qaXy@U7b?pDD*617vz?G0pSh(T?qIe=pBE$VST+kM=o)_cAD zg~cY8hybAHj|NjgK9+(d1kCj{Z@mf#;g0XjkXhuoAXVgumyC4zy9UQ8hL)oLm;m6yJ zoR2<4Do-I$ux0GN$R2VSjt20za$0iaA4M7t8SJ0dLn0QFhSfQUtvXGh`R1@|`Ri5x;PvNiBhbDqiBL!ZNU_^CMub4~#%))6?XIZ3X3VGs~mN8q#OH018R zH3Em}bt8J>&&UZ*wj}98W*Sgz8p2d8gYD&rS6bSEhxMV22W25p`2b^I&fMG^1D%71H8V zt&v~<9$Pv|@_9K~+CbzhvkQpE{+?=7x4wm}oh|SFzRMWin1uRO&HNleHn~%lo-jV; z0g~XJmM)uZIQCjZ&M;fadBkku<9uQYl(GF_-&fj5-Eq}<;ZjB?@v3A}UQooiRh73oG#+YJv%FT*he5PA9hT9V6No*n*Yv|eE;FU zAZcIX_xITM1Ce9Y(VRC%HCaOUZKw_`M7)Fp�ydc(d6&eUDBeZcPC*Ehu2BW^>Kg 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

JRb9z43PQg~heJ=7Z(Ls;fPuM(Rb3uzWl-O!% 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 delta 39625 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 delta 318 zcmdnQ9w6ogVm=_|2V#NkVZwp|OBs#Y om+uhVzI=xe;~%U+u|3gG#D#m?0pVp27>y<-3UA-FK%|Ku03>gToB#j- diff --git a/dist/switch/.overlays/horizon-oc-overlay.ovl b/dist/switch/.overlays/horizon-oc-overlay.ovl index 8496cd3dc259b37bbc90bd0baf4502b7bcf92b57..267196f0fee9f8952efb78719fd6bb5c0de3bebb 100644 GIT binary patch delta 55391 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 ge++kLJ!*MJt7>!q_@pIU8(}@!2y8XJ+;?)vs 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 W`|;1_Ty;?KAo*HrU1h%W@c#g1cSz6x